CentOS 7ポリシーベースの永続ルーティングルールを作成するには?

CentOS 7ポリシーベースの永続ルーティングルールを作成するには?

私の「CentOS 7 Minimal」コンピュータには2つのネットワークインターフェイスがあります。要求がインターフェイスに入ると、同じインターフェイスから応答が送信されるようにポリシーベースのルーティングを設定する必要があります。 iproute2を使用して非持続的な方法でこれを行うことはそれほど難しくありません。

echo '200 isp2' >> /etc/iproute2/rt_tables
ip route add default via 1.1.1.1 table isp2
ip rule add from 192.168.1.50 table isp2

そのうち、1.1.1.1が私のルーターであり、192.168.1.50が私のLinuxのIPです。問題はこれを続けておくことです。

私が知る限り、iproute2永続ファイルはありません。永続性を維持する方法は、そのファイルをネットワーク起動スクリプトに追加することです。

通常、RedHatはパスを追加するために/etc/sysconfig/network-scripts/route-ethXファイルを作成することをお勧めしますが、これはセカンダリルーティングテーブルにパスを追加しないようです。

解決策は、上記の「iproute」行と「iprule」行を/etc/sysconfig/networkに追加するようです。 1つを除いて、ほとんど動作します。つまり、ネットワークが再起動されるたびに、一度に何十もの重複した「ipルール」ルールが追加され続けます。

"systemctl restart network"を使用してネットワークを2〜3回再起動した後、私のip rule出力は次のようになります。

0: from all lookup local
32670: from 192.168.1.50 lookup isp2
32671: from 192.168.1.50 lookup isp2
...
32764: from 192.168.1.50 lookup isp2
32765: from 192.168.1.50 lookup isp2
32766: from all lookup main
32767: from all lookup default

CentOS 7に継続的なポリシーベースのルーティングルールを追加する正しい方法は何ですか?

PS。予想通り、ip route list table isp2コマンドは単一の項目を表示するため、これは問題ではありません。

編集:RedHat 7のマニュアルによると:

Red Hat Enterprise Linuxでは、グローバル/etc/sysconfig/networkファイルは廃止されました。

これはインターフェイス固有のプロファイルに適しており、他のルーティングテーブルにパスを追加できず、ルールを追加できないようですip rule

ベストアンサー1

NetworkManager-config-routing-rulesをインストールしてNetworkManager-dispatcherを有効にすると、問題が解決したようです。

$ sudo yum install NetworkManager-config-routing-rules
$ sudo systemctl enable NetworkManager-dispatcher.service
$ sudo systemctl start NetworkManager-dispatcher.service

これで/etc/sysconfig/network-scripts/route-ethXに入れることができます:

default via 1.1.1.1 table isp2

これは私の/etc/sysconfig/network/scripts/rule-ethXにあります:

from 192.168.1.50 table isp2

そして私の/etc/iproute2/rt_tablesにあるisp2の定義は次のとおりです。

200 isp2

ネットワークサービスを再起動しても、重複エントリは生成されません。

おすすめ記事