Exercises

These exercises expand the key principles in this chapter. If you are a computer professional, you will enjoy the challenges and higher-level discussions in this section. If you are a novice, explore the presentations and spend more time on the topics that are meaningful to you.

5.5 Exercises

5.5.1 Principles

1. Routing protocols used in data networks only use positive link weights. What would happen with a distance vector routing protocol in the network below that contains a negative link weight?

Figure 5.74: Simple network

2. When a network specialist designs a network, one of the problems that he needs to solve is to set the metrics of the links in his network. In the USA, the Abilene network interconnects most of the research labs and universities. The figure below shows the topology 40 of this network in 2009.

Figure 5.75: The Abilene network

In this network, assume that all the link weights are set to 1. What is the paths followed by a packet sent by the router located in Los Angeles to reach:

  • the router located in New York
  • the router located in Washington?

Is it possible to configure the link metrics so that the packets sent by the router located in Los Angeles to the routers located in respectively New York and Washington do not follow the same path?

Is it possible to configure the link weights so that the packets sent by the router located in Los Angeles to the router located in New York follow one path while the packets sent by the router located in New York to the router located in Los Angeles follow a completely different path?

Assume that the routers located in Denver and Kansas City need to exchange lots of packets. Can you configure the link metrics such that the link between these two routers does not carry any packet sent by another router in the network?

3. In the five nodes network shown below, can you configure the link metrics so that the packets sent by router E to router A use link B->A while the packets sent by router B use links B->D and D->A?

Figure 5.76: Simple five nodes network

4. In the five nodes network shown above, can you configure the link weights so that the packets sent by router E (resp. F) follow the E->B->A path (resp. F->D->B->A)?

5. In the above questions, you have worked on the stable state of the routing tables computed by routing protocols. Let us now consider the transient problems that mainly happen when the network topology changes 41. For this, consider the network topology shown in the figure below and assume that all routers use a distance vector protocol that uses split horizon.

Figure 5.77: Simple network with redundant links

If you compute the routing tables of all routers in this network, you would obtain a table such as the table below:

Destination  

A

B

C

D

E

Routes on A

0

1 via B

2 via B

3 via B

4 via B

Routes on B

1 via A

0

1 via C

2 via C

3 via C

Routes on C

2 via B

1 via B

0

1 via D

2 via D

Routes on D

3 via C

2 via C

1 via C

0

1 via E

Routes on E

4 via D

3 via D

2 via D

1 via D

0


Distance vector protocols can operate in two different modes: periodic updates and triggered updates. Periodic updates is the default mode for a distance vector protocol. For example, each router could advertise its distance vector every thirty seconds. With the triggered updates a router sends its distance vector when its routing table changes (and periodically when there are no changes).

  • Consider a distance vector protocol using split horizon and periodic updates. Assume that the link B-C fails. B and C update their local routing table but they will only advertise it at the end of their period. Select one ordering for the periodic updates and every time a router sends its distance vector, indicate the vector sent to each neighbor and update the table above. How many periods are required to allow the network to converge to a stable state?
  • Consider the same distance vector protocol, but now with triggered updates. When link B-C fails, assume that B updates its routing table immediately and sends its distance vector to A and D. Assume that both A and D process the received distance vector and that A sends its own distance vector,... Indicate all the distance vectors that are exchanged and update the table above each time a distance vector is sent by a router (and received by other routers) until all routers have learned a new route to each destination. How many distance vector messages must be exchanged until the network converges to a stable state?

6. Consider the network shown below. In this network, the metric of each link is set to 1 except link A-B whose metric is set to 4 in both directions. In this network, there are two paths with the same cost between D and C. Old routers would randomly select one of these equal cost paths and install it in their forwarding table. Recent routers are able to use up to N equal cost paths towards the same destination.

Figure 5.78: A simple network running OSPF

On recent routers, a lookup in the forwarding table for a destination address returns a set of outgoing interfaces. How would you design an algorithm that selects the outgoing interface used for each packet, knowing that to avoid reordering, all segments of a given TCP connection should follow the same path?

7. Consider again the network shown above. After some time, OSPF converges and all routers compute the following routing tables:

Desti-nation  

A

B

C

D

E

Routes on A

0

2 via C

1 via C

3 via C

2 via C

Routes on B

2 via C

0

1 via C

1 via D

2 via C,D

Routes on C

1 via A

1 via B

0

2 via B,E

1 via E

Routes on D

3 via B,E

1 via B

2 via B,E

0

1 via E

Routes on E

2 via C

2 via D,C

1 via C

1 via D

0


An important difference between OSPF and RIP is that OSPF routers flood link state packets that allow the other routers to recompute their own routing tables while RIP routers exchange distance vectors. Consider that link B-C fails and that router B is the first to detect the failure. At this point, B cannot reach anymore A, C and 50% of its paths towards E have failed. C cannot reach B anymore and half of its paths towards D have failed.

Router B will flood its updated link state packet through the entire network and all routers will re- compute their forwarding table. Upon reception of a link state packet, routers usually first flood the received link-state packet and then recompute their forwarding table. Assume that B is the first to recompute its forwarding table, followed by D, A, C and finally E

8. After each update of a forwarding table, verify which pairs of routers are able to exchange packets. Provide your answer using a table similar to the one shown above.

9. Can you find an ordering of the updates of the forwarding tables that avoids all transient problems?

10. Consider the network shown in the figure below and explain the path that will be followed by the packets to reach 194.100.10.0/23

Figure 5.79: A stub connected to one provider

11. Consider, now, as shown in the figure below that the stub AS is now also connected to provider AS789. Via which provider will the packets destined to 194.100.10.0/23 will be received by AS4567? Should AS123 change its configuration.

12. Consider that stub shown in the figure below decides to advertise two /24 prefixes instead of its allocated /23 prefix.

  1. Via which provider does AS4567 receive the packets destined to 194.100.11.99 and 194.100.10.1?
  2. How is the reachability of these addresses affected when link R1-R3 fails?
  3. Propose a configuration on R1 that achieves the same objective as the one shown in the figure but also preserves the reachability of all IP addresses inside AS4567 if one of AS4567‘s interdomain links fails?

Figure 5.80: A stub connected to two providers

13. Consider the network shown in the figure below. In this network, each AS contains a single BGP router. Assume that R1 advertises a single prefix. R1 receives a lot of packets from R9. Without any help from R2, R9 or R4, how could R1 configure its BGP advertisement such that it receives the packets from R9 via R3? What happens when a link fails?

14. Consider the network show in the figure below.

  1. Show which BGP messages are exchanged when router R1 advertises prefix 10.0.0.0/8.
  2. How many and which routes are known by router R5? Which route does it advertise to R6?
  3. Assume now that the link between R1 and R2 fails. Show the messages exchanged due to this event. Which BGP messages are sent to R6?

15. Consider the network shown in the figure below where R1 advertises a single prefix. In this network, the link between R1 and R2 is considered as a backup link. It should only be used only when the primary link ( R1-R4) fails. This can be implemented on R2 by setting a low local-pref to the routes received on link R2-R1

  1. In this network, what are the paths used by all routers to reach R1?
  2. Assume now that the link R1-R4 fails. Which BGP messages are exchanged and what are now the paths used to reach R1?
  3. Link R1-R4 comes back. Which BGP messages are exchanged and what do the paths used to reach R1 become?

16. On February 22, 2008, the Pakistan Telecom Authority issued an order to Pakistan ISPs to block access to three IP addresses belonging to youtube: 208.65.153.238, 208.65.153.253, 208.65.153.251. One operator noted that these addresses belonged to the same /24 prefix. Read http://www.ripe.net/news/study- youtube-hijacking.html to understand what really happened.

1. What should youtube have done to avoid this problem?

Figure 5.81: A stub connected to two providers

Figure 5.82: A simple internetwork

Figure 5.83: A simple internetwork

Figure 5.84: A simple internetwork with a backup link

2. What kind of solutions would you propose to improve the security of interdomain routing?

17. There are currently 13 IPv4 addresses that are associated to the root servers of the Domain Name System. However, http://www.root-servers.org/ indicates that there are more than 100 different physical servers that support. This is a large anycast service. How would you configure BGP routers to provide such anycast service?

18. Consider the network shown in the figure below. In this network, R0 advertises prefix p and all link metrics are set to 1

  • Draw the iBGP and eBGP sessions
  • Assume that session R0-R8 is down when R0 advertises p over R0-R7. What are the BGP messages exchanged and the routes chosen by each router in the network?
  • Session R0-R8 is established and R0 advertises prefix p over this session as well
  • Do the routes selected by each router change if the MED attribute is used on the R7-R6 and R3-R10 sessions, but not on the R4-R9 and R6-R8 sessions?
  • Is it possible to configure the routers in the R1 - R6 network such that R4 reaches prefix p via R6-R8 while R2‘uses the ‘R3-R10 link?

Figure 5.85: A simple Internet

19. The BGP MED attribute is often set at the IGP cost to reach the BGP nexthop of the advertised prefix. However, routers can also be configured to always use the same MED values for all routes advertised over a given session. How would you use it in the figure above so that link R10-R3 is the primary link while R7-R6 is a backup link? Is there an advantage or drawback of using the MED attribute for this application compared to local-pref?

20. In the figure above, assume that the managers of R8 and R9 would like to use the R8-R6 link as a backup link, but the managers of R4 and R6 do no agree to use the BGP MED attribute nor to use a different local-pref for the routes learned from


5.5.2 Practice

1. For the following IPv4 subnets, indicate the smallest and the largest IPv4 address inside the subnet:

  • 8.0.0.0/8
  • 172.12.0.0/16
  • 200.123.42.128/25
  • 12.1.2.0/13

2. For the following IPv6 subnets, indicate the smallest and the largest IPv6 address inside the subnet:

  • FE80::/64
  • 2001:db8::/48
  • 2001:6a8:3080::/48

3. Researchers and network operators collect and expose lots of BGP data. For this, they establish eBGP sessions between data collection routers and production routers located in operational networks. Several data collection routers are available, the most popular ones are:

For this exercise, you will use one of the routeviews BGP routers. You can access one of these routers by using telnet. Once logged on the router, you can use the router’s command line interface to analyse its BGP routing table.

telnet route-views.routeviews.org
Trying 128.223.51.103...
Connected to route-views.routeviews.org. Escape character is ’^]’.
C
**********************************************************************
 

Oregon Exchange BGP Route Viewer

route-views.oregon-ix.net / route-views.routeviews.org

route views data is
archived on http://archive.routeviews.org
This hardware is part of a grant from Cisco Systems.
Please contact help@routeviews.org if you have questions or comments about this service, its use, or if you might be able to contribute your view.
 
This router has views of the full routing tables from several ASes. The list of ASes is documented under "Current Participants" on http://www.routeviews.org/.
 
**************
 
route-views.routeviews.org is now using AAA for logins. Login with username "rviews". See http://routeviews.org/aaa.html
 
********************************************************************** User Access Verification
Username: rviews
route-views.oregon-ix.net>

This router has eBGP sessions with routers from several ISPs. See http://www.routeviews.org/peers/route-views.oregon-ix.net.txt for an up-to-date list of all eBGP sessions maintained by this router.

Among all the commands supported by this router, the show ip bgp command is very useful. This command takes an IPv4 prefix as parameter and allows you to retrieve all the routes that this routers has received in its Adj-RIB-In for the specified prefix.

1. Use show ip bgp 130.104.0.0/16 to find the best path used by this router to reach UCLouvain

2. Knowing that 130.104.0.0/16 is announced by belnet (AS2611), what are, according to this BGP routing tables, the ASes that peer with belnet

3. Do the same analysis for one of the IPv4 prefixes assigned to Skynet (AS5432): 62.4.128.0/17. The output of the show ip bgp 62.4.128.0/17 reveals something strange as it seems that one of the paths towards this prefix passes twice via AS5432. Can you explain this?

2905 702 1239 5432 5432
196.7.106.245 from 196.7.106.245 (196.7.106.245)
Origin IGP, metric 0, localpref 100, valid, external

4. netkit allows to easily perform experiments by using an emulated environment composed of virtual machines running User Model Linux. netkit allows setting up a small network in a lab and configuring it as if you had access to several PCs interconnected by using cables and network equipment.

A netkit lab is defined as a few configuration files and scripts:

lab.conf is a text file that defines the virtual machines and the network topology. A simple lab.conf
file is shown below.

LAB_DESCRIPTION="a string describing the lab"
LAB_VERSION=1.0
LAB_AUTHOR="the author of the lab"
LAB_EMAIL="email address of the author" 
h1[0]="lan"
h2[0]="lan"

This configuration file requests the creation of two virtual machines, named h1 and h2. Each of these hosts has one ne

A host.startup file for each host (h1.startup and h2.startup in the example above). This file is a shell script that is executed at the end of the boot of the virtual host. This is typically in this script that the network interfaces are configured and the daemons are launched. A directory for each host ( h1 and h2 in the example above). This directory is used to store configuration files that must be copied on the virtual machine’s filesystems when they are first created.

netkit contains several scripts that can be used to run a lab. lstart allows to launch a lab and lhalt allows to halt the machines at the end of a lab. If you need to exchange files between the virtual machines and the Linux host on which netkit runs, note that the virtual hosts mount the directory that contains the running lab in /hostlab and your home directory in /hosthome.

For this exercise, you will use a netkit lab containing 4 hosts and two routers. The configuration files are available exercises/labs/lab-2routers.tar.gz. The network topology of this lab is shown in the figure below.

Figure 5.86: The two routers lab

The lab.conf file for this lab is shown below.

h1[0]="lan1"
h2[0]="lan1"
h3[0]="lan2"
router1[0]="lan1"
router1[1]="lan2"
router2[0]="lan2"
router2[1]="lan3"
h4[0]="lan3"

In this network, we will use subnet 172.12.1.0/24 for lan1, 172.12.2.0/24 for lan2 and 172.12.3.0/24 for lan3.

On Linux, the IP addresses assigned on an interface can be configured by using ifconfig(8). When ifconfig(8) is used without parameters, it lists all the existing interfaces of the host with their configuration. A sample ifconfig(8) output is shown below.

host:~# ifconfig
eth0 Link encap:Ethernet HWaddr FE:3A:59:CD:59:AD
Inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::fc3a:59ff:fecd:59ad/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:216 (216.0 b) TX bytes:258 (258.0 b)
Interrupt:5
 
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr:::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

This host has two interfaces: the loopback interface (lo with IPv4 address 127.0.0.1 and IPv6 address::1) and the eth0 interface. The 192.168.1.1/24 address and a link local IPv6 address (fe80::fc3a:59ff:fecd:59ad/64) have been assigned to interface eth0. The broadcast address is used in some particular cases, this is outside the scope of this exercise. ifconfig(8) also provides statistics such as the number of packets sent and received over this interface. Another important in- formation that is provided by ifconfig(8) is the hardware address (HWaddr) used by the datalink layer of the interface. In the example above, the eth0 interface uses the 48 bits FE:3A:59:CD:59:AD hardware address.

You can configure the IPv4 address assigned to an interface by specifying the address and the netmask.

ifconfig eth0 192.168.1.2 netmask 255.255.255.128 up

You can also specify the prefix length

.. code-block:: text

ifconfig eth0 192.168.1.2/25 up

In both cases, ifconfig eth0 allows you to verify that the interface has been correctly configured.

eth0    Link encap:Ethernet HWaddr FE:3A:59:CD:59:AD
inet addr:192.168.1.2 Bcast:192.168.1.127 Mask:255.255.255.128
inet6 addr: fe80::fc3a:59ff:fecd:59ad/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:216 (216.0 b) TX bytes:258 (258.0b)
Interrupt:5

Another important command in Linux is route(8) which allows one to look at the contents of the routing table stored in the Linux kernel and change it. For example, route -n returns the contents of the IPv4 routing table. See route(8) for a detailed description on how you can configure routes by using this tool.

1. Use ifconfig(8) to configure the following IPv4 addresses:

      • 172.16.1.11/24 on interface eth0 on h1
      • 172.16.1.12/24 on interface eth0 on h2

2. Use route -n to look at the contents of the routing table on the two hosts.

3. Verify by using ping(8) that h1 can reach 172.16.1.12

4. Use ifconfig(8) to configure IPv4 address 172.16.1.1/24 on the eth0 interface of router1 and 172.16.2.1/24 on the eth1 interface on this router.

5. Since hosts h1 and h2 are attached to a local area network that contains a single router, this router can act as a default router. Add a default route on h1 and h2 so that they can use router1 as their default router to reach any remote IPv4 address. Verify by using ping(8) that h1 can reach address 172.16.2.1.

6. What do you need to configure on router2, h3 and h4 so that all hosts and routers can reach all hosts and routers in the emulated network? Add the ifconfig and route commands in the.startup files of all the hosts so that the network is correctly configured when it is started by using lstart.

5. Use the network configured above to test how IP packets are fragmented. The ifconfig command allows you to specify the Maximum Transmission Unit (MTU), i.e. the largest size of the frames that are allowed on a given interface. The default MTU on the eth? interfaces is 1500 bytes.

1. Force an MTU of 500 bytes on the three interfaces attached to lan2.

2. Use ping -s 1000 to send a 1000 bytes ping packet from h3 to one of the routers attached to lan2 and capture the packets on the other router by using tcpdump(8). In which order does the emulated host send the IP fragments?

3. Use ping -s 2000 to send a 2000 bytes ping packet from h1 to h4 and capture the packets on lan2 and lan3 by using tcpdump(8). In which order does the emulated host send the IP fragments?

4. From your measurements, how does an emulated host generate the identifiers of the IP packets that it sends?

5. Reset the MTU on the eth1 interface of router r1 at 1500 bytes, but leave the MTU on the eth0 interface of router r2 at 500 bytes. Check whether host h1 can ping host h4. Use tcpdump(8) to analyse what is happening.

6. The Routing Information Protocol (RIP) is a distance vector protocol that is often used in small IP networks. There are various implementations of RIP. For this exercise, you will use quagga, an open-source imple- mentation of several IP routing protocols that runs on Linux and other Unix compatible operating systems. quagga(8) is, in fact, a set of daemons that interact together and with the Linux kernel. For this exercise, you will use two of these daemons: zebra(8) and ripd(8). zebra(8) is the master daemon that handles the interactions between the Linux kernel routing table and the routing protocols. ripd(8) is the implementation of the RIP protocol. It interacts with the Linux routing tables through the zebra(8) daemon.

To use a Linux real or virtual machine as a router, you need to first configure the IP addresses of the in- terfaces of the machine. Once this configuration has been verified, you can configure the zebra(8) and ripd(8) daemons. The configuration files for these daemons reside in /etc/zebra. The first configuration file is /etc/zebra/daemons. It lists the daemons that are launched when zebra is started by /etc/init.d/zebra. To enable ripd(8) and zebra(8), this file will be configured as follows.

# This file tells the zebra package
# which daemons to start.
# Entries are in the format: <daemon>=(yes|no|priority)
# where ’yes’ is equivalent to infinitely low priority, and
# lower numbers mean higher priority. Read
# /usr/doc/zebra/README.Debian for details.
# Daemons are: bgpd zebra ospfd ospf6d ripd ripngd
zebra=yes
bgpd=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no

The second configuration file is the /etc/zebra/zebra.conf file. It defines the global configuration rules that apply to zebra(8). For this exercise, we use the default configuration file shown below.

! -*- zebra -*-
!
! zebra configuration file
!
hostname zebra
password zebra
enable password zebra
!
! Static default route sample.
!
!ip route 0.0.0.0/0 203.181.89.241
!
log file /var/log/zebra/zebra.log

In the zebra configuration file, lines beginning with ! are comments. This configuration defines the hostname as zebra and two passwords. The default password (password zebra) is the one that must be given when connecting to the zebra(8) management console over a TCP connection. This management console can be used like a shell on a Unix host to specify commands to the zebra(8) daemons. The second one (enable password zebra) specifies the password to be provided before giving commands that change the configuration of the daemon. It is also possible to specify static routes in this configuration file, but we do not use this facility in this exercise. The last parameter that is specified is the log file where zebra(8) writes debugging information. Additional information about quagga are available from http://www.quagga.net/docs/docs-info.php

The most interesting configuration file for this exercise is the /etc/zebra/ripd.conf file. It contains all the parameters that are specific to the operation of the RIP protocol. A sample ripd(8) configura- tion file is shown below.

!
hostname ripd
password zebra
enable password zebra
!
router rip
network 100.1.0.0/16 redistribute connected
!
log file /var/log/zebra/ripd.log

This configuration file shows the two different ways to configure ripd(8). The statement router rip indicates the beginning of the configuration for the RIP routing protocol. The indented lines that follow are part of the configuration of this protocol. The first line, network 100.1.0.0/16 is used to enable RIP on the interface whose IP subnet matches 100.1.0.0/16. The second line, redistribute connected indicates that all the subnetworks that are directly connected on the router should be adver- tised. When this configuration line is used, ripd(8) interacts with the Linux kernel routing table and advertises all the subnetworks that are directly connected on the router. If a new interface is en- abled and configured on the router, its subnetwork prefix will be automatically advertised. Similarly, the subnetwork prefix will be automatically removed if the subnetwork interface is shutdown.

To experiment with RIP, you will use the emulated routers shown in the figure below. You can download the entire lab from exercises/labs/lab-5routers-rip.tar.gz

Figure 5.87: The five routers lab

The lab.conf describing the topology and the interfaces used on all hosts is shown below/

r1[0]="A"
r1[1]="B"
r1[2]="F"
r1[3]="V"
r2[0]="A"
r2[1]="C"
r2[2]="W"
r3[0]="B"
r3[1]="C"
r3[2]="D"
r3[3]="X"
r4[0]="D"
r4[1]="E"
r4[2]="Y"
r5[0]="E"
r5[1]="F"
r5[2]="Z"

There are two types of subnetworks in this topology. The subnetworks from the 172.16.0.0/16 prefix are used on the links between routers while the subnetworks from the 192.168.0.0/16 prefix are used on the local area networks that are attached to a single router.

A router can be configured in two different ways: by specifying configuration files and by typing the commands directly on the router by using telnet(1). The first four routers have been configured in the provided configuration files. Look at r1.startup and the configuration files in r1/tmp/zebra in the lab’s directory for router r1. The r?.startup files contain the ifconfig(8) commands that are used to configure the interfaces of each virtual router. The configuration files located in r?/tmp/zebra are also copied automatically on the virtual router when it boots.

1. Launch the lab by using lstart and verify that router r1 can reach 192.168.1.1, 192.168.2.2192.168.3.3 and 192.168.4.4. You can also traceroute(8) to determine what is the route followed by your packets.

2. The ripd(8) daemon can also be configured by typing commands over a TCP connection. ripd(8) listens on port 2602. On router r1, use telnet 127.0.0.1 2602 to connect to the ripd(8) daemon. The default password is zebra. Once logged on the ripd(8) daemon, you reach the > prompt where you can query the status of the router. By typing?at the prompt, you will find the list of supported commands. The show command is particularly useful, type show? to obtain the list of its sub options. For example, show ip rip will return the routing table that is maintained by the ripd(8) daemon.

3. Disable interface eth3 on router r1 by typing ifconfig eth3 down on this router. Verify the impact of this command on the routing tables of the other routers in the network. Re-enable this interface by typing ifconfig eth3 up.

4. Do the same with the eth1 interface on router r3.

5. Edit the /etc/zebra/ripd.conf configuration file on router r5 so that this router becomes part of the network. Verify that 192.168.5.5 is reachable by all routers inside the network.

7. The Open Shortest Path First (OSPF) protocol is a link-state protocol that is often used in en- terprise IP networks. OSPF is implemented in the ospfd(8) daemon that is part of quagga. We use the same topology as in the previous exercise. The netkit lab may be downloaded from exercises/labs/lab-5routers-ospf.tar.gz.

The ospfd(8) daemon supports a more complex configuration than the ripd(8) daemon. A sample configuration is shown below.

!
hostname ospfd
password zebra
enable password zebra
!
interface eth0
ip ospf cost 1 interface eth1
ip ospf cost 1 interface eth2
ip ospf cost 1 interface eth3
ip ospf cost 1
!
router ospf
router-id 192.168.1.1
network 172.16.1.0/24 area 0.0.0.0
network 172.16.2.0/24 area 0.0.0.0
network 172.16.3.0/24 area 0.0.0.0
network 192.168.1.0/24 area 0.0.0.0
passive-interface eth3
!
log file /var/log/zebra/ospfd.log

In this configuration file, the ip ospf cost 1 specifies a metric of 1 for each interface. The ospfd(8) configuration is composed of three parts. First, each router must have one identifier that is unique inside the network. Usually, this identifier is one of the IP addresses assigned to the router. Second, each subnetwork on the router is associated with an area. In this example, we only use the backbone area (i.e. 0.0.0.0). The last command specifies that the OSPF Hello messages should not be sent over interface eth3 although its subnetwork will be advertised by the router. Such a command is often used on interfaces that are attached to end hosts to ensure that no problem will occur if a student configures a software OSPF router on his laptop attached to this interface.

The netkit lab already contains the configuration for routers r1 - r4.

The ospfd(8) daemon listens on TCP port 2604. You can follow the evolution of the OSPF protocol by using the show ip ospf? commands.

1. Launch the lab by using lstart and verify that the 192.168.1.1, 192.168.2.2, 192.168.3.3 and 192.168.4.4 addresses are reachable from any router inside the network.

2. Configure router r5 by changing the /etc/zebra/ospfd.conf file and restart the daemon. Verify that the 192.168.5.5 address is reachable from any router inside the network.

3. How can you update the network configuration so that the packets sent by router r1 to router r5 use the direct link between the two routers while the packets sent by r5 are forwarded via r4?

4. Disable interface eth3 on router r1 and see how quickly the network converges? You can follow the evolution of the routing table on a router by typing netstat -rnc. Re-enable interface eth3 on router r1.

5. Change the MTU of eth0 on router r1 but leave it unchanged on interface eth0 of router r2. What is the impact of this change? Can you explain why?

6. Disable interface eth1 on router r3 and see how quickly the network converges? Re-enable this interface.

7. Halt router r2 by using vcrash r2. How quickly does the network react to this failure?


Source: Olivier Bonaventure, https://s3.amazonaws.com/saylordotorg-resources/wwwresources/site/wp-content/uploads/2012/02/Computer-Networking-Principles-Bonaventure-1-30-31-OTC1.pdf
Creative Commons License This work is licensed under a Creative Commons Attribution 3.0 License.

Last modified: Sunday, August 27, 2023, 9:27 PM