我在我的 Linux 路由器上使用 systemd-networkd,这是ip -6 route
输出:
::1 dev lo proto kernel metric 256 pref medium
240e:3b0:3041:4df::/64 dev ppp0 proto ra metric 1024 expires 2591826sec pref medium
240e:3b5:3012:bab1::/64 dev br-lan proto kernel metric 256 expires 3174sec pref medium
unreachable 240e:3b5:3012:bab0::/60 dev lo proto dhcp metric 1024 pref medium
fe80::329c:234f:d1d5:629a dev ppp0 proto kernel metric 256 pref medium
fe80::3826:69ff:fe0e:ff3a dev ppp0 proto kernel metric 256 pref medium
fe80::/64 dev br-lan proto kernel metric 256 pref medium
default dev br-lan proto kernel metric 256 pref medium
default via fe80::3826:69ff:fe0e:ff3a dev ppp0 proto ra metric 1024 expires 1626sec mtu 1492 pref medium
这default dev br-lan proto kernel metric 256 pref medium
使我的 ipv6 无法正常工作。我可以运行ip -6 route del default dev br-lan
删除它,然后 ipv6 就可以正常工作了。但每次重启时我都必须运行它。
是否有选项可以禁用此默认路由?
这是我的 br-lan 配置文件:
[Match]
Name=br-lan
[Network]
Description=The local network
DHCP=no
LinkLocalAddressing=ipv6
IPv6SendRA=yes
IPv6PrivacyExtensions=no
DHCPv6PrefixDelegation=yes
DHCPPrefixDelegation=yes
DHCPServer=no
MulticastDNS=yes
LLDP=yes
EmitLLDP=yes
IPForward=yes
ConfigureWithoutCarrier=yes
IPv6MTUBytes=1492
[Link]
MTUBytes=9000
ActivationPolicy=always-up
[Address]
Address=10.0.0.1/20
Scope=link
[Address]
Address=fe80::1
Scope=link
[Route]
Scope=link
Metric=8192
IPv6Preference=low
Type=local
[IPv6SendRA]
UplinkInterface=:none
DNS=_link_local
[DHCPPrefixDelegation]
SubnetId=0x1
Announce=yes
UplinkInterface=ppp0
答案1
在我看来,您的配置故意添加了该路线:
[Route]
Scope=link
Metric=8192
IPv6Preference=low
Type=local
如果没有Destination=
,这将::/0
默认创建一条路线。
fe80::1
否则,它可能会被添加为您的IP 地址的“子网”路由:
[Address]
Address=fe80::1
由于您指定了没有前缀长度的地址,因此某些版本的 networkd 会假设/0
前缀长度(我思考这是一个错误;它应该假设/128
;但在你的情况下/64 是正确的)。
将其更改为Address=fe80::1/64
。