You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Concept for zero-touch provisioning for distribution switch in CNaaS NMS.

The first switch might always have to be configured manually, unless some other network element can be configured to forward DHCP requests.

Assuming there is a "parent" switch already configured and managed by CNaaS, a second switch could be initialized using ZTP using this process:

  1. Parent switch has some interfaces configured as "fabric" interfaces, but no linknets are specified on the interface (using linknets API calls)
    In this case, the "fabric" interface is configured as access vlan 1, meaning untagged packets are sent to the ZTP DHCP server
  2. The new device goes through DHCP_BOOT and DISCOVERED states the same as access switches
  3. The administrator has to check in a new device in the settings repository with a new hostname and interfaces.yaml configuration
  4. The device_init API-call is extended to allow for ZTP of type DIST and CORE, in addition to hostname this API-call will also require a list of peer hostnames it should build linknets to
    a) device_init will check that the settings repository contains a device with this hostname
    b) device_init will check that the list of peer hostnames exists and are of same device_type (all DIST or all CORE)
    c) device_init will check that all peers are synchronized and config hash check passes
    d) device_init will check LLDP neighbors to see that provided list of peers are actually seen, and what interfaces both ends use
    e) device_init will create new linknets in database using interface information gathered from LLDP
    f) device_init will push new configuration to the new device, at this point contact is lost to the device, state changes to INIT
    g) device_init will run syncto on peer devices so they re-configure their "fabric" interfaces and apply the new linknet configuration instead of ZTP config, and add BGP-peers etc
    h) device_init will check that the new device is now reachable via loopback, and change state to MANAGED if successful

Special cases:

New device is not directly connected so LLDP information is not seen, in this case peer hostnames list can be set as an empty list and all interfaces and BGP peers have to be configured manually? Also manual reconfig of peer devices might be needed at step 4g

  • No labels