◆ PBRとは
PBR(ポリシーベースルーティング)とは、ルーティングテーブルに従ってパケットを転送するのではなく
管理者が設定した「送信元アドレス、プロトコル、ポート番号、パケットサイズ、入力I/F」の情報に基づき
ルーティングを行える技術のことです。PBRの設定はroute-mapコマンドを使用して定義して、その設定を
ip policy route-mapコマンドを使用して着信インターフェースに適用させます。
◆ PBR - route-map 設定
PBRで使用するroute-mapのmatchコマンド、setコマンドは以下の通りです。matchコマンドを省略した
場合、PBRを適用したインターフェースに着信する全てのパケットがsetコマンドの定義通りに動作します。
◆ PBR - ルートマップの設定
(config)# route-map map-tag permit | deny [ seq-number ]
(config-route-map)# match condition
(config-route-map)# set action
◆ PBRの制御のために主に使用 - matchコマンド
matchコマンド |
説明 |
match ip address acl |
PBRにおける対象パケットの合致条件に、ACLを使用
|
match length min max |
PBRにおける対象パケットの合致条件に、Layer3パケットの長さを使用 |
◆ PBRの制御のために主に使用 - setコマンド
setコマンド |
説明 |
set ip next-hop address |
matchコマンドの合致パケットに、ルーティングとは異なるネクストホップを提供
|
set interface interface-id |
matchコマンドの合致パケットに、ルーティングとは異なるパケットの転送先のI/Fを提供 |
set ip default next-hop address |
matchコマンドの合致パケットが、その宛先への明示パスがないとき、
パケットをルーティングするネクストホップを提供
|
set default interface interface-id |
matchコマンドの合致パケットが、その宛先への明示パスがないとき、
パケットの転送先のI/Fを提供
|
set ip precedence value |
matchコマンドの合致パケットに、IPヘッダのPrecedence値を変更(ToS Field 先頭3bit) |
※ set interfaceコマンドは、ポイントツーポイントリンクでのみ機能するコマンドです。
◆ PBR - ip policy route-map 設定
作成したroute-mapは、PBRで定義した対象パケットを受信するインターフェースで適用させます。
◆ PBR - 着信インターフェースへのroute-mapの適用
(config)# interface interface-id
(config-if)# ip policy route-map map-tag
PBRをインターフェースに適用すると、そのインターフェースに着信してきたパケットは先ずPBRが実行
されます。次に、PBRの対象外のパケットの場合はルーティングテーブルに従って処理されます。
◆ PBR - set ip next-hop と set ip default net-hop の違い
set ip default next-hopとset default interfaceコマンドは、PBRで設定した対象パケットの宛先ルートが
明示的にルーティングテーブルに存在しない場合に機能するコマンドです。以下にset ip next-hopコマンド
とset ip default next-hopコマンドの違いは以下の通りです。set interfaceとset default interfaceコマンド
の違いについても同じ考え方であって「ルーティングテーブルに明示的なルートが存在するかどうか」です。
※ ルーティングテーブルにデフォルトルートが存在しても、それは明示的なルートとして見なされません。
◆ set ip next-hop
01. 指定されたネクスト ホップが存在するかを確認
02. ネクストホップがルーティングテーブルに存在する場合、ネクストホップへのポリシールーティングを実行。
03. ネクストホップがルーティングテーブルに存在しない場合、通常のルーティング テーブルを使用してパケットを転送。
◆ set ip default next-hop
01. 宛先IPアドレスがルーティング テーブルに存在するかどうかを確認。
02. 宛先IPアドレスが存在する場合、パケットのポリシールーティングを行わずに、ルーティングテーブルに基づきパケット転送。
03. 宛先IPアドレスが存在しない場合、指定されたネクストホップにパケットを送信することによってポリシールーティングを実行。
◆ PBR - パケットを破棄したい場合
PBRの場合は、route-mapに合致しなかったパケットが「 route-mapの暗黙のdeny 」に到達したとしても
その時の動作はルーティングテーブルに従って転送されるという動作になります。従って、distribute-listや
redistributeでroute-mapを使用する動作とは異なり、パケットが破棄されることはないので、route-mapの
暗黙のdenyに到達しないための「route-map permit の空打ち」は不要です。
PBRで対象パケットに合致しなかった時にパケットを破棄したい場合には、最後のroute-mapシーケンスの
setコマンドで「set interface」コマンドで「null 0」を指定すれば、パケットを破棄できます。
◆ PBR利用上の注意点
基本的にPBRの利用はお勧めできません。なぜなら、通常のルーティング転送に比べてパケット転送が遅い
だけでなく、それを設定している機器にも負荷だからです。tracerouteを実行すれば分かるかと思いますが、
PBRの処理ポイントで少し遅延値が上がります。機器の処理能力が上がっているとはいえ、特にボイス系の
トラフィック転送ではPBRを使用しないことをお勧めします。もちろん、遅延値の差は昔ほどではありません。
|