[Nexus9Kv] LLMは構成図と概要説明だけでIPv6 Unnumbered eBGP & VXLAN EVPNコンフィグを自動生成してくれるのか?

2026年10月10日

久しぶりの投稿です。
ここ数年でLLMは驚くほどのスピードで進化し、ソフトウェア開発ではLLMによるコード生成がすっかり当たり前になりました。ネットワーク業界でも、各ベンダーからLLMを活用したソリューションが次々とリリースされています。

とはいえ、この面白い進化をベンダーのソリューションに任せるだけではもったいないところです。個々の組織でどこまで活用できるのか、いろいろと実験していきたいと思います。

今回のお題は、
NX-OSで、All IPv6 Unnumbered eBGPのSpine/Leaf(3台構成)のコンフィグをLLMに作ってもらう
というものです。

「もうファブリックの中にIPv4は要らないでしょう」ということで、RFC5549/8950(IPv4経路をIPv6ネクストホップで運ぶ方式)ですらない、アンダーレイもVTEPもIPv6だけのモダンな構成を題材にしました。

先に結論をお伝えすると、かなりラフなプロンプトと構成情報でも、ベースとなるコンフィグは作成してくれました。ただし、そのままでは投入できず、いくつか手直しが必要でした。

構成情報とプロンプト

今回は、Spine 1台とLeaf 2台の以下のシンプルな構成で試しました。

検証構成(Spine: NXOS14、Leaf: NXOS15・NXOS16)

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データプレーンの順に確認していきます。結論から言うと、制御プレーンは問題なく動作していました。

確認ポイントコマンド見るところ
アンダーレイのBGPshow bgp ipv6 unicast summaryリンクローカルアドレスでピアが確立しているか
VTEP間の到達性show ipv6 route対向Leafのloopback0を学習しているか
オーバーレイのBGPshow bgp l2vpn evpn summaryType-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 Target 30000: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を見比べると、つじつまが合っていないことが分かると思います。

LeafのアップリンクのキャプチャでARP ReplyのInner MAC Addressが書き換わっている様子

Cisco CMLでも試しましたが、同じ事象が発生しました。その後、物理機器を確保して確認したところ問題なく通信できたため、N9Kv側の問題と判断しました。All IPv6構成におけるN9Kvのフォワーディング実装に起因しているのかもしれません。


まとめ

今回試してみた所感は以下のとおりです。

  • ベースとなるコンフィグは作ってくれる。ラフなプロンプトと構成図だけでも、全体の骨格はおおむね正しく出てきました。
  • ハルシネーションによる誤りがあり、手直しのやり取りは必須。NX-OSに存在しないコマンドや、IOS系との混同が見られました。
  • 出力の安定性はまだ低い。同じプロンプトでも、実行するたびに異なるコンフィグが生成されました。

精度を高めるには、当たり前ではありますが、次のような工夫が考えられます。

  • プロンプトを改善する
  • RAGのように、質の高いドキュメントを参照させる

ただし、IPv6 Unnumberedに関するドキュメントはまだ手薄な印象で、参照させる良質な情報がないと、正解にたどり着くまで時間がかかるかもしれません。

とはいえ、LLMがネットワークエンジニアの生産性を上げてくれることは間違いないと思います。今後も積極的に活用していきたいと思います。