IPv6 的小疑问

346 天前
 terrytw
家里宽带有 IPv6 ,有一台 Debian 的虚拟机,ifconfig 里看网络信息是这样的:

ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 240e:388:****:3f01:4802:****:fe98:db0f/64 scope global dynamic mngtmpaddr
valid_lft 1819sec preferred_lft 1818sec

我很困惑的点在于,上面这个 240e:388:****:3f01:4802:****:fe98:db0f 明显是一个 128 位的地址,为何后面跟了一个/64?
1589 次点击
所在节点    宽带症候群
9 条回复
yyzh
346 天前
后面那个是子网掩码,相当于 127.0.0.1/8 的那个/8
terrytw
346 天前
@yyzh 我的问题很业余,请多担待
如果是 IPv4 的地址,比如 192.168.1.5 ,后面子网掩码应该是 32
对应的 IPv6 的地址,如果是 240e:388:****:3f01 ,只有子网前缀,没有后面 64 位后缀的话,子网掩码应该是/64
如果 64 位后缀已经明确的情况下,子网掩码应该是/128 ?
yyzh
346 天前
JavaGym
346 天前
<amp-youtube data-videoid="dQ1AMXAiEJk" layout="responsive" width="480" height="270"></amp-youtube> 看下这个你就了解了
terrytw
346 天前
@yyzh 感谢哈,根据你的提示找了一些资料,加上你链接的内容,基本理解了
mcluyu
346 天前
简单来说就是 ipv6 可用地址实在太多了, 没必要像以前那样扣扣搜搜给一个 IP , 直接给你一个地址段就好了
busier
346 天前
你对子网掩码理解还真奇葩

希望这回明白了
tril
346 天前
CIDR 表示法把子网掩码和 IP 地址合在一起写容易让人误会,以为这个掩码是本机 IP 的掩码。

如果分别填写 IP 地址和子网掩码,比如局域网 IP 段是 192.168.1.0-256 ,大部分人很自然就会写出 192.168.1.1 和 255.255.255.0 ,转换成 CIDR 表示出来就是 192.168.1.1/24 ,不是/32 。分开写的时候人会很清楚这个掩码限制的是局域网网段范围,和本机 IP 地址没有关系。

IPv6 也是同理,你拿到了一个 IP 地址,一个 IPv6 地址的掩码虽然是/128 ,但网卡上设置的掩码和你拿到的 IP 地址没有关系,掩码限制的是局域网网段的范围,你的 IPv6 局域网的范围是/64 ,所以要填/64 ,而不是填/128 。

也有个别情况下需要填写/32 或者/128 ,比如运营商分配给你路由器 wan 口的公网 IPv4 地址,这时候上级没有什么局域网,相当于局域网里就你一个 IP 地址,自然填一个 IP 地址的掩码。

按这么说,路由器 wan 口拿到的也应该是/128 的 IPv6 地址,因为上级没有局域网。但 IPv6 比较特殊,有些功能(例如 EUI-64 )不支持小于/64 的子网掩码,另外 IPv6 地址极其充裕,这可能是运营商会给路由器 wan 口分配/64 而不是/128 的原因?

至于路由器的下级,也就是局域网里的设备,它们的地址来源是 IPv6-PD ,运营商会单独给你指定一个 IPv6 地址段,让路由器分配给它的 lan 口以及下级设备使用,和路由器 wan 口拿到的 IPv6 地址并不在一个段里。不过即便 PD 给了一段/48 ,路由器一般还是会给 lan 设置/64 的子网掩码,也就是从 IPv6-PD 提供的网段里取一小部分进行使用,个别系统里可以自行修改这个 lan 口子网掩码。

你在上级有局域网的情况下设置/32 或者/128 也可以,但这个时候系统不会认为上面还有局域网,所以也不会添加到局域网的路由规则。不过因为会有一条 0.0.0.0 的默认路由,可能问题也不大?一般的单网口可以正常用,多网口的时候有可能会遇到点问题。
tril
346 天前
@tril 订正:192.168.1.0-255

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1007782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX