设备开启 ipv6 后默认都会自动生成一个 fe80 开头的链路本地地址(例如:fe80::bf8e:14ff:fe17:ab0c )但是我发现一个问题:windows 下可以使用这个地址主动与其他机器通讯包括 linux 系统但是 linux(ubuntu)无法使用这个地址主动与其他设备通讯包括其他 linux 系统,第一感觉是路由的问题但是我对比过两种系统的路由没发现有明显的区别,那这个是什么原因呢? 另外,linux 或者是 windows 下可以修改 ipv6 链路本地地址的前缀吗,比如: 改成 fe80:3837::
1
v2tudnew 2022-11-19 16:22:17 +08:00
你还要加上网口,比如 %eth0 ,ios %en0 ,数字都可能不同,所以直接用比较麻烦。
|
2
ragnaroks 2022-11-19 18:50:03 +08:00
实测不存在这个问题,此时此刻手边的 3 个机器分别是 debian11 、windows10 、centos7 ,经验证使用 FE80:: 可以互相通信且无需附加 %interface 。极有可能是你的 ubuntu 系统存在某种配置错误。
|
5
dialtcp 2022-11-20 11:34:26 +08:00 via Android
加个[],不行加个网口到括号里
|
6
zeiyso 2022-11-20 14:07:29 +08:00 1
内网通信应该用 ULA 地址( fd00::)
Link-Local 地址必须配合接口使用,而且不能被路由 |
7
zeiyso 2022-11-20 14:12:25 +08:00
Link-Local 地址主要用于自动地址配置和邻居发现协议
|
8
acbot OP @zeiyso 链路地址本身就也 i 用于链路通讯再次局域网甚至只交换机内使用本身就不需要路由,理论上你说的都没有错但是实际问题是:windows 这个地址使用一点问题没有,并且其他设备可以使用 ubuntu 的本地链路地址通讯,仅仅是这个 ubuntu 主机无法使用其他设备的本地链路地址通讯,必须要指定接口,所以这个多半仅仅是某个配置的问题。另外,ipv6 在常规 SLAAC 模式下( DHCP 模式没试过)设备只有公网地址和本地链路地址,并且这个地址前缀会变后缀也会变,这个变化的地址用于局域网通讯配置起来就有困难,但是本地链路地址基本不变所以 并且非 NAT 模式的 v6 不像 v4 可以配置一个固定的局域网地址。
|
9
zeiyso 2022-11-20 15:40:33 +08:00
只有一个接口的时候可以不指定接口,可能不应该依赖这种行为。
ULA 和 SLAAC 不矛盾,和路由地址分配的设置或者功能有关。 如果路由器不支持 ULA 分配又不方便增加一台的话,可以手动在每台电脑上手动设置一个 ULA…… |
10
zeiyso 2022-11-20 15:45:55 +08:00
设置 ULA 之后依然会正常获取全局地址。
|
11
acbot OP @zeiyso 首先,非常感谢你的指教!不过,ULA 和 SLAAC 不矛盾 这个可能仅仅是在理论上,实际使用会带来更多的问题,比如,我的 RA 在服务器模式下只能通告一个 PD ,具体的就不深究了。因为只要指定接口就正常了,且 #2 他的系统不加接口都可以正常通讯,所以我个人感觉有更简单的方式,就是仅仅在这个有问题的 ubuntu 上调整应该就可以解决问题,比如 增加一跳路由啥的。
|
12
flynaj 2023-07-17 23:02:37 +08:00 via Android
ping6 [fe80::bf8e:14ff:fe17:ab0c]
|