![ipv6:`ifconfig` 显示“Scope:Link”。什么是“Scope:Link”?](https://linux22.com/image/562696/ipv6%EF%BC%9A%60ifconfig%60%20%E6%98%BE%E7%A4%BA%E2%80%9CScope%3ALink%E2%80%9D%E3%80%82%E4%BB%80%E4%B9%88%E6%98%AF%E2%80%9CScope%3ALink%E2%80%9D%EF%BC%9F.png)
我在 RedHat 6 机器上。默认情况下启用 IPv6,并且所有接口都已分配 IPv6 地址。
ifconfig
报告这些 IPv6 地址具有“链接”范围。
% ifconfig eth0 链路封装:以太网 HWaddr 00:24:90:AA:BB:1A
inet addr:192.168.10.100 Bcast:192.168.10.255 掩码:255.255.255.0 inet6 addr:fe80::224:90ff:feaa:bb1a/64 范围:链路 UP 广播运行多播 MTU:1500 指标:1eth1 链路封装:以太网 HWaddr 00:24:90:AA:BB:1B
inet addr:10.8.8.44 Bcast:10.8.8.255 掩码:255.255.255.0 inet6 addr:fe80::224:90ff:feaa:bb1b/64 范围:链路 UP 广播运行多播 MTU:1500 指标:1
“Scope:Link”是什么意思?我看到 IPv6 地址的后半部分与 NIC 的 MAC 地址类似。即使我没有明确设置 IPv6 地址,同一网段上的其他设备是否能够 ping 通此设备?
为什么此范围不适用于我的 IPv4 地址?“范围:链接”是 IPv6 专用概念吗?
答案1
链路范围 fe80::/10(实际上实现为 /64,但整个 /10 被保留)与第 2 层网段上的设备隔离。您可以使用设备的 fe80 地址在网段内进行通信,但您需要一个具有不同范围的地址来进行任何需要在网段外路由的通信。
关于您的编辑:虽然私有寻址的概念在 IPv4 中确实存在(169.254/16 和 RFC 1918 范围),但由于 NAT 的盛行,这些寻址的实现略有不同。相比之下,链路范围地址和 fc00::/7 范围(大致相当于 IPv4 的 RFC1918 范围)存在,并与每个设备的全局地址一起使用。
许多实现中都采用了特殊处理来解释 IPv4 实现中不需要的地址范围。
答案2
169.254.0.0/16 是不是“私有”寻址。它是“链路本地”寻址。
然而,如上所述,IPv4 中的链路本地寻址与 IPv6 中的链路本地寻址非常不同(并且用处不大)。
在 IPv6 中,如果没有先拥有链路本地地址,则无法获得全局连接或全局范围地址(静态分配的地址除外)。链路本地地址用于解析下一跳路由器、OSPF 邻接、SLAAC 和 DHCPv6 以及 IPv6 中的许多其他内容。
fd00::/8(ULA 随机)的目的和思想与 RFC-1918 寻址(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)有些相似,但有很大不同。理论上,您应该使用可靠的随机过程来生成创建 /48 前缀所需的 40 位(fdxx:xxxx:xxxx::/48 中的 x 位)。理论上,这应该会使加入其 ULA 寻址网络的组织之间不太可能发生冲突。
fc00::/8(fc00::/7 的另一半)原本打算在 ULA 注册,但 RFC 遭到强烈反对,未能达成共识。草案已过期,尽管 IANA 已为 ULA 保留了 fc00::/7,并将 fd00::/8 指定给 ULA Random,但目前还没有 RFC 设定标准或允许使用 fc00::/8。
具有全局 IPv6 的主机将具有类似以下内容的接口报告:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
ether 68:fe:f7:07:11:6f
inet6 fe80::c19:132b:7ba:abc2%en0 prefixlen 64 secured scopeid 0x7
inet6 2001:db8:930::200:5 prefixlen 64
inet xxx.xxx.xxx.5 netmask 0xffffff00 broadcast xxx.xxx.xxx.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
(以上是静态分配的接口)
但请注意,它仍然具有链路本地地址(fe80::c19:132b:7ba:abc2/64)和全局单播地址(2001:db8:930::5/64)。
我已将 IPv6 前缀更改为为文档保留的前缀,并删除了 IPv4 前缀。