Linux

在重新啟動時保留多宿主設置

  • September 16, 2009

在閱讀了“兩個網關/兩個具有不同 ips 的提供商”以及它連結到的 Clinton East 文章之後,我已經成功地建立了一個多宿主 RHEL5 系統。但是,我希望有一種比從 rc.local呼叫ip ruleand命令更好的方法來保存這種狀態。ip route是否有一個我可以編輯的配置文件可以在介面出現時被讀取?也許像 iptables-save 和 iptables-restore 這樣的東西?

在 RHEL 中,有兩個地方可能需要這些東西。

要在 RHEL 中添加靜態路由,請將它們添加到 /etc/sysconfig/network-scripts/route- INTERFACE,其中INTERFACE與 ifcfg- INTERFACE條目的名稱匹配。route-* 文件中的語句將被傳遞到ip route add以及ip route del何時啟動或關閉介面。

現在,對於ip rule命令,我能想到的最好的地方可能是/sbin/ifup-local. 如果這個文件存在,它會在一個介面被啟動後執行。請注意,如果/sbin/ifup-local存在,它將作為執行檔呼叫並傳遞介面名稱的參數。因此,您必須編寫處理程式碼來針對要為其添加配置的介面檢查該參數,然後採取適當的措施。

舉個例子:

#/bin/bash

case $1 in
  eth0)
    /sbin/ip rule foo
    /sbin/ip rule bar
    ;;
  eth1)
    /sbin/ip rule baz
    /sbin/ip rule quux
    ;;
  *)
    /usr/bin/logger -t 'ifup-local' 'Called with unknown interface:  $1'
    ;;
esac

如果您願意,您也可以在 中包含每個介面的 ip 路由規則ifup-local。如果您想在介面關閉時刪除相應的規則,您可以創建一個類似的/sbin/ifdown-local腳本來處理它。

如果是我,即使 RHEL 提供了一種處理靜態路由的標準化方法,我也可能會在ifup-localand中做所有事情ifdown-local,只是為了將我所有的介面特定位放在一起。

引用自:https://serverfault.com/questions/65651