it-swarm-ja.com

ルーティングテーブルでネクストホップはどのように定義されていますか?

ルーティングテーブルには、ネクストホップのある宛先LANアドレスだけが含まれていますか?しかし、この例を見ると、このネクストホップはどういう意味ですか

enter image description here

ネクストホップがどのように定義されるかについての一般的なルールはわかりません。 (ネットワーク宛先10.0.0.0、11.0.0.0、13.0.0.0については理解しましたが、他のものについては理解していません)

また、コマンド 'ip route add <> src <> via <>を使用していますが、<>には何が必要ですか? Linuxboxをvirtualboxの仮想マシンとして使用しています

8
Faceb Faceb

私の推測では、「rtnetlink応答:無効な引数」エラーは、IPアドレス、マスク、およびゲートウェイのいずれかが同じクラス(クラスAまたはBまたはC)ではないためです。または、「静的」アドレスが一部のDHCP範囲のアドレスと競合するため。

スキーマ内のR8のテーブルはルーティングテーブルではありませんが、R8がアドレスをどのように処理するかを説明しています。たとえば、10.0.0.0とある場合、これはIPアドレスではなく、10.0.0.0/24ネットワークセグメントを意味していると解釈してください。

16.0.0.0/24などのR8から直接アクセスできないサブネットワークの場合、ルーティングテーブルはメッセージをターゲットネットワークに最も近いルーターに転送し、そのルーターは独自の方法に従ってメッセージを渡しますルーティングテーブル。この場合、16.0.0.X宛てのメッセージはゲートウェイ10.0.0.2に渡されます。これはR7のアドレスで、正しい受信者に転送されます。

R8で実行されるルーティングコマンドは次のようになります。

ip route add 16.0.0.0/24 via 10.0.0.2 src 10.0.0.1

Srcパラメータは、マルチホームホストにルートを追加するときに使用され、ホストからの送信元IPアドレスを制御します。単純な場合は省略できます。これにより、ここでは確実に戻りメッセージが10.0.0.0/24サブネットワーク経由で返されますが、何らかの理由でR7がそのサブネットワーク経由でメッセージを返さないようにする場合は、他の値を使用できます。

あなたが与えているsrcはあなたの側で発生したトラフィックにのみ影響することに注意してください。外部パケットがルーティングされている場合、それは明らかに送信元IPアドレスをすでに持っているため、通常は変更されずに渡されます(NATを使用しない限り、これもオーバーライドできます)。

一般に、すべての宛先にルートを指定する必要はありません。コンピューターがルーティングテーブルでデフォルトゲートウェイを指定できるのと同じように、コンピューターは知らないアドレスへのすべてのメッセージを受信するキャッチオールアドレスであり、ルーターはゲートウェイを含むことができる独自のルーティングテーブルを持っています。ルーターのゲートウェイアドレスは、デフォルトルート0.0.0.0で表されます。

ネットワークにゲートウェイ回路をセットアップすることさえ完全に可能であることに注意してください。例えば:
R1➝R4➝R8➝R7➝R6➝R2➝R1。
ホップ数はここでは最適化されていませんが、メッセージはすべてのサブネットワークから他のすべてのサブネットワークに到達します。ホップの数を最小限に抑えるために、優れたネットワーク設計には通常、1つ以上の集中型ルーターが含まれます。

5
harrymc

他のものは、1ホップ(ルーター)以上離れています。ルーターR8に関する限り、使用するインターフェイスと、次のルーターのIPを知って宛先ネットワークに到達することだけが必要です。次に、ルーターR8は、独自のルーティングテーブルを使用して次のルーターを決定します。ホップ。したがって、15.0.0.0ネットワークに到達するために、ルーティングテーブルはインターフェイス3を定義します。これは13.0.0.4であり、ホップは次のルータであり、13.0.0.2になります。 R2がトラフィックを受信すると、R2は独自のルーティングテーブルを使用して、15.0.0.0ネットワークへの最適なルートを決定します。

2
Brian

あなたのデザインとルーティングテーブルがどこから来たのか分かりません。とにかく、あなたのような環境では、リモートネットワークへのルートは通常、ルーティングプロトコル(つまり、動的ルーティング)を通じて定義されます。静的ルート(ユーザー/管理者が定義)を使用し、すべての冗長パスを使用すると、最終的にルーティングループまたはブラックホールが発生します。

つまり、図のすべてのサブネットは、他のルーターの構成に応じて、実際にはR8のすべてのインターフェースを介して到達できます。

たとえば、R8のインターフェース1を14.0.0.0のネクストホップとして定義した場合(つまり、14.0.0.0 /?サブネットのIP宛てのパケットはインターフェース1から送信されます)、R4(実際のR8のインターフェイス1からのネクストホップには、R1を介して14.0.0.0への別のスタティックがあり、パケットはR8-> R4-> R1->宛先を通過します。一方、この例では14.0.0.0のパケットをR4に送信しているが、R4が14.0.0.0のR8を指す別の静的パケットで構成されている場合、ルーティングループが発生し、パケットはTTLが期限切れになるまで、R8およびR4を使用します。

同じ理論は、12.0.0.0のような他のリモートネットワークにも適用できます。R8がパケットをR2またはR4に転送する必要があるかどうかは、それほど明確ではありません。

覚えておくべき主なことはIPパケットにはメモリがありません、それらは宛先を評価することによって転送されるだけです(つまり、ルーターはパケットが受信されたインターフェースを気にしません-ソースルーティングなどを使用しない限り、ここではそうではありません)。

投稿した表には、静的ルーティングと動的ルーティングのどちらが使用されているか(これらのネットワークのサブネットも含まれていない)は示されていませんが、これが特定の理論的な演習でない限り、動的ルーティングが必要です。

動的ルーティングでは、ホップ数、帯域幅、待ち時間などのさまざまなパラメーターを使用することにより、ルーターから宛先ネットワークへの最適なパスを定義できます(特定の動的ルーティングプロトコルによって異なります)。また、冗長リンクの障害を適切に管理できます。

別の例として、R3を指す12.0.0.0のスタティックを配置することを決定した場合、R3ルーターがクラッシュすると、12.0.0.5を宛先とするパケットを(たとえば)ブラックホールに転送し続けます。 R3とR4を介して2つのルート(同じメトリック)で12.0.0.0にロードバランスすることを決定した場合、R4がダウンした場合(またはそのインターフェースの1つが破損した場合)、R8はパケット1をR3に転送し続け、パケットは2からR4、パケット3からR3など。パケットがTCPを使用している場合、見落とされたパケットが再送信され、トラフィックの半分が破棄されていることがはっきりしなくなります(たとえば、一部のサービスの断続的な回線の喪失、速度低下など)。

Linuxを使用している場合、動的ルーティングに使用するソフトウェアはQuaggaですが、他のルーターが動的ルーティングプロトコルを実行していることが前提です。

ただし、目的が静的ルートを設定することである場合、これらのコマンドは機能するはずです(私は/ 24を想定していますが、クラスフルの場合は/ 8かもしれません)。

ip route add 14.0.0.0/24 dev eth3

同じ:

ip route add 14.0.0.0/24 via 13.0.0.2

とにかく、2番目のものは通常、マルチアクセスネットワークで推奨されます(マルチキャスト/ブロードキャストトラフィックは不要で、大量のARP要求などはありません)。

1
matteo