Linuxは、ルーティングの選択を行うときに、宛先への最も具体的なルートを選択することを理解しています。しかし、ルートのメトリックはどうでしょうか?ルートの特異性よりも高い優先度を持っていますか?
Linuxで使用されるルーティング選択アルゴリズムの詳細を参照していただければ幸いです。
Linuxは、ルーティングの選択を行うときに、宛先への最も具体的なルートを選択することを理解しています。しかし、ルートのメトリックはどうでしょうか?ルートの特異性よりも高い優先度を持っていますか?
Linuxで使用されるルーティング選択アルゴリズムの詳細を参照していただければ幸いです。
回答:
ルートメトリックは、同等の特異性を持つルート間の優先順位を設定することです。これは一般的なルーティング(つまり、Cisco、Windowsなど)にも当てはまります。したがって、モデルは次のように機能します。
送信元IPアドレスに基づいたルートのようなことを行うことができるポリシーベースのルーティングを行うことができる他のことがあることに注意してください。しかし、ルートの特異性、アドミニストレーティブディスタンス、そしてメトリックは、私が主な3つの事柄だと考えるものです。
*これは、バイナリのサブネット(たとえば/ 24)が次のように見えるため、最長プレフィックス一致と呼ばれます11111111.11111111.11111111.00000000
。そのため、ルーターはバイナリ1のプレフィックスをスキャンし、ゼロに達すると停止し、プレフィックスと一致します。
zebra
デーモンに内部的に実装し、選択されたルートのみをカーネルに送信します。したがって、カーネルはADを処理する必要がありません。確認する必要がありますが、Quaggaはカーネルメトリックを一定の値に設定すると思います。
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トンネルを介して取得します。
RTA_SRC
属性は、私が言ったことを正確に実行します。コマンドのfrom
オプションでアクセスできますip
。ip
コマンドのsrc
オプションが設定されますRTA_PREFSRC
あなたが記述するものである属性を、。