我正在尝试使用 systemd-networkd 设置 IPv4/6 over IPv6 多点隧道。这是我当前的配置:
# public.network
...
[Network]
Tunnel=tunnel
...
# tunnel.netdev:
[NetDev]
Name=tunnel-test
Kind=ip6tnl
[Tunnel]
Mode=any
Local=PUBLIC_IPv6_OF_HOST
Remote=any
TTL=255
# tunnel.network
[Match]
Name=tunnel
[Network]
Address=fd00::1/64
[Neighbor]
Address=fd00::2
LinkLayerAddress=PUBLIC_IPv6_OF_PEER
这有效并且我的隧道接口已设置。但是,如果我尝试 ping fd00::2,系统日志中会出现以下错误,并且没有数据包通过公共接口发送:
ip6_tunnel: tunnel: Local routing loop detected!
多点隧道好像内核支持,但我没有找到太多关于 IPv6 隧道的文档。 (仅限 IPv4,在我的机器上运行良好)
我的 Debian 11 内核版本是 5.10.0-21-amd64。
答案1
好的,找到答案了。您不能将邻居表用于 IPv6。但路线有效:
[Route]
Destination=fd00::2/128
Gateway=PUBLIC_IPv6_OF_PEER
GatewayOnLink=true