VyOS の VRF は、同じルーター内で経路表を分けるための仕組みです。管理ネットワーク、外部接続、トンネル、検証用セグメントなど、経路を混ぜたくない領域がある場合に使います。
vyos vrf で調べる時に重要なのは、設定コマンドだけではありません。VRF を使う理由、PBR との違い、どのインターフェイスをどの経路表に入れるか、管理経路を失わないかを先に決める必要があります。
この記事では、VyOS 1.5 系で読むことを前提に、VRF を経路表を分ける設計として確認します。細かな表示やコマンド差分は利用している ISO と構成で確認してください。
書籍
ルーティング、VRF、経路制御、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- VRF はインターフェイスと経路表の文脈を分ける仕組みである
- PBR は条件で経路を選ぶ仕組みであり、VRF とは役割が違う
- 管理 VRF を作る場合は、SSH や監視の到達性を失わないようにする
- VRF 名、table ID、所属インターフェイス、default route をセットで管理する
- 確認時は通常の
show ip routeだけでなく VRF 単位で経路を見る
VRF と PBR の違い
VRF と PBR はどちらも経路を分ける時に出てくる機能ですが、責務が違います。VRF は経路表そのものを分け、PBR は条件に応じて使う経路や table を選びます。
| 項目 | VRF | PBR |
|---|---|---|
| 主な目的 | 経路表とインターフェイスの文脈を分ける | 送信元や条件に応じて経路を選ぶ |
| 境界 | インターフェイス単位で強く分かれる | policy が当たる通信だけ変わる |
| 使いどころ | 管理系、外部接続、検証系を分ける | 特定 subnet だけ別回線へ出す |
| 注意点 | 管理経路を失うと復旧が難しい | 例外経路が増えると追いにくい |
VRF を使う場面
- 管理ネットワークを通常のサービス経路から分けたい
- 外部接続用の経路表を内部経路と混ぜたくない
- トンネルや検証ネットワークの経路を本番経路から分離したい
- 同じアドレス帯や似た経路を別の文脈で扱う必要がある
- ルーター上で責務ごとに経路の見え方を分けたい
VRF を作る
VRF には table ID を割り当てます。table ID は経路表の識別に使われるため、環境内で重複しないように決めます。
configure
set vrf name mgmt table '100'
set vrf name service table '200'
commit
saveVRF 名だけでなく、table ID の対応を運用メモや構成管理に残しておくと、障害時に追いやすくなります。
インターフェイスを VRF に所属させる
VRF は作っただけでは通信に影響しません。インターフェイスを VRF に所属させることで、そのインターフェイスの経路参照先が変わります。
configure
set interfaces ethernet eth1 vrf 'mgmt'
set interfaces ethernet eth2 vrf 'service'
commit
save既存構成に後から VRF を入れる場合は、SSH、監視、DNS、NTP などの管理通信がどの VRF から出るのかを必ず確認します。管理インターフェイスを VRF に入れた瞬間に、今までの経路では到達できなくなることがあります。
VRF 内の static route
VRF ごとに経路を持たせる場合は、その VRF に対応する table へ static route を設定します。ここでは table 100 を管理用 VRF の経路表として扱う例です。
configure
set protocols static table 100 route 0.0.0.0/0 next-hop 192.0.2.1
set protocols static table 100 route6 ::/0 next-hop fd00::1
commit
saveFirewall と service listen を確認する
VRF で経路表を分けても、Firewall やサービスの待ち受けを忘れると通信は成立しません。ルーター自身宛ての input、VRF 内外の forward、SSH や DNS forwarding の待ち受けを分けて確認します。
| 確認対象 | 見ること |
|---|---|
| Firewall input | 管理 VRF からルーター自身へ入る通信を許可しているか |
| Firewall forward | VRF 内外を通す通信を意図どおり制御しているか |
| SSH | 管理インターフェイスから到達できるか |
| DNS / NTP | VRF 内の端末が名前解決や時刻同期を使えるか |
| 監視 | SNMP、syslog、監視経路がどの VRF を通るか |
確認する
確認では、VRF 一覧、VRF 単位の経路、インターフェイス所属、疎通を分けて見ます。通常の経路表だけを見ても、VRF 内の経路は見落とすことがあります。
show vrf
show interfaces ethernet
show ip route vrf mgmt
show ipv6 route vrf mgmt
show configuration commands | match 'vrf'疎通確認では、ルーター自身からの ping と、VRF に所属する端末からの通信を分けます。どちらか一方だけで判断すると、Firewall や戻り経路の問題を見落とすことがあります。
安易に VRF を増やさない
VRF は強力ですが、増やしすぎると運用が難しくなります。どの経路表にどのインターフェイスが入り、どの通信がどの VRF を通るのかを説明できない状態になると、障害時の切り分けが複雑になります。
- VRF を使う理由を説明できるか
- 通常 routing や PBR では不足する理由があるか
- 管理経路を失っても復旧できる手段があるか
- VRF 名、table ID、interface、default route を一覧できるか
- 監視とログで VRF 境界を追えるか
よくあるつまずき
| 症状 | 見る場所 | 考え方 |
|---|---|---|
| SSH できなくなった | 管理 interface の VRF と route | 管理経路を別 table に移した影響を見る |
| 経路が見えない | VRF 単位の route 表示 | 通常の show ip route だけで判断しない |
| 端末だけ通信できない | Firewall forward と戻り経路 | ルーター自身の疎通と端末経由を分ける |
| DNS だけ失敗する | DNS forwarding と service listen | VRF 内から使うサービスの待ち受けを見る |
| 設計が追えない | VRF 名と table ID の対応 | 運用メモなしに VRF を増やさない |
まとめ
VyOS VRF は、経路表とインターフェイスの文脈を分けるための設計要素です。管理系、外部接続、検証系、トンネルなど、経路を混ぜたくない領域がある場合に有効です。
一方で、VRF は運用の複雑さも増やします。使う場合は、VRF 名、table ID、所属インターフェイス、default route、Firewall、監視経路をセットで確認し、通常 routing や PBR との違いを説明できる状態にしておきます。

