Cisco実機で学ぶBGP EVPN VXLAN(第3回):L3ネットワーク(L3VNI)の構築編

本シリーズ記事は、現代のエンタープライズネットワークにおける重要技術である「BGP EVPN VXLAN」について、基礎から応用までを段階的に解説し、技術的な理解を深めていただくことを目的としています。

前回の記事では、L2ネットワークの延伸(L2VNI)を構築してみました。

blog.jbs.co.jp

今回はその続きとして、Cisco Catalyst 9300シリーズの実機を用い、BGP EVPN VXLANにおけるL3ネットワーク(L3VNI)を構築する手順と、その動作確認方法を具体的に紹介します。

なお、本記事はエンタープライズネットワークにおけるルーティングおよびスイッチングに関する基礎知識を有する方を対象としています。

また、UnderlayやL2VNIの詳細は一回目記事にで、構築済みです。

BGP EVPN VXLANにおけるL3VNI

前回のL2VNI構築では、異なるLeafスイッチ配下の同一VLAN(サブネット)間での通信を実現しました。

今回のL3VNI構築では、異なるVLAN(サブネット)間での通信をVXLANファブリック上で実現します。

技術要素

これを実現するために、以下の技術要素を組み合わせます。

VRF (Virtual Routing and Forwarding)

仮想的なルーティングテーブルを作成し、テナントやセグメントごとの通信を分離します。1台のルータ上で複数の独立したルーティングテーブルを保持する技術です。

L3VNI (Layer 3 VXLAN Network Identifier)

VRFごとのルーティング情報をVXLAN上で転送するために使用する識別子で、VRF間のルーティングトラフィックをカプセル化するために使用されるVNIです。

Distributed Anycast Gateway (DAG)

すべてのLeafスイッチに同じデフォルトゲートウェイ(IPアドレスとプラットフォーム共通のAnycast MAC)を持たせることで、端末の移動(モビリティ)を容易にし、デフォルトゲートウェイへの通信を最適化する分散ゲートウェイ方式です。

関連用語

構築に入る前に、関連用語を簡単に整理します。

RT (Route Target)

BGP EVPNにおいて、どのVRFに経路情報をインポート/エクスポートするかを制御する拡張コミュニティ属性です。

Stitching

EVPNルートとVRF内のIPルートを紐付ける(縫い合わせる)動作を指します。

BGP L2VPN EVPN

MACアドレスやIPアドレス情報を運ぶためのBGPのアドレスファミリです。

NVE (Network Virtualization Endpoint)

VXLANのカプセル化/非カプセル化を行う論理インターフェースです。

EVPNルートタイプ5(IP Prefix Route)

EVPN上でIPプレフィックス(サブネット情報)を運ぶためのルートタイプです。Type 2ルートが主にMACアドレスやIP/MACの対応情報(MAC/IPルート)を扱うのに対し、Type 5ルートはVRF単位のIPプレフィックス(例:192.168.101.0/24, 192.168.102.0/24)を広告し、L3VNI経由で異なるLeaf間のL3到達性を実現します。

show bgp l2vpn evpn all コマンドにより、Type 5ルートが正しく交換されているのかを確認できます。

検証環境

前回L2VNIの構成時、UnderlayのOSPFやPIM等は設定しました。それに対し、今回はL3VNIの設定を新規に追加します。また、追加部分を赤字で表現します。

機器構成

  • Spine: Cisco C9300-48S × 1
  • Leaf: Cisco C9300L-48P-4X × 2
  • Client: Cisco WS-C3750X-24T-S × 2(クライアント端末として代用)
  • OSバージョン: IOS-XE 17.18.01(全機器共通)

IPアドレス設計

Spine設定
  • Loopback0 (Router-ID): 10.0.0.3/32
  • Loopback1 (NVE Source): 192.168.0.3/32
  • PIM RP: 10.0.0.4
  • Leaf1向け物理IF: 192.168.1.2/24
  • Leaf2向け物理IF: 192.168.2.2/24
Leaf1設定
  • Loopback0 (Router-ID): 10.0.0.1/32
  • Loopback1 (NVE Source): 192.168.0.1/32
  • SVI 101 (Gateway): 192.168.101.2/24
  • SVI 102 (Gateway): 192.168.102.2/24
  • Spine向け物理IF: 192.168.1.1/24
Leaf2設定
  • Loopback0 (Router-ID): 10.0.0.2/32
  • Loopback1 (NVE Source): 192.168.0.2/32
  • SVI 101 (Gateway): 192.168.101.2/24
  • SVI 102 (Gateway): 192.168.102.2/24
  • Spine向け物理IF: 192.168.2.1/24
クライアント設定
  • Client1: 192.168.101.1/24 (VLAN 101, L2 VNI 10101)
  • Client2: 192.168.102.1/24 (VLAN 102, L2 VNI 10102)

構成図

二つの階層の構成イメージ図は下記になります。

※ 本構成図は検証用に作成されたもので、本番環境とは異なます。

Underlay

Overlay

 

構築手順

以下の設定を共通設定として、各Leafスイッチに追加し、L3通信を構築していきます。

※Leaf1/Leaf2で同一設定になります。rd 1:1 や route-target 1:1、vlan 888 などの数値について、本検証環境では便宜上この値を使用します。

VRFおよびRoute Target (RT) の設定

テナント用VRF「JBS」を作成し、RD(Route Distinguisher)とRTを設定します。

stitching キーワードを付与することで、EVPN上のIPプレフィックスルート(Type 5)と、VRF内のルーティング情報を相互に紐づけ、L3VNI経由のIP到達性を実現しています。

今回の検証では、任意の値で「1:1」を設定します。

vrf definition JBS
 rd 1:1
!
address-family ipv4
 route-target export 1:1
 route-target import 1:1
 route-target export 1:1 stitching
 route-target import 1:1 stitching
exit-address-family

BGP L2VPN EVPNの設定

EVPNインスタンスの設定と、BGPネイバー設定を行います。

VRF配下の経路をEVPNへアドバタイズする設定もここに含まれます。

l2vpn evpn
 replication-type static
 router-id Loopback1
! L2VNIの設定
vlan configuration 101
 member evpn-instance 101 vni 10101
vlan configuration 102
 member evpn-instance 102 vni 10102
! l2vpn evpn instance 101 vlan-based encapsulation vxlan l2vpn evpn instance 102 vlan-based encapsulation vxlan
router bgp 1
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 10.0.0.3 remote-as 1
 neighbor 10.0.0.3 update-source Loopback0
!
 address-family ipv4
  exit-address-family
!
 address-family l2vpn evpn
  neighbor 10.0.0.3 activate
  neighbor 10.0.0.3 send-community both
 exit-address-family
 !
 ! VRF JBSのアドレスファミリを設定
 address-family ipv4 vrf JBS
  advertise l2vpn evpn
  redistribute static
  redistribute connected
 exit-address-family

L3VNIの設定

L3ルーティング用のVNI(ここでは10888)を定義し、VLANに関連付けます。

後ほど show l2vpn evpn evi 101 detail コマンドでも、Vlan888とL3 VNI 10888の関連付けが確認できることを見ていきます。

vlan 888
!
vlan configuration 888
member vni 10888

Distributed Anycast Gateway (DAG) の設定

各VLANインターフェース(SVI)をVRF「JBS」に所属させ、ゲートウェイIPアドレスを設定します。

Leaf1、Leaf2ともに同じIPアドレスを設定することでDAGを実現します。

interface Vlan101
 vrf forwarding JBS
 ip address 192.168.101.2 255.255.255.0
!
interface Vlan102
vrf forwarding JBS ip address 192.168.102.2 255.255.255.0

NVEインターフェースの設定

NVEインターフェースにL3VNI(10888)をVRF「JBS」に関連付けて追加します。

interface nve1
 no ip address
 source-interface Loopback1
 host-reachability protocol bgp
 member vni 10888 vrf JBS
 member vni 10102 mcast-group 225.0.0.102
 member vni 10101 mcast-group 225.0.0.101

疎通確認

設定が正しく反映されているかの確認として、Client1からClient2に対して、Pingを実施します。

 Client1#ping 192.168.102.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.102.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/9 ms

Pingが成功し、疎通確認ができました。

ステータス確認

疎通確認できたため、ここからは各ステータスを確認します。

Leaf1での確認

OSPFネイバーの確認

ネイバーとのステータスがFullとなり、Underlayネットワークが正常であることを確認します。

Leaf1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.0.0.3 0  FULL/ -  00:00:36 192.168.1.2 GigabitEthernet1/0/1
BGP EVPNルートの確認

Route Distinguisher: 1:1 (default for vrf JBS) のセクションにて、タイプ5ルート(IP Prefix Route)が学習されていることを確認します。

Leaf1#show bgp l2vpn evpn all
...
Route Distinguisher: 1:1 (default for vrf JBS)
*>  [5][1:1][0][24][192.168.101.0]/17
0.0.0.0 0 32768 ?
*>i  [5][1:1][0][24][192.168.102.0]/17
192.168.0.2 0 100 0 ?
EVPNインスタンスの確認

L3 VNIとして 10888 が正しくマッピングされていることが確認できます。

Leaf1#show l2vpn evpn evi 101 detail
EVPN instance: 101 (VLAN Based)
RD: 192.168.0.1:101 (auto)
Import-RTs: 1:101
Export-RTs: 1:101
...
Vlan: 101
Protected: False
Ethernet-Tag: 0
State: Established
Flood Suppress: Attached
Core If:  Vlan888
Access If: Vlan101
NVE If: nve1
RMAC: 0000.5E00.5306
Core Vlan: 888 L2 VNI: 10101 L3 VNI: 10888 VTEP IP: 192.168.0.1 Originating Router: 192.168.0.1 MCAST IP: 225.0.0.101 VRF: JBS IPv4 IRB: Enabled IPv6 IRB: Disabled Pseudoports: GigabitEthernet1/0/11 service instance 101 Routes: 2 MAC, 1 MAC/IP ...
VRFルーティングテーブルの確認

VRF「JBS」のルーティングテーブルに、BGP経由で対向Leaf配下のサブネット(192.168.102.0/24)が学習されています。

Leaf1#show ip route vrf JBS
...
B 192.168.102.0/24 [200/0] via 192.168.0.2, 11:36:13, Vlan888
B 192.168.102.1/32 [200/0] via 192.168.0.2, 02:34:12, Vlan888
NVEピアの確認

L3CP(Layer 3 Control Plane)としてLeaf2(192.168.0.2)とピアが確立されています。

Leaf1#show nve peers
Interface VNI Type Peer-IP RMAC/Num_RTs eVNI state flags UP time
nve1 10888 L3CP 192.168.0.2 0000.5E00.5305 10888 UP A/M/4 11:36:12

Leaf2での確認

Leaf2側でも同様に、Leaf1配下のサブネット(192.168.101.0/24)がBGP経由で学習されていることが確認できます。

Leaf2#show ip route vrf JBS
...
B 192.168.101.0/24 [200/0] via 192.168.0.1, 11:38:22, Vlan888
B 192.168.101.1/32 [200/0] via 192.168.0.1, 02:08:16, Vlan888

Spineでの確認

SpineスイッチはRoute Reflectorとして機能しており、EVPNルートを中継しています。

show bgp l2vpn evpn all コマンドにより、各Leafからアドバタイズされたルート(タイプ2 MAC/IPルート、タイプ5 IPプレフィックスルート)を保持していることが確認できます。

Spine#show bgp l2vpn evpn all
...
Route Distinguisher: 1:1
*>i [5][1:1][0][24][192.168.101.0]/17
192.168.0.1 0 100 0 ?
*>i [5][1:1][0][24][192.168.102.0]/17
192.168.0.2 0 100 0 ?

まとめ

本記事では、Cisco機器を用いたBGP EVPN VXLANにおけるL3VNIを構築しました。構築において、以下のポイントが重要です。

  • VRFとL3VNIの連携
    • stitching 設定により、異なるルーティング情報をVXLAN上で交換可能になります。
  • Anycast Gateway
    • 各Leafで同一ゲートウェイIPを持つことで、フラットなL3ネットワーク基盤が構築されます。
  • EVPNルートタイプ5
    • EVPNルートタイプ5(IP Prefix Route)が正しく交換され、異なるLeaf間でのL3到達性が確保されます。

最後に

BGP EVPN VXLANは設定項目が多く複雑に感じますが、一つ一つの技術要素(VRF, BGP, VXLAN)の役割を整理することで、全体の構成も見えるようになります。

次回は、パケットキャプチャを実施し、ヘッダーの中身を確認したいと思います。

執筆担当者プロフィール
鄭 秋怡

鄭 秋怡(日本ビジネスシステムズ株式会社)

CTS本部 SNIに所属の鄭です。エンタープライズのお客さまに向けて、ネットワークの設計、構築、検証などを経験してきました。現在はネットワーク機器メーカーのお客さま先に常駐し、技術支援を担当しています。

担当記事一覧