我正在研究 IPv6,部分谈话是关于机器如何生成或可以拥有多个 IPv6 地址供内部使用和外部使用。
这是否意味着不再有网络内所有机器都将使用的“公共”IP 地址?
视频指南还提到,“隐私”IPv6 的目的是防止人们直接访问机器。防火墙是否不再存在,或者这只是一个措辞不佳的解释?
这是 CBT IPv6 视频系列。
我正在研究 IPv6,部分谈话是关于机器如何生成或可以拥有多个 IPv6 地址供内部使用和外部使用。
这是否意味着不再有网络内所有机器都将使用的“公共”IP 地址?
视频指南还提到,“隐私”IPv6 的目的是防止人们直接访问机器。防火墙是否不再存在,或者这只是一个措辞不佳的解释?
这是 CBT IPv6 视频系列。
让我们看一个活生生的例子。这是来自我的 Linux 工作站。(为了简单起见,我实际上省略了几个地址。)我将依次解释每个地址:
$ ip a s dev br0
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fc:aa:14:25:f1:f1 brd ff:ff:ff:ff:ff:ff
inet 172.25.50.17/24 brd 172.25.50.255 scope global br0
valid_lft forever preferred_lft forever
这是您的普通 RFC 1918 地址。
inet6 2001:db8:8301:424c:71a2:70f2:6b1d:a9af/64 scope global temporary deprecated dynamic
valid_lft 2120sec preferred_lft 0sec
inet6 2001:db8:8301:424c:3caa:9ce6:65ef:1f15/64 scope global temporary deprecated dynamic
valid_lft 2120sec preferred_lft 0sec
接下来我们进入全球 IPv6 地址。这些在公共 Internet 上是可路由的,并且受防火墙规则的约束,双向通信是可能的。这意味着任何人(使用 IPv6)都可以发起与该系统的连接。因为没有使用 NAT,所以连接是直接的,不需要任何端口转发黑客。但是主机或网络防火墙可能仍然禁止连接。
但这些 IPv6 地址也是RFC 4941隐私地址。这些地址是按可配置的时间间隔创建的,然后不推荐使用以前的隐私地址。一旦地址被弃用,它就不再用于新的传出连接。在另一个可配置的时间间隔后,已弃用的地址会自动从界面中删除,并且根本无法进行通信。
隐私地址旨在保护终端主机的隐私,尤其是当它从一个网络移动到另一个网络时。使用修改的 EUI-64 配置的 SLAAC 地址始终具有相同的最后 64 位,无论它们连接到哪个网络,因此可以通过关联这些来跟踪主机(例如膝上型电脑)在网络间移动时的情况。隐私地址消除了这个问题。
inet6 2001:db8:8301:424c:8e6e:e3b8:ce7e:aff8/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 2120sec preferred_lft 2120sec
这是一个有趣的。它也是一个全局地址,但它是一个RFC 7217 稳定的隐私地址。这些不是简单的随机,如 RFC 4941 地址,而是使用 PRNG 生成的,该 PRNG 提供了与主机特定信息和分配的 IPv6 前缀相结合的密钥。它们仍然不可预测,但一旦创建,它们对于任何给定的 IPv6 前缀都保持不变。
普通隐私地址存在的问题是,使用它们的主机没有固定地址,当它在给定网络上时可以到达。所以传入连接是不可能的。这不是真正的重点,而是更多的副作用(RFC 4941 第 2.4 节详细讨论了这一点。)。如果您想要传入连接,但在主机移动时仍需要隐私,那么稳定的隐私地址就可以派上用场。当主机移动到另一个网络时,它会得到一个不同的接口标识符,但是当它回到原来的网络时,它会得到与以前相同的接口标识符。
因此,在此系统上,传出连接使用 RFC 4941 隐私地址,该地址每隔一段时间轮换一次,而传入连接使用在全球 DNS 中发布的稳定隐私地址。
inet6 fda8:75f3:eca7:0:3caa:9ce6:65ef:1f15/64 scope global temporary deprecated dynamic
valid_lft 442822sec preferred_lft 0sec
inet6 fda8:75f3:eca7:0:d05b:6572:c01c:107/64 scope global temporary deprecated dynamic
valid_lft 357022sec preferred_lft 0sec
inet6 fda8:75f3:eca7:0:81e4:b3f8:bb92:5fa5/64 scope global temporary deprecated dynamic
valid_lft 271224sec preferred_lft 0sec
这里我们有唯一的本地地址,如RFC 4193 中所定义。它们可以跨子网路由,甚至可以跨广域网路由,但不允许在公共 Internet 上使用。这使得它们可用作从最小的家庭网络到最大的全球企业的任何网络的专用地址。
ULA 前缀始终是 fd00::/8 中的 /48(技术上是 fc00::/7,但另一半意在由 IANA 分配)并且意在由 RFC 4193 中给出的算法构造,但可以是随机完成。它不能从零或以任何其他模式分配。如果一个/48 不够大,或者两家公司合并并需要连接他们的网络,则可以使用多个/48 并创建适当的路由。可能子网的 2^40 空间是可能的 IPv4 地址数量的 256 倍,如果正确生成 ULA 前缀,则极不可能发生冲突。
上面显示的三个地址是不推荐使用的 RFC 4941 隐私地址。
inet6 fda8:75f3:eca7:0:71a2:70f2:6b1d:a9af/64 scope global temporary dynamic
valid_lft 528621sec preferred_lft 9621sec
这是当前有效的 RFC 4941 隐私地址。
inet6 fda8:75f3:eca7:0:3014:2169:37ba:ebd1/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
这是一个唯一的本地地址,它也是一个 RFC 7217 稳定的隐私地址。可以看到它的接口标识与全局稳定隐私地址的接口标识不同。
inet6 fda8:75f3:eca7::2e4/128 scope global
valid_lft forever preferred_lft forever
这个唯一的本地地址是通过 DHCPv6 分配的。
inet6 fe80::6ef0:f0b6:9b0d:26c6/64 scope link
valid_lft forever preferred_lft forever
最后,这是一个链路本地地址。它是不可路由的,只能在同一个第 2 层网络上到达。因为这个主机使用的是 RFC 7217 稳定的隐私地址,所以它也是一个稳定的隐私地址。
在这个网络上,这个主机可以通过一个稳定的地址在全球范围内访问,该地址也不会泄露有关主机 MAC 地址的信息。站点上的多个网络中的其他主机也可以通过其唯一的本地地址访问这些地址,这些地址路由到这些地址或从这些地址路由到该地址。所有这些地址可能会同时使用。
在大多数情况下,IPv6 主机将被分配全球 IPv6 地址,在可预见的未来,这些地址远比想象的要多。世界上所有的主机都可以拥有公共 IPv6 地址。
IPv4 的一个主要弱点是几乎没有足够的 IPv4 地址来为每台主机分配唯一的 IPv4 地址,而这正是 IP 设计的基础之一。为了在 IPv6 无处不在之前防止 IPv4 地址短缺,创建了 NAT,但 NAT 是一个打破 IP 端到端范式的杂物,它会导致一些问题。IPv6 通过提供足够的 IPv6 地址来恢复端到端范式,每个主机都可以拥有唯一的 IPv6 地址。
是的,仍然会有防火墙。IPv6 可以像 IPv4 一样使用防火墙。没有任何变化可以阻止这一点。由于已配置防火墙规则,防火墙会阻止或允许流量。
您可能会将 NAT 与防火墙混淆,但这两者确实没有任何关系。在许多情况下,防火墙是配置 NAT 和路由的方便场所,但两者都不需要防火墙。防火墙可以保护您的网络,而防火墙在没有 NAT 的情况下也能完美运行。在许多公司中,有很多防火墙没有配置 NAT。此外,有很多使用 NAT 的地方不在防火墙上。NAT 所做的只是替换具有不同 IPv4 地址的数据包中的源地址或目标地址,或者同时替换这两者。如果您拥有的只是私有 IPv4 地址,并且您需要连接到公共 Internet,那么这尤其有用,但这并不是 IPv4 最初的设计方式,正是 IPv4 地址的短缺迫使我们采用 NAT。
虽然有涵盖 IPv4 NAT 的 RFC,但 IPv6 NAT 的 RFC 被归类为实验性的,并且可能永远不会有 IPv6 NAT 的标准 RFC;它根本不需要,IPv6 NAT 的实验性 RFC 破坏了 IPv6 中的一些东西。
有 IPv6 ULA(唯一本地地址)。这些地址永远无法连接到公共 Internet。这些有点像 IPv4 私有地址,但有一些关于 ULA 的规则。地址块的前半部分保留给全局权限分配它们。地址块的后半部分任何人都可以使用,但紧跟ULA前缀后的40位必须随机选择;你不能简单地开始0
然后为每个网络增加。这个想法是你最终得到一组全球唯一的网络地址。