Note: Information on this page is for course instructors.
Please do not distribute the link to this page to non-instructors.
This webpage provides new/updated labs for the Internet Lab.
Questions? Contact jorg@ece.utoronto.ca or
parviz@cs.umass.edu.
Content
- Overview
- Physical and virtual versions
- Lab instructions
- Lecture slides and videos
Overview
The new version of the Internet Lab can be run on a rack with hardware equipment or virtually
on a laptop.
The lab content has been majorly revised:
- Root account is replaced with sudo commands.
- Ifconfig commands are replaced with iproute2 commands.
- Extensive exposure to IPv6 features in several labs.
- Exercises with multiple TCP congestion control algorithms.
The labs have been used since 2020 for instruction at the University of Massachussetts Amherst and
the University of Toronto.
If you are interested in the genesis and motivation for Version 2.0, please refer to
this document.
Physical and virtual versions
Version 2.0 of the Internet Lab Manual can be run in different modes:
- as physical labs using an equipment rack (as shown on the right),
- as virtual labs that run on a student's laptop.
Physical labs:
The equipment rack for the labs consists of four Cisco routers, four Linux (Ubuntu 20.04 LTS)
PCs, four Ethernet switches, a KVM switch, plus a monitor, keyborad, and mouse.
There are two versions of the physical labs, which have a different configurations for the Linux PCs.
- PC ("bare metal") version:
Here, PCs run a native Ubuntu 20.04 installation. At the University of Toronto,
the PCs are installed with a LiveCD version of Ubuntu 20.04, which ensures that each
reboot of the PC results in a `clean' install.
Instructions and code for creating a LiveCD are available
here.
- VM-based ("hybrid") version:
Here, the Linux PCs run virtual machines (VMs). For each student, a separate Linux VM is installed on
each PC. Students have admin privileges on the Linux VMs, but not on the Linux of the host installation. This version is used at UMass Amherst.
Virtual labs:
Here, students install Virtualbox and
GNS3 on their laptop.
There are two versions of the virtual labs:
- GNS3/Docker:
Here, a PC is represented by a Docker container, which is
based on a Ubuntu 20.04 LTS image.
- GNS3/VM:
Here, a PC is represented by Ubuntu 20.04 running in Virtualbox VM.
Note: Each new version of Windows and MacOS generally introduces challenges
for installing Virtualbox and GNS3. The challenges have been exacerbated with Apple Silicon Macs.
Our instructions for virtual labs are from 2020 (Mac OS X 10.15 on Intel processors and
Windows 10).
The lab instructions are written so that there are four versions of Lab 1 (one for each
of the variants described above). Starting at Lab 2, the same lab instructions apply to
both physical and virtual labs. For the virtual lab, there is an additional "Lab 0" with
instructions to install necessary software.
This results in the lab sequence shown on the right.
Lab instructions
Note that there are solutions available for the labs.
Lab 0 - Software installation (needed only for virtual labs)
Lab 1 - Introduction to the Internet Lab
Lab 2 - Single Subnet
Lab 3 - Multiple Subnets, Static Routing
Lab 4 - Dynamic Routing Protocols
Lab 5 - LAN Switching
Lab 6 - Transport Layer Protocols
Lab 7 - NAT and DHCP
Lecture slides and videos
Below are the slide decks for a lecture that accompanies the lab sequence.
Lecture videos are available on this page.
Usage is permitted for noncommercial entities.
- IPv4 Addresses
- Classful IPv4 Addresses
- Subnetting
- Administration of Global IP Addresses
- IPv6 Addresses, Part 1: Overview
- IPv6 Addresses, Part 2: Address Types
- TCP/IP Networking - An Example
- Review of Networking Concepts
- Data Link Protocols
- NeighborDiscovery
- IPv4 Protocol
- IPv4 Fragmentation
- IPv6 Protocol
- ICMP
- IP Forwarding
- Appendix to IP Forwarding
- Router Architecture
- IP Address Lookup
- Routing Protocols
- Routing Information Protocol
- Open Shortest Path First
- Open Shortest Path First, Appendix
- Policy Based Routing
- Border Gateway Protocol (BGP)
- Layer-2 Switching
- Spanning Tree Protocol
- Spanning Tree Protocol Example
- Virtual LAN (VLAN)
- Transport Protocols
- TCP, Part 1: Header Format
- TCP, Part 2: Connection Management
- TCP, Part 3: Acknowledgements
- TCP, Part 3: Acknowledgements (continued)
- TCP, Part 4: Flow Control
- TCP, Part 5: Error Control
- Introduction to Congestion Control
- TCP Congestion Control
- Dynamic Host Configuratio Protocol (DHCP)
- Network Address Translation (NAT)
- Domain Name System (DNS)
- IP Multicast, Part 1: Group management
- IP Multicast, Part 2: Multicast routing principles
- IP Multicast, Part 3: Multicast routing protocols