Interactive OSPF Visualization

Motivation

Routing protocols are difficult to understand. Not only do they involve intricate computation, but they are distributed by nature. We believe that the best way to learn about routing protocols is hands-on: to set up the routing protocol in a network, modify the configuration and see how this impacts the network state.

However, most people don’t just have access to real network hardware. Emulation systems like GNS3, Cisco Packet Tracer, and Eve-NG allow users to set up entire networks by running the software of routers in an emulated environment. While very useful for a variety of purposes (e.g, testing network configurations or training engineers to use commercial network devices), they are less suited for learning the basics of routing protocols for two main reasons. First, they hide the protocols behind vendor-specific implementations, obscuring the basic protocols by adding complexity. Second, the user usually interacts with the emulator using a vendor-specific TTY interface, even though routing protocols can usually be visualized using a network graph.

During the last couple of years, we developed a discrete-event BGP simulator BGPSim that simplifies the protocol to its core by introducing layers of abstraction. Further, we developed a web application that visualizes the network, configuration and routing state interactively. Currently, it only simulates BGP messages, while simplifying OSPF by computing all shortest-paths without simulating the link-state protocol itself.

Goal

The goal of this thesis is to extend BGPSim with OSPF. More precisely, the goal of this thesis can be divided into the following three work packages:

  • WP1: OSPF Abstraction

    Choosing the correct level of abstraction for OSPF is critical. For designing a tool to assist students who are learning about OSPF. It should be simple enough to assist students to learn about OSPF, yet it should be complex enough to highlight interesting properties of OSPF and link-state protocols in general.

  • WP2: OSPF Simulation

    BGPSim is implemented in Rust and is well documented and tested. You will extend BGPSim to simulate OSPF and BGP simultaneously. You will write test cases to ensure that the implementation is correct, and write documentation so that it can be extended in the future.

  • WP3: OSPF Visualization

    The last goal of this thesis is to design an informative visualization for OSPF. The visualization should show each router’s computation and state while the protocol converges.

Requirements

  • Familiarity with OSPF and BGP
  • Basic knowledge of the Rust programming language

Supervisors