通常のルーティングは、宛先のIPアドレスだけを見て転送先を決めます。PBR(Policy-Based Routing)を使うと、送信元のアドレスなどの条件で転送先を変えられます。たとえば「この部署の通信だけ別の回線に流す」といった使い方です。CCNP ENARSIのレイヤー3技術の分野で出題されます。
先に結論から
- PBRは、送信元アドレスなどの条件で、経路表とは別に転送先を決める仕組みです。
- route-mapで条件(match)と転送先(set)を決め、インターフェースに適用します。
- PBRが効くのは、そのインターフェースに「入ってくる」パケットです。
- ルーター自身が送るパケットに効かせるには、
ip local policyを使います。
PBRの動き

PBRを適用したインターフェースにパケットが入ってくると、ルーターはまずroute-mapの条件を確認します。条件に合えば、route-mapで指定した転送先へ送ります。条件に合わなければ、いつもどおり経路表に従って転送します。
設定例
送信元が192.168.10.0/24の通信だけを、ネクストホップ10.1.1.2へ送る例です。
access-list 10 permit 192.168.10.0 0.0.0.255
!
route-map PBR-SALES permit 10
match ip address 10
set ip next-hop 10.1.1.2
!
interface GigabitEthernet0/0
ip policy route-map PBR-SALES
- ACLで、対象にする通信(送信元192.168.10.0/24)を決めます。
- route-mapで、ACLに合った通信のネクストホップを10.1.1.2にします。
- 対象の通信が「入ってくる」インターフェース(ここではGigabitEthernet0/0)に、
ip policy route-mapで適用します。
間違えやすいポイント

| ポイント | 内容 |
|---|---|
| 適用する向き | PBRは入ってくるパケットにだけ効きます。出ていくインターフェースに設定しても効きません。 |
| ルーター自身の通信 | ルーターから送るpingなどには効きません。効かせたい場合はip local policy route-mapを使います。 |
| 条件に合わない通信 | route-mapに合わない通信や、ACLでdenyされた通信は、通常の経路表で転送されます。 |
| ネクストホップが使えないとき | 指定したネクストホップが使えない場合は、通常の経路表で転送されます。set ip next-hop verify-availabilityとIP SLAを組み合わせると、相手が生きているかを確かめながら使えます。 |
確認に使うコマンド
show route-map:route-mapの内容と、条件に合ったパケットの数を確認するshow ip policy:どのインターフェースにPBRが適用されているかを確認するdebug ip policy:PBRで転送されたかどうかを1つずつ確認する
ENARSIで出題されるほかのルーティングの仕組みは、再配送やVRF-Liteの記事でも解説しています。
よくある質問
PBRはどのインターフェースに設定しますか?
対象の通信がルーターに「入ってくる」インターフェースに設定します。
PBRの条件に合わない通信はどうなりますか?
通常の経路表に従って転送されます。
ルーターから送るpingにPBRを効かせられますか?
ip local policy route-mapを設定すると、ルーター自身が送る通信にも効かせられます。
