Linux
ip route add
不允許重複條目,我可以依賴它嗎?
如果我添加一條路線
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
. 第二個似乎取決於無證行為。
您可以使用
ip route replace
而不是add
.當路由目前存在時,這採用相同的參數
add
但不會失敗。正如
man ip-route
告訴我們的ip route replace
更改或添加新的
它會在尚未設置路由時靜默添加路由,並用您指定的任何內容“更改”(替換)它。