Prescriptive Topology Daemon Dinesh G Dutt, Pradosh Mohapatra Cumulus Networks
Problem statement § Data centers follow regular topologies § Modular design that is repeated as the network grows § Clusters or pods interconnected by another layer § Cable management can be a nightmare as the network grows § Verification of physical connections on link-up is a significant operational simplification § Some operators do a build time check 2
Prescriptive Topology Manager § Verify connectivity is as per operator specified cabling plan S2 S1 § Take defined actions on topology check dynamically § For example, routing adjacency is brought up only if physical connectivity check M2 M3 M4 M1 passes § Example: T4 T2 T3 T1 § T1, port1 is connected to M1, port1 § T1, port2 is connected to M2, port1 § … § M1, port 3 is connected to S1, port1 § M1, port 4 is connected to S2, port1 § … 3
In a nutshell § Network topology specified via DOT language § Well understood graph modeling language § Wide range of supported tools § Open source § Network topology is pushed out to all nodes § Each node determines its relevant information § Use LLDP to verify connectivity 4
Picture Configuration Management Tool (e.g. Chef) topology.dot ... S2 S1 1. +++ /etc/ptm.d/topology.dot 2. service ptmd reconfig M2 M4 M3 M1 T4 T2 T3 T1 5
Implementation § Written and tested on Linux (wheezy release of debian) § ptmd is the prescriptive topology module daemon § Communicates with LLDPD daemon (based on https://github.com/vincentbernat/lldpd ) § Daemon executes a set of scripts on topology pass and topology fail § /etc/ptm.d/if-topo-pass, /etc/ptm.d/if-topo-fail § Example: add/del interfaces from routing protocol – works with suites such as bird, quagga, mstpd § Quagga (ver 0.99.21) modified to receive notifications from ptmd for faster, simpler integration § Can be added to any protocol suite § ptmd is about 1500 lines of commented C code 6
Core implementation details topology.dot port_table port_t + admin_nbr + oper_nbr + oper_state LLDPD port_t + admin_nbr + oper_nbr + oper_state Clients Clients Clients 7
ptmctl 8
ptmviz – topology visualization Generate the DOT file corresponding to the observed physical network topology. dot -Tps prescribed.dot -o prescribed.ps dot -Tps physical.dot -o physical.ps 9
ptmviz – topology visualization Generate the DOT file corresponding to the observed physical network topology. dot -Tps prescribed.dot -o prescribed.ps dot -Tps physical.dot -o physical.ps 10
Quagga integration - New command to enable PTM oper-state based routing protocol bring-up - Quagga acts as a PTM client listens to oper-state notifications 11
Recommend
More recommend