1つのルールを削除し、2番目のインターフェースeth1に2つの新しいルールを追加して、ルーティングテーブルを変更しました。
route del -net 10.1.2.0 netmask 255.255.255.0
route add -Host 10.1.2.51 eth1
route add -Host 10.1.2.52 eth1
再起動後もルールを存続させたい。単純なrcスクリプトを作成して1つのルールを削除し、2つの新しいルールを挿入することもできましたが、ifconfigを構成する方法、起動時にインターフェイス(eth1)のルートルールを追加しない方法、またはそれ以上の方法があるかどうか疑問に思いました。追加するルールを指定します。
それを行うためのきれいな方法は何でしょうか? ifconfig
では、ルーティングのカスタムルールを指定できますか?
インターフェイスが起動したときに、post-up
フックへの呼び出しを追加できます。インターフェイス構成は/etc/network/interfaces
にあります。ここに例を示します:
auto eth1
iface eth1 inet dhcp
post-up route del -net 10.1.2.0 netmask 255.255.255.0
post-up route add -Host 10.1.2.51 eth1
post-up route add -Host 10.1.2.52 eth1
pre-down route add -net 10.1.2.0 netmask 255.255.255.0
pre-down route add -Host 10.1.2.51 eth1
pre-down route add -Host 10.1.2.52 eth1
後処理
command
インターフェイスを起動してからコマンドを実行します。このコマンドが失敗した場合、ifupは異常終了し、インターフェースが構成済みであるとマークすることを控え(実際に構成されている場合でも)、エラーメッセージを出力して、ステータス0で終了します。pre-down
command
インターフェイスを停止する前にコマンドを実行します。このコマンドが失敗した場合、ifdownは異常終了し、インターフェースが構成解除済みとしてマークされ(実際には構成解除されていない場合でも)、ステータス0で終了します。
さらに、Linuxでは「net-tools」route
は非推奨であり、 iproute2 パッケージのツールに置き換える必要があります。
参考文献: