我有一台主机,它有额外的 IP 地址。我们将它们称为 51.52.53.54 和 71.72.73.74,以及两个带有 /48 子网的 ipv6 隧道。
隧道提供商给出了示例配置,我将我的第一个隧道配置如下:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:470:a1b1:xxxx::2
netmask 64
endpoint 216.66.80.30
local 51.52.53.54
ttl 255
gateway 2001:470:a1b1:xxxx::1
启动后,隧道开始运作。
我可以补充一下ipv6 协议设备上尽可能多的 ipv6 地址,它们都可以正常工作。
因此我使用以下信息配置了第二条隧道:
auto he-ipv6-2
iface he-ipv6-2 inet6 v4tunnel
address 2001:470:c2d2:xxxx::2
netmask 64
endpoint 216.66.84.46
local 71.72.73.74
ttl 255
gateway 2001:470:c2d2:xxxx::1
当我尝试 ping、traceroute 或 tcpdump 该子网中的任何 IP 时,什么都看不到。
但是,如果我关闭本地 IP 51.52.53.54 上的第一个隧道,那么本地 IP 71.72.73.74 上的第二个隧道就可以起作用!
我重新检查了大量有关路由的信息并尝试了各种方法,但仍然不幸。
有什么帮助吗?
答案1
HE 可能会过滤到达隧道的流量,以确保源地址与网络分配相匹配。
现在,从您的角度来看,默认路由似乎指向第一个隧道。当您尝试从第二个隧道分配网络的 PC ping 任何内容时,它无论如何都会通过第一个隧道(这是常规路由的工作方式),并且会通过对传入隧道进行过滤而死在地板上。当您关闭隧道时,路由表将发生变化,因为先前的默认路由被删除,现在使用第二个隧道的默认路由并且流量通过。
您可以使用基于策略的路由并查看手册页来解决此ip-rule
问题ip-route
。ip rule
将允许您根据源 IP/IPv6 地址选择路由表,并ip route
允许您构建备用路由表。