私はCentOS 7.1(最小インストールは両方で無効になります。) 一連の問題に遭遇し、ここで助けを受けたいと思います。以下は、いくつかの背景知識と最終的な質問のリストです。
背景情報
それぞれに4つのネットワークインターフェースがあります。サーバーAはサブネットAにあり、192.168.15.0/24
スイッチAに接続されています。サーバーBはサブネットBにあり、192.168.16.0/24
スイッチBに接続されています。 2つのレイヤ3スイッチAとBも互いに接続されている。スイッチAには、192.168.15.1
サブネットAに対してgwを持つVLAN0015があります。同様に、スイッチBには192.168.16.1
サブネットBがgwのVLAN0016があります。各スイッチには、2 つの VLAN 間でトラフィックをルーティングする固定パスがあります。
サーバーネットワークの設定要件は次のとおりです。
- 各サーバーの4つのインターフェイスすべてが独立してトラフィックを送受信できる必要があります(例
ping -I 192.168.15.100 -c 2 192.168.16.103
:両方のIPの最後のバイトが互いに異なります。)はペア間のICMPトラフィックのみを表示できるはずです。つまり、サブネット内のすべてのインターフェイスは、他のサブネット上のすべてのインターフェイスと通信できる必要があります。 - インターフェイスの接着は意図的なものです。いいえ使用される
- 4つのインターフェイスすべてがそのサブネットのgwを使用する必要があります(サブネットAの場合
192.168.15.1
:サブネットBの場合:192.168.16.1
)は他のサブネット上の他のサーバーのインターフェースと通信します。
私がしたこと:
- 次の内容を追加してください
/etc/iproutes/rt_tables
。4 ens1f1table 3 ens1f0table 2 ens20f1table 1 ens20f0table
- 各サーバーの4つのインターフェースのそれぞれを紹介し、ターゲットを
/etc/sysconfig/network-scripts/
route-*
指定します(以下の例を参照)。rule-*
たとえば、サーバーAのインターフェースにはens20f0
次のものがあります/etc/sysconfig/network-scripts/route-ens20f0
。
192.168.15.0/24 dev ens20f0 src 192.168.15.100 table ens20f0table default via 192.168.15.1 dev ens20f0 table ens20f0table
そしてその中で/etc/sysconfig/network-scripts/rule-ens20f0
:
from 192.168.15.100/32 table ens20f0table to 192.168.15.100/32 table ens20f0table
「やや効果的」に設定しましたが、時間、あるサーバーから別のサーバーのインターフェースをpingすることはできません。いくつかの調査の後、いくつかのtracerout
インターフェイスがトラフィックを正しくルーティングしないことに気づきました。この問題を解決するために、以下を適用しました。
/sbin/route add -net 192.168.16.0/24 gw 192.168.15.1 dev ...
みんなens20f0|ens20f1|ens1f0|ens1f1
に力たとえば、サーバーAのカーネルルーティングテーブルは次のようになります。
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.11.3 0.0.0.0 UG 0 0 0 ens10f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens20f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens10f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens20f1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens1f0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens1f1 192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 ens10f0 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens20f0 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens20f1 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens1f0 192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 ens1f1 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens1f1 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens1f0 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens20f1 192.168.16.0 192.168.15.1 255.255.255.0 UG 0 0 0 ens20f0
質問:
sbin/route
なぜ使用されなくなった/を代わりに使用しようとするのですかip route add
?これはip route add
、必須のルーティングエントリが追加されていないためです。
明らかに「バイパス」設定は持続しません。だから、
- 少なくとも、システムの再起動後も現在の「バイパス」が持続するようにするにはどうすればよいですか?一つあるのに
/etc/sysconfig/network-scripts/ifup-post
、そこが合うのでしょうか? RHEL 7のドキュメントにはこのスクリプトは言及されておらず、とにかく非加入者には適していません。 - 1つのサーバーAを.aの後
192.168.16.0/24 via 192.168.15.1 dev ens20f0
に配置しようとすると、必要なパスがカーネルルーティングテーブルに表示されません。私は何が間違っていましたか?何度もレビューしましたがわかりません。route-ens20f0
/sbin/ifdown ens20f0
/sbin/ifup ens20f0
man ip-route(8)
- この
/sbin/route
コマンドはカーネルルーティングテーブルに必要なパスを追加できますが、最新のコマンドはip route add|replace
CLIでも追加できないのはなぜですか? - 他に言及されてい
man ip-route
ませんが、命令の説明はありません。どの用途に使用されますか?append
ip route { add | del | change | append | replace } ROUTE
append
- 上記のアプローチは、私に与えられた要件を満たすために「ポリシーベースのルーティング」を使用する正しい方法ですか?これは
ping -I iface
、別のサーバーのインターフェースを使用してあるサーバーの特定のインターフェースでpingを実行できるように、「一種の操作」のようです。しかし、私のtracerout
検査結果によると、そうする能力は信頼できないようです。
私は何をもっと試すべきかわかりません。読んでまた読んでくださいRHEL 7ネットワーキングガイド2.4.1。 ifcfg ファイルを使用したネットワークインタフェースの設定役に立ちません。私が見逃した部分についてのヒントがあれば感謝します。
——ジャック
答え1
ホストは直接接続されたIPネットワーク用にゲートウェイを設定しないでください。
これには複数のパステーブルは必要ありません。これは状況が非常に複雑になり、パケットタグをiptablesルールセットに入れることについて何も言わなかったため、ルートテーブルを無視する可能性があります。
また、IPとネットマスクが表示されるようにネットワークの画像/地図を描画することをお勧めします。良い例は次のとおりです。
したがって、このようなマップを使用すると、パケットのパスを追跡し、何が起こっているのかを確認できます。 TCPパケットは前後に同じパスを使用する必要がありますが、ICMPパケットはより寛大です。
これで、構成に応じて、4つのens20f0、ens20f1、ens1f0、およびens1f1インターフェイスから192.168.15.x/24ネットワークにアクセスできます。
カーネルは最後に追加されたパスを使用します。実際、スイッチはユーザーのIPアドレスを以前に追加されたルートの1つに関連付けるため、スイッチのARPテーブルには別のMACアドレスがあります。
したがって、動作するときは偶然や偶然によって動作します。
例のように、詳細を含む計画を立てることをお勧めします。私はあなたがそれを描いている間に電球の瞬間を持つと思います。それがポイントです。
電球がない場合は、写真を投稿してください。
答え2
だから、あなたは基本的に努力しています
- 同じVLANに同じIP-netを持つ4つのアドレスがあります。
- リモートネットワークから、同じIPアドレスを持つインターフェイスからのトラフィックを、同じアドレスを持つリモートインターフェイスにのみルーティングしますか?
私はあなたのような解決策を聞いたことがありませんが、長い間Webビジネスから抜け出しました。したがって、アイデアを提供するために15.X / 16.xを4つのサブネットに分割するのはどうですか?両方のマシンでそして、適切なネットワークにルートを追加し、サブネットインターフェイスにdef-gwを追加しますか?
26ビットマスク(255.255.255.192)を使用すると、16.Xと同様に15.0(net) - 15.63(bcast)/ 15.64-15.127 / 15.128-15.191 / 15.192-15.25
これがあなたに役立つことを願っています...