PBR ( Policy-Based Routing )



 ◆ 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を使用しないことをお勧めします。もちろん、遅延値の差は昔ほどではありません。



ルート再配布とルート制御( redistribute、distribute-list、route-map、distance )

ネットワークエンジニアとして

Copyright (C) 2002-2024 ネットワークエンジニアとして All Rights Reserved.