This lab was developed as part of the ECE403 Computer Networks course in Cairo University. The lab is comprised of a set experiments whose objective is to enhance the skills the ECE403 students in the area of IP networking. It can be used for any basic or advanced Computer Networking course. I have used it in both this course and the graduate Computer Networking course and the feedback has been very good.
Using virtualization and the Common Open Research Emulator (CORE) open source network emulators, the students will be able to build and configure a network that resembles and behaves exactly like a network of real routers and end nodes. The routers are based on Quagga software that are fully capable of using Cisco routers configuration commands and support OSPF, RIP, BGP, etc. Students will collect results from the network traces and asked to interpret the results in order to gain good understanding of IP networking concepts.
In the experiments, students will be exposed to different techniques such as router configuration, traffic generation, TCP protocol performance, OSPF routing, network analysers and tracers. It also serves as a very nice introduction to Software-Defined Networking (SDN). As a side knowledge students will be exposed to using Linux and virtualization tools.
The purpose of this github repository is two things:
- Share the labs with a wider community to maximize the benefits.
- Extend the labs by other contributors as in in open source project (see How to Contribute below).
- Install VirtualBox on your PC. You can use VMWARE as well or install virtualbox/vmware on Linux if you plan to use Linux to host the virtual lab. However, the process herein assumes virtualbox on windows environment. You are on your own if you want to try other combinations (they should work without problems).
- Download the core network emulator Virtualbox image from this link . This is a modified image from the original core network emulator virtual machine that has some additional tools installed such as wireshark, iperf, and the network topologies used in the labs. Alternatively, download VMWare image from official core network emulator site but you will need to add the tools manually.
- The rest of the instructions assumes you got the vcore4.7.zip as shown in step 1 above.
- Move the folder Vcore4.7.zip to the location of your choice. For example D:\Vbox\Vcore4.7. Unzip the file.
- Now open virtualbox software, select Machine -> Add and browse to D:\Vbox\Vcore4.7 and select the file vcore-4.7.vbox A new virtual machine will be added. You can select Machine -> Settings -> System and increase the virtual machine allocated RAM to 1 Gbytes or more for better performance.
- Start the virtual machine Vcore by selecting it and clicking start. It may ask you few questions about LAN cards, etc, choose default answers.
- Important Note: It is highly likely that the virtual machine may not start complaining about some network card does not exist. If this happens select the virtual machine on virtuabox, right click, select properties -> network -> and then on adapter 1 attached either choose not attached or choose bridge and then select the network adapter installed on your PC (e.g. some Ethernet or Wifi interface).
Important Note: Both the user name and password to the Vcore Linux installation are "core"
-
The Linux virtual machine will start and you will see on the desktop a green icon named CORE as shown below
-
Double click on CORE icon, the CORE emulator starts
-
You are now ready to work on the labs. It is recommended to start with the Introduction lab.
c. OSPF Lab
If you like these set of experiments, you can contribute by using normal github pull requests. You can either:
- Contribute new labs
- Modify existing labs (correcting typos or additions of new ideas)
Brian Linkletter web site has great tutorials that helped me developoing this lab and exploring multiple other packages.