Testing Phase2 Router *** Your router will be tested on a topology with different IP addresses. Make sure that *** you don't hard code anything about your topology in the source code. *** Your router will be compiled and run on department linux machines fd01 through fd08 only. FILES: the following files should present in the working directory - test2.pl the testing script - Makefile and source code - topoXX the topology file assigned to you. XX is the topology number. - rtable.vhost[1|2|3] static routing tables, same as the ones in your assignment. - rtable.net containing the single static route for vhost1 0.0.0.0 172.24.74.17 0.0.0.0 eth0 - rtable.empty an empty file. Make sure its file size is zero. - sr_reference_linux the reference router binary RUN TESTS: 1. re-compile binary: make clean; make; Don't submit the binary. I'll recompile it using your source code and Makefile. 2.Test your routers with static routes. (a) start the routers with all the static routes: ./sr -t XX -v vhost1 -s vns-1.stanford.edu -r rtable.vhost1 & ./sr -t XX -v vhost2 -s vns-1.stanford.edu -r rtable.vhost2 & ./sr -t XX -v vhost3 -s vns-1.stanford.edu -r rtable.vhost3 & (b) test ping, traceroute and web ./test2.pl topoXX ping all; ./test2.pl topoXX tr all; ./test2.pl topoXX web all; (c) kill all the router processes. 3. Test your router's basic PWOSPF capability. (a) start the routers. Give vhost1 one static route, vhost2 and vhost3 no static route. ./sr -t XX -v vhost1 -s vns-1.stanford.edu -r rtable.net & ./sr -t XX -v vhost2 -s vns-1.stanford.edu -r rtable.empty & ./sr -t XX -v vhost3 -s vns-1.stanford.edu -r rtable.empty & (b) wait a short time for convergence, then test ping/traceroute/web. ./test2.pl topoXX ping all; ./test2.pl topoXX tr all; ./test2.pl topoXX web all; (c) kill all the router processes. 4. Test interoperatability with the reference router. (a) start the reference at vhost1, and your router at vhost2 and vhost3. ./sr_reference_linux -t XX -v vhost1 -s vns-1.stanford.edu -r rtable.net & ./sr -t XX -v vhost2 -s vns-1.stanford.edu -r rtable.empty & ./sr -t XX -v vhost3 -s vns-1.stanford.edu -r rtable.empty & (b) wait a short time for convergence, then test ping/web. ./test2.pl topoXX ping all; ./test2.pl topoXX web all; (c) kill all the router processes. 5. Test failure/recovery (a) start the reference at vhost1, and your router at vhost2 and vhost3. ./sr_reference_linux -t XX -v vhost1 -s vns-1.stanford.edu -r rtable.net & ./sr -t XX -v vhost2 -s vns-1.stanford.edu -r rtable.empty & ./sr -t XX -v vhost3 -s vns-1.stanford.edu -r rtable.empty & (b) wait a short time for convergence. (c) in another terminal, "telnet IP-of-vhost1-eth0 2525", and then use "show ip route" to see current routing table at vhost1. After a while it should learn all the routes and converge. Bring down vhost1's eth1 by "ip interface eth1 down", wait for convergence, use "show ip route" to to check that routes to vhost2 and app1 has switched from eth1 to eth2. Now test web by "./test2.pl topoXX web app1" in another terminal. (d) in the same telnet session, bring back the failed interface by "ip interface eth1 up". Wait for convergence, use "show ip route" to check that the routes have switched back to eth1. Test web by "./test2.pl topoXX web all" in another terminal. (e) kill all router processes.