Skip to content

Switch

Diagram

Diagram

Classes

topology (vxlan)

NameTypeConstraintMandatoryDefault Value
switchesList[switches]No

switches (vxlan.topology)

NameTypeConstraintMandatoryDefault Value
nameStringYes
serial_numberStringRegex: ^[a-zA-Z0-9_.:-]{1,16}$No
roleChoicespine, leaf, border, border_spine, border_gateway, border_gateway_spine, super_spine, border_super_spine, border_gateway_super_spine, tor, core_routerNo
managementClass[management]No
poapClass[poap]No
routing_loopback_idIntegermin: 0, max: 1023No0
vtep_loopback_idIntegermin: 0, max: 1023No1
interface_breakoutsList[interface_breakouts]No
interfacesListAny[Class[[topology_switch_access_interface]] or Class[[topology_switch_trunk_interface]] or Class[[topology_switch_access_po_interface]] or Class[[topology_switch_trunk_po_interface]] or Class[[topology_switch_routed_interface]] or Class[[topology_switch_routed_sub_interface]] or Class[[topology_switch_routed_po_interface]] or Class[[topology_switch_loopback_interface]] or Class[[topology_switch_dot1q_host_interface]]]No

management (vxlan.topology.switches)

NameTypeConstraintMandatoryDefault Value
default_gateway_v4IPNo
default_gateway_v6IPNo
management_ipv4_addressIPNo
management_ipv6_addressIPNo
subnet_mask_ipv4Integermin: 8, max: 30No
subnet_mask_ipv6Integermin: 16, max: 128No

poap (vxlan.topology.switches)

NameTypeConstraintMandatoryDefault Value
bootstrapBooleantrue, falseNofalse
preprovisionClass[preprovision]No

interface_breakouts (vxlan.topology.switches)

NameTypeConstraintMandatoryDefault Value
moduleIntegermin: 0, max: 32No1
fromIntegermin: 0, max: 256No1
toIntegermin: 0, max: 256No1
mapChoice10g-4x, 25g-4x, 50g-2x, 50g-4x, 100g-2x, 100g-2x-pam4, 100g-4x, 200g-2xNo10g-4x
enable_during_bootstrapBooleantrue, falseNofalse

preprovision (vxlan.topology.switches.poap)

NameTypeConstraintMandatoryDefault Value
serial_numberStringRegex: ^[a-zA-Z0-9_.:-]{1,16}$No
modelStringYes
versionStringYes
modulesModelListStringYes

Example 1

The following describes how to add switches with different roles (spine, leaf, etc.)

vxlan:
topology:
switches:
- name: dc1-spine1
serial_number: 9RPK63KD8TR
role: spine
management:
default_gateway_v4: 192.168.112.254
default_gateway_v6: 2055:55:55:55::55/64
management_ipv4_address: 192.168.112.151
management_ipv6_address: 2055:55:55:55::51/64
- name: dc1-spine2
serial_number: 92UBV39S1YQ
role: spine
management:
default_gateway_v4: 192.168.112.254
default_gateway_v6: 2055:55:55:55::55/64
management_ipv4_address: 192.168.112.152
management_ipv6_address: 2055:55:55:55::52/64
- name: dc1-leaf1
serial_number: 9SJP2G16MPF
role: leaf
management:
default_gateway_v4: 192.168.112.254
default_gateway_v6: 2055:55:55:55::55/64
management_ipv4_address: 192.168.112.1
management_ipv6_address: 2055:55:55:55::41/64
- name: dc1-leaf2
serial_number: 91IRW2OO4TX
role: leaf
management:
default_gateway_v4: 192.168.112.254
default_gateway_v6: 2055:55:55:55::55/64
management_ipv4_address: 192.168.112.2
management_ipv6_address: 2055:55:55:55::42/64
- name: dc1-leaf3
serial_number: 9JOCTUYC1EV
role: leaf
management:
default_gateway_v4: 192.168.112.254
default_gateway_v6: 2055:55:55:55::55/64
management_ipv4_address: 192.168.112.3
management_ipv6_address: 2055:55:55:55::43/64
- name: dc1-leaf4
serial_number: 936D48XQN1P
role: leaf
management:
default_gateway_v4: 192.168.112.254
default_gateway_v6: 2055:55:55:55::55/64
management_ipv4_address: 192.168.112.4
management_ipv6_address: 2055:55:55:55::44/64

Discovery methods

In the Cisco NDFC context, there are three methods for switch onboarding and discovery:

  • Discovering Existing Switches: This method involves identifying and managing switches that are already deployed and operational within the network.
  • Bootstrap with POAP (Power-On Auto Provisioning): This approach uses POAP to automatically provision new switches when they are powered on and connected, enabling zero-touch deployment.
  • Pre-provisioning Combined with POAP: This method involves preconfiguring certain settings or profiles in NDFC before the switch is powered on, followed by bootstrap using POAP to complete the provisioning process.

These methods provide flexible options for managing switch lifecycle and deployment in Cisco NDFC environments.

Discovering existing switches

In this method, a switch with known credentials and a pre-provisioned IP address, is added to the fabric. Switch is reachabled from NDFC.

---
vxlan:
topology:
switches:
- name: dc-leaf1
serial_number: 9MGBD4LHN0O
role: leaf
management:
default_gateway_v4: 192.168.112.254
management_ipv4_address: 192.168.112.1

Discovering new switches with Power On Auto Provisioning (POAP)

When a new Cisco NX-OS device powers on, it usually has no startup configuration or any saved configuration. As a result, after booting and completing initialization, the device enters a POAP loop. During this process, it sends DHCP requests from all active interfaces, including the mgmt0 interface.

To support this, bootstrap must be enabled at the fabric level, and DHCP must be properly configured. You can use either NDFC or an external DHCP server. Additionally, if the subnet on the switch differs from that on NDFC, DHCP Relay must be configured accordingly.

---
vxlan:
topology:
switches:
- name: dc-leaf1
serial_number: 9MGBD4LHN0O
role: leaf
management:
default_gateway_v4: 192.168.112.254
management_ipv4_address: 192.168.112.1
poap:
bootstrap: true

Discovering new switches with Pre-provisioning

Cisco NDFC supports provisioning of device configuration in advance. This is specifically applicable for scenarios where devices have been procured, but not yet delivered or received by the Customers. The purchase order typically has information about the device serial number, device model and so on, which in turn can be used to prepare the device configuration in NDFC prior to the device connectivity to the Network.

In this scenario, we have two serial numbers (SN):

  • Temporary Serial Number: PRE9MGBD4LHN0O
  • Real Serial Number: 9MGBD4LHN0O

During the initial setup, you must use two different serial numbers (SNs). At this stage, the switch will be registered in NDFC as unreachable. Once the switch completes its preparation and the POAP process begins, you can update the vxlan.topology.switches.serial_number to the switch’s actual serial number.

flowchart TB
A(Pre-provision switch with two different SNs)
A --> B{Switch added to NDFC as unreachable}
B --> C(Switch is powered on)
C --> D{Switchs start POAP process}
D --> E(Update switches.serial_number with real SN)
E --> F{Serial number updated in NDFC and discovered}
---
vxlan:
topology:
switches:
- name: dc-leaf1
# -------------------------------------------
# Temporary Fake Serial Number
# (Must Match SN under poap.preprovision)
serial_number: PRE9MGBD4LHN0O
# -------------------------------------------
# Real device SN that needs to replace the
# fake SN above when the device is available.
#
# serial_number: 9MGBD4LHN0O
# -------------------------------------------
role: leaf
management:
default_gateway_v4: 192.168.112.254
management_ipv4_address: 192.168.112.1
subnet_mask_ipv4: 24
poap:
preprovision:
model: N9K-C9300v
# Matches fake serial number above
serial_number: PRE9MGBD4LHN0O
version: 15.5(2)
modulesModel: [N9K-X9364v, N9K-vSUP]