Home » hephaestus



hephaestus: Automating service-provider network troubleshooting using Python

A dissertation submitted in partial fulfilment of the requirements for the degree of BEng in Computer Science

author : Niall Donaghy, (c) 2013-2014
contact: niall@ndonaghy.com
license: http://opensource.org/licenses/MIT
project: http://ndonaghy.com/hephaestus
github : http://github.com/ndonaghy/hephaestus
docs : http://ndonaghy.com/hephaestus/docs/html
pdf : http://ndonaghy.com/hephaestus/docs/refman.pdf

Internet service provider networks are complex systems comprising multiple routers each
autonomously forwarding data packets. When a packet is inadvertently blocked by a
router the resultant troubleshooting process can be time-consuming and error-prone
because as little as one line of configuration nestled amongst tens of thousands can be
responsible. This thesis details hephaestus†, a prototype interactive Python application
which successfully meets its aim to dramatically improve both the speed and accuracy of
this process by leveraging automation at key points. Specifically, this application
interrogates Juniper Networks, Inc. routers and the pan-European IP/MPLS network
GÉANT serves as the testbed under examination.

† The name hephaestus is borrowed from that of the Greek god of fire and metallurgy in
reference to the subject matter, namely big iron‡ backbone routers and firewalls.

‡ ‘big iron’, as the hackers’ dictionary the Jargon File defines it, “refers to large, expensive,
ultra-fast computers.”  Wikipedia states, “More recently the term is also applied to powerful computer servers and computer ranches, whose steel racks invoke the same association.”