Simulating IP and MPLS networks on Linux: A Learning Tool

July 14, 2012

As a personal project, for my own edification, I will research and implement systems that will allow me and anyone who follows this blog to experiment with networking technology and learn new concepts. I will not have to invent anything new. I will use the resources already created by other people who have generously made their projects available as open-source software. I expect I will learn a lot about the Linux operating system and will continue to learn new things about networking technology and applications.

Open-source switch and router software, combined with open-source server software and other open-source tools provides a set of resources that will allow a learner to simulate the functionality of complex enterprise or service-provider networks on a single personal computer.

Some academic institutions are already using virtual networking tools and open-source software to teach networking concepts to undergraduate students. The software used or developed by these institutions is usually based on open-source operating systems such as GNU/Linux or BSD, virtualization technology such as Xen, Vserver, or User-Mode Linux (UML), and switch or router software packages such as brctl, Open vSwitch, XORP, or Quagga/Zebra.

Open-source router software, such as XORP or Quagga/Zebra, has a command-line-interface that is fairly similar to the command-line-interface used on routing equipment sold by large equipment manufacturers such as Alcatel-Lucent or Cisco so it may be useful for practicing the basic functions provided by commercial Internet routers or enterprise routers. This software can be used to allow learners to practice examples of IPv4, IPv6, OSPF, BGP and Multicast routing configuration and troubleshooting in medium-sized simulated networks on their own PC. Other software can be used to demonstrate Internet applications such as DNS, DHCP, SMTP, HTTP, RADIUS, IPSec, SIP, VoIP, and more. A virtual network can also be used to demonstrate the use of sniffers and to practice protocol analysis.

2 responses to Simulating IP and MPLS networks on Linux: A Learning Tool

  1. Hi Brian
    It’s not clear from this article how you simulated MPLS. Can you elabroate on that? So far I have been using Vyatta iso to create layer-3 routers and have Ubuntu clients (one running Wireshark) and am linking these together using VMWare. The next step that I’d like to do is emulate MPLS funtions but havn’t had much luck in finding opensource router/switch software which supports MPLS.

  2. Hi John,

    This post describes my aspirations but not what I have yet accomplished. I have not yet gotten MPLS working on a Linux virtual machine.

    If you want to try MPLS on Linux, I suggest you look at one of the prepared MPLS lab scenarios in the Netkit network simulator. The links to their MPLS lab scenarios are:

    I have not tried any of these scenarios, yet. I have been working on reviewing the available open-source tools that perform network simulation. I found that there was very little information about these tools available, in general, so I thought there was good value in creating a page that describes the tools that are available and compares them.

    Once I am done of that, I will start trying to actually use those tools to try IP and MPLS scenarios on Linux virtual machines in a simulated network.