Network Management

Comp 351-001/451-001 - Network Management

Summer 2017, Corboy 205, Dordal, Tuesdays and Thursdays 5:30-8:45 pm

Text: The primary text will be An Introduction to Computer Networks (free and online), by me.

Some supplemental resources are:

Grading: There will be a midterm and a final. My general course groundrules are here. Exams will count for between 70% to 80% of your grade, with homework and programs making up the rest. The final exam is August 10. The midterm will probably be July 25 or 27.

Note that there is no class on Tuesday July 4, and that we have a makeup class on Friday July 7.



Study materials

(These will be on Sakai; a draft of the midterm study guide is there now)


Course notes by class:

Class Readings
pre: before class      post: after class
  Class 1: Thu Jul 6

  Class 2: Fri Jul 7

  Class 3: Tue Jul 11
Assignment 1; readings in links
  Class 4: Thu Jul 13
Assignment 2: myswitch
  Class 5: Tue Jul 18

  Class 6: Thu Jul 20
Assignment 3: switchring
  Class 7: Tue Jul 25

  Week 8: Thu Jul 27

  Week 9: Tue Aug 1

  Class 10: Thu Aug 3

  Class 11: Tue Aug 8


Other notes:

Assignments

Mininet information

Assignment 1, due Friday July 14:
Run the lineNstandalone.py Mininet program together with the Pox l2_pairs module.
Have each of h1, h2 and h3 ping h4.
Give me the ovs-ofctl dump-flows result for each of s1-s4. (See the example in the l2_pairs section).

Assignment 2, due Friday July 21:
See myswitch.html

Assignment 3: switchring

Assignment 4, due August 11: moving TCP connections


Course description:

This course addresses how to manage complex highspeed computer networks running a high-volume mix of data, voice, and video protocols. We study performance-tuning options and monitoring techniques. We will consider both large local-area networks and Internet service-provider networks. The course covers the basics of network management applications with focus on performance optimization, fault management, and security management.

We will look at hardware-oriented management protocols such as SNMP, tools for managing software applications, and policy-based routing protocols such as BGP. We will study advanced IP configuration using the linux advanced routing and traffic control toolkit (iproute2 package), and consider how to tune networks for realtime traffic such as RTP and VOIP.

We will also study software-defined networking, which, in its most basic form, means replacing the traditional Ethernet-switch learning algorithm with software that fully controls the routing within the Ethernet LAN. LAN-level packet forwarding can involve higher-layer packet values such as IP addresses and TCP ports, and the LAN itself can contain loops and engage in shortest-path forwarding.

There will be a programming project involving SDN, in the Mininet environment. Students should be comfortable with programming at the level of Comp 150.


OpenNMS

The main site for documentation is OpenNMS.org.

Here are a few of the poller monitors (from 2006 or so; I'm sticking with these so the line numbers match my notes):



Linux routing

Here is the Linux Advanced Routing and Traffic Control website.

Here is the LARTC How-To document, by Bert Hubert et al, on linux policy routing and traffic control (iproute2). I recommend reading section 4 (basics of policy routing) and section 9 (basics of queuing and traffic control).

Here is a locally cached copy; lartc.org seems down.

Here is the policy routing website, with lots more information on linux routing configuration. Take a look at the online policy-routing book Policy Routing with Linux, by Matthew Marsh.

Other good howtos for Traffic Control:
A Practical Guide to Linux Traffic Control, by Jason Boxman: http://blog.edseek.com/~jasonb/articles/traffic_shaping. This has good diagrams. See the section blog.edseek.com/~jasonb/articles/traffic_shaping/scenarios.html for good real-world scenarios.

Traffic Control HOWTO, v 1.0.2     -- Martin Brown: local copy in pdf format.

Here is an example of how to use CBQ queuing to do bandwidth limiting.

See also: http://linux-ip.net/articles/Traffic-Control-HOWTO/classful-qdiscs.html

tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.adv-filter.u32.html: good article on the sometimes-cryptic u32 classifier.

Finally, here is the iptables man page.


SNMP and MIB Browsers

You should download the "free personal edition" of the iReasoning MIB Browser (the download links are at right).

I have been using hosts ulam.cs.luc.edu and ulam2.cs.luc.edu as SNMP servers. Note that Loyola's firewalls block inbound SNMP queries, so you will not be able to access ulam using any SNMP browsers outside Loyola. If you want to work at home, I recommend enabling SNMP on your home machine. For mac and linux users that means installing net-snmp. For windows users, SNMP is "built in" but will have to be activated. Instructions are here.

The following web site is a browser for the "official" MIB; that is, IETF-recognized entries. Note that many of the most important entries are in fact private (that is, manufacturer-specified).
MIB Browser, German Institute of Operating Systems & Computer Networks

Here is the set of mibs for net-snmp (formerly ucd-snmp), the open source snmp server most commonly used on linux systems: linuxmib.tgz (tar/gzip version), or linuxmib.zip (zip version).

Here is a selected set of further mib files that are worth looking at to get a sense of the breadth and options available.

The following site contains a nice java SNMP library, and source for the SNMP Inquisitor tool.
Java SNMP Package