Archives For Learning IP

all the tutorials that could also be used to teach networking topics

The Domain Name System (DNS) is a fundamental Internet technology. Network emulators like Cloonix offer a way for researchers and students to experiment with the DNS protocol and with the various open-source implementations of DNS, such as BIND.

In this post, I will install Cloonix from the Github source code repository. I will run the Cloonix DNS demo script to create a simple DNS scenario and then run some experiments with DNS. Along the way, I will demonstrate some of the new Cloonix version 33 features.

Continue Reading…

This post lists the commands required on each node to build a network of three Ubuntu Linux routers. Each router is connected to the other two routers and is running quagga. Each router is also connected to a PC running Ubuntu Linux.


I use this network configuration to evaluate network emulators and open-source networking software in a simple scenario. Readers may find these commands useful in building their own configuration scripts.

I provide “copy and paste” commands so the network can be configured quickly.

Continue Reading…

In this tutorial, we demonstrate basic software-defined networking (SDN) concepts using the POX SDN controller, POX components, and the Mininet network simulator.


We will show how to use the POX SDN controller to update flow tables on the SDN switches in a simulated network so every host on the network can forward packets to another host. We will use the Mininet network simulator to create the network of emulated SDN switches and hosts that are controlled by the POX SDN controller.

Continue Reading…

In Part 1 of this series, we performed some practical experiments to show how interfaces in an IPv6 network configure themselves with link-local IPv6 addresses when they start up. We also showed how to manually configure IPv6 addresses on a Linux system. In this post, we will use an open-source network simulator to demonstrate another method of assigning an IPv6 address to an interface: Stateless Address Auto-configuration (SLAAC).

We will use the CORE Network Emulator to set up a simple IPv6 network and then run some practical exercises to show how to set up a open-source IPv6 router to perform auto-configuration using either radvd or quagga. We’ll use open-source routing software to demonstrate real router configuration procedures and investigate how IPv6 routers and hosts communicate to assign globally unique unicast IPv6 addresses to hosts the using Stateless Address Auto-configuration and the Neighbor Discovery Protocol (NDP).

Continue Reading…

IPv6 addressing is about more than just a longer 128-bit address length. The working groups that defined IPv6 were trying to solve some of the problems that programmers, network administrators, and network engineers were encountering with IPv4. The way that IPv6 prefixes and addresses are assigned and configured differs significantly from IPv4. IPv6 offers some improvements and some new challenges.


A good way to learn about IPv6 network addressing is to work through some practical exercises. In this post, we will use the CORE Network Simulator to simulate a simple IPv6 network and examine link-local and global IPv6 addresses. We will work through a practical tutorial that will show how to manually configure IPv6 addresses and very basic IPv6 routing.

Continue Reading…