web-dev-qa-db-ja.com

Debianで永続的なルーティングテーブルを設定する

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では、ルーティングのカスタムルールを指定できますか?

13
Martin Vegter

インターフェイスが起動したときに、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

man page-interfaces から:

後処理command
インターフェイスを起動してからコマンドを実行します。このコマンドが失敗した場合、ifupは異常終了し、インターフェースが構成済みであるとマークすることを控え(実際に構成されている場合でも)、エラーメッセージを出力して、ステータス0で終了します。

pre-downcommand
インターフェイスを停止する前にコマンドを実行します。このコマンドが失敗した場合、ifdownは異常終了し、インターフェースが構成解除済みとしてマークされ(実際には構成解除されていない場合でも)、ステータス0で終了します。

さらに、Linuxでは「net-tools」routeは非推奨であり、 iproute2 パッケージのツールに置き換える必要があります。

参考文献:

21
Marco