package
0.0.0-20200221232812-81b9770086ea
Repository: https://github.com/elastic/dhcp.git
Documentation: pkg.go.dev

# README

Zero Touch Provisioning (ZTP) DHCPv6 Parsing for Network Hardware Vendors

Currently Supported Vendors For DHCPv6 ZTP

  • Arista
  • ZPE

Why Do We Need This?

Many network hardware vendors support features that allow network devices to provision themselves with proper supporting automation/tools. Network devices can rely on DHCP and other methods to gather bootfile info, IPs, etc. DHCPv6 Vendor options provides us Vendor Name, Make, Model, and Serial Number data. This data can be used to uniquely identify individual network devices at provisioning time and can be used by tooling to make decisions necessary to correctly and reliably provision a network device.

For more details on a large-scale ZTP deployment, check out how this is done at Facebook, Scaling Backbone Networks Through Zero Touch Provisioning.

Example Data

Vendor specific data is commonly in a delimiter separated format containing Vendor Name, Model, Make, and Serial Number. This of course will vary per vendor and there could be more or less data. Vendor;Model;Version;SerialNumber Arista;DCS-7060;01.011;ZZZ00000000

# Functions

ParseRemoteId will parse the RemoteId Option data for Vendor Specific data.
ParseVendorData will try to parse dhcp6 Vendor Specific Information options ( 16 and 17) data looking for more specific vendor data (like model, serial number, etc).

# Structs

CircuitID represents the structure of network vendor interface formats.
VendorData contains fields extracted from Option 17 data.