[Nexus9Kv] LLMは構成図と概要説明だけでIPv6 Unnumbered eBGP & VXLAN EVPNコンフィグを自動生成してくれるのか? L3VNIコンフィグ追加編
前回の続きです。
前回は、NX-OSで「All IPv6 Unnumbered eBGPのSpine/Leaf 3台構成」のコンフィグをLLMに作成してもらいました。
前回記事:[Nexus9Kv] LLMは構成図と概要説明だけでIPv6 Unnumbered eBGP & VXLAN EVPNコンフィグを自動生成してくれるのか?
前回の構成はL2VNIのみでした。今回は、LLMに助けてもらいながら、これをL3VNIで異なるセグメント間をルーティングする構成に拡張してみます。
先に結論をお伝えすると、追加コンフィグのたたき台はすぐに出てきましたが、route-targetの指定やIPv6まわりで手直しが必要でした。最終的には、IPv4・IPv6ともにセグメント間の疎通を確認できています。
Tips! L2VNIとL3VNI(Symmetric IRB)のおさらい
L2VNIは、VLAN(ブリッジドメイン)をVXLANで延伸するためのVNIです。同じセグメント内の通信はL2VNIで運ばれます。
L3VNIは、VRF単位でルーティングされた通信を運ぶためのVNIです。NX-OSのVXLAN EVPNでは、送信元Leafと宛先Leafの両方でルーティングするSymmetric IRBが使われ、異なるセグメント間の通信はL3VNIでカプセル化されます。そのため、各Leafは自分に存在しないセグメントのVLANやL2VNIを持たなくても、VRFとL3VNIさえあれば他セグメントへ到達できます。
L3VNIを使うには、主に「VRFとそのVNI」「L3VNI用のVLANとSVI」「nve1への
associate-vrf」「各セグメントのAnycast Gateway」「BGPのVRF設定(advertise l2vpn evpn)」の5つが必要です。
構成情報
おさらいとして、ベースの構成は以下のとおりです。

- アンダーレイ:IPv6 Unnumbered eBGP
- オーバーレイ:IPv6 Unnumbered eBGP上のVXLAN EVPN
- L2VNI:30000
- LLM:ChatGPT(GPT-5.5 Thinking)
LLMに投げたプロンプト
L3VNI化に向けたプロンプトがこちらです。前回に続きかなりラフな指示で、細かい部分はLLMに文脈から読み取ってもらう方針です。
添付の構成のvxlan evpn環境ですが、以下追加と修正コンフィグを作ってください。 ーーー あらたにL2VNI 30001を作って、NXOS16のe1/7に紐づけてください。そしてL2VNI 30000,30001をルーティングしたい ■既存コンフィグ ーーー ※前回のSpine/Leaf1/Leaf2のコンフィグをベタ貼り
ポイントは、L3VNIのVNI番号やVRF名、IPアドレス、Anycast GatewayのMACなどを一切指定していないことです。「ルーティングしたい」という目的だけを伝え、必要な要素をLLMがどこまで補完してくれるかを見てみます。
ChatGPTから返ってきた追加・修正用のコンフィグは以下のとおりです。Spineは変更不要とのことで、Leafのコンフィグのみが出力されました(機器名をクリックすると展開されます)。
Anycast Gatewayの設定、L3VNI用のVLANとSVI、VRFとroute-target、nve1への associate-vrf、BGPのVRF設定と、L3VNIに必要な要素はひととおり揃っています。
生成されたコンフィグの各要素を整理すると、次のとおりです。
| 要素 | 生成されたコンフィグ | 役割 |
|---|---|---|
| Anycast Gateway | fabric forwarding anycast-gateway-mac 0001.0001.0001fabric forwarding mode anycast-gateway | 全Leafで同じゲートウェイIP・MACを持ち、端末がどのLeafにいても同じデフォルトゲートウェイを使えるようにする |
| L3VNI用VLAN | vlan 500 / vn-segment 50000 | L3VNIをNX-OS内部で扱うためのVLAN |
| VRF | vrf context TENANT1 / vni 50000 | テナントのルーティングテーブルとL3VNIを紐づけ、RTでEVPN経路を出し入れする |
| L3VNI用SVI | interface Vlan500 / ip forward | IPアドレスを持たないSVIで、L3VNIのルーティングを有効にする |
| NVE | member vni 50000 associate-vrf | L3VNIをNVEに紐づける |
| BGP | vrf TENANT1 / advertise l2vpn evpn | VRFの経路をEVPNへ広告する |
一方で、IPv4のaddress-familyしか入っておらず、プロンプトにはないIPv6は考慮されていませんでした。
Leaf1 NXOS15
conf t
feature fabric forwarding
fabric forwarding anycast-gateway-mac 0001.0001.0001
vlan 500
name L3VNI50000
vn-segment 50000
vrf context TENANT1
vni 50000
rd 15.15.15.15:50000
address-family ipv4 unicast
route-target import 50000:50000
route-target export 50000:50000
route-target import 50000:50000 evpn
route-target export 50000:50000 evpn
interface Vlan10
description GW_VLAN10_L2VNI30000
no shutdown
vrf member TENANT1
ip address 192.168.10.254/24
fabric forwarding mode anycast-gateway
interface Vlan500
description L3VNI50000
no shutdown
vrf member TENANT1
ip forward
interface nve1
member vni 50000 associate-vrf
router bgp 65015
vrf TENANT1
address-family ipv4 unicast
advertise l2vpn evpn
end
copy running-config startup-config
Leaf2 NXOS16
conf t
feature fabric forwarding
fabric forwarding anycast-gateway-mac 0001.0001.0001
vlan 11
name VLAN11_L2VNI30001
vn-segment 30001
vlan 500
name L3VNI50000
vn-segment 50000
vrf context TENANT1
vni 50000
rd 16.16.16.16:50000
address-family ipv4 unicast
route-target import 50000:50000
route-target export 50000:50000
route-target import 50000:50000 evpn
route-target export 50000:50000 evpn
interface Ethernet1/7
description to VPC10_L2VNI30001
switchport access vlan 11
spanning-tree port type edge
no shutdown
interface Vlan10
description GW_VLAN10_L2VNI30000
no shutdown
vrf member TENANT1
ip address 192.168.10.254/24
fabric forwarding mode anycast-gateway
interface Vlan11
description GW_VLAN11_L2VNI30001
no shutdown
vrf member TENANT1
ip address 192.168.11.254/24
fabric forwarding mode anycast-gateway
interface Vlan500
description L3VNI50000
no shutdown
vrf member TENANT1
ip forward
interface nve1
member vni 30001
ingress-replication protocol bgp
member vni 50000 associate-vrf
router bgp 65016
vrf TENANT1
address-family ipv4 unicast
advertise l2vpn evpn
evpn
vni 30001 l2
rd 16.16.16.16:30001
route-target import 30001:30001
route-target export 30001:30001
end
copy running-config startup-config
コンフィグを入れてみたが・・・
生成されたコンフィグは、ぱっと見では良さそうです。ところが、そのまま投入すると、まずVRF配下の route-target import/export auto がはじかれました。auto を使う場合は both を指定する必要があるようです。
both を付けて入れ直したところ投入はできましたが、今度は端末間のPingが通りません。
ハマりポイント1:route-targetの不一致
ルーティングテーブルを確認すると、L3VNIを設定したにもかかわらず、お互いのセグメントのホスト経路が載っていませんでした。
原因は、BGPで広告されるroute-targetが固定値になっているのに、VRF側は import/export auto を使っていたことです。eBGPファブリックでは機器ごとにAS番号が異なるため、auto(ASN:VNI)で生成されるRTが機器間で一致せず、受信した経路がVRFのルーティングテーブルに取り込まれていませんでした。RTを固定値で揃えることで解消しています。
最終的には、VRF配下のroute-targetを次のように固定値で明示しています。L2VNIのRTも 30000:30000 のように固定値で揃えているので、L3VNIも同じ考え方に合わせた形です。
vrf context TENANT1
vni 40001
address-family ipv4 unicast
route-target import 40001:40001
route-target import 40001:40001 evpn
route-target export 40001:40001
route-target export 40001:40001 evpn
iBGPファブリックのように全LeafのASが同じであれば auto でもRTは一致しますが、今回のようにLeafごとにASが異なるeBGPファブリックでは、RTを明示的に揃えるのが確実です。
このあたりはLLMからは指摘されませんでした。指摘してくれたら……と思いつつ、プロンプトが雑すぎたのかもしれません。
ハマりポイント2:L3VNI用SVIの ipv6 forward
Ethernet1/7配下の端末ではIPv4しか確認できなかったため、IPv6の通信確認用にEthernet1/5へ新たに端末を接続しました。
IPv6対応はLLMと会話しながら進め、VRFとBGPにIPv6のaddress-familyを追加してもらいました。ここで地味にハマったのが、L3VNI用のInterface Vlanに ipv6 forward を入れないと、オーバーレイ上のIPv6をルーティングしてくれない点です。これに気づかず、IPv6だけPingが通らない状態でしばらく悩みました。
interface Vlan100
no shutdown
vrf member TENANT1
ip forward
ipv6 forward
L3VNI用のSVIはIPアドレスを持たないため、ip forward / ipv6 forward でそのSVI上のルーティングを明示的に有効にします。IPv4側の ip forward はLLMのコンフィグに入っていましたが、IPv6側は自分で気づく必要がありました。あわせて、VRFとBGPのVRF配下にも address-family ipv6 unicast を追加しています。
| 項目 | LLMの初回出力 | 最終コンフィグ |
|---|---|---|
| VRFのaddress-family | IPv4のみ | IPv4・IPv6 |
| VRFのroute-target | 固定値(50000:50000)※やり取りの中で auto も提案された | 固定値(40001:40001) |
| L3VNI用SVI | ip forward のみ | ip forward + ipv6 forward |
| BGPのVRF設定 | IPv4のみ | IPv4・IPv6で advertise l2vpn evpn |
| Anycast GatewayのIP | IPv4のみ | IPv4・IPv6(.254 / ::254) |
修正後のコンフィグ
IPv6確認用の端末も接続し、最終的に出来上がった構成とコンフィグがこちらです。

最終的な主なパラメータは以下のとおりです。
- VRF:TENANT1(L3VNI 40001 / VLAN 100、RT 40001:40001)
- Leaf1(NXOS15):VLAN 10 / L2VNI 30000、1.1.1.0/24・2001:db8:1:1::/64
- Leaf2(NXOS16):VLAN 20 / L2VNI 30001、1.1.2.0/24・2001:db8:1:2::/64
- Anycast Gateway:.254 / ::254(MAC 0000.1111.2222)
機器名をクリックすると、show running-configが展開されます。
Leaf1 NXOS15
NXOS15#
NXOS15# show run
!Command: show running-config
!Running configuration last done at: Sun May 31 07:25:05 2026
!Time: Sun May 31 07:28:24 2026
version 10.6(3) Bios:version
hostname NXOS15
vdc NXOS15 id 1
limit-resource vlan minimum 16 maximum 4094
limit-resource vrf minimum 2 maximum 4096
limit-resource port-channel minimum 0 maximum 511
limit-resource m4route-mem minimum 58 maximum 58
limit-resource m6route-mem minimum 8 maximum 8
nv overlay evpn
feature bgp
feature interface-vlan
feature vn-segment-vlan-based
feature nv overlay
no password strength-check
username admin password 5 $5$LOIPLK$YanhRSw53xdXJXiRxynYj6vWs1kgz9EhdStwCKrJ6s5 role network-admin
ip domain-lookup
copp profile strict
snmp-server user admin network-admin auth md5 01660C30A1C67DF66ACFBDE38366FADA7D1D priv aes-128 332D5960F4CE63EF12DBA4B9C836B9C32D17 localizedV2key
rmon event 1 log trap public description FATAL(1) owner PMON@FATAL
rmon event 2 log trap public description CRITICAL(2) owner PMON@CRITICAL
rmon event 3 log trap public description ERROR(3) owner PMON@ERROR
rmon event 4 log trap public description WARNING(4) owner PMON@WARNING
rmon event 5 log trap public description INFORMATION(5) owner PMON@INFO
fabric forwarding anycast-gateway-mac 0000.1111.2222
vlan 1,10,100
vlan 10
name VLAN10_L2VNI30000
vn-segment 30000
vlan 100
name VLAN100_L3VNI40001
vn-segment 40001
route-map RM_EVPN_NH permit 10
set ipv6 next-hop 2001:db8:100::15
vrf context TENANT1
vni 40001
rd 15.15.15.15:40001
address-family ipv4 unicast
route-target import 40001:40001
route-target import 40001:40001 evpn
route-target export 40001:40001
route-target export 40001:40001 evpn
address-family ipv6 unicast
route-target import 40001:40001
route-target import 40001:40001 evpn
route-target export 40001:40001
route-target export 40001:40001 evpn
vrf context management
interface Vlan1
interface Vlan10
no shutdown
vrf member TENANT1
ip address 1.1.1.254/24
ipv6 address 2001:db8:1:1::254/64
fabric forwarding mode anycast-gateway
interface Vlan100
no shutdown
vrf member TENANT1
ip forward
ipv6 forward
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback0
member vni 30000
ingress-replication protocol bgp
member vni 40001 associate-vrf
interface Ethernet1/1
description to NXOS14 Ethernet1/1
no switchport
ipv6 address use-link-local-only
ipv6 nd ra-interval 4 min 3
ipv6 nd ra-lifetime 10
no shutdown
<snip>
interface Ethernet1/5
switchport access vlan 10
<snip>
interface Ethernet1/7
description to VPC9
switchport access vlan 10
spanning-tree port type edge
interface Ethernet1/8
<snip>
interface loopback0
description VTEP_LOOPBACK_IPV6
ipv6 address 2001:db8:100::15/128
icam monitor scale
line console
line vty
boot nxos bootflash:/nxos64-cs.10.6.3.F.bin
router bgp 65015
router-id 15.15.15.15
bestpath as-path multipath-relax
address-family ipv6 unicast
network 2001:db8:100::15/128
address-family l2vpn evpn
neighbor Ethernet1/1
remote-as 65000
description BGP_UNNUMBERED_TO_NXOS14
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
route-map RM_EVPN_NH out
vrf TENANT1
address-family ipv4 unicast
advertise l2vpn evpn
address-family ipv6 unicast
advertise l2vpn evpn
evpn
vni 30000 l2
rd 15.15.15.15:30000
route-target import 30000:30000
route-target export 30000:30000
NXOS15#
NXOS15#
Leaf2 NXOS16
NXOS16# show run
!Command: show running-config
!Running configuration last done at: Sun May 31 07:39:54 2026
!Time: Sun May 31 09:15:18 2026
version 10.6(3) Bios:version
hostname NXOS16
vdc NXOS16 id 1
limit-resource vlan minimum 16 maximum 4094
limit-resource vrf minimum 2 maximum 4096
limit-resource port-channel minimum 0 maximum 511
limit-resource m4route-mem minimum 58 maximum 58
limit-resource m6route-mem minimum 8 maximum 8
nv overlay evpn
feature bgp
feature interface-vlan
feature vn-segment-vlan-based
feature nv overlay
no password strength-check
username admin password 5 $5$FOIMEG$ni0iwj2Wp1/jmV2grFs5tOfIEjRfbQ2OBSN/5/gF6I3 role network-admin
ip domain-lookup
copp profile strict
snmp-server user admin network-admin auth md5 530174F5905A0E7C52AEE5E6749E33ACDD1B priv aes-128 366A5F80E52C1F3AB4B4859910AE5BD03BD4 localizedV2key
rmon event 1 log trap public description FATAL(1) owner PMON@FATAL
rmon event 2 log trap public description CRITICAL(2) owner PMON@CRITICAL
rmon event 3 log trap public description ERROR(3) owner PMON@ERROR
rmon event 4 log trap public description WARNING(4) owner PMON@WARNING
rmon event 5 log trap public description INFORMATION(5) owner PMON@INFO
fabric forwarding anycast-gateway-mac 0000.1111.2222
vlan 1,10,20,100
vlan 10
name VLAN10_L2VNI30000
vn-segment 30000
vlan 20
name VLAN20_L2VNI30001
vn-segment 30001
vlan 100
name VLAN100_L3VNI40001
vn-segment 40001
route-map RM_EVPN_NH permit 10
set ipv6 next-hop 2001:db8:100::16
vrf context TENANT1
vni 40001
rd auto
address-family ipv4 unicast
route-target import 40001:40001
route-target import 40001:40001 evpn
route-target export 40001:40001
route-target export 40001:40001 evpn
address-family ipv6 unicast
route-target import 40001:40001
route-target import 40001:40001 evpn
route-target export 40001:40001
route-target export 40001:40001 evpn
vrf context management
interface Vlan1
interface Vlan20
no shutdown
vrf member TENANT1
ip address 1.1.2.254/24
ipv6 address 2001:db8:1:2::254/64
fabric forwarding mode anycast-gateway
interface Vlan100
no shutdown
vrf member TENANT1
ip forward
ipv6 forward
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback0
member vni 30001
ingress-replication protocol bgp
member vni 40001 associate-vrf
interface Ethernet1/1
description to NXOS14 Ethernet1/2
no switchport
ipv6 address use-link-local-only
ipv6 nd ra-interval 4 min 3
ipv6 nd ra-lifetime 10
no shutdown
<snip>
interface Ethernet1/5
switchport access vlan 20
<snip>
interface Ethernet1/7
description to VPC10_L2VNI30001
switchport access vlan 20
spanning-tree port type edge
<snip>
interface loopback0
description VTEP_LOOPBACK_IPV6
ipv6 address 2001:db8:100::16/128
icam monitor scale
line console
line vty
boot nxos bootflash:/nxos64-cs.10.6.3.F.bin
router bgp 65016
router-id 16.16.16.16
bestpath as-path multipath-relax
address-family ipv6 unicast
network 2001:db8:100::16/128
address-family l2vpn evpn
neighbor Ethernet1/1
remote-as 65000
description BGP_UNNUMBERED_TO_NXOS14
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
route-map RM_EVPN_NH out
vrf TENANT1
address-family ipv4 unicast
advertise l2vpn evpn
address-family ipv6 unicast
advertise l2vpn evpn
evpn
vni 30000 l2
rd 16.16.16.16:30000
route-target import 30000:30000
route-target export 30000:30000
vni 30001 l2
rd 16.16.16.16:30001
route-target import 30001:30001
route-target export 30001:30001
NXOS16#
ステータスを確認
各Leafで、対向セグメントのホスト経路をL3VNI 40001経由で学習できているかを確認します。次の順に見ていきます。
| 確認ポイント | コマンド | 見るところ |
|---|---|---|
| ① EVPNで受信している経路 | show bgp l2vpn evpn summary | Type-2(MAC/IP)経路を受信しているか |
| ② EVPN経路の取り込み先 | show bgp l2vpn evpn | 対向ホストの経路がL3VNI 40001のRDに取り込まれているか |
| ③ VRFのルーティングテーブル | show ip route vrf TENANT1show ipv6 route vrf TENANT1 | 対向ホストの/32・/128が segid 40001 のVXLAN経由で載っているか |
| ④ MACアドレステーブル | show mac address-table | L3VNI用VLAN 100とAnycast GatewayのMACが登録されているか |
以降は、主にLeaf1(NXOS15)の出力を抜粋して解説します。各機器の出力全文は、このセクションの最後に折りたたんで載せています。
なお、今回はVRFでサブネットを network などで広告していないため、Type-5(IPプレフィックス)経路は出ていません。各Leafのルーティングテーブルに載る対向の経路は、Type-2由来のホスト経路(/32・/128)だけです。通信したことのない端末(サイレントホスト)まで確実に到達させたい場合は、サブネットをType-5で広告しておくのが一般的です。
① EVPNで受信している経路
NXOS15# show bgp l2vpn evpn summary
(中略)
Neighbor T AS Type-1 Type-2 Type-3 Type-4 Type-5 Type-6 Type-7 Type-8 Type-12
fe80::520e:ff:fe00:1b08
I 65000 0 3 0 0 0 0 0 0 0
NXOS16# show bgp l2vpn evpn summary
(中略)
Neighbor T AS Type-1 Type-2 Type-3 Type-4 Type-5 Type-6 Type-7 Type-8 Type-12
fe80::520e:ff:fe00:1b08
I 65000 0 5 1 0 0 0 0 0 0
- NXOS15はType-2を3経路受信しています。これは、NXOS16配下の2台の端末のIPv4(1.1.2.1、1.1.2.3)とIPv6(2001:db8:1:2::3)の、MAC+IPの経路です。
- NXOS15のType-3が0なのは、NXOS16のType-3(IMET)がL2VNI 30001用のもので、NXOS15はL2VNI 30001を持っていない(RT 30001:30001をimportしていない)ためです。セグメント間のルーティングにはType-3は不要なので、問題ありません。
- NXOS16は、前回の名残で
evpn配下にL2VNI 30000の設定(RT 30000:30000)が残っているため、NXOS15のL2VNI 30000の経路も受信しています。そのぶん数が多くなっています。 - Type-5は0です。前述のとおり、今回はサブネットを広告していません。
② EVPN経路の取り込み先
NXOS15の show bgp l2vpn evpn を、RDごとに分けて見ていきます。まずは自分のL2VNI 30000の経路です。
NXOS15# show bgp l2vpn evpn
(中略)
Route Distinguisher: 15.15.15.15:30000 (L2VNI 30000)
*>l[2]:[0]:[0]:[48]:[0050.7966.6809]:[0]:[0.0.0.0]/216
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0012.0000]:[0]:[0.0.0.0]/216
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[0050.7966.6809]:[32]:[1.1.1.1]/272
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0012.0000]:[32]:[1.1.1.3]/272
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0012.0000]:[128]:[2001:db8:1:1::3]/368
2001:db8:100::15
100 32768 i
*>l[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
100 32768 i
自分配下の端末について、Type-2が2種類生成されています。
- MACのみ(
[0]:[0.0.0.0]/216):同じセグメント内(L2VNI)で使う経路 - MAC+IP(
[32]:[1.1.1.x]/272、[128]:[2001:db8:1:1::3]/368):ARP/NDで学習したIPを含む経路。L3VNIのRTも付いて広告され、セグメント間のルーティングに使われる
次に、NXOS16から受信した経路と、それを取り込んだL3VNI 40001の経路です。
Route Distinguisher: 16.16.16.16:30001
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[1.1.2.1]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[32]:[1.1.2.3]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[128]:[2001:db8:1:2::3]/368
2001:db8:100::16
0 65000 65016 i
Route Distinguisher: 15.15.15.15:40001 (L3VNI 40001)
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[1.1.2.1]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[32]:[1.1.2.3]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[128]:[2001:db8:1:2::3]/368
2001:db8:100::16
0 65000 65016 i
- NXOS16から受信したのは、MAC+IPの経路だけです。MACのみの経路にはL2VNI 30001のRTしか付いておらず、NXOS15ではimportされないためです。
- MAC+IPの経路にはRT 40001:40001も付いているので、L3VNI 40001のRD(15.15.15.15:40001)に取り込まれています。今回のステータス確認でいちばん見るべきポイントがここです。ハマりポイント1のRT不一致のときは、ここに経路が入っていませんでした。
- ネクストホップはNXOS16のVTEPアドレス(2001:db8:100::16)です。
NXOS16側でも、NXOS15の端末の経路がL3VNI 40001に取り込まれています。ただし、RDの表記がNXOS15とは異なります。
NXOS16# show bgp l2vpn evpn
(中略)
Route Distinguisher: 16.16.16.16:4 (L3VNI 40001)
*>e[2]:[0]:[0]:[48]:[0050.7966.6809]:[32]:[1.1.1.1]/272
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[32]:[1.1.1.3]/272
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[128]:[2001:db8:1:1::3]/368
2001:db8:100::15
0 65000 65015 i
NXOS16はVRFに rd auto を設定しているため、RDが「ルーターID:VRFの内部ID」の形式(16.16.16.16:4)で自動生成されています。NXOS15のように手動で指定しても auto でも、RDは経路を区別するためのものなので、動作に違いはありません。
なお、NXOS16の全文出力にある 16.16.16.16:30000 (L2VNI 30000) の経路には、ベストパスを示す *> が付いていません。NXOS16のnve1にL2VNI 30000(member vni 30000)がないためと考えられます。今回のルーティングには影響していません。
③ VRFのルーティングテーブル
NXOS15# show ip route vrf TENANT1
(凡例は省略)
1.1.1.0/24, ubest/mbest: 1/0, attached
*via 1.1.1.254, Vlan10, [0/0], 02:21:08, direct
1.1.1.1/32, ubest/mbest: 1/0, attached
*via 1.1.1.1, Vlan10, [190/0], 00:10:18, hmm
1.1.1.3/32, ubest/mbest: 1/0, attached
*via 1.1.1.3, Vlan10, [190/0], 00:10:18, hmm
1.1.1.254/32, ubest/mbest: 1/0, attached
*via 1.1.1.254, Vlan10, [0/0], 02:21:08, local
1.1.2.1/32, ubest/mbest: 1/0
*via 2001:db8:100::16%default, [20/0], 01:53:58, bgp-65015, external, tag 65000, segid: 40001 VTEP:(2001:db8:100::16, underlay_vrf: 1) encap: VXLAN
1.1.2.3/32, ubest/mbest: 1/0
*via 2001:db8:100::16%default, [20/0], 01:40:01, bgp-65015, external, tag 65000, segid: 40001 VTEP:(2001:db8:100::16, underlay_vrf: 1) encap: VXLAN
hmm:自分配下の端末のホスト経路です。HMM(Host Mobility Manager)がARPで学習した端末を、/32のホスト経路として登録しています。bgp-65015:NXOS16配下の端末の経路です。segid: 40001とencap: VXLANから、L3VNI 40001でカプセル化してNXOS16のVTEP(2001:db8:100::16)へ送ることが分かります。- ネクストホップの
%defaultは、VTEPのアドレスをdefault VRF(アンダーレイ)で解決するという意味です。IPv4の経路が、IPv6のアンダーレイの上で運ばれていることが読み取れます。
IPv6も同じ形で、NXOS16配下の端末(2001:db8:1:2::3)の/128が segid 40001 で載っています。
NXOS15# show ipv6 route vrf TENANT1
(凡例は省略)
2001:db8:1:1::/64, ubest/mbest: 1/0, attached
*via 2001:db8:1:1::254, Vlan10, [0/0], 02:07:29, direct
2001:db8:1:1::3/128, ubest/mbest: 1/0, attached
*via 2001:db8:1:1::3, Vlan10, [190/0], 00:10:06, hmm
2001:db8:1:1::254/128, ubest/mbest: 1/0, attached
*via 2001:db8:1:1::254, Vlan10, [0/0], 02:07:29, local
2001:db8:1:2::3/128, ubest/mbest: 1/0
*via 2001:db8:100::16%default, [20/0], 01:36:50, bgp-65015, external, tag 65000, segid 40001 VTEP:(2001:db8:100::16, underlay_vrf: 1) encap: VXLAN
サブネット(1.1.2.0/24など)は載っておらず、対向については端末単位のホスト経路だけになっています。これが、冒頭で触れたType-5を広告していない場合の状態です。
④ MACアドレステーブル
NXOS15# show mac address-table
(凡例は省略)
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 10 0050.7966.6809 dynamic NA F F Eth1/7
* 10 5000.0012.0000 dynamic NA F F Eth1/5
* 100 500f.0000.1b08 static - F F Vlan100
G - 0000.1111.2222 static - F F sup-eth1(R)
G - 500f.0000.1b08 static - F F sup-eth1(R)
G 10 500f.0000.1b08 static - F F sup-eth1(R)
G 100 500f.0000.1b08 static - F F sup-eth1(R)
- VLAN 10:自分配下の端末2台(Eth1/7、Eth1/5)
- VLAN 100:L3VNI用のVLANに、自分のRouter MAC(500f.0000.1b08)がVlan100として登録されています。
Gの0000.1111.2222:Anycast GatewayのMACです。端末はこのMACをデフォルトゲートウェイとして使います。
前回のL2VNIのときと違い、対向Leaf配下の端末のMAC(nve1経由の C エントリ)は載っていません。セグメントが異なるため通信はL3VNIでルーティングされ、対向のMACを学習する必要がないためです。
各機器のステータス出力(全文)
上で抜粋したログも含め、各機器で取得したステータスの出力全文です(機器名をクリックすると展開されます)。
Leaf1 NXOS15のステータス出力
NXOS15#
NXOS15# show bgp l2vpn evpn summary
BGP summary information for VRF default, address family L2VPN EVPN
BGP router identifier 15.15.15.15, local AS number 65015
BGP table version is 33, L2VPN EVPN config peers 1, capable peers 1
12 network entries and 12 paths using 4056 bytes of memory
BGP attribute entries [5/1840], BGP AS path entries [1/10]
BGP community entries [0/0], BGP clusterlist entries [0/0]
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
fe80::520e:ff:fe00:1b08%Ethernet1/1
4 65000 279 263 33 0 0 04:09:17 3
Neighbor T AS Type-1 Type-2 Type-3 Type-4 Type-5 Type-6 Type-7 Type-8 Type-12
fe80::520e:ff:fe00:1b08
I 65000 0 3 0 0 0 0 0 0 0
NXOS15#
NXOS15# show bgp l2vpn evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 33, Local Router ID is 15.15.15.15
Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best
Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected
Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup, 2 - best2
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 15.15.15.15:30000 (L2VNI 30000)
*>l[2]:[0]:[0]:[48]:[0050.7966.6809]:[0]:[0.0.0.0]/216
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0012.0000]:[0]:[0.0.0.0]/216
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[0050.7966.6809]:[32]:[1.1.1.1]/272
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0012.0000]:[32]:[1.1.1.3]/272
2001:db8:100::15
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0012.0000]:[128]:[2001:db8:1:1::3]/368
2001:db8:100::15
100 32768 i
*>l[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
100 32768 i
Route Distinguisher: 16.16.16.16:30001
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[1.1.2.1]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[32]:[1.1.2.3]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[128]:[2001:db8:1:2::3]/368
2001:db8:100::16
0 65000 65016 i
Route Distinguisher: 15.15.15.15:40001 (L3VNI 40001)
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[1.1.2.1]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[32]:[1.1.2.3]/272
2001:db8:100::16
0 65000 65016 i
*>e[2]:[0]:[0]:[48]:[5000.0011.0000]:[128]:[2001:db8:1:2::3]/368
2001:db8:100::16
0 65000 65016 i
NXOS15#
NXOS15# show ipv6 route vrf TENANT1
IPv6 Routing Table for VRF "TENANT1"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
2001:db8:1:1::/64, ubest/mbest: 1/0, attached
*via 2001:db8:1:1::254, Vlan10, [0/0], 02:07:29, direct
2001:db8:1:1::3/128, ubest/mbest: 1/0, attached
*via 2001:db8:1:1::3, Vlan10, [190/0], 00:10:06, hmm
2001:db8:1:1::254/128, ubest/mbest: 1/0, attached
*via 2001:db8:1:1::254, Vlan10, [0/0], 02:07:29, local
2001:db8:1:2::3/128, ubest/mbest: 1/0
*via 2001:db8:100::16%default, [20/0], 01:36:50, bgp-65015, external, tag 65000, segid 40001 VTEP:(2001:db8:100::16, underlay_vrf: 1) encap: VXLAN
NXOS15#
NXOS15#
NXOS15# show ip route vrf TENANT1
IP Route Table for VRF "TENANT1"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
1.1.1.0/24, ubest/mbest: 1/0, attached
*via 1.1.1.254, Vlan10, [0/0], 02:21:08, direct
1.1.1.1/32, ubest/mbest: 1/0, attached
*via 1.1.1.1, Vlan10, [190/0], 00:10:18, hmm
1.1.1.3/32, ubest/mbest: 1/0, attached
*via 1.1.1.3, Vlan10, [190/0], 00:10:18, hmm
1.1.1.254/32, ubest/mbest: 1/0, attached
*via 1.1.1.254, Vlan10, [0/0], 02:21:08, local
1.1.2.1/32, ubest/mbest: 1/0
*via 2001:db8:100::16%default, [20/0], 01:53:58, bgp-65015, external, tag 65000, segid: 40001 VTEP:(2001:db8:100::16, underlay_vrf: 1) encap: VXLAN
1.1.2.3/32, ubest/mbest: 1/0
*via 2001:db8:100::16%default, [20/0], 01:40:01, bgp-65015, external, tag 65000, segid: 40001 VTEP:(2001:db8:100::16, underlay_vrf: 1) encap: VXLAN
NXOS15#
NXOS15#
NXOS15# show mac address-table
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False, C - ControlPlane MAC, ~ - vsan,
(NA)- Not Applicable A - ESI Active Path, S - ESI Standby Path
TL - True Learned, PS - Peer Sync, RO - Re-originate
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 10 0050.7966.6809 dynamic NA F F Eth1/7
* 10 5000.0012.0000 dynamic NA F F Eth1/5
* 100 500f.0000.1b08 static - F F Vlan100
G - 0000.1111.2222 static - F F sup-eth1(R)
G - 500f.0000.1b08 static - F F sup-eth1(R)
G 10 500f.0000.1b08 static - F F sup-eth1(R)
G 100 500f.0000.1b08 static - F F sup-eth1(R)
NXOS15#
Leaf2 NXOS16のステータス出力
NXOS16# show bgp l2vpn evpn summary
BGP summary information for VRF default, address family L2VPN EVPN
BGP router identifier 16.16.16.16, local AS number 65016
BGP table version is 56, L2VPN EVPN config peers 1, capable peers 1
21 network entries and 21 paths using 6708 bytes of memory
BGP attribute entries [10/3680], BGP AS path entries [1/10]
BGP community entries [0/0], BGP clusterlist entries [0/0]
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
fe80::520e:ff:fe00:1b08%Ethernet1/1
4 65000 278 264 56 0 0 04:11:08 6
Neighbor T AS Type-1 Type-2 Type-3 Type-4 Type-5 Type-6 Type-7 Type-8 Type-12
fe80::520e:ff:fe00:1b08
I 65000 0 5 1 0 0 0 0 0 0
NXOS16#
NXOS16# show bgp l2vpn evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 56, Local Router ID is 16.16.16.16
Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best
Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected
Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup, 2 - best2
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 15.15.15.15:30000
*>e[2]:[0]:[0]:[48]:[0050.7966.6809]:[0]:[0.0.0.0]/216
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[0]:[0.0.0.0]/216
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[0050.7966.6809]:[32]:[1.1.1.1]/272
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[32]:[1.1.1.3]/272
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[128]:[2001:db8:1:1::3]/368
2001:db8:100::15
0 65000 65015 i
*>e[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
0 65000 65015 i
Route Distinguisher: 16.16.16.16:30000 (L2VNI 30000)
e[2]:[0]:[0]:[48]:[0050.7966.6809]:[0]:[0.0.0.0]/216
2001:db8:100::15
0 65000 65015 i
e[2]:[0]:[0]:[48]:[5000.0012.0000]:[0]:[0.0.0.0]/216
2001:db8:100::15
0 65000 65015 i
e[2]:[0]:[0]:[48]:[0050.7966.6809]:[32]:[1.1.1.1]/248
2001:db8:100::15
0 65000 65015 i
e[2]:[0]:[0]:[48]:[5000.0012.0000]:[32]:[1.1.1.3]/248
2001:db8:100::15
0 65000 65015 i
e[2]:[0]:[0]:[48]:[5000.0012.0000]:[128]:[2001:db8:1:1::3]/344
2001:db8:100::15
0 65000 65015 i
e[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
0 65000 65015 i
Route Distinguisher: 16.16.16.16:30001 (L2VNI 30001)
*>l[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
2001:db8:100::16
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0011.0000]:[0]:[0.0.0.0]/216
2001:db8:100::16
100 32768 i
*>l[2]:[0]:[0]:[48]:[0050.7966.680a]:[32]:[1.1.2.1]/272
2001:db8:100::16
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0011.0000]:[32]:[1.1.2.3]/272
2001:db8:100::16
100 32768 i
*>l[2]:[0]:[0]:[48]:[5000.0011.0000]:[128]:[2001:db8:1:2::3]/368
2001:db8:100::16
100 32768 i
*>l[3]:[0]:[128]:[2001:db8:100::16]/184
2001:db8:100::16
100 32768 i
Route Distinguisher: 16.16.16.16:4 (L3VNI 40001)
*>e[2]:[0]:[0]:[48]:[0050.7966.6809]:[32]:[1.1.1.1]/272
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[32]:[1.1.1.3]/272
2001:db8:100::15
0 65000 65015 i
*>e[2]:[0]:[0]:[48]:[5000.0012.0000]:[128]:[2001:db8:1:1::3]/368
2001:db8:100::15
0 65000 65015 i
NXOS16#
NXOS16# show ip route vrf TENANT1
IP Route Table for VRF "TENANT1"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>
1.1.1.1/32, ubest/mbest: 1/0
*via 2001:db8:100::15%default, [20/0], 01:55:27, bgp-65016, external, tag 65000, segid: 40001 VTEP:(2001:db8:100::15, underlay_vrf: 1) encap: VXLAN
1.1.1.3/32, ubest/mbest: 1/0
*via 2001:db8:100::15%default, [20/0], 01:41:50, bgp-65016, external, tag 65000, segid: 40001 VTEP:(2001:db8:100::15, underlay_vrf: 1) encap: VXLAN
1.1.2.0/24, ubest/mbest: 1/0, attached
*via 1.1.2.254, Vlan20, [0/0], 02:08:36, direct
1.1.2.1/32, ubest/mbest: 1/0, attached
*via 1.1.2.1, Vlan20, [190/0], 00:11:57, hmm
1.1.2.3/32, ubest/mbest: 1/0, attached
*via 1.1.2.3, Vlan20, [190/0], 00:41:58, hmm
1.1.2.254/32, ubest/mbest: 1/0, attached
*via 1.1.2.254, Vlan20, [0/0], 02:08:36, local
NXOS16#
NXOS16# show ipv6 route vrf TENANT1
IPv6 Routing Table for VRF "TENANT1"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
2001:db8:1:1::3/128, ubest/mbest: 1/0
*via 2001:db8:100::15%default, [20/0], 01:38:15, bgp-65016, external, tag 65000, segid 40001 VTEP:(2001:db8:100::15, underlay_vrf: 1) encap: VXLAN
2001:db8:1:2::/64, ubest/mbest: 1/0, attached
*via 2001:db8:1:2::254, Vlan20, [0/0], 02:08:39, direct
2001:db8:1:2::3/128, ubest/mbest: 1/0, attached
*via 2001:db8:1:2::3, Vlan20, [190/0], 00:42:03, hmm
2001:db8:1:2::254/128, ubest/mbest: 1/0, attached
*via 2001:db8:1:2::254, Vlan20, [0/0], 02:08:39, local
NXOS16#
NXOS16# show mac address-table
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False, C - ControlPlane MAC, ~ - vsan,
(NA)- Not Applicable A - ESI Active Path, S - ESI Standby Path
TL - True Learned, PS - Peer Sync, RO - Re-originate
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 20 0050.7966.680a dynamic NA F F Eth1/7
* 20 5000.0011.0000 dynamic NA F F Eth1/5
* 100 5010.0000.1b08 static - F F Vlan100
G - 0000.1111.2222 static - F F sup-eth1(R)
G - 5010.0000.1b08 static - F F sup-eth1(R)
G 20 5010.0000.1b08 static - F F sup-eth1(R)
G 100 5010.0000.1b08 static - F F sup-eth1(R)
NXOS16#
端末間の疎通確認
IPv6確認用に接続した端末(CSR18、CSR17)同士で、IPv4・IPv6ともにPingが通りました。
端末1 CSR18(Leaf1配下:1.1.1.3 / 2001:db8:1:1::3)
Router#show run int gi1 Building configuration... Current configuration : 149 bytes ! interface GigabitEthernet1 ip address 1.1.1.3 255.255.255.0 negotiation auto ipv6 address 2001:DB8:1:1::3/64 no mop enabled no mop sysid end Router# Router# Router#ping 1.1.2.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.2.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/7 ms Router# Router#ping 2001:DB8:1:2::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:DB8:1:2::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms Router#
端末2 CSR17(Leaf2配下:1.1.2.3 / 2001:db8:1:2::3)
Router#show run int gi1 Building configuration... Current configuration : 149 bytes ! interface GigabitEthernet1 ip address 1.1.2.3 255.255.255.0 negotiation auto ipv6 address 2001:DB8:1:2::3/64 no mop enabled no mop sysid end Router# Router#ping 1.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/11/38 ms Router# Router#ping 2001:DB8:1:1::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:DB8:1:1::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 5/6/7 ms Router#
前回のL2VNIでは片方向しか通信できませんでしたが、今回のL3VNI構成ではIPv4・IPv6ともに双方向の疎通を確認できました。
まとめ
- 追加コンフィグのたたき台はすぐに出てくる。L3VNIに必要なVRF、SVI、Anycast Gateway、BGPの設定がひととおり揃った状態で、短時間で作成できました。
- route-targetの整合性は人が確認する必要がある。eBGPファブリックでのRTの扱いなど、環境に依存する部分の不整合はLLMからは指摘されませんでした。
- IPv6は抜けやすい。L3VNI用SVIの
ipv6 forwardのように、IPv4だけなら不要な設定は見落としがちでした。
次はプロンプトをこう書いてみたい
今回の反省を踏まえると、次のような情報を最初からプロンプトに入れておけば、手戻りはかなり減らせそうです。
- eBGPファブリックで、LeafごとにAS番号が異なること
- route-targetは
autoを使わず、<VNI>:<VNI>の固定値で揃えること - IPv4・IPv6のデュアルスタックで構成すること
- L3VNIのVNI番号、VRF名、各セグメントのサブネットとゲートウェイアドレス
- サブネットをType-5で広告するかどうか
既存のIPv6 unnumbered eBGP VXLAN EVPN環境(LeafごとにASが異なる)に、
L3VNIを追加するコンフィグを作ってください。
- VRF: TENANT1、L3VNI: 40001(VLAN 100)
- RTは auto を使わず、40001:40001 の固定値で設定
- IPv4/IPv6デュアルスタック(L3VNI用SVIには ip forward / ipv6 forward)
- NXOS15: VLAN10 / L2VNI 30000、1.1.1.254/24、2001:db8:1:1::254/64
- NXOS16: VLAN20 / L2VNI 30001、1.1.2.254/24、2001:db8:1:2::254/64
- Anycast Gateway MAC: 0000.1111.2222
■既存コンフィグ
(Spine/Leaf1/Leaf2のコンフィグ)
普通に調べながら作れば、それなりに時間がかかる内容だと思います。LLMを使うことで、そのベースをかなり短時間で作成できました。もう少し丁寧にプロンプトを書けば、さらに精度も上がりそうです。LLMはネットワークエンジニアにとっても、かなり心強い味方になりそうだと感じました。










ディスカッション
コメント一覧
まだ、コメントがありません