Welcome to the Mini-Internet
We are thrilled to have you here! This project is going to be fun! But the Internet is a complex beast. Don’t let the “Mini” fool you. Buckle up for the exciting journey to come.
This site will guide you through the Mini-Internet project, which is part of the Computer Networks Course at TU Dresden taught by Prof. Matthias Wählisch from the Chair of Distributed and Networked Systems. The project is based on the work of the Networked Systems Group from ETH Zürich (see credits).
Introduction to the Project
In this project, you will build and operate your very own Mini-Internet together with your fellow students. Your main goal? Enabling end-to-end connectivity across around 100 Autonomous Systems (ASes) composed of hundreds of network devices. In doing so, you will experiment with the most common switching and routing technologies used on the Internet today. You will also face the same challenges actual network operators experience every day. Most importantly, you will learn how to analyze a network, localize problems, and fix them.
To establish Internet-wide connectivity, you will first need to enable internal connectivity within your own AS, before interconnecting your AS with other ASes, managed by other groups of students. To establish connectivity within your AS, you will configure IPv4 addresses and use Open Shortest Path First (OSPF). To establish connectivity across different ASes, you will use the only inter-domain routing protocol available today: the Border Gateway Protocol (BGP). Throughout the project, you will also have to ensure that traffic follows the business relationships.
To help you, we have pre-built a base network topology on top of virtual layer-2 switches, running Open vSwitch and virtual routers, running the FRRouting software routing suite. You will configure the virtual switches and routers through a Command Line Interface (CLI). This interface is virtually identical to the one used by actual network operators.
How to Ask Questions?
You can use the regular exercise time slots to ask questions. While we will continue to have theoretical exercises during the project, the TAs will be available for project-related questions as well. We may offer additional Q&A sessions to assist you (on-site and/or online) if needed. These additional sessions will be announced ahead of time.
Outside of exercise and Q&A sessions, you can always post questions on the #Mini-Internet channel on matrix, but may not receive an immediate response. If you see a question you can answer yourself, we encourage you to help each other! Please do not ask questions in the #Vorlesung or #Übung channels.
Exercise Concept
In this project, all work is done remotely.
On our server internet.netd.cs.tu-dresden.de
, a proxy runs for every group at a specific port.
You will receive this port along with the required username and password to connect to this proxy via ssh
.
Once you have connected to the proxy, you will find scripts to:
./goto.sh
: access your devices.,./save_configs.sh
: save your work,./restore_configs.sh
: restore configs from a backup (routers only).
For more information, continue to the getting-started instructions.
The point of all exercises is that you figure out the solutions independently - at least to some degree. This website contains much text. Don’t let that discourage you! You will soon wish it were more… Particularly at the beginning, we will give step-by-step instructions and review selected topics to help you retain sight of the big picture and not get lost in all the details. Also, don’t be afraid of mistakes - the more you make along the way, the better. Mistakes give you the chance to improve your troubleshooting skills significantly. They do cost you time. Sorry - There is no free lunch. But, most errors happen at layer 8. And experiencing different kinds of errors now will help you save the day later when your coworkers crash the network. However, we are always there to assist you if you really get stuck during this project. Just reach out for help via the Matrix-Channel.
We would also love to hear your feedback and suggestions - just shoot us a message via Matrix or E-Mail! The course is constantly being improved.
Submission instructions
Submit your Configs and Declaration of Originality
You have to submit all configuration files created by save_configs.sh
as described here.
Then, upload the file to your group’s folder in the OPAL Course for the Mini-Internet.
Academic integrity
We adopt a strict zero-tolerance policy when it comes to cheating.
In particular, you can only do your assignment with the other members of your group.
Do not look at other groups’ configs and do not copy configurations from anywhere.
Discussing things or finding help online is OK, but you must do the work by yourself.
Your configuration may be checked with automated tools to discover plagiarism. Again, do not copy and paste code, text, etc.
Misuse of Resources and Infrastructure
Using and modifying the network in ways other than expressly allowed in this task description is prohibited.
The forbidden misuse includes but is not limited to BGP hijacks, DDoS attacks, resource-/bandwidth-hungry programs, and attempts to access the ASes of other groups.
We monitor, investigate, and apply the appropriate disciplinary actions for cases of misuse.
Credits
The Mini-Internet project is originally part of the Communication Networks Course at ETH taught by Prof. Laurent Vanbever from the Networked Systems Group. The platform and all resources are available on GitHub.
page version 1.0 - last edited May 5th, 2024