ポリシーベースルーティングは、特定の条件に一致するトラフィックのネクストホップIPアドレスを変更するために使用できます。 これは、特定のトラフィック タイプのルーティング テーブルを無効にするのに便利です。
Configuration
ここで、使用するトポロジーを説明します:
上のトポロジー画像を見てください。 OSPFはすべてのルーターで設定されています。 どこでもギガビットインターフェースを使用しているので、4.4.4.4宛のR1からのトラフィックは、通常R2とR3の間で負荷分散されるはずです。 しかし、R1のギガビットイーサネット0/3インタフェースのコストを変更して、すべてのトラフィックがR1 > R2 > R4から行くようにしました。
これを確認してみましょう。上記のように、コストが増加していることがわかります。 H1:
ここで、R1とR3の間のリンクを使って、4.4.4.4に行きたいとします。 OSPFのメトリックに影響を与えることができましたが、これはすべてのトラフィックに適用されます。 このリンクを特定のトラフィックのみに使用したい場合はどうすればよいでしょうか。
大部分のトラフィックには R1/R2 間のリンクを使用し、特定のトラフィックには R1/R3 間のリンクのみを使用することができます。 これは非常に便利です。 たとえば、R1/R3 間のリンクが VoIP トラフィックの QoS を提供する専用リンクであるとします。
これは、PBR (Policy Based Routing) で実現できることで、その方法をお見せしましょう。
現在、すべてのトラフィックはR2に向かって送信されています。
R1#show ip route | include 4.4.4.4O 4.4.4.4 via 192.168.12.2, 00:16:48, GigabitEthernet0/2
ここで、H1からの 4.4.4.4 宛のすべての ICMP トラフィックが R1/R3 間にあるリンクを通過したいものとしましょう。 その方法を説明します。
R1(config)#ip access-list extended ICMP_H1R1(config-ext-nacl)#permit icmp host 192.168.1.100 host 4.4.4.4
まず、自分のトラフィックにマッチするアクセスリストを作成します。 次に、ルートマップを作成します:
トラフィックがアクセスリストに一致するたびに、ネクストホップを 192.168.13.3 (R3)に変更します。
最後に、有効化してみましょう:
R1(config)#interface GigabitEthernet 0/1R1(config-if)#ip policy route-map PBR_H1
動作確認するために、R1でデバッグを有効化してみます。
R1#debug ip policy Policy routing debugging is on
次に、H1からpingを送信してみます:
pingは機能しています。R1がそれについてどう考えるか見てみましょう:
上で、それが192.H1に向けてポリシールートされていることがわかります。168.13.3.
アクセスリストにマッチしないトラフィックを試してみましょう。 例えばTelnetです:
H1#telnet 4.4.4.4Trying 4.4.4.4 ... Open
H1は接続できますが、ポリシールーティングされていません:
R1#IP: s=192.168.1.100 (GigabitEthernet0/1), d=4.4.4.4, len 40, FIB policy rejected(no match) - normal forwarding
上で見たように、このTelnetトラフィックは通常のパスを使用してルーティングされています:
もう一つ紹介することがあります。 ポリシーベース ルーティングでは、ルーターを通過するトラフィックとルーターから発信されるトラフィックに違いがあります。
上の例は、ルーターを通過したトラフィックに対するものです。 R1 から発信されたトラフィックをポリシールーティングしたい場合はどうすればよいでしょうか。 別のコマンドを使用して有効にする必要があります。 別のルートマップを作成してみましょう:
上記のルートマップは、R1 から 4.4.4.4 へ向かうすべてのトラフィックを R3 に向けてリダイレクトします。 これを有効にするには、別のコマンドを使用する必要があります:
R1(config)#ip local policy route-map PBR_R1
今回は、ip local policyコマンドを使用する必要があります。
素晴らしい、R1からのトラフィックはポリシールーティングされています。