Policy-Based Routing(PBR)

Policy-Based Routing(PBR)とは

ポリシーベースルーティング(Policy-Based Routing, PBR)とは、ルータが通常のルーティングテーブルに基づいたデフォルトのルート選択プロセスをバイパスし、管理者が定義した特定のポリシーに従ってパケットを転送する仕組みです。
従来のルーティングは、宛先 IP アドレスの ルーティングテーブル情報に基づいて ネクストホップに転送します。
ポリシーベース ルーティング(PBR)は、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、プロトコル、またはこれらの組み合わせの条件に基づいて 特定のトラフィックを指定のネクストホップに転送することができます。

ポリシーベースルーティングの特徴

  1. 柔軟なルート選択: PBRでは、宛先IPアドレスに関係なく、送信元IPアドレスやトラフィックタイプに基づいて異なる経路を選択できます。これにより、特定のトラフィックを特定のインターフェースまたは次ホップにルーティングできます。
  2. 通常のルーティングを上書き: 通常のルーティングプロトコル(OSPF、EIGRP、BGPなど)が決定したルートをPBRポリシーで上書きすることが可能です。これにより、パケットが異なる経路を通るように強制することができます。
  3. トラフィックの制御: PBRは、特定のトラフィックを指定したルートに誘導するための優れた手段です。たとえば、異なる帯域幅やレイテンシーの要件を持つトラフィックを特定の回線にルーティングする場合に有効です。

ポリシーベースルーティングの設定

PBRを設定するには、まずアクセスリストを作成し、そのアクセスリストに基づいてポリシーを定義し、そのポリシーをインターフェースに適用します。

1.ルートマップの定義

ルートマップを作成します。
Router(config)#route-map map-tag  [permit] [sequence number]

matchコマンドを使用して制御するパケットの条件を指定します。
Router(config-route-map)# match [コマンド]

コマンド内容
match ip address {access-list-number | access-list-name}アクセスリストで許可されているIPアドレスを照合します。
match length min maxパケット長を照合します。

match コマンドを指定しない場合、ルートマップはすべてのパケットに適用されます。

setコマンドを使用してmatchコマンドと一致するパケットに対する動作を指定します。
Router(config-route-map)# set [コマンド]

コマンド内容
set ip next-hop ip-address指定したIPアドレスの次ホップにパケットを転送します。
set interface interface-type interface特定のインターフェースを経由してパケットを送信します。
set ip default next-hop ip-addressルーティングテーブルに適切なエントリがない場合にのみ、指定された次ホップにパケットを送信します。
set default interface interface-type interface-numberルーティングテーブルに適切なエントリがない場合に、指定されたインターフェースを使用してパケットを送信します。
set ip next-hop verify-availability [next-hop-address sequence track object]next-hopアドレスが利用可能かどうかを検証し、利用可能な場合にのみそのアドレスを使用します。
set ip vrf vrf-name next-hop ip-address特定のVRFでルーティングする場合に使用します。

2.インターフェイスの適用

PBRを適応するインターフェイスを指定してルートマップを適用します。
Router(config)#interface interface-type interface-number
Router(config-if)#ip policy route-map map-tag

設定例

Router1

hostname Router1

int g0/2
ip address 192.168.12.1 255.255.255.0
no shut

int lo1
ip address 1.1.1.1 255.255.255.255

ip route 0.0.0.0 0.0.0.0 192.168.12.2

Router2

hostname Router2

int g0/1
ip address 192.168.12.2 255.255.255.0
no shut

int g0/3
ip address 192.168.23.2 255.255.255.0
no shut

int g0/4
ip address 192.168.24.2 255.255.255.0
no shut

ip route 0.0.0.0 0.0.0.0 192.168.23.3
ip route 1.1.1.1 255.255.255.255 192.168.12.1

Router3

hostname Router3

int g0/0
ip address dhcp
ip nat outside
no shut

int g0/2
ip address 192.168.23.3 255.255.255.0
ip nat inside
no shut

access-list 1 permit any

ip nat inside source list 1 interface GigabitEthernet0/0 overload
ip route 0.0.0.0 0.0.0.0 192.168.255.1
ip route 192.168.12.0 255.255.255.0 192.168.23.2
ip route 1.1.1.1 255.255.255.255 192.168.23.2

Router4

hostname Router4

int g0/0
ip address dhcp
ip nat outside
no shut

int g0/2
ip address 192.168.24.4 255.255.255.0
ip nat inside
no shut

access-list 1 permit any

ip nat inside source list 1 interface GigabitEthernet0/0 overload
ip route 0.0.0.0 0.0.0.0 192.168.255.1
ip route 192.168.12.0 255.255.255.0 192.168.24.2
ip route 1.1.1.1 255.255.255.255 192.168.24.2

デフォルトルートでRouter1からの通信はRouter3からWAN1に通信されるように設定されています。

送信元1.1.1.1の通信に限り、Router4からWAN2から通信されるようにPBRの設定を追加します。

Router1のLo1:1.1.1.1からの通信はRouter4からWAN2に通信されるように変更されました。

参考文献

ASA: Policy Based Routing (PBR) について