[Nexus9Kv] LLMは構成図と概要説明だけでIPv6 Unnumbered eBGP & VXLAN EVPNコンフィグを自動生成してくれるのか?
久しぶりの投稿です。
ここ数年でLLMは驚くほどのスピードで進化し、ソフトウェア開発ではLLMによるコード生成がすっかり当たり前になりました。ネットワーク業界でも、各ベンダーからLLMを活用したソリューションが次々とリリースされています。
とはいえ、この面白い進化をベンダーのソリューションに任せるだけではもったいないところです。個々の組織でどこまで活用できるのか、いろいろと実験していきたいと思います。
今回のお題は、
NX-OSで、All IPv6 Unnumbered eBGPのSpine/Leaf(3台構成)のコンフィグをLLMに作ってもらう
というものです。
「もうファブリックの中にIPv4は要らないでしょう」ということで、RFC5549/8950(IPv4経路をIPv6ネクストホップで運ぶ方式)ですらない、アンダーレイもVTEPもIPv6だけのモダンな構成を題材にしました。
先に結論をお伝えすると、かなりラフなプロンプトと構成情報でも、ベースとなるコンフィグは作成してくれました。ただし、そのままでは投入できず、いくつか手直しが必要でした。
構成情報とプロンプト
今回は、Spine 1台とLeaf 2台の以下のシンプルな構成で試しました。

L2VNIを1つ作成し、オーバーレイ越しにLeaf配下のエンドポイント同士をL2で接続するためのスイッチコンフィグを生成してもらいます。
- アンダーレイ:IPv6 Unnumbered eBGP
- オーバーレイ:IPv6 Unnumbered eBGP上のVXLAN EVPN
- L2VNI:30000(VLAN 10)
- スイッチ:Nexus 9000v(NX-OS 10.6(3))
- LLM:ChatGPT(GPT-5.5 Thinking)
プロンプト
上の構成図を添付したうえで、次のような短い指示だけを渡しています。
nexus 9kvで添付の構成を元にIPv6 unnumbered bgpを利用したVXLAN EVPNのconfigを作って
Nexus 9000v: version 10.6(3)
NXOS14: spine
NXOS15: leaf
NXOS16: leaf
L2 VNIでVNIは30000
NXOS15:e1/7はaccess modeのvlan 10
NXOS16:e1/7はaccess modeのvlan 10
LoopbackはIPv6で
生成されたコンフィグ
生成されたコンフィグは以下のとおりです(機器名をクリックすると展開されます)。Spine/Leafの役割分担、AS番号の振り方、EVPNの基本設定など、構成としてはおおむね筋が通っています。
Spine NXOS14
conf t
hostname NXOS14
feature bgp
feature nv overlay
nv overlay evpn
! IPv6 LLA / BGP unnumbered を使う場合
! 実機では copy run start + reload が必要
! Nexus 9000v では環境により不要/非対応の場合あり
hardware access-list tcam region ing-sup 768
interface Ethernet1/1
description to NXOS15 Ethernet1/1
no switchport
ipv6 enable
no shutdown
interface Ethernet1/2
description to NXOS16 Ethernet1/1
no switchport
ipv6 enable
no shutdown
interface loopback0
description SPINE_LOOPBACK
ipv6 address 2001:db8:100::14/128
no shutdown
router bgp 65000
router-id 14.14.14.14
bestpath as-path multipath-relax
address-family ipv6 unicast
network 2001:db8:100::14/128
address-family l2vpn evpn
retain route-target all
neighbor Ethernet1/1
description BGP_UNNUMBERED_TO_NXOS15
remote-as 65015
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
next-hop-unchanged
neighbor Ethernet1/2
description BGP_UNNUMBERED_TO_NXOS16
remote-as 65016
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
next-hop-unchanged
end
Leaf1 NXOS15
conf t
hostname NXOS15
feature bgp
feature nv overlay
feature vn-segment-vlan-based
feature interface-vlan
nv overlay evpn
! IPv6 LLA / BGP unnumbered を使う場合
! 実機では copy run start + reload が必要
! Nexus 9000v では環境により不要/非対応の場合あり
hardware access-list tcam region ing-sup 768
vlan 10
name VLAN10_L2VNI30000
vn-segment 30000
interface Ethernet1/1
description to NXOS14 Ethernet1/1
no switchport
ipv6 enable
no shutdown
interface Ethernet1/7
description to VPC9
switchport
switchport mode access
switchport access vlan 10
spanning-tree port type edge
no shutdown
interface loopback0
description VTEP_LOOPBACK_IPV6
ipv6 address 2001:db8:100::15/128
no shutdown
interface nve1
no shutdown
source-interface loopback0
host-reachability protocol bgp
member vni 30000
ingress-replication protocol bgp
evpn
vni 30000 l2
rd 15.15.15.15:30000
route-target import 30000:30000
route-target export 30000:30000
route-map RM_EVPN_NH permit 10
set ipv6 next-hop 2001:db8:100::15
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
advertise-all-vni
neighbor Ethernet1/1
description BGP_UNNUMBERED_TO_NXOS14
remote-as 65000
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
route-map RM_EVPN_NH out
end
Leaf2 NXOS16
conf t
hostname NXOS16
feature bgp
feature nv overlay
feature vn-segment-vlan-based
feature interface-vlan
nv overlay evpn
! IPv6 LLA / BGP unnumbered を使う場合
! 実機では copy run start + reload が必要
! Nexus 9000v では環境により不要/非対応の場合あり
hardware access-list tcam region ing-sup 768
vlan 10
name VLAN10_L2VNI30000
vn-segment 30000
interface Ethernet1/1
description to NXOS14 Ethernet1/2
no switchport
ipv6 enable
no shutdown
interface Ethernet1/7
description to VPC10
switchport
switchport mode access
switchport access vlan 10
spanning-tree port type edge
no shutdown
interface loopback0
description VTEP_LOOPBACK_IPV6
ipv6 address 2001:db8:100::16/128
no shutdown
interface nve1
no shutdown
source-interface loopback0
host-reachability protocol bgp
member vni 30000
ingress-replication protocol bgp
evpn
vni 30000 l2
rd 16.16.16.16:30000
route-target import 30000:30000
route-target export 30000:30000
route-map RM_EVPN_NH permit 10
set ipv6 next-hop 2001:db8:100::16
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
advertise-all-vni
neighbor Ethernet1/1
description BGP_UNNUMBERED_TO_NXOS14
remote-as 65000
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
route-map RM_EVPN_NH out
end
コンフィグ投入時のエラーと修正
まずは何も考えずにそのまま投入してみたところ、以下の設定がエラーではじかれました。
hardware access-list tcam region ing-sup 768
unchange-update
ipv6 enable
hardware コマンドは物理機器向けのTCAM設定なので、今回は無視します。残りはIOS系のコマンドと混同しているようでした。そこで、以下のCiscoのドキュメントを添えて、LLMに修正を依頼しました。
Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide, Release 10.6(x) – Configuring BGP
返ってきた修正案は次のとおりです。まず、IPv6 Unnumbered用のインタフェース設定が、リンクローカルアドレスのみを使う設定とRA(Router Advertisement)の設定に置き換わりました。
ipv6 enable
↓
ipv6 address use-link-local-only
ipv6 nd ra-interval 4 min 3
ipv6 nd ra-lifetime 10
また、SpineでEVPN経路のネクストホップを変えずに中継するための設定も、NX-OSの書き方であるroute-mapに修正されました。
next-hop-unchanged
↓
route-map NEXT-HOP-UNCH permit 10
set ipv6 next-hop unchanged
その後も何度かやり取りを重ね、最終的にコンフィグを投入できる状態になりました。
修正後のコンフィグ
修正後のshow running-configは以下のとおりです(機器名をクリックすると展開されます。未使用のインタフェースなどは省略しています)。
Spine NXOS14(修正後)
NXOS14# show run
!Command: show running-config
!Running configuration last done at: Sat May 30 10:40:25 2026
!Time: Sat May 30 23:51:22 2026
version 10.6(3) Bios:version
hostname NXOS14
vdc NXOS14 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 nv overlay
no password strength-check
username admin password 5 $5$KIHFBC$mO1JQBJsy3wnQqTTwOPbQXbC7C8m6KjTeLowOzTZg0A role network-admin
ip domain-lookup
copp profile strict
snmp-server user admin network-admin auth md5 3743A1BE85C6174BD940D1DFDCBADA6D6471 priv aes-128 366AB8E39F9C37008E5890DDCCA6826B3B03 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
vlan 1
route-map NEXT-HOP-UNCH permit 10
set ip next-hop unchanged
set ipv6 next-hop unchanged
vrf context management
interface Ethernet1/1
description to NXOS15 Ethernet1/1
no switchport
ipv6 address use-link-local-only
ipv6 nd ra-interval 4 min 3
ipv6 nd ra-lifetime 10
no shutdown
interface Ethernet1/2
description to NXOS16 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 loopback0
description SPINE_LOOPBACK
ipv6 address 2001:db8:100::14/128
icam monitor scale
line console
line vty
boot nxos bootflash:/nxos64-cs.10.6.3.F.bin
router bgp 65000
router-id 14.14.14.14
bestpath as-path multipath-relax
address-family ipv6 unicast
network 2001:db8:100::14/128
address-family l2vpn evpn
retain route-target all
neighbor Ethernet1/1
remote-as 65015
description BGP_UNNUMBERED_TO_NXOS15
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
route-map NEXT-HOP-UNCH out
neighbor Ethernet1/2
remote-as 65016
description BGP_UNNUMBERED_TO_NXOS16
address-family ipv6 unicast
address-family l2vpn evpn
send-community
send-community extended
route-map NEXT-HOP-UNCH out
NXOS14#
Leaf1 NXOS15(修正後)
NXOS15# show run
!Command: show running-config
!Running configuration last done at: Sat May 30 23:49:34 2026
!Time: Sat May 30 23:52:32 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
vlan 1,10
vlan 10
name VLAN10_L2VNI30000
vn-segment 30000
route-map RM_EVPN_NH permit 10
set ipv6 next-hop 2001:db8:100::15
vrf context management
interface Vlan1
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback0
member vni 30000
ingress-replication protocol bgp
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/7
description to VPC9
switchport access vlan 10
spanning-tree port type edge
<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
evpn
vni 30000 l2
rd 15.15.15.15:30000
route-target import 30000:30000
route-target export 30000:30000
NXOS15#
Leaf2 NXOS16(修正後)
NXOS16# show run
!Command: show running-config
!Running configuration last done at: Sat May 30 23:50:56 2026
!Time: Sat May 30 23:52:34 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
vlan 1,10
vlan 10
name VLAN10_L2VNI30000
vn-segment 30000
route-map RM_EVPN_NH permit 10
set ipv6 next-hop 2001:db8:100::16
vrf context management
interface Vlan1
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback0
member vni 30000
ingress-replication protocol bgp
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/7
description to VPC10
switchport access vlan 10
spanning-tree port type edge
<snip>
interface mgmt0
vrf member management
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
evpn
vni 30000 l2
rd 16.16.16.16:30000
route-target import 30000:30000
route-target export 30000:30000
NXOS16#
各ステータス
修正後の状態を、アンダーレイ → オーバーレイ → VXLANデータプレーンの順に確認していきます。結論から言うと、制御プレーンは問題なく動作していました。
| 確認ポイント | コマンド | 見るところ |
|---|---|---|
| アンダーレイのBGP | show bgp ipv6 unicast summary | リンクローカルアドレスでピアが確立しているか |
| VTEP間の到達性 | show ipv6 route | 対向Leafのloopback0を学習しているか |
| オーバーレイのBGP | show bgp l2vpn evpn summary | Type-2/Type-3経路を受信しているか |
| EVPN経路の中身 | show bgp l2vpn evpn | ネクストホップが対向VTEPのままになっているか |
| NVEピア | show nve peers / show nve interface | 対向VTEPがUpか、送信元がIPv6か |
| MAC学習 | show mac address-table | 対向のエンドポイントのMACをnve1経由で学習しているか |
以降は主にSpine(NXOS14)とLeaf1(NXOS15)の出力で解説します。各機器の出力全文は、このセクションの最後に折りたたんで載せています。
① アンダーレイ:IPv6 Unnumbered eBGP
BGPセッション(Spine NXOS14)
NXOS14# show bgp ipv6 unicast sum
BGP summary information for VRF default, address family IPv6 Unicast
BGP router identifier 14.14.14.14, local AS number 65000
BGP table version is 13, IPv6 Unicast config peers 2, capable peers 2
3 network entries and 3 paths using 1128 bytes of memory
BGP attribute entries [3/1104], BGP AS path entries [2/12]
BGP community entries [0/0], BGP clusterlist entries [0/0]
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
fe80::520f:ff:fe00:1b08%Ethernet1/1
4 65015 828 833 13 0 0 00:00:54 1
fe80::5210:ff:fe00:1b08%Ethernet1/2
4 65016 830 832 13 0 0 00:00:55 1
- ネイバーが
fe80::…%Ethernet1/1のようにリンクローカルアドレス+インタフェースで表示されています。インタフェースにグローバルアドレスを設定せず、RAで見つけた対向のリンクローカルアドレスとピアを張る、IPv6 Unnumberedならではの表示です。 - AS 65015(NXOS15)、AS 65016(NXOS16)の両方とセッションが確立し、それぞれから1経路(各Leafのloopback0)を受信しています。
VTEP間の到達性(Leaf1 NXOS15)
NXOS15# show ipv6 route
IPv6 Routing Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
2001:db8:100::14/128, ubest/mbest: 1/0
*via fe80::520e:ff:fe00:1b08, Eth1/1, [20/0], 00:02:17, bgp-65015, external, tag 65000
2001:db8:100::15/128, ubest/mbest: 2/0, attached
*via 2001:db8:100::15, Lo0, [0/0], 13:37:06, direct
*via 2001:db8:100::15, Lo0, [0/0], 13:37:06, local
2001:db8:100::16/128, ubest/mbest: 1/0
*via fe80::520e:ff:fe00:1b08, Eth1/1, [20/0], 00:02:17, bgp-65015, external, tag 65000
対向LeafのVTEPアドレス(2001:db8:100::16)を、SpineのリンクローカルアドレスをネクストホップとしてeBGPで学習しています。これでVTEP同士がIPv6だけで到達できる状態になりました。
② オーバーレイ:L2VPN EVPN
EVPNセッションと経路タイプ(Spine NXOS14)
NXOS14# show bgp l2 evpn sum
(中略)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
fe80::520f:ff:fe00:1b08%Ethernet1/1
4 65015 828 833 29 0 0 00:00:54 2
fe80::5210:ff:fe00:1b08%Ethernet1/2
4 65016 830 832 29 0 0 00:00:55 2
Neighbor T AS Type-1 Type-2 Type-3 Type-4 Type-5 Type-6 Type-7 Type-8 Type-12
fe80::520f:ff:fe00:1b08
I 65015 0 1 1 0 0 0 0 0 0
fe80::5210:ff:fe00:1b08
I 65016 0 1 1 0 0 0 0 0 0
EVPNのセッションも、アンダーレイと同じリンクローカルアドレスで確立しています。下段の表から、各Leafから次の2経路を受信していることが分かります。
- Type-2(MAC/IP):Leaf配下のエンドポイントのMACアドレス
- Type-3(IMET):BUMトラフィックをIngress Replicationで送る先(VTEP)の通知
Spine自身はVTEPではありませんが、retain route-target all によって、自分にVNIがなくてもEVPN経路を保持して中継できています。
対向から受信したEVPN経路(Leaf1 NXOS15)
show bgp l2 evpn の出力を、RD(Route Distinguisher)ごとに分けて見ていきます。まずは、NXOS16から受信したままの経路(RD 16.16.16.16:30000)です。
NXOS15# show bgp l2 evpn
(中略)
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 16.16.16.16:30000
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
2001:db8:100::16
0 65000 65016 i
*>e[3]:[0]:[128]:[2001:db8:100::16]/184
2001:db8:100::16
0 65000 65016 i
[2]はNXOS16配下のエンドポイント(0050.7966.680a)のMAC経路、[3]はNXOS16のVTEP(2001:db8:100::16)のIMET経路です。- ネクストホップがSpineではなく、NXOS16のVTEPアドレス(2001:db8:100::16)のままになっています。Spineの
route-map NEXT-HOP-UNCH(set ipv6 next-hop unchanged)が効いている証拠です。ここがSpineのアドレスに書き換わると、VXLANのトンネル先が正しくなりません。 - AS Pathは
65000 65016で、Spine経由のeBGPで届いていることが分かります。
続いて、自分のL2VNI 30000のRD(15.15.15.15:30000)の経路です。
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
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
2001:db8:100::16
0 65000 65016 i
*>l[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
100 32768 i
*>e[3]:[0]:[128]:[2001:db8:100::16]/184
2001:db8:100::16
0 65000 65016 i
l(local)の経路は、自分配下のエンドポイント(0050.7966.6809)と自分のVTEPの経路で、これを対向へ広告しています。e(external)の経路は、NXOS16から受信した経路です。Route Target30000:30000が一致したため、自分のL2VNI 30000にインポートされています。
③ VXLANデータプレーン(NVE)
NVEピアとインタフェース(Leaf1 NXOS15)
NXOS15# show nve peer
Interface Peer-IP State LearnType Uptime Router-Mac
--------- -------------------------------------- ----- --------- -------- -----------------
nve1 2001:db8:100::16 Up CP 00:02:16 n/a
NXOS15# show nve interface
Interface: nve1, State: Up, encapsulation: VXLAN
VPC Capability: VPC-VIP-Only [not-notified]
Local Router MAC: 500f.0000.1b08
Host Learning Mode: Control-Plane
Source-Interface: loopback0 (primary: 2001:db8:100::15, secondary: 0.0.0.0)
- 対向VTEP(
2001:db8:100::16)がUpしています。LearnTypeのCPは、EVPN(Control Plane)で学習したピアであることを示します。 - VTEPの送信元はloopback0のIPv6アドレス(primary:
2001:db8:100::15)で、IPv4(secondary)は0.0.0.0です。VTEPもIPv6だけで動いていることが確認できます。 - L2VNIのみの構成のため、Router-Macは
n/aです(L3VNIを使うとここに対向のRouter MACが入ります)。
MACアドレステーブル(Leaf1 NXOS15)
NXOS15# show mac add
(凡例は省略)
VLAN MAC Address Type age Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
* 10 0050.7966.6809 dynamic NA F F Eth1/7
C 10 0050.7966.680a dynamic NA F F nve1(2001:db8:100::16)
G - 500f.0000.1b08 static - F F sup-eth1(R)
0050.7966.6809:自分配下のエンドポイント。Eth1/7でデータプレーン学習しています。0050.7966.680a:NXOS16配下のエンドポイント。先頭のC(ControlPlane MAC)のとおりEVPNのType-2経路から学習し、出力先はnve1(2001:db8:100::16)になっています。
ここまでで、アンダーレイ、オーバーレイ、NVEのいずれも想定どおりで、制御プレーン上は通信できる状態になっていることが確認できました。
各機器のステータス出力(全文)
上で抜粋したログも含め、各機器で取得したステータスの出力全文です(機器名をクリックすると展開されます)。NXOS16もNXOS15と対になる結果で、show bgp ipv6 unicast ではNXOS15のloopback0がAS Path 65000 65015 で届いていることも確認できます。
Spine NXOS14のステータス出力
NXOS14# show bgp ipv6 unicast sum
BGP summary information for VRF default, address family IPv6 Unicast
BGP router identifier 14.14.14.14, local AS number 65000
BGP table version is 13, IPv6 Unicast config peers 2, capable peers 2
3 network entries and 3 paths using 1128 bytes of memory
BGP attribute entries [3/1104], BGP AS path entries [2/12]
BGP community entries [0/0], BGP clusterlist entries [0/0]
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
fe80::520f:ff:fe00:1b08%Ethernet1/1
4 65015 828 833 13 0 0 00:00:54 1
fe80::5210:ff:fe00:1b08%Ethernet1/2
4 65016 830 832 13 0 0 00:00:55 1
NXOS14#
NXOS14# show bgp l2 evpn sum
BGP summary information for VRF default, address family L2VPN EVPN
BGP router identifier 14.14.14.14, local AS number 65000
BGP table version is 29, L2VPN EVPN config peers 2, capable peers 2
4 network entries and 4 paths using 1456 bytes of memory
BGP attribute entries [4/1472], BGP AS path entries [2/12]
BGP community entries [0/0], BGP clusterlist entries [0/0]
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
fe80::520f:ff:fe00:1b08%Ethernet1/1
4 65015 828 833 29 0 0 00:00:54 2
fe80::5210:ff:fe00:1b08%Ethernet1/2
4 65016 830 832 29 0 0 00:00:55 2
Neighbor T AS Type-1 Type-2 Type-3 Type-4 Type-5 Type-6 Type-7 Type-8 Type-12
fe80::520f:ff:fe00:1b08
I 65015 0 1 1 0 0 0 0 0 0
fe80::5210:ff:fe00:1b08
I 65016 0 1 1 0 0 0 0 0 0
NXOS14#
Leaf1 NXOS15のステータス出力
NXOS15# show ipv6 route
IPv6 Routing Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
2001:db8:100::14/128, ubest/mbest: 1/0
*via fe80::520e:ff:fe00:1b08, Eth1/1, [20/0], 00:02:17, bgp-65015, external, tag 65000
2001:db8:100::15/128, ubest/mbest: 2/0, attached
*via 2001:db8:100::15, Lo0, [0/0], 13:37:06, direct
*via 2001:db8:100::15, Lo0, [0/0], 13:37:06, local
2001:db8:100::16/128, ubest/mbest: 1/0
*via fe80::520e:ff:fe00:1b08, Eth1/1, [20/0], 00:02:17, bgp-65015, external, tag 65000
NXOS15#
NXOS15# show bgp ipv6 unicast sum
BGP summary information for VRF default, address family IPv6 Unicast
BGP router identifier 15.15.15.15, local AS number 65015
BGP table version is 12, IPv6 Unicast config peers 1, capable peers 1
3 network entries and 3 paths using 1128 bytes of memory
BGP attribute entries [3/1104], BGP AS path entries [2/16]
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 839 823 12 0 0 00:02:17 2
NXOS15#
NXOS15# show bgp l2 evpn sum
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 31, L2VPN EVPN config peers 1, capable peers 1
6 network entries and 6 paths using 1976 bytes of memory
BGP attribute entries [6/2208], 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 839 823 31 0 0 00:02:17 2
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 1 1 0 0 0 0 0 0
NXOS15# show bgp l2 evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 31, 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
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
2001:db8:100::16
0 65000 65016 i
*>l[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
100 32768 i
*>e[3]:[0]:[128]:[2001:db8:100::16]/184
2001:db8:100::16
0 65000 65016 i
Route Distinguisher: 16.16.16.16:30000
*>e[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
2001:db8:100::16
0 65000 65016 i
*>e[3]:[0]:[128]:[2001:db8:100::16]/184
2001:db8:100::16
0 65000 65016 i
NXOS15#
NXOS15# show nve peer
Interface Peer-IP State LearnType Uptime Router-Mac
--------- -------------------------------------- ----- --------- -------- -----------------
nve1 2001:db8:100::16 Up CP 00:02:16 n/a
NXOS15# show nve interface
Interface: nve1, State: Up, encapsulation: VXLAN
VPC Capability: VPC-VIP-Only [not-notified]
Local Router MAC: 500f.0000.1b08
Host Learning Mode: Control-Plane
Source-Interface: loopback0 (primary: 2001:db8:100::15, secondary: 0.0.0.0)
NXOS15#
NXOS15# show mac add
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
C 10 0050.7966.680a dynamic NA F F nve1(2001:db8:100::16)
G - 500f.0000.1b08 static - F F sup-eth1(R)
NXOS15#
Leaf2 NXOS16のステータス出力
NXOS16# show ipv6 route
IPv6 Routing Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
2001:db8:100::14/128, ubest/mbest: 1/0
*via fe80::520e:ff:fe00:1b08, Eth1/1, [20/0], 00:01:02, bgp-65016, external, tag 65000
2001:db8:100::15/128, ubest/mbest: 1/0
*via fe80::520e:ff:fe00:1b08, Eth1/1, [20/0], 00:01:01, bgp-65016, external, tag 65000
2001:db8:100::16/128, ubest/mbest: 2/0, attached
*via 2001:db8:100::16, Lo0, [0/0], 13:35:43, direct
*via 2001:db8:100::16, Lo0, [0/0], 13:35:43, local
NXOS16#
NXOS16# show bgp ipv6 unicast sum
BGP summary information for VRF default, address family IPv6 Unicast
BGP router identifier 16.16.16.16, local AS number 65016
BGP table version is 12, IPv6 Unicast config peers 1, capable peers 1
3 network entries and 3 paths using 1128 bytes of memory
BGP attribute entries [3/1104], BGP AS path entries [2/16]
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 839 824 12 0 0 00:01:02 2
NXOS16# show bgp ipv6 unicast
BGP routing table information for VRF default, address family IPv6 Unicast
BGP table version is 12, 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
*>e2001:db8:100::14/128
fe80::520e:ff:fe00:1b08
0 65000 i
*>e2001:db8:100::15/128
fe80::520e:ff:fe00:1b08
0 65000 65015 i
*>l2001:db8:100::16/128
0:: 100 32768 i
NXOS16#
NXOS16# show bgp l2 evpn sum
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 31, L2VPN EVPN config peers 1, capable peers 1
6 network entries and 6 paths using 1976 bytes of memory
BGP attribute entries [6/2208], 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 839 824 31 0 0 00:01:02 2
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 1 1 0 0 0 0 0 0
NXOS16# show bgp l2 evpn
BGP routing table information for VRF default, address family L2VPN EVPN
BGP table version is 31, 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[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
*>l[2]:[0]:[0]:[48]:[0050.7966.680a]:[0]:[0.0.0.0]/216
2001:db8:100::16
100 32768 i
*>e[3]:[0]:[128]:[2001:db8:100::15]/184
2001:db8:100::15
0 65000 65015 i
*>l[3]:[0]:[128]:[2001:db8:100::16]/184
2001:db8:100::16
100 32768 i
NXOS16#
NXOS16# show nve peer
Interface Peer-IP State LearnType Uptime Router-Mac
--------- -------------------------------------- ----- --------- -------- -----------------
nve1 2001:db8:100::15 Up CP 00:01:01 n/a
NXOS16# show nve interface
Interface: nve1, State: Up, encapsulation: VXLAN
VPC Capability: VPC-VIP-Only [not-notified]
Local Router MAC: 5010.0000.1b08
Host Learning Mode: Control-Plane
Source-Interface: loopback0 (primary: 2001:db8:100::16, secondary: 0.0.0.0)
NXOS16#
NXOS16# show mac add
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
---------+-----------------+--------+---------+------+----+------------------
C 10 0050.7966.6809 dynamic NA F F nve1(2001:db8:100::15)
* 10 0050.7966.680a dynamic NA F F Eth1/7
G - 5010.0000.1b08 static - F F sup-eth1(R)
NXOS16#
Ping試験とN9Kvで発生した事象
ところが、Leaf配下の端末同士で双方向にPingを打ってみると、MACアドレスは学習できているにもかかわらず、片方向しか通信できませんでした。
切り分けを進めた結果、原因はコンフィグではなくN9Kv側にありました。
キャプチャを確認すると、ユニキャストで送られるARP ReplyのInner MAC Addressが、なぜか書き換えられていました。以下はLeafのアップリンクでキャプチャしたものです。ARPの中身とInner MAC Address、Outer MAC Addressを見比べると、つじつまが合っていないことが分かると思います。

Cisco CMLでも試しましたが、同じ事象が発生しました。その後、物理機器を確保して確認したところ問題なく通信できたため、N9Kv側の問題と判断しました。All IPv6構成におけるN9Kvのフォワーディング実装に起因しているのかもしれません。
まとめ
今回試してみた所感は以下のとおりです。
- ベースとなるコンフィグは作ってくれる。ラフなプロンプトと構成図だけでも、全体の骨格はおおむね正しく出てきました。
- ハルシネーションによる誤りがあり、手直しのやり取りは必須。NX-OSに存在しないコマンドや、IOS系との混同が見られました。
- 出力の安定性はまだ低い。同じプロンプトでも、実行するたびに異なるコンフィグが生成されました。
精度を高めるには、当たり前ではありますが、次のような工夫が考えられます。
- プロンプトを改善する
- RAGのように、質の高いドキュメントを参照させる
ただし、IPv6 Unnumberedに関するドキュメントはまだ手薄な印象で、参照させる良質な情報がないと、正解にたどり着くまで時間がかかるかもしれません。
とはいえ、LLMがネットワークエンジニアの生産性を上げてくれることは間違いないと思います。今後も積極的に活用していきたいと思います。










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