我正在为站点到站点的 wireguard VPN 设置路由。一切似乎都运行良好,但我注意到,如果远程目标(下一跳)变得无法访问,Linux 内核不会从路由表中删除对它的引用。
root@router:/# ip route
...
10.0.0.0/24 via 192.168.192.10 dev wg0
...
我尝试以多种方式定义目的地,例如仅指定输出接口
ip add 10.0.0.0/24 dev wg0
或者只是下一跳 IP
ip add 10.0.0.0/24 via 192.168.192.10
在任何情况下,如果远程站点遇到任何问题并且 IP 192.168.192.10 变得无法访问,我仍然可以在本地路由表中看到引用。
是否有任何方法可以跟踪下一跳可达性(除了我编写一个无聊的定期 ping 列表)以便当该地址变得不可达时,对它的任何引用都会自动从路由表中删除?
谢谢
答案1
在定义路由时在route命令中添加“monitor”选项,开启监控功能,如下:
ip route add 10.0.0.0/24 via 192.168.192.10 dev wg0 monitor
您还可以指定监控间隔和在下一跳被视为不可达之前的最小不成功探测次数:
ip route change 10.0.0.0/24 via 192.168.192.10 dev wg0 monitor interval 5 timeout 10
此命令将监控间隔设置为5秒,探测失败的超时设置为10秒。