Linux

ip route add 不允許重複條目,我可以依賴它嗎?

  • December 4, 2019

如果我添加一條路線

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

更改或添加新的

它會在尚未設置路由時靜默添加路由,並用您指定的任何內容“更改”(替換)它。

引用自:https://unix.stackexchange.com/questions/555657