部署ごとにVLANを分けたのに、ルーティングすれば通信できる。顧客ごとに同じIP帯を使いたいけれど、一台のL3スイッチへそのまま設定できない。こうした違いを考えるときに、VRFが出てきます。
VLANはL2の通信範囲を分け、VRFはL3の経路表を分ける仕組みです。どちらか一方を選ぶ関係ではなく、組み合わせて使います。VLANの基礎を確認したあと、同じIP帯を別々に扱う例まで見ていきましょう。
VLANはフレームの範囲、VRFは経路表を分ける
VLAN10とVLAN20を作ると、通常のブロードキャストが届くL2の範囲を分けられます。スイッチはVLANと宛先MACを使ってフレームを転送するため、別VLANへそのままフレームが広がることはありません。
VRFは、一台の装置に独立したルーティングテーブルを持たせます。VRF-Aへ入った通信は、VRF-Aの経路で宛先を探します。装置全体の別の経路表に経路があっても、そのままは使いません。
VLAN 10のL2範囲
ブロードキャストを分離
VRF-Aへ所属
L2からL3への境界
L3の転送先を検索
他VRFの経路は参照しない
VLAN自体へIPを設定するのではなく、SVIやサブインターフェースなどのL3インターフェースへIPを設定します。そのL3インターフェースを、必要なVRFへ所属させます。
VLANとVRFを組み合わせると、分離する境界が見える
顧客AのVLAN10・11をVRF-Aへ、顧客BのVLAN20・21をVRF-Bへ所属させる例です。同じVRFの中では、経路やACLの条件を満たせばVLAN間通信ができます。
異なるVRFの間では、通常のVLAN間ルーティングだけで相手の経路を使えません。「別VLAN」と「別VRF」は、通れない理由が違います。
顧客A:VRF-A
業務LANVLAN 11
管理LAN
ルーティングテーブルA
顧客B:VRF-B
業務LANVLAN 21
管理LAN
ルーティングテーブルB
VRF-AとVRF-Bの間は、明示的に設計しない限り通信しない
資料にはVLAN番号だけでなく、所属するVRFも書きます。同じ装置でも、どの経路表を調べるかが変わるためです。
VRFはVLAN IDの名前空間を分ける機能ではありません。同じスイッチ内のVLAN10が、VRF名を変えただけで別のL2範囲になると考えないようにしましょう。
同じIP帯を使えるのは、別の経路表で扱うため
顧客Aも顧客Bも172.28.61.0/24を使っている例を考えます。同じ経路表へ重ねて収容しようとすると、どちらの接続先を指すのかが問題になります。VRFを分ければ、A側の経路とB側の経路を別々に扱えます。
VRF-Aの入口から受けた通信は、Aの172.28.61.0/24へ向かいます。Bにも同じIPがあっても、VRF-Bの経路を勝手に検索しません。
172.28.61.0/24 → Vlan10
端末:172.28.61.10
GW:172.28.61.1
172.28.61.0/24 → Vlan20
端末:172.28.61.10
GW:172.28.61.1
IPアドレスは同じでも、参照する経路表とL3インターフェースが異なるため競合しません。
| 要件 | 選択 | 理由 |
|---|---|---|
| 部署や端末種別ごとにブロードキャストを分けたい | VLAN | L2の分割で要件を満たせる |
| 分けたVLAN同士を社内ルールに従って通信させたい | VLAN+同一VRF内のルーティング | 共通の経路表でVLAN間ルーティングできる |
| 顧客やテナントごとに経路を完全に分けたい | VRF+VLAN | L2とL3の両方を分離できる |
| 同じIPサブネットを複数顧客で使いたい | VRF | VRFごとに独立した経路表を持てる |
| 管理用通信を業務通信から分けたい | 管理VRF+必要なACL/FW | 経路分離に加えて許可通信を制御できる |
分けたいものがブロードキャストの範囲ならVLAN、経路表や重複IPの扱いならVRFを検討します。必要な分離から選ぶと、仕組みを増やす理由を説明できます。
分離したあとで通信を許可する要件があるなら、その接続方法も必要です。VRFを作ればファイアウォールの検査やログが不要になる、という関係ではありません。
転送は、VLANからL3インターフェース、VRFへ進む
端末のフレームを受けたスイッチは、まず所属VLANを扱います。ゲートウェイ宛のフレームとしてL3処理へ進むと、L3インターフェースに所属するVRFの経路表を検索します。
その経路表で出力先や次ホップを選び、次の区間へ送るためのARPなどを確認します。VLAN、SVI、VRF、経路がばらばらの設定では、この流れがつながりません。
- VLANを判定する:アクセスポートの設定、または802.1Qタグから所属VLANを判断する
- L3インターフェースへ渡す:別サブネット宛てなら、端末はデフォルトゲートウェイであるSVIへフレームを送る
- VRFを判定する:SVIに設定されたVRFから、参照するルーティングテーブルを決める
- 経路検索する:対象VRFの経路表だけで最長一致検索を行う
- 出力する:次ホップをARP/NDで解決し、出力側のVLANやL3インターフェースから転送する
混同しやすい点:VRF-Liteは「機能を簡易化したVRF」というより、MPLS VPNを使わずにVRFを利用する構成を指します。機種やOSによって対応機能・設定方法は異なります。
VRF-Liteは、MPLS VPNの網を使わずに装置上でVRFによる分離を行う構成です。ここでの設定例も、この考え方を使います。
MPLS L3VPNでは、顧客の経路を拠点間へ運ぶためにRD、RT、MP-BGPなどが登場します。CCNAの基礎を学ぶ段階なら、まず装置内で別々の経路表を参照するところから押さえてください。
設定例は、所属を作ってからIPと経路を設定する
例ではVLAN10をVRF-A、VLAN20をVRF-Bへ所属させ、両方のゲートウェイに172.28.61.1/24を使います。同じ数値ですが、別VLAN・別VRFのインターフェースです。
vrf definitionでVRFを作り、SVIへvrf forwardingを設定し、そのあとでIPを設定します。既存インターフェースにVRFを割り当てると、機種や版によってIP設定が外れるため、順番にも意味があります。
- VLAN 10 → VRF-A → ゲートウェイ 172.28.61.1/24
- VLAN 20 → VRF-B → ゲートウェイ 172.28.61.1/24
- 同じIPサブネットだが、VRFが異なるため重複可能
vrf definition VRF-A
address-family ipv4
exit-address-family
!
vrf definition VRF-B
address-family ipv4
exit-address-family
vlan 10
name TENANT-A
vlan 20
name TENANT-B
!
interface GigabitEthernet1/0/1
switchport mode access
switchport access vlan 10
spanning-tree portfast
!
interface GigabitEthernet1/0/2
switchport mode access
switchport access vlan 20
spanning-tree portfast
interface Vlan10
vrf forwarding VRF-A
ip address 172.28.61.1 255.255.255.0
no shutdown
!
interface Vlan20
vrf forwarding VRF-B
ip address 172.28.61.1 255.255.255.0
no shutdown
実務上の注意:既存インターフェースへvrf forwardingを設定すると、機種やOSでは設定済みのIPアドレスが外れます。VRF所属を先に設定し、その後でIPアドレスを設定してください。作業前後のコンフィグ差分と通信影響も確認します。
ip route vrf VRF-A 0.0.0.0 0.0.0.0 172.28.61.254
ip route vrf VRF-B 0.0.0.0 0.0.0.0 172.28.61.254
ip route vrfは、指定したVRFの中へ経路を作るコマンドです。二つのVRFで172.28.61.254を使う例は、それぞれのLANに別々の次ホップがある前提です。
これは検証用の例です。コマンド体系、対応機能、ライセンスは対象機種で確認します。値を覚えるより、どのインターフェースがどのVRFに入り、そのVRF内でどこへ転送するかを図と合わせて見てください。
確認コマンドにも、対象VRFを指定する
通常のshow ip routeで見えないから、経路がないとは限りません。VRF-Aの通信ならshow ip route vrf VRF-Aなど、対象の経路表を指定します。ARPやpingも、同じVRFの文脈で確認します。
疎通しないときは、リンク、VLAN、SVIの状態、VRF所属、宛先経路、隣接情報という順で、通信がどこまで進めるかを見ます。
| 確認したいこと | コマンド例 | 見るポイント |
|---|---|---|
| VRF一覧 | show vrf |
VRF名、RD、所属インターフェース |
| インターフェース所属 | show ip interface brief vrf all |
SVI/L3ポートが想定VRFか、up/upか |
| VRF別経路 | show ip route vrf VRF-A |
接続経路、デフォルトルート、最長一致経路 |
| ARP | show ip arp vrf VRF-A |
端末や次ホップのIP・MAC・出力IF |
| VRF指定ping | ping vrf VRF-A 172.28.61.10 source 172.28.61.1 |
VRFと送信元を固定した往復疎通 |
| VRF指定traceroute | traceroute vrf VRF-A 172.28.53.10 |
どの区間まで到達するか |
- L1:物理リンク、エラー、速度/Duplexを確認する
- VLAN:アクセスポート、トランク許可VLAN、VLANのactive状態、STPを確認する
- SVI/L3 IF:up/upか、IPアドレスとマスクが正しいか確認する
- VRF所属:対象インターフェースが想定VRFに所属しているか確認する
- VRF別経路:対象VRFの経路表に最長一致する経路があるか確認する
- ARP/ND:端末または次ホップを解決できているか確認する
- ポリシー:ACL、FW、PBR、経路リーク、NATを確認する
- 復路:宛先側から送信元へ戻る経路があるか確認する
- 試験:VRF名と送信元を指定してping/tracerouteを行う
送信元も重要です。ルーター自身からのpingが成功しても、端末と同じ入口・送信元で試したことにはなりません。対象VRFと送信元IPを記録してください。
グローバル経路表という呼び方は、VRFに分けていない経路表を指します。グローバルIPを使う、という意味ではありません。
VRF間で通す場合は、往復と拒否する通信を決める
VRF間へ経路を受け渡すことを、経路リークと呼びます。必要な通信を通せますが、分けた境界をつなぐ設計になるため、渡す経路と方向を決めます。
宛先への経路を渡しても、戻り経路やFW・ACLが合わなければ通信は成立しません。両側で同じIP帯を使っている場合は、重複をどう解決するかも必要です。
- どのプレフィックスを、どちら向きに渡すか
- 戻り経路が正しく存在するか
- 同じIP帯が重複していないか
- FWやACLで許可すべきプロトコル/ポートは何か
- NATが必要か、元IPを保持するか
- 許可通信だけでなく、意図しない通信が拒否されるか
試験では、通す通信だけでなく、別顧客へ届いてはいけない通信も確認します。分離の要件が維持されていることを、結果として残してください。
VLANでL2を分け、VRFでL3の経路を分ける。この二つを図に書き、確認コマンドへVRF名を添えるところから始めると、設定と調査の見通しがよくなります。
