ルーティングの選択:特異性とメトリック


17

Linuxは、ルーティングの選択を行うときに、宛先への最も具体的なルートを選択することを理解しています。しかし、ルートのメトリックはどうでしょうか?ルートの特異性よりも高い優先度を持っていますか?

Linuxで使用されるルーティング選択アルゴリズムの詳細を参照していただければ幸いです。

回答:


26

ルートメトリックは、同等の特異性を持つルート間の優先順位を設定することです。これは一般的なルーティング(つまり、Cisco、Windowsなど)にも当てはまります。したがって、モデルは次のように機能します。

  1. 最も具体的なルート(別名、最長のプレフィックス一致*)を見つける
  2. 同じ特異性を持つ複数のルートがある場合は、管理距離最も短いルートを選択します(これにより、直接接続されたルート、静的ルート、さまざまなルーティングプロトコルなどが区別されます)。
  3. そのルーティングプロトコルと特定のルート内で(ルートの特異性とアドミニストレーティブディスタンスが同じ場合)、最も低いメトリックのルートを選択します

送信元IPアドレスに基づいたルートのようなことを行うことができるポリシーベースのルーティングを行うことができる他のことがあることに注意してください。しかし、ルートの特異性、アドミニストレーティブディスタンス、そしてメトリックは、私が主な3つの事柄だと考えるものです。

*これは、バイナリのサブネット(たとえば/ 24)が次のように見えるため、最長プレフィックス一致と呼ばれます11111111.11111111.11111111.00000000。そのため、ルーターはバイナリ1のプレフィックスをスキャンし、ゼロに達すると停止し、プレフィックスと一致します。


1
これは、メトリック距離とアドミニストレーティブディスタンスの間に区別がないLinuxではまったく当てはまりません。
jch 14

1
@jch quagga and co メトリックを適宜設定してADを模倣しますか?(あなたのポイントが重要ではないというだけでなく、好奇心が強い)
カイルブラント14

1
いいえ、QuaggaはADをzebraデーモンに内部的に実装し、選択されたルートのみをカーネルに送信します。したがって、カーネルはADを処理する必要がありません。確認する必要がありますが、Quaggaはカーネルメトリックを一定の値に設定すると思います。
jch 14

イーサネットブリッジではこれが当てはまらないことに注意してください。たとえば、同じメトリックの異なるデバイスを経由する2つの同一ルートは、トラフィックがより長く不正確なリンクに誤って転送されることになります。
アレブスーヤシル

9

Linuxは、柔軟なルーティング選択のためのツールを多数提供しています。

単一ルーティングテーブル

最も単純なケースでは、カーネルルーティングテーブルが1つだけあり、SRC属性を持つルートはありません。このテーブルにはip route add、DHCPデーモンまたはルーティングデーモンによって手動で配置された()多数のルートが含まれます。この場合、カーネルは次を選択します。

  • 最も具体的なルート。
  • 等しく特定のルートが複数ある場合、カーネルメトリックが最小のルート。

(で表示されるip route show)カーネルメトリックはルーティングデーモンによって選択され、特定のルーティングプロトコルのメトリックに必ずしも関連するわけではないことに注意してください。たとえば、Quaggaは、プロトコルのメトリックに関係なく、カーネルにインストールするすべてのルートに対して同じメトリックを使用します。

ソース固有のルート

Linuxは、特定の送信元アドレスを持つパケットのみに一致するSRC属性を持つルートもサポートします。SRCはIPv6でのみ機能し、ごく最近までバグがありました(メモリが提供される場合は3.11)。あなたが何をしているのかを知らない限り、私はそれを使うことを勧めません。

複数のルーティングテーブル

上記よりも柔軟性が必要な場合は、複数のルーティングテーブルを操作し、パケットごとに特定のルーティングテーブルを選択するルールを記述する必要があります。一般的な手法は、送信元固有のルートをシミュレートするために、送信元アドレスでディスパッチすることです。もう1つの方法は、独自のルーティングテーブルで各ルーティングデーモンを実行し、シスコの「管理距離」をシミュレートすることです。このすべては、LARTCの第4章で詳しく説明されています


それはsrc属性がすることではありません。あなたはman ip-route、他のドキュメントを読んでみたいと思うでしょう。また、IPv4でも機能します。これを使用して、ルーターのトラフィックを含むすべてのトラフィックを単一のネットツーネットIPSecトンネルを介して取得します。
ザンリンクス

1
このRTA_SRC属性は、私が言ったことを正確に実行します。コマンドのfromオプションでアクセスできますipipコマンドのsrcオプションが設定されますRTA_PREFSRCあなたが記述するものである属性を、。
-jch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.