lala.im:linux关闭ipv6的ra

運維技術·lala.im · 2023-06-02 · 121 人浏览

原文地址:https://lala.im/8701.html,請支持原作者!該處僅作轉載。

前两天给一台机器配置ipv6的时候出现个奇怪的问题:
刚开始能ping通,过几分钟就不行了,重启systemd-networkd后能短暂恢复,过几分钟又嗝屁,如此反复。。
找半天原因最后通过查看路由表发现问题:

範例
图中红框的这条路由就是问题所在,通过看到proto ra可以得知这条路由是上级路由器发的ra通告。机器收到ra后systemd-networkd就会自动加上这条路由。。这个时候你手动用ip -6 route del去删是没用的,过一会又给你自动加上。。
解决办法,编辑对应网卡的networkd配置文件:

nano /etc/systemd/network/20-wired.network

在[Network]里面加上IPv6AcceptRA=no:

[Network]
Address=xxx.xxx.xxx.xxx/24
Address=xxx:xxx:xxx:xxx:x::x/80
IPv6AcceptRA=no

重启networkd:

systemctl restart systemd-networkd

如果机器没用networkd,也可以通过修改内核配置来关闭ra:

echo 'net.ipv6.conf.all.accept_ra = 0' >> /etc/sysctl.d/99-sysctl.conf
sysctl --system
運維技術 lala.im
Theme Jasmine by Kent Liao