我有一台带有两个以太网接口的 Linux 机器,其中一个通过转换器连接到 VDSL。PPPoE 连接工作正常,但路由不起作用。我已经设置了正确的内核配置参数:
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.ppp0.accept_ra = 2
我可以通过 IPv4 甚至 IPv6 从路由器 ping 到 Internet 中的任何主机。但是,来自其他主机的 ping 仅适用于 IPv4。然后我发现了一些可能很重要的东西,我认为:
root@router$ ip -6 route show
...
default via fe80::427c:7dff:fee6:7f03 dev ppp0 metric 1024 pref medium
PPPoE 连接使用链路本地地址配置默认路由。请问这会干扰路由吗?是否将链路本地地址替换为下一跳 (最近的提供商)路由器的完整 IPv6 地址?
或者我是否需要明确转发 IPv6 需要的一些广告或请求?
有趣的是,将数据包发送到网络上的默认网关并不使用网关的 IP 地址。源地址是您机器的地址,目标地址是最终目的地的地址。通过默认网关发送数据包发生在第 2 层:以太网上的 MAC 地址,或者通过点对点链路(如 PPP)发送数据包时仅发送到连接的另一端。
因此,只要您的下一跳解析为正确的 MAC 地址或点对点接口,一切都会好起来的。在数据包中,从不使用网关的 IPv4/IPv6 地址。