VyOS PBR、Policy Based Routing は、通常の宛先ベースの経路選択だけではなく、送信元アドレスや条件に応じて別の routing table や next-hop を選ぶための仕組みです。たとえば、特定の LAN だけ別回線へ出す、検証用セグメントだけ VPN 経由にする、といった例外経路に使います。
ただし、PBR は通信を許可する Firewall でも、送信元アドレスを変える NAT でもありません。VyOS で PBR を使うときは、Firewall、NAT、route-map、static route、VRF との責務を分けて考えることが重要です。
この記事では、VyOS 1.5 系で読むことを前提に、set policy route を使った PBR の考え方、設定例、確認コマンド、設計上の注意点を確認します。細かな表示やコマンド差分は利用している ISO と環境で確認してください。
この記事の結論
- VyOS PBR は送信元や条件に応じて通常とは別の経路を選ぶための仕組みである
- Firewall は許可・拒否、NAT はアドレス変換、PBR は経路選択を担当する
- PBR を使う前に通常の routing table で済まない理由を説明できるようにする
- private network や管理系通信を PBR 対象から外す設計が重要になる
- 設定後は
show policy route、show ip route table、実通信で確認する
PBR を使う前提
PBR は、通常の routing table だけでは表現しにくい例外経路を作るために使います。すべての通信を PBR で制御しようとすると、経路調査や障害対応が難しくなります。
| 用途 | PBR が合いやすい例 | 注意点 |
|---|---|---|
| 送信元別の出口制御 | 特定 LAN だけ別 ISP へ出す | 戻り経路と NAT を合わせる |
| 検証セグメント | 検証用 VLAN だけ VPN 経由にする | 管理通信を巻き込まない |
| 一時的な経路変更 | 移行期間だけ別 gateway を使う | 恒久化するなら通常 routing へ戻せるか見る |
| サービス別制御 | 特定宛先や port だけ別経路へ送る | Firewall と責務を混ぜない |
PBR と NAT / Firewall / route-map の違い
| 機能 | 担当すること | PBR との関係 |
|---|---|---|
| Firewall | 通信を許可または拒否する | PBR で通す通信も Firewall で許可が必要 |
| NAT | 送信元や宛先アドレスを変換する | 出口を変える場合は NAT の適用先も確認する |
| PBR | 条件に応じて経路や table を選ぶ | 許可や変換そのものは行わない |
| route-map | 経路や policy の条件付けに使う | 経路制御部品として PBR と合わせて考える |
| VRF | routing table を分離する | PBR より強く経路表を分けたい場合に検討する |
ルーティングテーブルを用意する
例として、通常経路とは別に table 100 を用意し、特定 gateway へ向ける構成を考えます。実際の gateway や interface は環境に合わせます。
set protocols static table 100 route 0.0.0.0/0 next-hop 192.0.2.1
set protocols static table 100 route 10.0.0.0/8 blackhole distance 254
set protocols static table 100 route 172.16.0.0/12 blackhole distance 254
set protocols static table 100 route 192.168.0.0/16 blackhole distance 254private network 宛てを除外する考え方は重要です。PBR でインターネット向けの出口を変えるつもりが、内部宛て通信や管理通信まで別経路へ流れると、切り分けが難しくなります。
除外用ネットワークグループを考える
PBR の match 条件では、対象にする通信と対象外にする通信を分けます。管理系、内部宛て、VPN 宛て、監視系通信を巻き込まないように、最初に除外対象を決めます。
set firewall group network-group PRIVATE-NETWORKS network 10.0.0.0/8
set firewall group network-group PRIVATE-NETWORKS network 172.16.0.0/12
set firewall group network-group PRIVATE-NETWORKS network 192.168.0.0/16PBR ルールを作成する
次に policy route を作り、送信元 subnet を条件に table 100 へ流します。ここでは 192.168.10.0/24 を PBR 対象にする例です。
set policy route PBR-LAN rule 10 source address 192.168.10.0/24
set policy route PBR-LAN rule 10 destination group network-group '!PRIVATE-NETWORKS'
set policy route PBR-LAN rule 10 set table 100
set interfaces ethernet eth1 policy route PBR-LANPBR は、どの interface に適用するかが重要です。送信元 subnet が存在する LAN 側 interface に適用するのか、別の入口で適用するのかを間違えると、想定した通信に policy が当たりません。
確認する
設定後は、policy、routing table、実際の通信を分けて確認します。table があることと、対象通信がその table を使っていることは別です。
show configuration commands | match "policy route"
show policy route
show ip route table 100
show firewall group
traceroute 8.8.8.8可能であれば、対象 subnet の端末から traceroute や外部 IP 確認を行い、通常 subnet との違いを確認します。NAT を使う場合は、PBR で出した先の interface に NAT が正しく適用されているかも確認します。
設計上の注意
- 通常 routing で済むものは PBR にしない
- PBR を使う理由を運用メモや構成管理に残す
- private network、管理通信、監視通信を巻き込まない
- NAT と PBR の適用 interface を合わせる
- Firewall の許可・拒否と PBR の経路選択を混同しない
- 障害時に PBR を外して通常経路へ戻せるか確認する
よくある失敗
| 失敗 | 起きること | 見る場所 |
|---|---|---|
| PBR を出口 interface に適用する | 対象通信に policy が当たらない | LAN 側 interface の policy route |
| 内部宛てを除外しない | 管理通信や内部通信が別経路へ流れる | destination 条件と除外 network group |
| NAT を合わせない | 出口は変わるが戻り通信が成立しない | source NAT rule と outbound interface |
| Firewall を忘れる | 経路は合っていても通信が落ちる | input / forward の rule |
| table だけ作って満足する | 実通信が通常 table のままになる | show policy route と traceroute |
まとめ
VyOS PBR は、送信元や条件に応じて通常とは別の routing table や next-hop を選ぶための仕組みです。vyos pbr や policy based routing で調べるときは、まず PBR が経路選択の機能であり、Firewall や NAT とは役割が違うことを押さえます。
PBR は便利ですが、例外経路を増やす機能でもあります。対象通信、除外通信、適用 interface、NAT、Firewall、確認方法を一緒に決めておくことで、後から追える構成になります。
書籍
ルーティング、NAT、VPN、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。

