理论上,IPv4 比 IPv6 好多少?出于学习目的,我只需要 IPv4 的优势。
换句话说 - IPv4 的优点是什么?
让我们从一个图表开始:

我们可以看到一个“典型”的 IPv4 公司网络:
所有计算机都有一个 proxy.pac 文件,用于指示使用哪个代理或是否直接连接。计算机只能访问本地 DNS(例如,没有 google.com 的名称解析。)
顺便说一句......公司内部不尊重RFC1918,使用公共地址!(历史原因)。明确地使用互联网代理使得没有问题成为可能。
如果我们迁移到 IPv6 会怎样?
IPv6 中的 Internet 访问很容易。实际上,只需连接 Internet IPv4 和 IPv6 中的代理即可。内部网络无事可做:

为什么不直接使用完整的 IPv6 网络?因为总是有不兼容 IPv6 的旧服务器..
这可能是最简单的解决方案。但这是最好的吗?
我认为过渡到 IPv6 是一个不用理会这个代理协议的机会!
哦是的!
在这个新架构中,我们有:
Explicit Internet Proxy 变成了 Transparent Internet ProxyLocal DNS成为本地域的Normal Recursive DNS+authorativeExplicit Company Proxy …鉴于 6 提供更高的吞吐量,我想至少为无线位部署使用 IPV6 的无线广域网。我正在探索 CGN 的概念,立即让我印象深刻的是责任。
假设您为 14 个公寓使用一个 IP 地址。现在假设 apt 1 中的 Ronnie 和 apt 2 中的 Jerry 玩游戏。他们连接到不同计算机上的公共游戏服务器。Ronnie 做了一些顽皮的事情,管理员按照正常情况彻底禁止了他的 IP 地址。尽管没有做错什么,现在杰瑞不能玩。
鉴于即使是专业网站也实施 IP 禁令,可以肯定地说,您既不能信任管理员 A) 专门阻止帐户和 B) 响应通用客户票证(取决于网站)
实际上有没有办法解决这个问题,或者这只是使用运营商级 NAT 的成本?
(我完全知道 IPV6 正变得风靡一时,但如果没有某种隧道,用户将无法访问许多网站。那时我仍然需要公共 IPV4 地址。)
具有内核 4.4 的 Ubuntu 16.04.5 曾经按预期工作:IPv4 是默认值。自从更改为内核 (hwe) 4.15 以来,它默认使用 IPv6。
它通过 Tunnelbroker 提供 IPv6,由路由器广播。
现在默认为 IPv6:curl ifconfig.co返回计算机的 IPv6。仅curl -4 ifconfig.co返回所需的 IPv4 地址。(curl -6 ifconfig.co如预期返回 IPv6)
$ ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
$ ip -6 rule list
0: from all lookup local
32766: from all lookup main
$ ip route list
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel …Run Code Online (Sandbox Code Playgroud) 我的服务器在 IPv4 和 IPv6 上运行。Docker 在(本地)IPv4 地址(即 192.168.100.1/24)上运行。我没有在内部启用 IPv6,daemon.json因为我知道这会带来很多问题,并且需要我拥有完整的 IPv6 /64 范围可用。
例如,反向代理 nginx docker 容器正在运行superuser.one,该 IP 可通过 IPv4 和 IPv6 访问。
# dig superuser.one +short a
85.17.140.73
# dig superuser.one +short aaaa
2001:1af8:4200:a003:1:aaaa:0:123
Run Code Online (Sandbox Code Playgroud)
IPv6 正在运行:
# ping6 superuser.one -c 1
PING superuser.one(2001:1af8:4200:a003:1:aaaa:0:123 (2001:1af8:4200:a003:1:aaaa:0:123)) 56 data bytes
64 bytes from 2001:1af8:4200:a003:1:aaaa:0:123 (2001:1af8:4200:a003:1:aaaa:0:123): icmp_seq=1 ttl=57 time=19.5 ms
--- superuser.one ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 19.526/19.526/19.526/0.000 ms …Run Code Online (Sandbox Code Playgroud) 因此,我相信仅支持 IPv6 的客户端可以使用如下地址访问 IPv4 服务器:::ffff:0:74.125.226.80(这将是 google.com 的地址)。我还不是 IPv6,但我可能很快。我设置了一个 miredo/teredo 隧道,我可以 ping 正常的 IPv6 地址就好了,但是当我运行时:
ping6 ::ffff:0:74.125.226.80
Run Code Online (Sandbox Code Playgroud)
它失败了(目标无法访问:地址无法访问)
我误解了什么吗?我真的可以通过 IPv6 连接访问 IPv4 主机吗?
我有两台服务器都运行 Windows 2008,同时运行 IPV4 和 IPV6。
如果在 server1 上我 ping server2 这样
ping server2
Run Code Online (Sandbox Code Playgroud)
我得到的回应是
Pinging server2 [2002:9b08:a21::9b08:a21]
Run Code Online (Sandbox Code Playgroud)
但是,如果我从本地计算机(同时运行 IPV4 和 IPV6 的 Windows 7)ping server2,我会得到
Pinging server2 [155.8.10.33]
Run Code Online (Sandbox Code Playgroud)
IPV6 的 TCP/IP 属性在服务器和我的本地机器上是相同的。但是,与 IPV4 的属性存在一些差异。
本地机器 IPV4 属性:

服务器 IPV4 属性:

我能看到的唯一其他区别是,在服务器上的 ipconfig 中,“特定于连接的 DNS 后缀”是空白的,而在本地机器上,它设置为域。
像我们许多人一样,我有一个 apache 服务器(2.2.15,加上补丁),上面有很多虚拟主机。可以肯定的是,我拥有的 IPv4 地址不止于此,这就是为什么我使用 NameVirtualHost 在同一个 IPv4 地址上运行大量它们的原因。
我正忙于让我所做的一切都支持 IPv6。这台服务器现在有一个路由 /64,这让我感觉很糟糕很多V6地址,就可以到处乱扔。我试图找到的是一种告诉每个 v4-NameVirtualHost 它也应该在唯一的 ipv6 地址上充当 VirtualHost 的简单方法。我真的,真的不想定义每个虚拟主机两次。
有谁知道一种优雅的方式来做到这一点?或者做一些类似的事情,以防我在我的问题中嵌入了任何危险的无知假设?
我的 L3 核心交换机 Nortel ERS 8600 兼容 IPv6。但是,在迁移到 IPv6 的过程中,我们是否还需要检查基于 VLAN 的园区网络中边缘/分布交换机的兼容性?
首先感谢您对未来的帮助:)
我想知道是否可以将我的 HA 包裹在我的油漆上(请原谅我的图纸质量)。

我还想知道在 HA 和服务器出现故障的情况下,ipv4 故障转移块如何处理?
我的最后一个问题,在我的 ISCSI 上,如果硬盘驱动器崩溃,如果我理解正确,数据会丢失吗?所以我想知道您是否必须进行突袭或备份?不会失去太多空间^^
提前谢谢你,我为我的英语道歉。亲切地