Version 6 (modified by 8 years ago) (diff) | ,
---|
A Tutorial on Systematic Experimental Design
- Back to: Design Summary
- Back to: Design Step-by-Step Instructions
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
fromclient
(192.168.10.11) toserver
(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
fromclient
(192.168.10.11) toserver
(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
androuter-2
fail by bringing down the corresponding interface onrouter-2
. We disable the virtual interface atrouter-2
, which is associated with the virtual link (192.168.1.0/24
) torouter-1
. Useshow 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 torouter-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
fromclient
toserver
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
atrouter-2
again, we notice another routing table update atrouter-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
fromclient
(192.168.10.11) toserver
(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.
- Continue to: