Summer 2017, Corboy 205, TTh 5:30-8:45 pm
Class 3: July 11
Run the lineNstandalone.py
Mininet program together with the Pox l2_pairs
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
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).
Could we implement DV on an Ethernet? Why not?
Demo of mininet3 and lxde
See also ../mininet
switchline -N 3
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.
Brief intro to SNMP
SNMP, for Simple Network Monitor Protocol, is a way to get information from
each node on your network. Each device must run an SNMP "agent" module; for
example, workstations must run an SNMP software package in order to respond.
SNMP can be used readonly to poll the agents and retrieve data, or in
readwrite mode to update and configure the devices via their agents.
SNMP started as SGNP: Simple Gateway Monitoring Protocol,
in 1987 ("gateway" is an old term for "router"). It conflicted with the OSI
approach known as CMIP (Common Management Information Protocol). At the time
CMIP was too large and complex for practical implementation.
In 1988 the Internet Activities Board decided to pursue both SGMP and CMOT:
CMIP over TCP/IP. This failed within a year: CMOT was dropped and SGMP had
evolved into SNMPv1.
Perhaps the first issue for SNMP is how are we going to NAME all the
possible attributes? Remember that many devices will have
One important manufacturer-specific attribute is the Device Temperature.
SNMP defines an enormous tree-structured naming hierarchy, using strings of
digits known as Object IDentifiers, or OIDs. A diagram appears in Mauro
& Schmidt, page 24. Here are some upper levels:
2 mgmt 4: private
Thus, the prefix 22.214.171.124.2.1 is would be the OID prefix for the mib-2 data;
mib-2 was an early standardization of the SNMP data that would "usually" be
available. The prefix 126.96.36.199.4.1 is for "private", or
Here are some of the next mib-2 levels; we will use "mib2" to represent
"188.8.131.52.2.1"; thus mib2.5 denotes
mib2.8 egp (obsolete)
mib2.9 unimplemented [?]
mib2.10 unimplemented [?]
mib2.11 snmp server
mib2.25 host resources
There are more.
SET GET GET-NEXT, response, TRAP
atomic values only! Note use of GET-NEXT
The "base" MIB is MIB-2
data presentation (eg byte order, but much more)
NAMING for all those possible attributes!
ASN.1/BER data representation: defer
data can be subdivided into fields, though it is not for SNMP.
A MIB is an assignment to each of a set of OIDs a specific
attribute name and type. (MIBs also define tabular data forms.) The OIDs
name the general attributes, not a specific instance. In that sense, OIDs
are like Java class definitions, not class instances.
The first case corresponds to our seeing 184.108.40.206.220.127.116.11 in the output of
the system snmp walk; we did not,
however, know how to interpret the responses.
- given an OID, how do we find a MIB file that defines it?
- given a piece of hardware, how do we find a MIB that defines its SNMP
The second case is probably more common: you have a new switch, and need to
find out what kinds of SNMP data it submits in the private
If we run a MIB browser such as iReasoning, we can see the OIDs. Sometimes
googling for the OID will turn something up. Sometimes searching the mib
files for, say, the string "system 9" to figure out the OIDs of form
system.9, will find what we want.
Demos using iReasoning tool and snmpwalk
We will use host ulam3 (10.38.2.42) and/or my laptop for these demos
(/etc/default/snmpd by default binds snmpd only to localhost!)
snmpwalk -v 2c -c public ulam3 .18.104.22.168.2.1.1
snmpwalk -v 2c -c public ulam3
End of MIB
snmpwalk -v 2c -c tengwar ulam3
gads of data
snmpwalk -v 1 -c tengwar ulam3 22.214.171.124.4.1.42
gads of data
As of 2016, the ulam3 SNMP community strings are "public", "futhark" and
You can put .126.96.36.199.4.1.42 into the upper-right box of the iReason tool [at
least for ulam3]
Other ways of polling devices:
ssh: limitations: lack of "universal" account
for most hubs/switches/non-hosts