wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/SmallTopoQuagga/Execute

Version 7 (modified by pjayanth@bbn.com, 3 years ago) (diff)

--

A Tutorial on Systematic Experimental Design

Step I: Single Node

Step II: Small Topology

Image Map

5. End-to-End Validation

We first validate end-to-end communication between client and server by running ping and traceroute at the client, and then run iperf on both client and server.

Open two terminals, and login to client and server, respectively.

a. End-to-End traceroute and ping

  • Run ping from client (192.168.10.11) to server (192.168.20.10).

pjayant@client:~$ ping 192.168.20.10
PING 192.168.20.10 (192.168.20.10) 56(84) bytes of data.
64 bytes from 192.168.20.10: icmp_seq=1 ttl=61 time=3.12 ms
64 bytes from 192.168.20.10: icmp_seq=2 ttl=61 time=2.42 ms
64 bytes from 192.168.20.10: icmp_seq=3 ttl=61 time=2.37 ms
^C
--- 192.168.20.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 2.375/2.641/3.123/0.341 ms

  • Run traceroute from client (192.168.10.11) to server (192.168.20.10).
pjayant@client:~$ traceroute 192.168.20.10
traceroute to 192.168.20.10 (192.168.20.10), 30 hops max, 60 byte packets
 1  router-1-link-5 (192.168.10.10)  0.458 ms  0.528 ms  0.494 ms
 2  router-2-link-0 (192.168.1.2)  0.961 ms  0.867 ms  1.020 ms
 3  router-3-link-2 (192.168.3.1)  1.497 ms  1.461 ms  1.422 ms
 4  Server-link-6 (192.168.20.10)  1.808 ms  1.661 ms  1.699 ms

b. iperf Test

  • iperf End-to-End TCP test

Server Side:

pjayant@server:~$ iperf -s -t 10 -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.20.10 port 5001 connected with 192.168.10.11 port 53744
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  11.5 MBytes  96.7 Mbits/sec
[  4]  1.0- 2.0 sec  11.6 MBytes  97.4 Mbits/sec
[  4]  2.0- 3.0 sec  11.8 MBytes  99.2 Mbits/sec
[  4]  3.0- 4.0 sec  11.8 MBytes  98.7 Mbits/sec
[  4]  4.0- 5.0 sec  11.8 MBytes  99.3 Mbits/sec
[  4]  5.0- 6.0 sec  11.6 MBytes  97.7 Mbits/sec
[  4]  6.0- 7.0 sec  11.8 MBytes  98.7 Mbits/sec
[  4]  7.0- 8.0 sec  11.7 MBytes  97.8 Mbits/sec
[  4]  8.0- 9.0 sec  11.8 MBytes  99.2 Mbits/sec
[  4]  9.0-10.0 sec  11.8 MBytes  99.4 Mbits/sec
[  4]  0.0-10.2 sec   119 MBytes  98.4 Mbits/sec

Client Side:

pjayant@client:~$ iperf -c 192.168.20.10 -t 10 -i 1
------------------------------------------------------------
Client connecting to 192.168.20.10, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.10.11 port 53744 connected with 192.168.20.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  12.0 MBytes   101 Mbits/sec
[  3]  1.0- 2.0 sec  11.8 MBytes  98.6 Mbits/sec
[  3]  2.0- 3.0 sec  11.8 MBytes  98.6 Mbits/sec
[  3]  3.0- 4.0 sec  12.0 MBytes   101 Mbits/sec
[  3]  4.0- 5.0 sec  11.8 MBytes  98.6 Mbits/sec
[  3]  5.0- 6.0 sec  11.8 MBytes  98.6 Mbits/sec
[  3]  6.0- 7.0 sec  12.0 MBytes   101 Mbits/sec
[  3]  7.0- 8.0 sec  11.5 MBytes  96.5 Mbits/sec
[  3]  8.0- 9.0 sec  12.4 MBytes   104 Mbits/sec
[  3]  9.0-10.0 sec  12.1 MBytes   102 Mbits/sec
[  3]  0.0-10.0 sec   119 MBytes  99.8 Mbits/sec

  • iperf End-to-End UDP Test, where the bandwidth is set as 1Mbps by default.

Server (192.168.20.10) Side:

pjayant@server:~$ iperf -s -t 10 -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.20.10 port 5001 connected with 192.168.10.11 port 54422
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec   128 KBytes  1.05 Mbits/sec   0.062 ms    0/   89 (0%)
[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec   0.047 ms    0/   89 (0%)
[  3]  2.0- 3.0 sec   128 KBytes  1.05 Mbits/sec   0.046 ms    0/   89 (0%)
[  3]  3.0- 4.0 sec   128 KBytes  1.05 Mbits/sec   0.043 ms    0/   89 (0%)
[  3]  4.0- 5.0 sec   128 KBytes  1.05 Mbits/sec   0.041 ms    0/   89 (0%)
[  3]  5.0- 6.0 sec   128 KBytes  1.05 Mbits/sec   0.054 ms    0/   89 (0%)
[  3]  6.0- 7.0 sec   128 KBytes  1.05 Mbits/sec   0.061 ms    0/   89 (0%)
[  3]  7.0- 8.0 sec   184 KBytes  1.51 Mbits/sec   0.413 ms   12/  140 (8.6%)
[  3]  8.0- 9.0 sec   128 KBytes  1.05 Mbits/sec   0.053 ms    0/   89 (0%)
[  3]  0.0- 9.5 sec  1.24 MBytes  1.10 Mbits/sec   0.049 ms   12/  893 (1.3%)

Client (192.168.10.11) Side:

pjayant@client:~$ iperf -c 192.168.20.10 -t 10 -i 1 -u
------------------------------------------------------------
Client connecting to 192.168.20.10, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.10.11 port 54422 connected with 192.168.20.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   129 KBytes  1.06 Mbits/sec
[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  2.0- 3.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  3.0- 4.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  4.0- 5.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  5.0- 6.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  6.0- 7.0 sec   129 KBytes  1.06 Mbits/sec
[  3]  7.0- 8.0 sec  74.6 KBytes   612 Kbits/sec
[  3]  8.0- 9.0 sec   181 KBytes  1.48 Mbits/sec
[  3]  9.0-10.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[  3] Sent 893 datagrams
[  3] Server Report:
[  3]  0.0- 9.5 sec  1.24 MBytes  1.10 Mbits/sec   0.048 ms   12/  893 (1.3%)

The ping and iperf results showed that the communication between the client and the server were good. Since the client and the server are not directly connected, they can communicate with each other means that the OSPF routing worked properly.

The traceroute showed the hops from the client to the server, where the intermediate hops are router-1, router-2 and router-3. This information also verified the routing path between the client and the server.

6. Tracking Routing Table Updates

From the traceroute result above, we know that from client to server, the path is client --> router-1 --> router-2 --> router-3 --> server

Now let's try some failure events and see how many updates occurs at a particular router, and we select Client to view the updates, and trigger the failures at router-2.

  • Bring down the interface at router-2

We can make the link between router-1 and router-2 fail by bringing down the corresponding interface on router-2. We disable the virtual interface at router-2, which is associated with the virtual link (192.168.1.0/24) to router-1. Use show ip ospf interface to find the name of that interface.

router-2.quagga.ch-geni-net.instageni.rnoc.gatech.edu(config-router)# do show ip ospf  interface  
eth0 is up
  ifindex 2, MTU 1500 bytes, BW 0 Kbit <UP,BROADCAST,RUNNING,MULTICAST>
  OSPF not enabled on this interface
eth1 is up
  ifindex 3, MTU 1500 bytes, BW 0 Kbit <UP,BROADCAST,RUNNING,MULTICAST>
  Internet Address 192.168.1.2/24, Broadcast 192.168.1.255, Area 0.0.0.0
  MTU mismatch detection:enabled
  Router ID 192.168.5.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State Backup, Priority 1
  Designated Router (ID) 192.168.10.10, Interface Address 192.168.1.1
  Backup Designated Router (ID) 192.168.5.1, Interface Address 192.168.1.2
  Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
  Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
    Hello due in 5.658s
  Neighbor Count is 1, Adjacent neighbor count is 1
eth2 is up
  ifindex 4, MTU 1500 bytes, BW 0 Kbit <UP,BROADCAST,RUNNING,MULTICAST>
  Internet Address 192.168.2.1/24, Broadcast 192.168.2.255, Area 0.0.0.0
  MTU mismatch detection:enabled
  Router ID 192.168.5.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 192.168.5.1, Interface Address 192.168.2.1
  Backup Designated Router (ID) 192.168.20.11, Interface Address 192.168.2.2
  Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
  Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
    Hello due in 0.410s
  Neighbor Count is 1, Adjacent neighbor count is 1
eth3 is up
  ifindex 5, MTU 1500 bytes, BW 0 Kbit <UP,BROADCAST,RUNNING,MULTICAST>
  Internet Address 192.168.5.1/24, Broadcast 192.168.5.255, Area 0.0.0.0
  MTU mismatch detection:enabled
  Router ID 192.168.5.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 192.168.5.1, Interface Address 192.168.5.1
  Backup Designated Router (ID) 192.168.5.2, Interface Address 192.168.5.2
  Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
  Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
    Hello due in 4.842s
  Neighbor Count is 1, Adjacent neighbor count is 1
lo is up
  ifindex 1, MTU 65536 bytes, BW 0 Kbit <UP,LOOPBACK,RUNNING>
  OSPF not enabled on this interface
router-2.quagga.ch-geni-net.instageni.rnoc.gatech.edu(config-router)# 

For example, in the above the appropriate interface is eth1. So the command to bring down the interface to router-1 is:

router-2.quagga.ch-geni-net.instageni.rnoc.gatech.edu(config-router)# int eth1
router-2.quagga.ch-geni-net.instageni.rnoc.gatech.edu(config-if)# shutdown

At this time, we can run traceroute from client to server again, and we see that the path is changed: client --> router-1 --> router-4 --> router-3 --> server.

root@client:~# traceroute 192.168.20.10
traceroute to 192.168.20.10 (192.168.20.10), 30 hops max, 60 byte packets
 1  router-1-link-5 (192.168.10.10)  0.525 ms  0.492 ms  0.511 ms
 2  router-4-link-3 (192.168.4.1)  0.679 ms  0.669 ms  0.719 ms
 3  router-3-link-2 (192.168.3.1)  1.123 ms  1.124 ms  1.034 ms
 4  Server-link-6 (192.168.20.10)  1.298 ms  1.346 ms  1.380 ms

When we bring up eth2 at router-2 again, we notice another routing table update at router-1 immediately. The command to bring the interface back up is:

router-2.quagga.ch-geni-net.instageni.rnoc.gatech.edu(config)# int eth1
router-2.quagga.ch-geni-net.instageni.rnoc.gatech.edu(config-if)# no shutdown
  • Run traceroute from client (192.168.10.11) to server (192.168.20.10).
pjayant@client:~$ traceroute 192.168.20.10
traceroute to 192.168.20.10 (192.168.20.10), 30 hops max, 60 byte packets
 1  router-1-link-5 (192.168.10.10)  0.458 ms  0.528 ms  0.494 ms
 2  router-2-link-0 (192.168.1.2)  0.961 ms  0.867 ms  1.020 ms
 3  router-3-link-2 (192.168.3.1)  1.497 ms  1.461 ms  1.422 ms
 4  Server-link-6 (192.168.20.10)  1.808 ms  1.661 ms  1.699 ms

In this way, we can see routing table updates over time.