Network Management

Summer 2017, Corboy 205, TTh 5:30-8:45 pm

Class 6: July 20




Midterm study guide draft

Readings

Here are some references to IntroNetworks:
Ethernet switching: intronetworks.cs.luc.edu/current/html/ethernet.html#ethernet-switches
Spanning Tree: intronetworks.cs.luc.edu/current/html/ethernet.html#spanning-tree-algorithm-and-redundancy
Overview of distance-vector route-discovery (especially intronetworks.cs.luc.edu/current/html/routing.html#distance-vector-update-rules).

Discussion of SDN and openflow: intronetworks.cs.luc.edu/current/html/ethernet.html#software-defined-networking.

The Pox section of AICN: intronetworks.cs.luc.edu/current/html/mininet.html#the-pox-controller.

After class 4 you should read up through section 11 of intronetworks.cs.luc.edu/current/html/netmgmt.html.



Basics of linux
Basics of Python:

1. Hot packet soup example:
    mininet rectangle.py and l2_pairs.py

Tuesday we did this and, in a few seconds, saw thousands of circulating ARP requests.

Now to fix it. The rectanglepox.py example failed Tuesday, because I'd disabled the forwarding of broadcast traffic, which is essential for ARP to work.

What if we configured the forwarding in rectangle.py, using pox, so s1→h1, s2→h2, etc, and
    to reach h1, s2→s3→s4→s1
    to reach h2, s3→s4→s1→s2
    etc

Would this work? Note that packets addressed to h1--h4 do not circulate endlessly! The demo was supposed to show that, with HANDLE_BROADCAST=False, this did not work. That's what happened: it did not work. But I forgot that the reason was the parameter.

If we set HANDLE_BROADCAST=True, the example does work. The switches s2, s3 and s4 flood normally. But if s1 receives a packet from s4, it does not flood it to s2, and vice-versa (though in both cases s1 would flood the packet to h1).

cw/ccw example:

Open an xterm at s2. Start wireshark or tcpdump to listen to s2-eth2. Have h1 ping h3. Do you see ping requests or replies or both? Next, have h3 ping h1. Now what do you see?

2. Assignment 3: switchring

 
3. First look at trunkNK.py and multitrunkpox.py
   TCP connections take trunk 1, 2, or 3, in sequence.

trunkNK.py: setting link bandwidths
multitrunkpox.py: assign new TCP connections to one of the trunks, in round-robin fashion via picktrunk().
Note that this requires matching on the IP addresses and TCP ports, as well as the Ethernet addresses.



4. Mininet and SNMP

Example: routerline.py
We can install SNMP with these two commands:
    apt-get install snmpd
    apt-get install snmp

We also have to configure /etc/snmp/snmpd.conf, but only once, on the base Mininet virtual machine. We can now start /usr/sbin/snmpd on each Mininet node, and it will share the configuration.

We can then run, eg
    snmpwalk -v 1 -c tengwar 10.0.2.1 1.3.6.1.2.1.2.2.1.2

What is this OID?



Continuation with SNMP

Read intronetworks.cs.luc.edu/current/html/netmgmt.html, sections 21.1-21.11

Continue with SNMPv2
   
Other ways of polling devices:

    ssh: limitations: lack of "universal" account
              lack of "limited" account
              doesn't work for most hubs/switches/non-hosts