SlideShare uma empresa Scribd logo
1 de 15
Prescriptive Topology Daemon

Dinesh G Dutt, Pradosh Mohapatra
Cumulus Networks

1
Problem Statement
 Modern data center networks follow regular topologies
 Modular design that is repeated as the network grows
 Scale-out vs scale-up
 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

2
Example Topology – Fat Trees

3
Prescriptive Topology Manager
 Verify connectivity is as per operator
specified cabling plan
S1

 Take defined actions on topology check
dynamically
 For example, routing adjacency is brought up
only if physical connectivity check passes

S2

M1

M2

M3

M4

T1

T2

T3

T4

 Example:
 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

…

4
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

digraph G {
graph [hostidtype="hostname", version="1:0", date="06/26/2013"];
S1:swp1 -> M1:swp3;
S1:swp2 -> M2:swp3;
S1:swp3 -> M3:swp3;
S1
S1:swp4 -> M4:swp3;
S2:swp1 -> M1:swp4;
S2:swp2 -> M2:swp4;
S2:swp3 -> M3:swp4;
S2:swp4 -> M4:swp4;
M1:swp1 -> T1:swp1;
M1:swp2 -> T2:swp1;
M2:swp1 -> T1:swp2;
M2:swp2 -> T2:swp2;
M3:swp1 -> T3:swp1;
M3:swp2 -> T3:swp1;
M4:swp1 -> T4:swp2;
M4:swp2 -> T4:swp2;
}

5
Picture

Configuration Management Tool
(e.g. Chef, Puppet, Ansible)
topology.do
t
...
S1

S2

1. +++ /etc/ptm.d/topology.dot
2. service ptmd reconfig

M1

M2

M3

M4

T1

T2

T3

T4

6
Implementation
 Developed and tested on Linux (wheezy release of Debian)
 Written in C and Python
 Communicates with LLDPD (based on https://github.com/vincentbernat/lldpd)
 PTMD executes scripts on topology pass and topology fail
/etc/ptm.d/if-topo-pass, /etc/ptm.d/if-topo-fail
Example: add/del routing protocol interface configuration

7
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

8
ptmctl
cumulus@S1:~# ptmctl
--------------------------------------------------------------------Port
Status Expected Nbr
Observed Nbr
Last Updated
--------------------------------------------------------------------swp1
pass
M1:swp3
M1:swp3
17h:39m:21s
swp2
pass
M2:swp3
M2:swp3
17h:39m:21s
swp3
pass
M3:swp3
M3:swp3
17h:39m:21s
swp4
pass
M4:swp3
M4:swp3
17h:39m:21s
cumulus@S1:~#

9
ptmviz – topology analysis
 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
ptmviz – topology analysis
 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

11
Quagga integration
 New command to enable PTM oper-state based routing protocol bring-up
 Quagga acts as PTM client. Listens to oper-state notifications
cumulus@S1:~# sudo vtysh -c 'conf t' -c 'ptm-enable'
cumulus@S1:~# sudo vtysh -c 'show interface swp1'
Interface swp1 is up, line protocol is up
PTM status: pass
index 3 metrix 1 mtu 1500
flags: <UP,BROADCAST,RUNNING,MULTICAST>
HWaddr: 00:02:00:00:00:11
inet 21.0.0.2/24 broadcast 21.0.0.255
inet6 fe80::202:ff:fe00:11/64
cumulus@S1:~#

12
Interoperability
 Any device running an LLDP daemon
 Routing adjacencies can be brought
by the device running PTM.

digraph G {
graph [hostidtype="hostname", version="1:0", date="06/26/2013"];
S1:swp1 -> S2:swp1;
S1:swp2 -> S2:swp2;
S1:swp3 -> "procurve1.lab":21;
S1:swp4 -> "procurve1.lab":22;
S1:swp5 -> "cisco1.lab":"GigabitEthernet0/1";
S1:swp5 -> "jmx480":"xe-0/0/0";
S1:swp7 -> webserver1:eth0;
S1:swp8 -> webserver1:eth1;
}

cumulus@S1:~# ptmctl
--------------------------------------------------------------------Port
Status Expected Nbr
Observed Nbr
Last Updated
--------------------------------------------------------------------swp1
pass
S2:swp1
S2:swp1
17m: 2s
swp2
pass
S2:swp2
S2:swp2
17m: 2s
swp3
pass
procurve1.lab:21
procurve1.lab:21
17m: 10s
swp4
pass
procurve1.lab:22
procurve1.lab:22
17m: 10s
swp5
pass
cisco1.lab:GigabitEthernet0/1 cisco1lab:GigabitEthernet0/1
swp6
pass
jmx480.lab:xe-0/0/0
jmx480.lab:xe-0/0/0
17m: 1s
swp7
pass
webserver1:eth0
webserver1:eth0
17m: 3s
swp8
pass
webserver1:eth1
webserver1:eth1
17m: 3s

17m: 8s

13
Availability
 Open source, published under Eclipse Public License (EPL)
 https://github.com/CumulusNetworks/ptm

14
Thank you
 Questions?

15

Mais conteúdo relacionado

Mais procurados (20)

Ax31338342
Ax31338342Ax31338342
Ax31338342
 
Bt0076, tcp ip
Bt0076, tcp ipBt0076, tcp ip
Bt0076, tcp ip
 
Chapter 5 pc
Chapter 5 pcChapter 5 pc
Chapter 5 pc
 
CCNA PPP and Frame Relay Questions
CCNA PPP and Frame Relay QuestionsCCNA PPP and Frame Relay Questions
CCNA PPP and Frame Relay Questions
 
Ppp
PppPpp
Ppp
 
B0311219
B0311219B0311219
B0311219
 
CCNA Access Lists Questions
CCNA Access Lists QuestionsCCNA Access Lists Questions
CCNA Access Lists Questions
 
Transport Layer Description By Varun Tiwari
Transport Layer Description By Varun TiwariTransport Layer Description By Varun Tiwari
Transport Layer Description By Varun Tiwari
 
CCNA TCP/IP Questions
CCNA TCP/IP QuestionsCCNA TCP/IP Questions
CCNA TCP/IP Questions
 
Ch11
Ch11Ch11
Ch11
 
Ch22
Ch22Ch22
Ch22
 
parallel Questions &amp; answers
parallel Questions &amp; answersparallel Questions &amp; answers
parallel Questions &amp; answers
 
5G NR parameters
5G NR parameters5G NR parameters
5G NR parameters
 
Performance analysis of AODV And OLSR
Performance analysis of AODV And OLSRPerformance analysis of AODV And OLSR
Performance analysis of AODV And OLSR
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Transport layer
Transport layerTransport layer
Transport layer
 
Tcp traffic control and red ecn
Tcp traffic control and red ecnTcp traffic control and red ecn
Tcp traffic control and red ecn
 
80211
8021180211
80211
 
udp , tcp ,sctp
udp , tcp ,sctpudp , tcp ,sctp
udp , tcp ,sctp
 
Transport layer protocol
Transport layer protocolTransport layer protocol
Transport layer protocol
 

Semelhante a Prescriptive Topology Daemon - ptmd

Efficient Topology Discovery in Software Defined Networks
Efficient Topology Discovery in Software Defined NetworksEfficient Topology Discovery in Software Defined Networks
Efficient Topology Discovery in Software Defined NetworksFarzaneh Pakzad
 
Redesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsRedesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsNitinder Mohan
 
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDKLF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDKLF_DPDK
 
Lecture1, TCP/IP
Lecture1, TCP/IPLecture1, TCP/IP
Lecture1, TCP/IPcsyuhk
 
Chapter_3_Networking.ppt
Chapter_3_Networking.pptChapter_3_Networking.ppt
Chapter_3_Networking.pptBlaqray1998
 
Chapter_3_Networking.ppt
Chapter_3_Networking.pptChapter_3_Networking.ppt
Chapter_3_Networking.pptBlaqray1998
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Softwarel xf
 
Introduction to Building Communication Protocols
Introduction to Building Communication Protocols Introduction to Building Communication Protocols
Introduction to Building Communication Protocols Mahmoud Ahmed
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
Chapter 3. sensors in the network domain
Chapter 3. sensors in the network domainChapter 3. sensors in the network domain
Chapter 3. sensors in the network domainPhu Nguyen
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File MulticastYoss Cohen
 
Survey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustrySurvey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustryShrey Bhatnagar
 

Semelhante a Prescriptive Topology Daemon - ptmd (20)

Efficient Topology Discovery in Software Defined Networks
Efficient Topology Discovery in Software Defined NetworksEfficient Topology Discovery in Software Defined Networks
Efficient Topology Discovery in Software Defined Networks
 
Redesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsRedesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge clouds
 
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDKLF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
 
Ports and protocols
Ports and protocolsPorts and protocols
Ports and protocols
 
Lecture1, TCP/IP
Lecture1, TCP/IPLecture1, TCP/IP
Lecture1, TCP/IP
 
Ccna Imp Guide
Ccna Imp GuideCcna Imp Guide
Ccna Imp Guide
 
Chapter_3_Networking.ppt
Chapter_3_Networking.pptChapter_3_Networking.ppt
Chapter_3_Networking.ppt
 
Chapter_3_Networking.ppt
Chapter_3_Networking.pptChapter_3_Networking.ppt
Chapter_3_Networking.ppt
 
IP Utilites
IP UtilitesIP Utilites
IP Utilites
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Software
 
Introduction to Building Communication Protocols
Introduction to Building Communication Protocols Introduction to Building Communication Protocols
Introduction to Building Communication Protocols
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
01 packet
01 packet01 packet
01 packet
 
UDT
UDTUDT
UDT
 
UDT
UDTUDT
UDT
 
Chapter 3. sensors in the network domain
Chapter 3. sensors in the network domainChapter 3. sensors in the network domain
Chapter 3. sensors in the network domain
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File Multicast
 
PortLand.pptx
PortLand.pptxPortLand.pptx
PortLand.pptx
 
Userspace networking
Userspace networkingUserspace networking
Userspace networking
 
Survey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustrySurvey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power Industry
 

Último

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Último (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Prescriptive Topology Daemon - ptmd

  • 1. Prescriptive Topology Daemon Dinesh G Dutt, Pradosh Mohapatra Cumulus Networks 1
  • 2. Problem Statement  Modern data center networks follow regular topologies  Modular design that is repeated as the network grows  Scale-out vs scale-up  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 2
  • 3. Example Topology – Fat Trees 3
  • 4. Prescriptive Topology Manager  Verify connectivity is as per operator specified cabling plan S1  Take defined actions on topology check dynamically  For example, routing adjacency is brought up only if physical connectivity check passes S2 M1 M2 M3 M4 T1 T2 T3 T4  Example:  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 … 4
  • 5. 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 digraph G { graph [hostidtype="hostname", version="1:0", date="06/26/2013"]; S1:swp1 -> M1:swp3; S1:swp2 -> M2:swp3; S1:swp3 -> M3:swp3; S1 S1:swp4 -> M4:swp3; S2:swp1 -> M1:swp4; S2:swp2 -> M2:swp4; S2:swp3 -> M3:swp4; S2:swp4 -> M4:swp4; M1:swp1 -> T1:swp1; M1:swp2 -> T2:swp1; M2:swp1 -> T1:swp2; M2:swp2 -> T2:swp2; M3:swp1 -> T3:swp1; M3:swp2 -> T3:swp1; M4:swp1 -> T4:swp2; M4:swp2 -> T4:swp2; } 5
  • 6. Picture Configuration Management Tool (e.g. Chef, Puppet, Ansible) topology.do t ... S1 S2 1. +++ /etc/ptm.d/topology.dot 2. service ptmd reconfig M1 M2 M3 M4 T1 T2 T3 T4 6
  • 7. Implementation  Developed and tested on Linux (wheezy release of Debian)  Written in C and Python  Communicates with LLDPD (based on https://github.com/vincentbernat/lldpd)  PTMD executes scripts on topology pass and topology fail /etc/ptm.d/if-topo-pass, /etc/ptm.d/if-topo-fail Example: add/del routing protocol interface configuration 7
  • 8. 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 8
  • 9. ptmctl cumulus@S1:~# ptmctl --------------------------------------------------------------------Port Status Expected Nbr Observed Nbr Last Updated --------------------------------------------------------------------swp1 pass M1:swp3 M1:swp3 17h:39m:21s swp2 pass M2:swp3 M2:swp3 17h:39m:21s swp3 pass M3:swp3 M3:swp3 17h:39m:21s swp4 pass M4:swp3 M4:swp3 17h:39m:21s cumulus@S1:~# 9
  • 10. ptmviz – topology analysis  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
  • 11. ptmviz – topology analysis  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 11
  • 12. Quagga integration  New command to enable PTM oper-state based routing protocol bring-up  Quagga acts as PTM client. Listens to oper-state notifications cumulus@S1:~# sudo vtysh -c 'conf t' -c 'ptm-enable' cumulus@S1:~# sudo vtysh -c 'show interface swp1' Interface swp1 is up, line protocol is up PTM status: pass index 3 metrix 1 mtu 1500 flags: <UP,BROADCAST,RUNNING,MULTICAST> HWaddr: 00:02:00:00:00:11 inet 21.0.0.2/24 broadcast 21.0.0.255 inet6 fe80::202:ff:fe00:11/64 cumulus@S1:~# 12
  • 13. Interoperability  Any device running an LLDP daemon  Routing adjacencies can be brought by the device running PTM. digraph G { graph [hostidtype="hostname", version="1:0", date="06/26/2013"]; S1:swp1 -> S2:swp1; S1:swp2 -> S2:swp2; S1:swp3 -> "procurve1.lab":21; S1:swp4 -> "procurve1.lab":22; S1:swp5 -> "cisco1.lab":"GigabitEthernet0/1"; S1:swp5 -> "jmx480":"xe-0/0/0"; S1:swp7 -> webserver1:eth0; S1:swp8 -> webserver1:eth1; } cumulus@S1:~# ptmctl --------------------------------------------------------------------Port Status Expected Nbr Observed Nbr Last Updated --------------------------------------------------------------------swp1 pass S2:swp1 S2:swp1 17m: 2s swp2 pass S2:swp2 S2:swp2 17m: 2s swp3 pass procurve1.lab:21 procurve1.lab:21 17m: 10s swp4 pass procurve1.lab:22 procurve1.lab:22 17m: 10s swp5 pass cisco1.lab:GigabitEthernet0/1 cisco1lab:GigabitEthernet0/1 swp6 pass jmx480.lab:xe-0/0/0 jmx480.lab:xe-0/0/0 17m: 1s swp7 pass webserver1:eth0 webserver1:eth0 17m: 3s swp8 pass webserver1:eth1 webserver1:eth1 17m: 3s 17m: 8s 13
  • 14. Availability  Open source, published under Eclipse Public License (EPL)  https://github.com/CumulusNetworks/ptm 14