V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
acbot
V2EX  ›  Linux

局域网使用 ipv6 链路本地地址相互通讯的问题

  •  
  •   acbot · 2022-11-19 15:36:22 +08:00 · 3122 次点击
    这是一个创建于 740 天前的主题,其中的信息可能已经有所发展或是发生改变。

    设备开启 ipv6 后默认都会自动生成一个 fe80 开头的链路本地地址(例如:fe80::bf8e:14ff:fe17:ab0c )但是我发现一个问题:windows 下可以使用这个地址主动与其他机器通讯包括 linux 系统但是 linux(ubuntu)无法使用这个地址主动与其他设备通讯包括其他 linux 系统,第一感觉是路由的问题但是我对比过两种系统的路由没发现有明显的区别,那这个是什么原因呢? 另外,linux 或者是 windows 下可以修改 ipv6 链路本地地址的前缀吗,比如: 改成 fe80:3837::

    第 1 条附言  ·  2022-11-20 08:52:48 +08:00
    ping fe80::bf8e:14ff:fe17:ab0c 提示: "ping: sendmsg: Invalid argument" 根据 1# @v2tudnew 的提示指定接口后 (ping fe80::bf8e:14ff:fe17:ab0c -I ens33) 正常。ping 通实际意义不大因为我实际是想用这个地址通讯而其他软件不能在地址后面去指定接口所以问题的实质在哪里应该如何调整呢?目前系统只有一块网卡且网络和防火墙都是安装后的默认设置没有修改过。 例如:

    Kernel IPv6 routing table
    Destination Next Hop Flag Met Ref Use If
    ::1/128 :: U 256 2 0 lo
    fe80::/64 :: U 100 3 0 ens33
    ::/0 fe80::bf8e:14ff:fe17:ab0c UG 100 5 0 ens33
    ::1/128 :: Un 0 7 0 lo
    ff00::/8 :: U 256 6 0 ens33
    ::/0 :: !n -1 1 0 lo
    12 条回复    2023-07-17 23:02:37 +08:00
    v2tudnew
        1
    v2tudnew  
       2022-11-19 16:22:17 +08:00
    你还要加上网口,比如 %eth0 ,ios %en0 ,数字都可能不同,所以直接用比较麻烦。
    ragnaroks
        2
    ragnaroks  
       2022-11-19 18:50:03 +08:00
    实测不存在这个问题,此时此刻手边的 3 个机器分别是 debian11 、windows10 、centos7 ,经验证使用 FE80:: 可以互相通信且无需附加 %interface 。极有可能是你的 ubuntu 系统存在某种配置错误。
    acbot
        3
    acbot  
    OP
       2022-11-20 08:30:13 +08:00
    @v2tudnew 我试试,之前我感觉应该是默认路由的问题!
    acbot
        4
    acbot  
    OP
       2022-11-20 08:31:13 +08:00
    @ragnaroks 防火墙和路由方面全默认,没有改过!
    dialtcp
        5
    dialtcp  
       2022-11-20 11:34:26 +08:00 via Android
    加个[],不行加个网口到括号里
    zeiyso
        6
    zeiyso  
       2022-11-20 14:07:29 +08:00   ❤️ 1
    内网通信应该用 ULA 地址( fd00::)
    Link-Local 地址必须配合接口使用,而且不能被路由
    zeiyso
        7
    zeiyso  
       2022-11-20 14:12:25 +08:00
    Link-Local 地址主要用于自动地址配置和邻居发现协议
    acbot
        8
    acbot  
    OP
       2022-11-20 14:27:19 +08:00
    @zeiyso 链路地址本身就也 i 用于链路通讯再次局域网甚至只交换机内使用本身就不需要路由,理论上你说的都没有错但是实际问题是:windows 这个地址使用一点问题没有,并且其他设备可以使用 ubuntu 的本地链路地址通讯,仅仅是这个 ubuntu 主机无法使用其他设备的本地链路地址通讯,必须要指定接口,所以这个多半仅仅是某个配置的问题。另外,ipv6 在常规 SLAAC 模式下( DHCP 模式没试过)设备只有公网地址和本地链路地址,并且这个地址前缀会变后缀也会变,这个变化的地址用于局域网通讯配置起来就有困难,但是本地链路地址基本不变所以 并且非 NAT 模式的 v6 不像 v4 可以配置一个固定的局域网地址。
    zeiyso
        9
    zeiyso  
       2022-11-20 15:40:33 +08:00
    只有一个接口的时候可以不指定接口,可能不应该依赖这种行为。

    ULA 和 SLAAC 不矛盾,和路由地址分配的设置或者功能有关。

    如果路由器不支持 ULA 分配又不方便增加一台的话,可以手动在每台电脑上手动设置一个 ULA……
    zeiyso
        10
    zeiyso  
       2022-11-20 15:45:55 +08:00
    设置 ULA 之后依然会正常获取全局地址。
    acbot
        11
    acbot  
    OP
       2022-11-20 20:27:08 +08:00
    @zeiyso 首先,非常感谢你的指教!不过,ULA 和 SLAAC 不矛盾 这个可能仅仅是在理论上,实际使用会带来更多的问题,比如,我的 RA 在服务器模式下只能通告一个 PD ,具体的就不深究了。因为只要指定接口就正常了,且 #2 他的系统不加接口都可以正常通讯,所以我个人感觉有更简单的方式,就是仅仅在这个有问题的 ubuntu 上调整应该就可以解决问题,比如 增加一跳路由啥的。
    flynaj
        12
    flynaj  
       2023-07-17 23:02:37 +08:00 via Android
    ping6 [fe80::bf8e:14ff:fe17:ab0c]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:43 · PVG 22:43 · LAX 06:43 · JFK 09:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.