To install this in the virtual machine, you may with to use the wget command (outside of Mininet). We have provided some sample topologies here. Mininet is also programmable using the python programming language. Find the mac address of the hosts, the ethernet ports connected, and the hostnames in the system. Mininet starts with a default network that you can poke at. Inside of the the mininet CLI, try running other commands like help, net, nodes, links and dump. Once you've downloaded an image that fits your own VM installation, import and it and boot them VM. It is based off of Ubuntu 14.04 and includes a default set of mininet binaries and example scripts. With VirtualBox (or other virtualization platform) installed, we now need to grab the Mininet image from here. Make sure that virtualization is enabled in your BIOS. Is your computer really old? It might not be able to be virtualized - talk to the TA. Did you download the correct version? (32-bit vs 64-bit) If you encounter issues, reach out online and we'll see how we can help. There are a well known set of issues in using virtualization. If you wish to use other virtualization platforms that's fine, but the TAs and staff will not support them. We suggest VirtualBox, an open source and freely available stack. The first step of getting mininet set up is to install a Virtualization Platform. Mininet is a virtual machine image with a number of network emulation tools built into it.
It provides python hooks to program mininet-based software emulated networks. Pox is a research/academic implementation of an OpenVFlow controller. The OVS version running on the Ubuntu image supports OpenFlow. The host name space allows each host to see the same file system, but operates as its own process that will run separately from each of the other host processes. Mininet will connect additional virtual interfaces between each virtual port on the switch with each connected host. The switches that we will be using are running OpenVSwitch (OVS), a software-defined networking stack.
If h1 and h2 are connected through a switch as shown in the python code in the Mininet walkthrough, the ping will transit multiple virtual interface pairs. So when we run ping between the linux namespaces h1 and h2, the ping will run from h1s namespace through a virtual interface pair created for h1 and h2, before it reaches h2. It accomplishes this task by creating host namespaces (h1, h2, etc) and connecting them through virtual interfaces. Mininet is a software stack that creates a virtual network on your computer/laptop. OpenFlow has emerged as the de facto SDN standard and specifies how the controller and the switches communicate as well as the rules controllers install on switches.
The controller acts as the "brain" of the network, and sends commands ("rules") to the switches on how to handle traffic. The SDN control plane is implemented by the "controller" and the data plane by "switches". In traditional networks, both the control- and data planes are tightly integrated and implemented in the forwarding devices that comprise a network. One can think of the control plane as being the networks "brain", i.e., it is responsible for making all decisions, for example, how to forward data, while the data plane is what actually moves the data.
Software-Defined Networking (SDN) is a recently proposed networking paradigm in which the data and control planes are decoupled from one another. Lastly, you will be modifying your part 3 solution to implement an actual 元 IP router that handles ARP and routes traffic. Using Virtualbox, Mininet, and Pox as the implementers of the OpenFlow protocol, you will build simple networks using SDN primitives.įirst you will learn to use mininet, a SDN-enabled network emulator.įor the second portion you will be using POX to implement a simple L2 firewall.įor the third portion you will be building an entire network, with multiple switches capable of handling ARP and other traffic. In this project you will learn about Software Defined Networking (SDN). Project 2: Link and Network with Software Defined Networking Turnin: Online CSE 461: Introduction to Computer Communication Networks, Spring 2020