如果我添加一条路线
ip route add 172.10.1.0/24 via 10.0.0.100 dev eth0
然后第二次执行相同的命令,由于路由已经存在,因此失败。
我没有在任何地方看到这种行为的记录。依赖这种行为是否安全,或者不同/未来版本的 Linux 是否允许重复路由?
用例
我正在编写一个配置路由表的 bash 脚本。我想让脚本多次运行是安全的。
我看到两个选择:
将命令放入运行的语句
ip route add
中,并使用正则表达式来检查路由是否已就位。if
ip route list
运行即可
ip route add
,如果失败则忽略,因为路由已经存在。
第一个似乎不是很强大,因为我必须依赖于ip route list
.第二个似乎取决于无证行为。
答案1
您可以使用ip route replace
代替add
.
add
当路由当前存在时,这采用相同的参数但不会失败。
正如man ip-route
告诉我们的
ip 路由替换
更改或添加新的
当尚未设置路由时,它会默默地添加路由,并用您指定的任何内容“更改”(替换)它。