PBR(Policy Based Routing)は、宛先IPアドレスだけで決まる通常のルーティングを上書きして、送信元やプロトコルなど別の条件で転送先を変える機能です。「特定拠点からのインターネット向け通信だけ別回線へ流す」といった要件で使います。
設定はACLで対象を決め、route-mapで転送先を指定し、受信インターフェースに適用する、という3ステップです。つまずきやすいのはset ip next-hop と set ip default next-hop の違いで、ここを取り違えると意図した経路に乗りません。
このページはネットワークエンジニア転職完全ガイドの関連テーマです。担当工程の全体像を先に確認する場合はそちらへ。
PBRとは?通常のルーティングとの違い
| 通常のルーティング | PBR | |
|---|---|---|
| 判断に使う情報 | 宛先IPアドレスのみ | 送信元IP、宛先IP、プロトコル、ポート、パケット長など |
| 参照するもの | ルーティングテーブル | route-map(一致しなければルーティングテーブル) |
| 適用の単位 | 機器全体 | パケットを受信したインターフェース単位 |
| 評価の順序 | ロンゲストマッチ | route-mapのシーケンス番号順(先に一致した行で確定) |
見落としやすいのは、PBRを受信インターフェースに適用するという点です。ルーティングテーブルのように機器全体で効くわけではないので、「どのインターフェースから入ってきたパケットか」で挙動が変わります。
また、route-mapのどの行にも一致しなかったパケットは、通常どおりルーティングテーブルで転送されます。PBRは全部を奪うのではなく、条件に合うものだけを横取りする仕組みです。
どんな要件で使うか
- 送信元別の回線振り分け:ゲストWi-Fiのセグメントだけ、業務回線ではなくインターネット専用回線へ流す
- アプリ別の経路制御:特定の業務システム宛だけ、遅延の小さい専用線を通す
- 検査装置の経由:特定セグメントの通信だけ、プロキシやIPSを必ず経由させる
- 移行期間中の並行運用:一部拠点だけ新回線へ寄せて、問題があれば設定を外して戻す
いずれも「宛先が同じでも、送信元によって通す道を変えたい」という要件です。宛先だけで分けられるならスタティックルートで足ります。PBRを使う前に、宛先で分けられないかを一度確認すると、構成が複雑になりすぎずに済みます。
Ciscoでの設定手順
10.1.10.0/24 からの通信だけを 192.0.2.1 へ向ける例です。
! 1. 対象をACLで定義する
Router(config)# ip access-list extended PBR-GUEST
Router(config-ext-nacl)# permit ip 10.1.10.0 0.0.0.255 any
Router(config-ext-nacl)# exit
! 2. route-mapで転送先を指定する
Router(config)# route-map PBR-MAP permit 10
Router(config-route-map)# match ip address PBR-GUEST
Router(config-route-map)# set ip next-hop 192.0.2.1
Router(config-route-map)# exit
! 3. パケットを受信するインターフェースへ適用する
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip policy route-map PBR-MAP
Router(config-if)# end
適用先を間違えやすいので注意してください。適用するのは「そのパケットが入ってくる側」のインターフェースです。出ていく側に付けても効きません。
route-mapは permit 10 permit 20 のようにシーケンス番号順に評価され、最初に一致した行で確定します。ACLと同じく順序が意味を持ちます。
なお、ルーター自身が生成するパケット(管理通信やping)にPBRを効かせたい場合は ip local policy route-map を使いますが、この機能に対応していない機種があります。導入前に、対象機種の設定ガイドで対応可否を確認してください。
set ip next-hop と set ip default next-hop の違い
名前が似ていますが、ルーティングテーブルを見る順番が逆です。
| コマンド | 先に確認するもの | 結果 |
|---|---|---|
set ip next-hop |
指定したネクストホップがルーティングテーブルにあるか | あればPBRで転送。無ければ通常のルーティングテーブルで転送 |
set ip default next-hop |
宛先IPアドレスの経路がルーティングテーブルにあるか | あればPBRを使わず通常転送。無ければPBRで転送 |
言い換えると、set ip next-hop はPBRを優先し、set ip default next-hop は通常のルーティングを優先します。
デフォルトルートがある環境で set ip default next-hop を使うと、宛先の経路は常に存在することになるため、PBRが一度も動かないという結果になりがちです。「設定したのに効かない」の典型がこれです。
出典:Configure Policy-based Routing with Next-Hop Commands(Cisco)(2026年8月確認)
設定例の適用範囲:このACLとroute-mapはCisco IOS系の説明用です。ACLにpermitされたパケットがPBRの選択対象になります。matchに使うACLのdenyは、その条件をPBRの対象から外すためのもので、パケットを遮断する意味ではありません。route-mapに一致しない通信も、通常の宛先ベースの経路表で転送されます。適用インターフェースはパケットの受信側です。
例中の192.0.2.1は、対象機器から到達可能なネクストホップとして別途設計・検証が必要です。実機へ投入する前に対象機種・IOS XEのリリースでサポートとハードウェア転送の制約を確認してください。Cisco IOS XEのPBR設定ガイド。
設定後に確認するコマンド
Router# show route-map
Router# show ip policy
Router# show access-lists PBR-GUEST
| コマンド | 見るところ |
|---|---|
show route-map |
match / set の内容と、ポリシーで転送されたパケット数 |
show ip policy |
どのインターフェースにどのroute-mapが適用されているか |
show access-lists |
ACLのヒットカウンタ。増えていなければ対象に一致していない |
切り分けで一番効くのはACLのヒットカウンタとroute-mapの転送数を並べて見ることです。ACLが増えていなければ条件の書き方の問題、ACLは増えているのにroute-mapが増えていなければ適用先やnext-hopの問題、と切り分けられます。
PBRが効かないときの確認順
- 適用インターフェースが受信側か
送信側に付けていないか。show ip policyで適用先を確認します。 - ACLに一致しているか
show access-listsのヒットカウンタを見ます。送信元アドレスの範囲、ワイルドカードマスクの桁を確認します。 - ネクストホップに到達できるか
set ip next-hopは、指定先がルーティングテーブルに無いと通常転送に落ちます。直結セグメント上のアドレスかを確認します。 - set ip default next-hop を使っていないか
デフォルトルートがあると発動しません。意図した動作かを確認します。 - 戻り通信の経路を確認する
行きだけPBRで曲げると、戻りが別経路になって非対称になります。FWを挟んでいると、この非対称で通信が落ちます。
設計レビューで確認する点:往路だけをPBRで別回線へ送ると、復路が別経路になり、ステートフルFWがセッションを認識できないことがあります。対向から送信元への戻り経路と、障害時に通常経路へ戻すかどうかを変更票へ記録します。
| 試験する通信 | 期待する転送 | 確認するもの |
|---|---|---|
| 送信元10.1.10.0/24に一致、ネクストホップ到達可能 | PBRで指定先へ | ACL・route-mapのヒットと実際の経路 |
| ACLに不一致 | 通常の経路表へ | 宛先経路、戻り経路、ヒット数の変化なし |
| 指定ネクストホップが到達不能 | 機種・設定のフォールバック動作を検証 | 実際の通信、ログ、切り戻し条件 |
set ip next-hopとset ip default next-hopは適用条件が異なります。後者は宛先の明示的な経路がない場合にポリシーで指定先へ送る方式です。Ciscoの比較資料で対象プラットフォームの挙動を確認してください。
設計時に決めておくこと
- 戻り通信をどうするか:対向側にもPBRが要るのか、それともNATやFWのステート任せにするのか
- ネクストホップが落ちたときの動作:
set ip next-hopなら通常転送へ落ちる。それが業務的に許容できるか - 構成図への書き方:通常経路とポリシー経路を別の線で描く。configだけでは他の人が追えません
- 試験項目:一致する通信と、一致しない通信の両方を試験する。一致しない側が通常経路に乗ることまで確認します
- 切り戻し手順:
no ip policy route-mapをインターフェースから外すだけで戻せるか、ACLも消す必要があるか
関連する記事
まとめ
PBRは、宛先だけで決まる通常のルーティングを、送信元やプロトコルなど別の条件で上書きする機能です。ACLで対象を決め、route-mapで転送先を指定し、パケットを受信するインターフェースに ip policy route-map で適用します。set ip next-hop はPBRを優先し、set ip default next-hop は通常のルーティングを優先するため、デフォルトルートがある環境で後者を使うとPBRは動きません。効かないときは show ip policy で適用先、show access-lists のヒットカウンタ、show route-map の転送数の順に見ると切り分けられます。設計では、戻り通信の経路を先に決めておいてください。
