求教大佬,路由器不响应 ICMPv6 的 NS 包,仅部分主机能联网 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
There is no place like ::1
journeydove
V2EX    IPv6

求教大佬,路由器不响应 ICMPv6 的 NS 包,仅部分主机能联网

  •  
  •   journeydove 2020-07-10 00:30:36 +08:00 2805 次点击
    这是一个创建于 1919 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近家里 IPv6 突然上不了了,具体描述如下:

    环境:

    • 路由器即网关(桥接光猫),能正常通过 DHCP-PD 获取前缀
    • 路由器系统:OpenWrt 19.07 x86
    • 路由器连接三个子网,每个子网都分了不同 VLAN (不是重点,划 VLAN 应该没影响),一个给服务器,一个给家庭局域网,一个给蹭网的邻居
    • 家庭网使用无线连接,而服务器网均通过有线连接(可能不能排除无线路由器有问题)

    简要概述问题:在同一子网下,部分设备能 IPv6 联网,部分不行,查问题是路由器没有回应不能联网的设备的 NS 包。

    问题描述:

    • 在几个月以前,全部网络的 IPv6 都是正常的,但是最近不知道是不是升级了路由器的原因,家庭网的 IPv6 突然不能用了
    • 目前服务器网可以同时通过 SLAAC 和 DHCPv6 获取地址,且能正常访问互联网,一切正常
    • 目前家庭网内设备可以通过两种方式获取地址,但是无法上网,表现现象是网页加载一会儿后提示打不开,测试网站显示连接 IPv6 资源超时。(因为防火墙策略设置均为 reject,没有用到 drop,所以应该可以初步判断不是防火墙的问题)
    • 在路由器终端查看 IPv6 邻居,发现家庭网下设备状态均为 FAILED (其实是 PROBE 状态后 3 秒的 DELETE 状态,在 Linux 4.x 里貌似不会删除这个邻居条目,而是标记为 FAILED )
    • 重启路由器的网络接口后,再次在路由器查看 IPv6 邻居,发现一开始发现的两个设备正常了,状态显示为 REACHABLE,而且一直到现在也没有掉回 FAILED 状态。但是后面发现的邻居仍然为 FAILED 状态。经测试,REACHABLE 状态的设备能正常通过 IPv6 联网,测试网站测试也是正常的
    • 最后在路由器上抓包分析,发现路由器只响应最初的两个设备的 NS 包,并能正常回应 NA 包;而其他设备发送的时候,路由器则不响应了

    求教大佬,能帮忙分析一下这是怎么回事么,若能解答,万分感谢!

    图 1 目前家庭网 ULA 地址邻居情况:

    1.jpeg

    图 2 目前家庭网全球单播地址邻居情况:

    2.jpg

    图 3 目前服务器网全球单播地址邻居情况:

    3.jpg

    图 4 抓包情况:可以看到,局域网内设备连续发送了多次 NS 信息,但路由器都没有回应:

    4.jpg

    第 1 条附言    2020-07-11 15:31:58 +08:00
    经排查,是路由器下联 VLAN 交换机的问题,交换机型号为 TL-SG2008,表现为上联口失败收包。在别的论坛找到类似问题: https://koolshare.cn/thread-175886-1-1.html 貌似该问题无解,可能需要更换 VLAN 交换机-_-。感谢大家的关注!
    第 2 条附言    2021-02-08 15:48:27 +08:00

    经过了213天,最近有时间研究了一下这个问题,终于解决了。回来更新下

    经过排查不是TP-LINK交换机的问题(错怪它了,抱歉抱歉),而是路由器的问题。

    之前的网络拓扑是这样的:

    OpenWRT (eth1) ----- (port8) TL-SG2008 (port1) ----- AP OpenWRT (eth2) ----- PC(10.0.0.0/8) 

    OpenWRT设置了两个LAN,一个称为HOME,一个称为PC

    OpenWRT配置的端口如下:

    HOME ( eth1.101, eth2.101 ) # eth1.101表示端口eth1, vlan101 PC ( eth2, eth3, eth4 ) 

    这种做法其实并不正确,事实上来自eth1.101的数据进入eth1.101后会由eth2剥离vlan tag再发出去(也许是OpenWRT的特性?),导致两个LAN连在一起了。(事实上可配置eth1的行为,使其不发出带tag的包,不过那有点复杂,感兴趣的可以自己找找)

    事实上,在PC网内的电脑也因为开启了STP,五分钟断一次网,系统日志:

    vmbr0: received packet on eno1 with own address as source address (addr:xxxxxxxx, vlan:0) 

    同样地,对于部分IPv6联网设备,需要发送NS等消息才能正确配置地址,但是因为两个子网连起来了,设备发送NS后可能收到多个应答。有些设备选择忽略后到的应答而配置成功,有些设备就会因为收到多个应答而配置失败。(正如一个局域网内部署了两个DHCP服务器,二者产生冲突)

    所以最好的解决方案是,如果不需要,删掉HOME里面的eth2.101接口

    HOME ( eth1.101 ) PC ( eth2, eth3, eth4 ) 

    如果需要在eth2访问HOME,那么更改PC接口:

    HOME ( eth1.101, eth2.101 ) PC ( eth2.100, eth3, eth4 ) # 但是同时需要配置PC网内的主机 
    第 3 条附言    2021-02-11 12:48:08 +08:00

    最后一条附言,说一下其他注意事项吧。

    使用旧版带IGMP功能的交换机,在应用IPv6时,一定要关闭“IGMP嗅探”和“Report报文抑制”功能。因为IPv6 NDP协议使用的是组播,不同于IPv4 ARP协议使用广播。所以一些旧的交换机可能会把IPv6的组播数据当成IGMP协议处理,最后因无法处理而丢弃报文。

    开关“IGMP嗅探”这些功能时,效果可能不是很显著,因为要等交换机的MAC表超时才能进行新一轮的转发,也就是说,关了“IGMP嗅探”后要耐心等待一会儿才能有现象。一般交换机默认超时是5分钟,如果不想等也可以直接重启机器。

    还有一点需要注意,在使用像TP-LINK这种家庭级的WiFi产品,将其作为AP使用时,也要把IPv6模式配置成“桥模式”,亲测如果不是“桥模式”,貌似会直接关闭网口的IPv6转发功能,导致连IPv6地址都获取不到,但无线设备不受影响。(也可能是因为我买的这款型号带有WAN盲插功能,为了避免冲突,没有配置的情况下便关闭了IPv6转发)

    2 条回复    2021-02-08 14:48:00 +08:00
    bigghost
        1
    bigghost  
       2021-01-27 06:34:14 +08:00
    请教,正常下,是通过 slacc 还是 dhcpv6,获得地址?谢谢
    journeydove
        2
    journeydove  
    OP
       2021-02-08 14:48:00 +08:00
    @bigghost 一般家用情况下还是使用 SLAAC,如果要用 PD 给下级路由分地址的话还是得 DHCPv6
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6109 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 03:17 PVG 11:17 LAX 20:17 JFK 23:17
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86