7.1. | Configure the routers for use with
RIP. You must refer to the Vyatta
documentation to find out how to do this. TipYou will find you have a choice between advertising
a “network” or an “interface”. In this case, advertising
the “interface” is preferable, because it means that it
will use the address assigned to a particular
interface. This could reduce typing mistakes, but could
also make it harder to check if you have many interfaces,
as Vyatta doesn’t allow for easily renaming
interfaces. |
7.2. | Observe RIP traffic using
tcpdump. Listen on R3’s eth0.20 or
eth0.30 interface. You will notice that the some routes
appear to be missing in the advertisements. Explain why this
happens. |
7.3. | Go back into configuration mode, and enable
poison-reverse using the configuration command set
interfaces ethernet ethX vif
Y ip rip split-horizon
poison-reverse for each interface on each
router. Using tcpdump as before, what has
changed? |
7.4. | Rather than using the system command
tcpdump, as was done in the previous
questions, we can get a lot
more debugging information from Vyatta itself. Investigate
which debugging commands might be useful for showing what
advertisements are being received. Note that show log tail is a
particularly important command for actually seeing the logs,
but it is unfortunately not at all obvious when reading the
documentation for the debug commands related to
RIP and others. Be aware that it order to stop debugging output being
produced, you will want to use no debug …
instead of debug …. The arguments need to
be the same. You can use show debugging
rip to see what debugging options are enabled. |
7.5. | In VirtualBox, we can connect and disconnect adaptors
from a machine reasonably easily. In the bottom part of a
VirtualBox VM window, you can click on the network icon to
unplug or plug an interface. This is the same as plugging or
unplugging a cable. We’re going to use this feature to
disconnect the 192.168.4.0/24 network from R1, and see how long it
takes for R2 to learn of the outage. To see modifications to the kernel’s routing table on
R2, we shall use the system command ip
monitor (look back to the early lab where tools
such as ifconfig were introduced). In
modern versions of Vyatta that feature the FusionCLI
interface, we can enter shell commands as well as Vyatta
commands; only the Tab completion shows Vyatta commands,
never shell commands. In operator mode (ie. not configuration mode) run
show log tail on R1; we should see a
notification here when we unplug the interface. On R2, run ip -timestamp
monitor. This will start reporting for changes
to the routing table. On R1, un-tick the Adaptor 1 interface so it
becomes unplugged, a log will be printed on-screen. On R2, there will shortly be a message reporting
the change. Note the time it took; the clocks will be
synchronised, so use the timestamps from both
machines. That was fail-over. Re-enable the interface on
R1. Measure how long it takes to fail-back.
What were the fail-over and fail-back times? What
improvement to basic RIP is being used
here? |
7.6. | The previous exercise simulated a situation whereby
the isolation occured on the far side
of a router, and the router could therefore tell us about
it. Let’s now simulate a fault on the
near side of the router where the
router R1 is cut-off from the routers R2 and R3. Consider the physical topology
diagram shown earlier. If you disconnect Apaptor 2
(ie. eth1) on R1, both the
192.168.1.0/24 and 192.168.2.0/24 network links on R1 would
be useless (which are build from VLANs that go over the same
cable). Therefore, if Adaptor 2 goes down, it completely
separates the network. Try it; take down Adaptor 2 on R1, and measure how
long it takes for R2 to respond by removing routes for those
prefixes which are no-longer reachable. How long does this take? What prefixes are removed
from R2’s routing table? Put the interface back, how long
does fail-back take? |
7.7. | In the previous exercise, it took R3 a while to
realise that it hadn’t received a message from R1 for a
while and to place it in the “hold-down” state, which allows
it to ignore updates about this route for a while in order
to let any old routing information expire from the
network. In this scenario, we are going to simulate a
routing problem whereby this time the routers can route
around the problem. On R2, quit out of ip monitor using
Control-C and use the operational command show ip
route to observe the current state of the routing
table (our “steady-state”). Then start ip
-timestamp monitor to watch for R2’s reaction to
the change we are about to make. Simulate the network failure by withdrawing
RIP on the eth1.10 interface of the
router R1. You can do this using the command delete
protocols rip interface eth1.10 and then
committing your change. Use the command
date immediatly after to determine when
you made the change. Remember that the clocks on R1 and R2
are running on the same host, and are implicitly
synchronised. When you see R2’s reaction, quit the monitor and
observe the routing table again. How has it changed (look
closely to which next-hop is being used for each network)?
Ensure you can describe the meaning of any changes. Was an
alternative route used immediately by R2, or was there some
gap? How long was the gap? Start the monitor again and allow R1 to participate in
RIP on eth1.10 again. Don’t forget to
commit the change and run date. How long
does it take for R2 to fail back to the optimal path? |