PBR(ポリシーベースルーティング)概要 (OSPFでの設定例)

PBR(ポリシーベースルーティング)とは、ルーティングテーブルに従ってパケットを転送するのではなく、「送信元アドレス、プロトコル、ポート番号、パケットサイズ、入力I/F」の情報に基づき、ルーティングを行える技術のことです。


様々なルーティング処理を行えるPBRですが、実装上の注意点があるため、過度な利用は推奨しません。利用は最小限に留めます。

 

デメリット


-1-

行きと帰りのルートが異なる経路になりやすい-

PBRは、通常のルーティングとは異なる経路へ転送するため、行きの通信と戻りの通信が違う経路になることがあります。経路上にファイアウォールなどのネットワーク機器が存在すると、往復通信が異経路になっていることが原因で、通信不可となる可能性があります。

 

-2-

ルータに負荷がかかる。遅延が発生する可能性がある-

PBRは、指定されたインターフェスに着信する全てのパケット対して、PBR対象かどうかをチェックします。そのため、ルーターに負荷がかかる、パケットの転送に遅延が発生する可能性があります。

 

-3-

ルーティングが設計が複雑になる-

PBRを多用していると、ルーティング設計が複雑になり、管理しきれないネットワーク環境となってしまいます。

 

ルートマップのルール

 ・ ルートマップにはシーケンス番号があり、シーケンス番号の小さい値のroute-mapから処理されます。
 ・ 合致したroute-mapがあればそれが実行され、以降で定義しているroute-mapの処理は行われません
 ・ access-list、ip prefix-listコマンド同様に、route-mapコマンドの最後には暗黙のdenyが存在します。

 

[コマンド構文:PBR用のルートマップの設定]
(config)#route-map {マップ名} [permit | deny] [シーケンス番号]
(config-router-map)#match {条件}
(config-router-map)#set {動作}


マップ名 ・・・任意の名前を入力
permit ・・・ポリシーベースルーティングを行います。
deny ・・・ポリシーベースルーティングを行わずに通常のルーティングを行います。
シーケンス番号 ・・・ルートマップの処理を行う順番(若い番号から順に処理される)

 

match ip address {ACL}・・・一致条件にACL番号またはACL名を使用すします。


match length {最小値} {最大値} ・・・一致条件にL3のパケット長を使用します。

set ip next-hop {IPアドレス} ・・・「match」に一致したトラフィックを指定したIPアドレスに転送します。


set ip default next-hop {IPアドレス} ・・・ルーティングテーブルに宛先が無かった場合「ip next-hop」の動作をします。


set interface {インターフェース} ・・・「match」に一致したトラフィックを指定したインターフェースから転送します。


set default interface {インターフェース} ・・・ルーティングテーブルに宛先が無かった場合「interface」の動作をします。


set ip precedence {値} ・・・「match」に一致したトラフィックのIP precedence値(優先度を示す値)を書き換えて転送します。

 

「set ip default next-hop {IPアドレス}」は、ルーティングテーブルに宛先ルートがある場合はルーティングテーブルに従った転送を行い、ルーティングテーブルに宛先ルートが無かった場合は指定したIPアドレスへの転送(ポリシーベースルーティング)を行います。

 

OSPFでのconfig例

 

 

NW構成図


全ルータ(R1~R5)はOSPFでルーティングしている。
OSPF Costを設定し、正常時以下の経路になるようにします。

*注 OSPFのメトリックはコストの小さい方を優先します。

 

  • PC1 -> R1 -> R2 -> R5-> PC3
  • PC2 -> R1 -> R2 -> R5 -> PC3

config

--R1--

hostname R1
!
interface GigabitEthernet0/0
 ip address 192.168.1.254 255.255.255.0
 no sh
 ip policy route-map R-MAP
 ip ospf cost 5
!
interface GigabitEthernet0/1
 ip address 10.12.1.1 255.255.255.0
 no sh
 ip ospf cost 100
!
interface GigabitEthernet0/2
 ip address 10.13.1.1 255.255.255.0
 no sh
 ip ospf cost 200
!
interface GigabitEthernet0/3
 ip address 10.14.1.1 255.255.255.0
 no sh
 ip ospf cost 300
!
router ospf 1
 passive-interface GigabitEthernet0/0
 network 0.0.0.0 255.255.255.255 area 0
!
ip access-list extended PBR
 permit ip host 192.168.1.100 host 5.5.5.5
!
route-map R-MAP permit 10
 match ip address PBR
 set ip next-hop 10.13.1.3
!

end

 

--R2--

hostname R2
!
interface GigabitEthernet0/0
 ip address 10.12.1.2 255.255.255.0
 no sh
 ip ospf cost 10
!
interface GigabitEthernet0/1
 ip address 10.25.1.2 255.255.255.0
 no sh
 ip ospf cost 100
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
!
end

 

--R3--

hostname R3
!
interface GigabitEthernet0/0
 ip address 10.13.1.3 255.255.255.0

no sh
 ip ospf cost 10
!
interface GigabitEthernet0/1
 ip address 10.35.1.3 255.255.255.0

 no sh
 ip ospf cost 100
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
!
end

 

--R4--

hostname R4
!
interface GigabitEthernet0/0
 ip address 10.14.1.4 255.255.255.0
 no sh
 ip ospf cost 10
!
interface GigabitEthernet0/1
 ip address 10.45.1.4 255.255.255.0
 no sh
 ip ospf cost 100
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
!
end

 

--R5--

hostname R5
!
interface GigabitEthernet0/0
 ip address 192.168.10.254 255.255.255.0

no sh
 ip ospf cost 5
!
interface GigabitEthernet0/1
 ip address 10.25.1.5 255.255.255.0

no sh
 ip ospf cost 100
!
interface GigabitEthernet0/2
 ip address 10.35.1.5 255.255.255.0

no sh
 ip ospf cost 200
!
interface GigabitEthernet0/3
 ip address 10.45.1.5 255.255.255.0

no sh
 ip ospf cost 300
!
router ospf 1
 passive-interface GigabitEthernet0/0
 network 0.0.0.0 255.255.255.255 area 0
!

!
end

 

PBRの設定

 

この構成での場合、R1に以下の設定が必要です

 

① PBRを適用するトラフィックACLで定義します。
ip access-list extended PBR
 permit ip host 192.168.1.100 host 192.168.10.100

 

② route-mapでACLにマッチしたトラフィックネクストホップを定義します。
route-map R-MAP permit 10
 match ip address PBR
 set ip next-hop 10.13.1.3

 

③ Inboundのインターフェイスにpolicy route-mapを定義します。
interface GigabitEthernet0/0
 ip policy route-map R-MAP

 

[set ip next-hop] を設定した結果

 

PBR設定無し
PC1 -> R1 -> R2 -> R5 -> PC3
PC2 -> R1 -> R2 -> R5 -> PC3

PBR設定有り
PC1 -> R1 -> R3 -> R5 -> PC3
PC2 -> R1 -> R2 -> R5 -> PC3

 set ip next-hop 10.13.1.3 を設定したので、10.13.1.3(R3)の経路を通っています。

 

以上