|
print $semester ?>
|
print $courseid ?>
|
Exercise #1
Intra-domain Route Oscillations
Due 11:45PM
print PrintDueDate($ex1_due,$ex1_ext_due) ?> (firm)
|
|
In this example, you will reproduce a recently-discovered
convergence problem with BGP.
You will set up some routers and workstations (the latter
acting as routers) and show that, in some scenarios,
BGP routing computation never converges,
resulting in significant routing message traffic.
What you will get out of this exercise:
- configuring low-level networking on a modern OS, and on modern router OSs
- a hands on understanding of how backbone routing in the Internet works today
Electronic submissions only.
|
|
Resources
|
Read and be familiar with as many of these resources as you can:
|
|
Output
|
[BC: Changed 1/30/2007]
You will submit a lab report. The lab report should contain
answers to the questions listed in the exercise description. The
lab report should be in ASCII, PostScript, PDF or HTML.
You should name the file ex1.* with the appropriate
file extension. You may prepare the report using any good word
processing software (MS Word, Latex, Lyx).
[BC: Changed 1/30/2007]
In addition, you will be asked to submit data files and other
kinds of files. To do this, put your report and all required
files into a directory named ex1. Then tar and gzip
this directory into a file called ex1.tar.gz and
submit it electronically.
(Read the documentation for the Unix "tar" command on how to do this).
Even if you are not able to complete the exercise, be sure to
submit a partial lab report. You will get partial credit for your efforts.
|
|
Steps in the Exercise
|
The Physical Topology
In the first step, you will connect two Cisco routers and four
Linux workstations to set up the following physical topology.
In this topology, A and B are Cisco routers and the other
machines are Linux workstations. In addition, you will use the
hub on the rack of the routers. You will connect these machines
according to the following instructions.
First, designate one Cisco 7000 router as node A, and one Cisco
4000 as B. Nodes C, D and E are Linux machines with at least 2
Ethernet ports. Node F is a Linux machine with at least one
Ethernet port.
Then connect direct links using cross-over cables. The following
links are direct links between two Ethernet ports on two
machines: A-B, A-C, A-D and B-E.
Finally, connect shared links to the hub using straight-through
cables. You will connect another Ethernet port on machine C, D
and E to the hub. You will also connect an Ethernet port on F to
the hub.
Now you are done with the physical topology. Note that you are
not able to ping any connected machines before setting up their
interfaces.
Logging onto the Machines
Log onto each Cisco router. Answer these questions in your lab report.
- How many interfaces does each Cisco router have?
- What command did you use to determine this?
Log onto each of the Unix boxes. Answer these questions in your lab report.
- How many interfaces does each Linux box have?
- What command did you use to determine this?
Setting up the Interfaces
For this step, you will need to set up an address assignment plan
for the topology. This plan will assign addresses for different
IP interfaces. In particular, this plan also calls for creating
virtual interfaces on box F,
so that the resulting IP-level topology looks like this:
For this, you will need to refresh your memory of IP addresses,
interfaces, subnets and addressing and virtual interfaces. Use
Web
resources or any system administration book to find out this
information.
Setup the first two bytes of all addresses
according to the last four digits of your USC ID.
If your USC ID is abcdefghij, then
all
addresses must begin with 1gh.ij. For example, if your USC ID is
xxxxxx1234, then all addresses must be in the form of 112.34.x.x.
Answer these questions in your lab report.
- How many subnets are there in your topology?
- Call each subnet by the names of the machines on that subnet
in alphabetical order (e.g. if you think machines A, C and F are
on one subnet, call that subnet ACF). List the names of all the
subnets.
- For each subnet, list the IP address prefix and netmask that
you assigned.
- What commands did you use to configure the virtual interfaces
on F?
Setting up Routing on the Topology
The next step in the exercise would be to configure the boxes A,
B, C, D and E to be in one BGP autonomous system (AS). In this
step, you will also configure boxes A and B to be route
reflectors, and boxes C and D will be clients of A, and box E
will be a client of B. This configuration is shown below.
By the time you get to this step, you should have become quite
familiar with BGP, with route reflectors and how they can cause
route oscillations, and with configuring bgpd in Zebra. Use the
resources listed above and any others you find on the Internet.
Answer these questions in your lab report.
- Include the zebra configuration files for routers C, D and E.
Call these files c.zebra.conf, d.zebra.conf etc. You should also
include the zebra bgpd files from C, D and E. Call these files
c.bgpd.conf, d.bgpd.conf etc.
- Ask the routers A and B to display their routing tables, BGP
routing tables, and BGP neighbor information. List the commands
you use and the output.
- Do the same for the "routers" C, D and E. List the commands
you use and the output.
As part of this step, you will also need to configure
intra-domain routing within the AS consisting of routers A-E. For
this you should use OSPF. You will need to figure out how to
configure OSPF on a Cisco box and on Zebra. So that you can get
route oscillations to work, you will also need to assign link
costs to some of the links in the topology. Figure out how to do
this.
Answer these questions in your lab report.
- Include the running-config of routers A and B. Call these
files a.conf and b.conf.
- Include the zebra OSPF configuration files for routers C, D
and E. Call these files c.ospf.conf, d.ospf.conf etc.
- Which links did you assign costs to, and what costs did you
assign?
- Ask the routers A and B to display their routing tables and
BGP routing tables. List the commands you use and the output.
- Do the same for the "routers" C, D and E. List the commands
you use and the output.
The Final Step
As a final step, you will "feed" some routes from "router" F to
C, D and E. For this, you will run an instance of Zebra on F and
cause Zebra's bgpd to export some routes.
To do this final step, you will need to figure out what routes F
will export to each of C, D and E to cause BGP oscillations to
happen (see
RFC 3345
BGP Persistent Route Oscillation Condition).
Answer the following questions in your lab report.
- What routes did you want the box F to export? When you specify
the routes, you should include any other relevant information,
such as BGP attribute values etc.
- Include the zebra bgpd configuration file that you used on F.
Call it f.bgpd.conf.
- Did you observe a routing oscillation?
To observe this, you will have to enable tracing in the zebra
daemons running on C, D and E. Include the resulting trace files
in your submission. Call these trace files c.bgp.trace,
d.bgp.trace, etc.
You will also need to enable BGP message dumping in the zebra
daemons to store the BGP routing messages received by C, D, and
E. Include the resulting trace files in your submission. Call
these trace files c.bgp.packets, d.bgp.packets, etc.
You're done! Submit the report electronically as outlined above.
|
|
|