IPv6 GRE(ip6gre)一对多隧道无法正常工作的技术求助
IPv6 GRE(ip6gre)一对多隧道无法正常工作的技术求助
大家好,我最近在折腾Linux下的GRE隧道配置,发现IPv4的点对多点GRE隧道能正常跑起来,但换成IPv6的ip6gre一对多隧道就卡壳了,想请教下有没有大佬碰到过类似情况,或者知道问题出在哪?
先给大家说下我这边IPv4 GRE一对多的成功配置流程,做个参考:
- 首先创建GRE隧道接口,指定本地IPv4地址,关闭序列号和校验和,设置密钥:
ip link add dev test type gre local X.X.X.X noseq nocsum key XXXXXXXXXX - 启用这个隧道接口:
ip link set test up - 给隧道接口配置一个内网IPv4网段:
ip addr add 192.168.168.1/24 dev test - 一开始直接ping对端隧道内的地址
192.168.168.2,对端完全收不到包; - 后来通过邻居表把隧道内地址和对端的公网IPv4绑定:
ip neigh replace 192.168.168.2 lladdr Y.Y.Y.Y nud permanent dev test - 再ping
192.168.168.2,对端就能正常收到封装后的数据包了; - 我还加了条静态路由,把
192.168.169.0/24这个网段指向隧道内的对端地址:ip route add 192.168.169.0/24 via 192.168.168.2 - 再ping这个网段里的
192.168.169.1,对端也能收到封装包; - 另外这个接口默认会自动获取链路本地IPv6地址,我给链路本地地址也绑定了对端公网IPv4:
ip -6 neigh add fe80::2 lladdr Y.Y.Y.Y dev test - 然后ping
fe80::2%test,对端同样能收到封装后的数据包。
但到了IPv6的ip6gre隧道这里,我照着同样的逻辑配置一对多模式,怎么都跑不通!
我试过的操作步骤大概是这样的:
- 创建ip6gre隧道接口,指定本地IPv6地址,同样关闭序列号和校验和、设置密钥:
ip link add dev test6 type ip6gre local [本地公网IPv6] noseq nocsum key XXXXXXXXXX - 启用接口:
ip link set test6 up - 给隧道配置一个内网IPv6网段:
ip addr add fd00:168::1/64 dev test6 - 直接ping隧道内的对端地址
fd00:168::2,对端无响应; - 尝试用IPv6邻居表绑定隧道内地址和对端公网IPv6:
ip -6 neigh replace fd00:168::2 lladdr [对端公网IPv6] nud permanent dev test6 - 再ping
fd00:168::2,还是收不到包; - 后来加了静态路由指向隧道内的对端地址,ping网段内其他地址也没用。
有没有大佬知道这是怎么回事?是ip6gre本身就不支持点对多的隧道模式,还是我配置的时候漏了什么关键参数?或者在ip6gre下,邻居表的绑定逻辑和IPv4 GRE不一样?
备注:内容来源于stack exchange,提问作者Stack Exchange Broke The Law
相关产品推荐
相关产品推荐

