
/etc/sysconfig/network-scripts/route-ethx ファイルを使用してルートを静的に割り当てます。キックスタート プロセス中に (ポスト スクリプトによって) ルートを追加するため、ルートの管理がかなり簡単になります。ルートが変わることはほとんどなく、更新が必要な場合は変更をプッシュし、ビルド スクリプトを更新して新しいルートを含めるだけです。
最近、お客様から、固有の IP を持つ仮想インターフェイス (eth0:0) を求める声が寄せられました。このインターフェイスは、1 つのネットワークに排他的に接続する必要があります。eth0 に最初に割り当てられた IP が、他のすべてのトラフィックを処理します。
これまで見たものはすべて を使用してルートを追加する方法を述べていますip route add
が、特定の IP またはネットワークに送信されるものすべてにソース IP を設定できるようにする方法がよくわかりません。 ip コマンドを使用すると、ルート ファイルが更新されますか、それとも再起動後も保持されるように別の場所に保存されますか? eth0:0 のルート ファイルにエントリを追加する必要がある場合、行はどのようになる必要がありますか?
だから基本的に:
10.0.0.2 に接続する場合は、ソースとして IP 10.0.1.3 を使用します。それ以外の場所に接続する場合は、ソースとして IP 10.0.1.2 を使用します。
これは可能ですか? どうすれば実現できますか?
答え1
あなたの質問が明確に理解できれば、次のようなことを試してみてはいかがでしょうか
# ip route add 10.0.0.2 via xxx.xxx.xxx.xxx src 10.0.1.3
# ip route add default via yyy.yyy.yyy.yyy src 10.0.2.2
他に検討すべき方法はありますか?
iptablesを使ってみるのもいいでしょう
# iptables -t nat -I PREROUTING -d 10.0.0.2 -j SNAT --to-source 10.0.1.3
答え2
これは、最近同じことを行った同僚によって明らかにされました。
route-eth0:0 ファイルに入力される 1 つのルートの形式は次のとおりです。
10.0.0.2/32 via 10.0.1.1 dev eth0:0 src 10.0.1.3
eth0 を通過する他のすべてのトラフィックは、デフォルトで 10.0.1.2 からのものとしてタグ付けされます。10.0.1.1 はデフォルトのルートですが、パケットには適切にタグ付けされた送信元 IP が含まれます。