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


13

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つの新しいルールを挿入できますが、インターフェイス(eth1)の起動時にルートルールを追加するのではなく、ifconfigを構成する方法があるかどうか、追加するルールを指定します。

それを行うためのきれいな方法は何でしょうか?ないifconfig私は、ルーティングのためのカスタムルールを指定することができますか?

回答:


21

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ページから-インターフェース

post-up command
インターフェイスを起動した後にコマンドを実行します。このコマンドが失敗すると、ifupは異常終了し、(実際に設定されていても)インターフェイスを設定済みとしてマークせず、エラーメッセージを出力し、ステータス0で終了します。

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

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

参考文献:


最初のルールを削除する代わりに、そもそもルールが作成されないようにすることはできますか?とにかく、ルートルールはどのように作成されますか?のネットワーク設定から/etc/network/interfaces?そして、ポストアップの実行時に、削除するルールがすでに存在していることをどのようにして知ることができますか?マニュアルページには、作成された時点が記載されていません。
マーティンヴェグター

1
私はあなたのネットワークもホストの構成も知らないので、このルートがどのようにしてルーティングテーブルに到達したのかわかりません。DHCPリースが付属していますか?そうでない場合は、サービスをチェックイン/etc/init.dし、ルーティングテーブルを変更できるサービスを調べます。/etc/networkサブディレクトリを含めることも検討してください。
マルコ

5
post-upおよびpre-downは、それぞれupおよびのエイリアスですdown。また|| :、行の最後にを追加すると、コマンドが失敗し、ifup / ifdownを妨害しないようになります。通常route del、ルートがまだ存在しないため削除できない場合に、これをに追加します。
ティノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.