Performing network experiments and studying network protocol behavior is a non-trivial process. The most commonly used approach to perform network experiments is to set up a physical testbed that closely represents the desired network. But it is expensive even for relatively small networks and more importantly, not scalable. Linux network namespaces are a suitable alternative to physical testbeds because we can quickly set up a lightweight emulation testbed for the experimental evaluation. Setting up a network environment in a single system using network namespaces enhances the reproducibility aspects, and minimizes the maintenance and cost overhead.
This talk will discuss the following aspects of Linux network namespaces:
- Introduction to Linux network namespaces (netns)
- Creating virtual nodes and routers using Linux netns
- Creating virtual links between nodes and routers
- Configuring data rate and delay between the nodes and routers
- Assigning IP addresses to virtual nodes and routers
- Checking the connectivity between virtual nodes using ping
- Running iperf3 to verify the configuration of data rates