2021-03-26 08:58 AM 2021-04-11 09:46 AM 更新
このドキュメントでは、Cisco Nexus VXLAN での VXLAN Static Tunnels の簡単な解説と基本的な使用方法を解説します。
また、ここで使用するスイッチは特別断りが無い限り、Leaf01、Leaf02 には Cisco Nexus C93180YC-FX スイッチを、Leaf03 及び には Cisco Nexus C9336C-FX2 スイッチを、Spine には Cisco Nexus N9K-C92160YC-X 用いています。
全ての Leaf は NX-OS 10.1(1)です。
Spineは NX-OS 9.3(6) です。
VXLAN については「Cisco Nexus シリーズ : VXLAN EVPN 基本設定」を確認してください。
VXLAN Static Tunnels を利用することで静的な VXLAN Tunnel を介して VTEP に接続することが出来ます。
この際に BGP EVPN などのコントロールプレーンプロトコルを使用する必要はありません。
このため、VTEP 間のスイッチ (例えば Spine など) で BGP を使うことが出来なくとも、疎通性があれば通信を行うことが出来ます。
本稿では Spine に Nexus を用いていますが、別の製品でも要件を満たせば問題は特にありません。
また、通信相手の VTEP は RFC 7348 に準拠しているデバイスであれば、どれでもかまいません。ただし、その機器に適切な VXLAN の設定と適切な経路情報を設定する必要があります。
以降の注意点は 2021年03月08日現在のものです。
本機能を使用するには NX-OS 9.3(3) 以降が必要です。
Cisco Nexus 9332C、9364C,、9300-EX、及び 9300-FX/FX2/FX3、9300-GX と 9300-FX3 プラットフォーム スイッチでサポートされています。
Cisco Nexus 9300-FX3 プラットフォーム スイッチでは NX-OS 10.1(1) 以降が必要です。
Underlay には OSPFv2、BGP、IS-IS あるいは IPv4 が利用できます。
Equal Cost Multi Path (ECMP) はサポートしていません。
Flood and Learn あるいは BGP EVPN ファブリックと同じファブリックでは設定出来ません。
Overlay では IPv4 をサポートしています。
その他の制約や注意事項については「Cisco Nexus 9000 Series NX-OS VXLAN Configuration Guide, Release 10.1(x)」の「Configuring VXLAN」の章にある「Guidelines and Limitations for VXLAN Static Tunnels」を確認してください。
このトポロジーでは Leaf01 と Leaf02 は VLAN 100を、Leaf03 は VLAN 100 と VLAN 200 を持っていて、各Leafで VLAN100 は L3VNI として機能しています。
Leaf01 と Leaf02 ではホストに繋がっている Interface がデフォルトゲートウェイとしての役割を持っています。
一方、Leaf03 では VLAN Interface がデフォルトゲートウェイとして機能します。
各 L3SW はそれぞれ別のネットワークにいますが、Leaf の L3VNI を介してそれぞれ通信を行うことが出来ます。
Spine は OSPF で経路をそれぞれの Leaf に広報し、疎通性を提供する意外に特に役割はありません。
VTEP 間に疎通性を持たせるための Underlay Network の構築を行います。
ルーティングプロトコルとして OSPF を使用します。
なお、ここで Spine は OSPF で疎通性を提供するためのみに使用していて、BGPの設定などは一切行いません。
このため、下記の Config を各スイッチに投入しました。
Spine: feature ospf interface Ethernet1/3 mtu 9216 ip address 10.0.1.1/30 ip ospf network point-to-point ip router ospf 100 area 0.0.0.0 no shutdown interface Ethernet1/4 mtu 9216 ip address 10.0.2.1/30 ip ospf network point-to-point ip router ospf 100 area 0.0.0.0 no shutdown interface Ethernet1/53 mtu 9216 ip address 10.0.3.1/30 ip ospf network point-to-point ip router ospf 100 area 0.0.0.0 no shutdown router ospf 100 router-id 10.10.10.10
Leaf01: feature ospf interface Ethernet1/4 mtu 9216 ip address 10.0.1.2/30 ip ospf network point-to-point ip router ospf 100 area 0.0.0.0 no shutdown interface loopback0 ip address 1.1.1.1/32 ip router ospf 100 area 0.0.0.0 router ospf 100 router-id 1.1.1.1
Leaf02: feature ospf interface Ethernet1/4 mtu 9216 ip address 10.0.2.2/30 ip ospf network point-to-point ip router ospf 100 area 0.0.0.0 no shutdown interface loopback0 ip address 2.2.2.2/32 ip router ospf 100 area 0.0.0.0 router ospf 100 router-id 2.2.2.2
Leaf03: feature ospf interface Ethernet1/36 mtu 9216 ip address 10.0.3.2/30 ip ospf network point-to-point ip router ospf 100 area 0.0.0.0 no shutdown interface loopback0 ip address 3.3.3.3/32 ip router ospf 100 area 0.0.0.0 router ospf 100 router-id 3.3.3.3
OSPF のネイバーを確立出来ているか調べるために Spine で "show ip ospf neighbors" を実行しました。
以下がその結果となります。
Spine# show ip ospf neighbors OSPF Process ID 100 VRF default Total number of neighbors: 3 Neighbor ID Pri State Up Time Address Interface 1.1.1.1 1 FULL/ - 02:14:27 10.0.1.2 Eth1/3 2.2.2.2 1 FULL/ - 02:15:21 10.0.2.2 Eth1/4 3.3.3.3 1 FULL/ - 02:12:11 10.0.3.2 Eth1/53
このように全ての Leaf とネイバー関係を確立しています。
ここでは各ネットワーク間の通信を行うための L3VNI の設定と Tunnel を確立するための設定を行います。
Tunnel を設定するためには "feature ofm" コマンドで Overlay Flow/policy Manager を有効にする必要があります。
Overlay Flow/policy Manager は下記のコマンドで有効化及び無効化できます。
switch(config)# [no] feature ofm
下記コマンドで "config-tnl-profile" モードに入り、Tunnel-Profile の設定を有効化及び無効化できます。
switch(config)# [no] tunnel-profile <tunnel-profile name>
"config-tnl-profile" モードでは下記コマンドでカプセル化タイプの指定を有効化及び無効化できます。
本稿では "vxlan" を指定して VXLAN によるカプセル化を行います。
switch(config-tnl-profile)# [no] encapsulation {VXLAN | VXLAN-GPE | SRv6}
"config-tnl-profile" モードでは下記コマンドでカプセル化されたパケットを送出する Loopback Interface の指定を有効化及び無効化できます。
switch(config-tnl-profile)# [no] source-interface loopback <virtual-interface-number>
最後に"config-tnl-profile" モードでは下記コマンドでカプセル化されたパケットを宛先に応じて転送するためのルートの指定を有効化及び無効化できます。
なお、各パラメータは下記の要領で指定してください。
<tenant-vrf> には Overlay で使用している VRF 名を指定してください。本稿では "vxlan-static" です。
<destination-host-prefix> には Overlay で使用している宛先のネットワークアドレスを指定してください。
<destination-vtep-ip-address> にはその宛先ネットワークが接続されている VTEP のアドレスを指定してください。
<destination-vtep-vrf> には VXLAN パケットを転送する Underlay の VRF 名を指定してください。本稿では "default" です。
<vni-number> には L3VNI の VNID を指定してください。本稿では 10100 です。
<destination-vtep-mac-address> には宛先の VTEP の VDC MAC Address を指定する必要があり、これについては次で解説します。
switch(config-tnl-profile)# [no] route vrf <tenant-vrf> <destination-host-prefix> <destination-vtep-ip-address> next-hop-vrf <destination-vtep-vrf> vni <vni-number> dest-vtep-mac <destination-vtep-mac-address>
宛先の VTEP の VDC MAC Address は"show vdc" コマンドで取得します。
下記は Leaf01 と Leaf02、Leaf03 での実行例です。
Leaf01# show vdc vdc_id vdc_name state mac type lc ------ -------- ----- ---------- --------- ------ 1 Leaf01 active 10:b3:d6:8e:07:67 Ethernet None Leaf02# show vdc vdc_id vdc_name state mac type lc ------ -------- ----- ---------- --------- ------ 1 Leaf02 active 00:3a:9c:a3:0e:47 Ethernet None Leaf03# show vdc vdc_id vdc_name state mac type lc ------ -------- ----- ---------- --------- ------ 1 Leaf03 active a4:53:0e:eb:02:db Ethernet None
以上を踏まえて設定を行っていきます。
Loopback 0 を Tunnel で用いる VXLAN パケットを送受信するための Interface として利用します。
VLAN100 を各 Leaf で L3VNI として用いるため、この VLAN100 にはローカルホストが存在せず、IP アドレスを持たない状態でパケットを転送するために "ip forward" コマンドを投入しています。
また、VXLAN の Overlay 用の VRF である "vxlan-static" を各 Leaf で作成します。
Leaf01 と Leaf02 では L3SW との接続に L3 ポート を用いますが、Leaf03 では Access ポートを利用します。
加えて Leaf03 では "feature fabric forwarding" を有効にすることで、VLAN Interface で任意の MAC Address を持つ Anycast Gateway を設定出来るようになっています。
Leaf01: feature interface-vlan feature vn-segment-vlan-based feature ofm tunnel-profile static-vxlan encapsulation vxlan source-interface loopback0 route vrf vxlan-static 192.168.2.0/24 2.2.2.2 next-hop-vrf default vni 10100 dest-vtep-mac 003a.9ca3.0e47 route vrf vxlan-static 192.168.3.0/24 3.3.3.3 next-hop-vrf default vni 10100 dest-vtep-mac a453.0eeb.02db vlan 1,100 vlan 100 vn-segment 10100 vrf context vxlan-static vni 10100 interface Vlan100 no shutdown vrf member vxlan-static ip forward interface Ethernet1/54 vrf member vxlan-static ip address 192.168.1.254/24 no shutdown
Leaf02: feature interface-vlan feature vn-segment-vlan-based feature ofm tunnel-profile static-vxlan encapsulation vxlan source-interface loopback0 route vrf vxlan-static 192.168.1.0/24 1.1.1.1 next-hop-vrf default vni 10100 dest-vtep-mac 10b3.d68e.0767 route vrf vxlan-static 192.168.3.0/24 3.3.3.3 next-hop-vrf default vni 10100 dest-vtep-mac a453.0eeb.02db vlan 1,100 vlan 100 vn-segment 10100 vrf context vxlan-static vni 10100 interface Vlan100 no shutdown vrf member vxlan-static ip forward interface Ethernet1/54 vrf member vxlan-static ip address 192.168.2.254/24 no shutdown
Leaf03: feature fabric forwarding feature interface-vlan feature vn-segment-vlan-based feature ofm tunnel-profile static-vxlan encapsulation vxlan source-interface loopback0 route vrf vxlan-static 192.168.1.0/24 1.1.1.1 next-hop-vrf default vni 10100 dest-vtep-mac 10b3.d68e.0767 route vrf vxlan-static 192.168.2.0/24 2.2.2.2 next-hop-vrf default vni 10100 dest-vtep-mac 003a.9ca3.0e47 fabric forwarding anycast-gateway-mac 2020.0000.00aa vlan 1,100,200 vlan 100 vn-segment 10100 vrf context vxlan-static vni 10100 interface Vlan100 no shutdown vrf member vxlan-static ip forward interface Vlan200 no shutdown vrf member vxlan-static ip address 192.168.3.254/24 fabric forwarding mode anycast-gateway interface Ethernet1/1 switchport switchport access vlan 200 no shutdown
以上で設定は完了です。
ここでルーティングテーブルに設定した Static Tunnels のルートが載っているかを調べます。
結果は下記のようになりました。
Leaf01# show ip route vrf vxlan-static IP Route Table for VRF "vxlan-static" '*' denotes best ucast next-hop '**' denotes best mcast next-hop '[x/y]' denotes [preference/metric] '%<string>' in via output denotes VRF <string> 192.168.1.0/24, ubest/mbest: 1/0, attached *via 192.168.1.254, Eth1/54, [0/0], 00:13:49, direct 192.168.1.254/32, ubest/mbest: 1/0, attached *via 192.168.1.254, Eth1/54, [0/0], 00:13:49, local 192.168.2.0/24, ubest/mbest: 1/0 *via 2.2.2.2%default, [2/0], 00:06:14, ofm, ofm, segid: 10100, sourceid: 1660944385 tunnelid: 0x2020202 encap: VXLAN 192.168.3.0/24, ubest/mbest: 1/0 *via 3.3.3.3%default, [2/0], 00:04:52, ofm, ofm, segid: 10100, sourceid: 1660944385 tunnelid: 0x3030303 encap: VXLAN Leaf02# show ip route vrf vxlan-static IP Route Table for VRF "vxlan-static" '*' denotes best ucast next-hop '**' denotes best mcast next-hop '[x/y]' denotes [preference/metric] '%<string>' in via output denotes VRF <string> 192.168.1.0/24, ubest/mbest: 1/0 *via 1.1.1.1%default, [2/0], 00:05:50, ofm, ofm, segid: 10100, sourceid: 1660944385 tunnelid: 0x1010101 encap: VXLAN 192.168.2.0/24, ubest/mbest: 1/0, attached *via 192.168.2.254, Eth1/54, [0/0], 00:16:37, direct 192.168.2.254/32, ubest/mbest: 1/0, attached *via 192.168.2.254, Eth1/54, [0/0], 00:16:37, local 192.168.3.0/24, ubest/mbest: 1/0 *via 3.3.3.3%default, [2/0], 00:04:44, ofm, ofm, segid: 10100, sourceid: 1660944385 tunnelid: 0x3030303 encap: VXLAN Leaf03# show ip route vrf vxlan-static IP Route Table for VRF "vxlan-static" '*' denotes best ucast next-hop '**' denotes best mcast next-hop '[x/y]' denotes [preference/metric] '%<string>' in via output denotes VRF <string> 192.168.1.0/24, ubest/mbest: 1/0 *via 1.1.1.1%default, [2/0], 00:03:49, ofm, ofm, segid: 10100, sourceid: 1660944385 tunnelid: 0x1010101 encap: VXLAN 192.168.2.0/24, ubest/mbest: 1/0 *via 2.2.2.2%default, [2/0], 00:03:49, ofm, ofm, segid: 10100, sourceid: 1660944385 tunnelid: 0x2020202 encap: VXLAN 192.168.3.0/24, ubest/mbest: 1/0, attached *via 192.168.3.254, Vlan200, [0/0], 00:16:21, direct 192.168.3.1/32, ubest/mbest: 1/0, attached *via 192.168.3.1, Vlan200, [190/0], 00:16:20, hmm 192.168.3.254/32, ubest/mbest: 1/0, attached *via 192.168.3.254, Vlan200, [0/0], 00:16:21, local
確かにルートが載っています。
実際に VXLAN を通して通信が出来るかどうかを調べるため、L3SW01 - L3SW02、L3SW02 - L3SW03、L3SW03 - L3SW01 の3パターンで ping が成功するかどうかを調べます。
結果は下記のようになりました。
L3SW01# ping 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 56 data bytes 64 bytes from 192.168.2.1: icmp_seq=0 ttl=252 time=0.804 ms 64 bytes from 192.168.2.1: icmp_seq=1 ttl=252 time=0.669 ms 64 bytes from 192.168.2.1: icmp_seq=2 ttl=252 time=0.52 ms 64 bytes from 192.168.2.1: icmp_seq=3 ttl=252 time=0.494 ms 64 bytes from 192.168.2.1: icmp_seq=4 ttl=252 time=0.5 ms --- 192.168.2.1 ping statistics --- 5 packets transmitted, 5 packets received, 0.00% packet loss round-trip min/avg/max = 0.494/0.597/0.804 ms L3SW02# ping 192.168.3.1 PING 192.168.3.1 (192.168.3.1): 56 data bytes 64 bytes from 192.168.3.1: icmp_seq=0 ttl=252 time=0.733 ms 64 bytes from 192.168.3.1: icmp_seq=1 ttl=252 time=0.494 ms 64 bytes from 192.168.3.1: icmp_seq=2 ttl=252 time=0.513 ms 64 bytes from 192.168.3.1: icmp_seq=3 ttl=252 time=0.5 ms 64 bytes from 192.168.3.1: icmp_seq=4 ttl=252 time=0.53 ms --- 192.168.3.1 ping statistics --- 5 packets transmitted, 5 packets received, 0.00% packet loss round-trip min/avg/max = 0.494/0.554/0.733 ms L3SW03# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=252 time=0.794 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=252 time=0.547 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=252 time=0.514 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=252 time=0.581 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=252 time=0.544 ms --- 192.168.1.1 ping statistics --- 5 packets transmitted, 5 packets received, 0.00% packet loss round-trip min/avg/max = 0.514/0.595/0.794 ms
全て成功しました。
確かに VXLAN を通して通信を行うことが出来ています。
以上で本稿は終了です。
Nexus スイッチ (NX-OS) : 設定例
Cisco Nexus シリーズ : VXLAN EVPN 基本設定
Cisco Nexus シリーズ : VXLAN EVPN L3VNI 基本設定
Chapter: Configuring VXLAN: Configuring VXLAN Static Tunnels
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます