Enterprise Networking Week 1

Spring 2021, Mondays 5:30-8:00

January 25


Exams, ground rules

What this course is about: Networking "at scale".

The high-bandwidth TCP problem

TCP Cubic: didn't quite get to. We did cover just where the high-bandwidth TCP problem comes from. See Section 21.6, and chapters 19 and 20.

Other TCPs

Linux networking features

from iximiuz.com/en/posts/container-networking-is-simple.

Create the namespace, name netns0:

    ip netns add netns0
    (to delete it later: ip netns delete netns0)

List the namespace:

    ip netns
    ls /var/run/netns

Enter the namespace:

    nsenter --net=/var/run/netns/netns0 bash

Create a virtual ethernet (veth):

    ip link add veth0 type veth peer name ceth0
    ip link list

This creates a link with two interfaces, veth0 and ceth0. We do this outside netns0. The next step is to move ceth0 into netns0:

    ip link set ceth0 netns netns0

Now we can see ceth0 using our shell running in netns0. The next step is to give veth0 and ceth0 IP addresses:

    outside netns0:
        ip link set veth0 up
        ip addr add 172.10.0.1/16 dev veth0

   inside   netns0:
        ip link set ceth0 up
        ip addr add 172.10.0.2/16 dev ceth0

Now they can ping one another, or talk to each other via netcat.

If we have multiple namespaces, we either must put them on separate subnets or else connect them via a virtual switch.

Mininet

(Didn't get to on 1/25)

Simple example of TCP traffic:

    h1---s1---h2
    h1---r1---h2

Monitoring pings
Monitoring a TCP connection with netcat