手当たり次第に書くんだ

飽きっぽいのは本能

VyOS PBR 設定 – Policy Based Routing の基本

VyOS PBR、Policy Based Routing は、通常の宛先ベースの経路選択だけではなく、送信元アドレスや条件に応じて別の routing tablenext-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 routeshow 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 と合わせて考える
VRFrouting 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 254

private 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/16

PBR ルールを作成する

次に 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-LAN

PBR は、どの 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 pbrpolicy based routing で調べるときは、まず PBR が経路選択の機能であり、Firewall や NAT とは役割が違うことを押さえます。

PBR は便利ですが、例外経路を増やす機能でもあります。対象通信、除外通信、適用 interface、NAT、Firewall、確認方法を一緒に決めておくことで、後から追える構成になります。

関連する記事
VyOS PBR 設定 – Policy Based Routing の基本

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る