Example-NSF-14 1.9

Authors: Fermín Galán (galan at dit.upm.es) version 1.9, January 29st, 2009

Scenario
NFS (National Science Foundation) is the US Research and Education Network (NREN). Although there are several incarnations of the NFS net, here we consider the one described in the following document (also shown in the figure below) is composed of 14 network nodes connected through 21 point-to-point links (each one a /30 network).



Figure 1: NSFNet topology (with 14 nodes)

A VNUML scenario implementing the NSF topology is shown in this example. All the routers in the simulation run ospfd, a daemon process from the Zebra Suite that implements OSPF protocol. This protocol allows each router to configure dynamic routes so, after a convergence time, global connectivity is achive once the simulation has been started. OSPF-based routing have been implemented using OSPFD plugin with this configuration file:    10.0.50.1 0.0.0.0         10.0.5.0 0.0.0.0         10.0.5.4 0.0.0.0         10.0.5.8 0.0.0.0      10.0.50.2 0.0.0.0         10.0.5.12 0.0.0.0         10.0.5.16 0.0.0.0         10.0.5.0 0.0.0.0     <zebra hostname="CA2" password="xxxx"> 10.0.50.3</ip> 0.0.0.0         10.0.5.12</ip> 0.0.0.0         10.0.5.4</ip> 0.0.0.0         10.0.5.20</ip> 0.0.0.0   </vm>  <zebra hostname="UT" password="xxxx"> 10.0.50.4</ip> 0.0.0.0         10.0.5.16</ip> 0.0.0.0         10.0.5.24</ip> 0.0.0.0         10.0.5.28</ip> 0.0.0.0   </vm>  <zebra hostname="CO" password="xxxx"> 10.0.50.5</ip> 0.0.0.0         10.0.5.28</ip> 0.0.0.0         10.0.5.32</ip> 0.0.0.0         10.0.5.36</ip> 0.0.0.0   </vm>  <zebra hostname="NE" password="xxxx"> 10.0.50.6</ip> 0.0.0.0         10.0.5.32</ip> 0.0.0.0         10.0.5.40</ip> 0.0.0.0   </vm>  <zebra hostname="IL" password="xxxx"> 10.0.50.7</ip> 0.0.0.0         10.0.5.40</ip> 0.0.0.0         10.0.5.8</ip> 0.0.0.0         10.0.5.44</ip> 0.0.0.0   </vm>  <zebra hostname="MI" password="xxxx"> 10.0.50.8</ip> 0.0.0.0         10.0.5.24</ip> 0.0.0.0         10.0.5.48</ip> 0.0.0.0         10.0.5.52</ip> 0.0.0.0   </vm>  <zebra hostname="PA" password="xxxx"> 10.0.50.9</ip> 0.0.0.0         10.0.5.44</ip> 0.0.0.0         10.0.5.56</ip> 0.0.0.0         10.0.5.60</ip> 0.0.0.0         10.0.5.64</ip> 0.0.0.0   </vm>  <zebra hostname="NY" password="xxxx"> 10.0.50.10</ip> 0.0.0.0         10.0.5.52</ip> 0.0.0.0         10.0.5.60</ip> 0.0.0.0         10.0.5.68</ip> 0.0.0.0   </vm>  <zebra hostname="NJ" password="xxxx"> 10.0.50.11</ip> 0.0.0.0         10.0.5.48</ip> 0.0.0.0         10.0.5.64</ip> 0.0.0.0         10.0.5.72</ip> 0.0.0.0   </vm>  <zebra hostname="DC" password="xxxx"> 10.0.50.12</ip> 0.0.0.0         10.0.5.76</ip> 0.0.0.0         10.0.5.68</ip> 0.0.0.0         10.0.5.72</ip> 0.0.0.0   </vm>  <zebra hostname="GA" password="xxxx"> 10.0.50.13</ip> 0.0.0.0         10.0.5.56</ip> 0.0.0.0         10.0.5.80</ip> 0.0.0.0   </vm>  <zebra hostname="TX" password="xxxx"> 10.0.50.14</ip> 0.0.0.0         10.0.5.20</ip> 0.0.0.0         10.0.5.36</ip> 0.0.0.0         10.0.5.76</ip> 0.0.0.0         10.0.5.80</ip> 0.0.0.0   </vm> </ospf_conf>

Some examples of test performed with this virtual scenario:

root@WA:~# traceroute 10.0.50.13 traceroute to 10.0.50.13 (10.0.50.13), 30 hops max, 38 byte packets 1 10.0.5.6 (10.0.5.6)  0.371 ms  0.579 ms  0.262 ms 2  10.0.5.22 (10.0.5.22)  0.472 ms  0.420 ms  0.426 ms 3  10.0.50.13 (10.0.50.13)  0.594 ms  0.586 ms  0.507 ms
 * Connectivity from WA to GA:

traceroute to 10.0.50.11 (10.0.50.11), 30 hops max, 38 byte packets 1 10.0.5.10 (10.0.5.10)  2.862 ms  0.279 ms  0.226 ms 2  10.0.5.46 (10.0.5.46)  0.421 ms  2.355 ms  0.414 ms 3  10.0.50.11 (10.0.50.11)  0.561 ms  0.476 ms  1.424 ms
 * Connectivity from WA to NJ:

WA# sh ip ospf route
 * OSPF information from ospfd at WA:

=
OSPF network routing table ============ N   10.0.5.0/30           [10] area: 0.0.0.0 directly attached to eth1 N   10.0.5.4/30           [10] area: 0.0.0.0 directly attached to eth2 N   10.0.5.8/30           [10] area: 0.0.0.0 directly attached to eth3 N   10.0.5.12/30          [20] area: 0.0.0.0 via 10.0.5.2, eth1 via 10.0.5.6, eth2 N   10.0.5.16/30          [20] area: 0.0.0.0 via 10.0.5.2, eth1 N   10.0.5.20/30          [20] area: 0.0.0.0 via 10.0.5.6, eth2 N   10.0.5.24/30          [30] area: 0.0.0.0 via 10.0.5.2, eth1 N   10.0.5.28/30          [30] area: 0.0.0.0 via 10.0.5.2, eth1 N   10.0.5.32/30          [30] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.5.36/30          [30] area: 0.0.0.0 via 10.0.5.6, eth2 N   10.0.5.40/30          [20] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.5.44/30          [20] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.5.48/30          [40] area: 0.0.0.0 via 10.0.5.2, eth1 via 10.0.5.10, eth3 N   10.0.5.52/30          [40] area: 0.0.0.0 via 10.0.5.2, eth1 via 10.0.5.10, eth3 N   10.0.5.56/30          [30] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.5.60/30          [30] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.5.64/30          [30] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.5.68/30          [40] area: 0.0.0.0 via 10.0.5.6, eth2 via 10.0.5.10, eth3 N   10.0.5.72/30          [40] area: 0.0.0.0 via 10.0.5.6, eth2 via 10.0.5.10, eth3 N   10.0.5.76/30          [30] area: 0.0.0.0 via 10.0.5.6, eth2 N   10.0.5.80/30          [30] area: 0.0.0.0 via 10.0.5.6, eth2 N   10.0.50.1/32          [10] area: 0.0.0.0 directly attached to lo N   10.0.50.2/32          [20] area: 0.0.0.0 via 10.0.5.2, eth1 N   10.0.50.3/32          [20] area: 0.0.0.0 via 10.0.5.6, eth2 N   10.0.50.4/32          [30] area: 0.0.0.0 via 10.0.5.2, eth1 N   10.0.50.5/32          [40] area: 0.0.0.0 via 10.0.5.2, eth1 via 10.0.5.10, eth3 via 10.0.5.6, eth2 N   10.0.50.6/32          [30] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.50.7/32          [20] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.50.8/32          [40] area: 0.0.0.0 via 10.0.5.2, eth1 N   10.0.50.9/32          [30] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.50.10/32         [40] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.50.11/32         [40] area: 0.0.0.0 via 10.0.5.10, eth3 N   10.0.50.12/32         [40] area: 0.0.0.0 via 10.0.5.6, eth2 N   10.0.50.13/32         [40] area: 0.0.0.0 via 10.0.5.6, eth2 via 10.0.5.10, eth3 N   10.0.50.14/32         [30] area: 0.0.0.0 via 10.0.5.6, eth2

=
OSPF router routing table =============

=
OSPF external routing table ===========

WA# sh ip ospf neighbor

Neighbor ID Pri State          Dead Time Address         Interface            RXmtL RqstL DBsmL 10.0.50.2        1 Full/DR           32.439s 10.0.5.2        eth1:10.0.5.1            0     0     0 10.0.50.3        1 Full/DR           32.542s 10.0.5.6        eth2:10.0.5.5            0     0     0 10.0.50.7        1 Full/DR           33.041s 10.0.5.10       eth3:10.0.5.9            0     0     0 WA# sh ip ospf interface dummy0 is down ifindex 7, MTU 1500 bytes, BW 0 Kbit  <BROADCAST,NOARP> OSPF not enabled on this interface eth0 is up ifindex 5, MTU 1500 bytes, BW 0 Kbit   <UP,BROADCAST,RUNNING,MULTICAST> OSPF not enabled on this interface eth1 is up ifindex 1, MTU 1500 bytes, BW 0 Kbit   <UP,BROADCAST,RUNNING,PROMISC,MULTICAST> Internet Address 10.0.5.1/30, Broadcast 10.0.5.3, Area 0.0.0.0 MTU mismatch detection:enabled Router ID 10.0.50.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State Backup, Priority 1 Designated Router (ID) 10.0.50.2, Interface Address 10.0.5.2 Backup Designated Router (ID) 10.0.50.1, Interface Address 10.0.5.1 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 5.703s Neighbor Count is 1, Adjacent neighbor count is 1 eth2 is up ifindex 2, MTU 1500 bytes, BW 0 Kbit   <UP,BROADCAST,RUNNING,PROMISC,MULTICAST> Internet Address 10.0.5.5/30, Broadcast 10.0.5.7, Area 0.0.0.0 MTU mismatch detection:enabled Router ID 10.0.50.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State Backup, Priority 1 Designated Router (ID) 10.0.50.3, Interface Address 10.0.5.6 Backup Designated Router (ID) 10.0.50.1, Interface Address 10.0.5.5 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 5.807s Neighbor Count is 1, Adjacent neighbor count is 1 eth3 is up ifindex 3, MTU 1500 bytes, BW 0 Kbit   <UP,BROADCAST,RUNNING,PROMISC,MULTICAST> Internet Address 10.0.5.9/30, Broadcast 10.0.5.11, Area 0.0.0.0 MTU mismatch detection:enabled Router ID 10.0.50.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State Backup, Priority 1 Designated Router (ID) 10.0.50.7, Interface Address 10.0.5.10 Backup Designated Router (ID) 10.0.50.1, Interface Address 10.0.5.9 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 6.311s Neighbor Count is 1, Adjacent neighbor count is 1 ip6tnl0 is down ifindex 9, MTU 1460 bytes, BW 0 Kbit  <NOARP> OSPF not enabled on this interface lo is up ifindex 6, MTU 16436 bytes, BW 0 Kbit   <UP,LOOPBACK,RUNNING> Internet Address 10.0.50.1/32, Area 0.0.0.0 MTU mismatch detection:enabled Router ID 10.0.50.1, Network Type LOOPBACK, Cost: 10 Transmit Delay is 1 sec, State Loopback, Priority 1 No designated router on this network No backup designated router on this network Multicast group memberships: <None> Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in inactive Neighbor Count is 0, Adjacent neighbor count is 0 sit0 is down ifindex 8, MTU 1480 bytes, BW 0 Kbit  <NOARP> OSPF not enabled on this interface

VNUML Description
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE vnuml SYSTEM '/usr/share/xml/vnuml/vnuml.dtd'> 1.9    <simulation_name>nsfnet</simulation_name>  <host_mapping/> </vm_mgmt>  <filesystem type='cow'>/usr/share/vnuml/filesystems/root_fs_tutorial /usr/share/vnuml/kernels/linux <console id='0'>pts </vm_defaults> <extension plugin="ospfd" conf="nsf-14_ospf_conf.xml" /> <net name='il-ne' mode='uml_switch'/> <net name='mi-ut' mode='uml_switch'/> <net name='dc-ny' mode='uml_switch'/> <net name='il-wa' mode='uml_switch'/> <net name='ca2-tx' mode='uml_switch'/> <net name='dc-tx' mode='uml_switch'/> <net name='co-tx' mode='uml_switch'/> <net name='ca1-ut' mode='uml_switch'/> <net name='dc-nj' mode='uml_switch'/> <net name='ca1-wa' mode='uml_switch'/> <net name='ca1-ca2' mode='uml_switch'/> <net name='nj-pa' mode='uml_switch'/> <net name='mi-ny' mode='uml_switch'/> <net name='ca2-wa' mode='uml_switch'/> <net name='co-ne' mode='uml_switch'/> <net name='ga-tx' mode='uml_switch'/> <net name='il-pa' mode='uml_switch'/> <net name='ny-pa' mode='uml_switch'/> <net name='co-ut' mode='uml_switch'/> <net name='ga-pa' mode='uml_switch'/> <net name='mi-nj' mode='uml_switch'/>  <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.1 </if> <if id='1' net='ca1-wa'> <ipv4 mask='255.255.255.252'>10.0.5.1 </if> <if id='2' net='ca2-wa'> <ipv4 mask='255.255.255.252'>10.0.5.5 </if> <if id='3' net='il-wa'> <ipv4 mask='255.255.255.252'>10.0.5.9 </if> </vm>  <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.2 </if> <if id='1' net='ca1-ca2'> <ipv4 mask='255.255.255.252'>10.0.5.13 </if> <if id='2' net='ca1-ut'> <ipv4 mask='255.255.255.252'>10.0.5.17 </if> <if id='3' net='ca1-wa'> <ipv4 mask='255.255.255.252'>10.0.5.2 </if> </vm>  <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.3 </if> <if id='1' net='ca1-ca2'> <ipv4 mask='255.255.255.252'>10.0.5.14 </if> <if id='2' net='ca2-wa'> <ipv4 mask='255.255.255.252'>10.0.5.6 </if> <if id='3' net='ca2-tx'> <ipv4 mask='255.255.255.252'>10.0.5.21 </if> </vm> <vm name='UT'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.4 </if> <if id='1' net='ca1-ut'> <ipv4 mask='255.255.255.252'>10.0.5.18 </if> <if id='2' net='mi-ut'> <ipv4 mask='255.255.255.252'>10.0.5.25 </if> <if id='3' net='co-ut'> <ipv4 mask='255.255.255.252'>10.0.5.29 </if> </vm> <vm name='CO'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.5 </if> <if id='1' net='co-ut'> <ipv4 mask='255.255.255.252'>10.0.5.30 </if> <if id='2' net='co-ne'> <ipv4 mask='255.255.255.252'>10.0.5.33 </if> <if id='3' net='co-tx'> <ipv4 mask='255.255.255.252'>10.0.5.37 </if> </vm> <vm name='NE'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.6 </if> <if id='1' net='co-ne'> <ipv4 mask='255.255.255.252'>10.0.5.34 </if> <if id='2' net='il-ne'> <ipv4 mask='255.255.255.252'>10.0.5.41 </if> </vm> <vm name='IL'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.7 </if> <if id='1' net='il-ne'> <ipv4 mask='255.255.255.252'>10.0.5.42 </if> <if id='2' net='il-wa'> <ipv4 mask='255.255.255.252'>10.0.5.10 </if> <if id='3' net='il-pa'> <ipv4 mask='255.255.255.252'>10.0.5.45 </if> </vm> <vm name='MI'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.8 </if> <if id='1' net='mi-ut'> <ipv4 mask='255.255.255.252'>10.0.5.26 </if> <if id='2' net='mi-nj'> <ipv4 mask='255.255.255.252'>10.0.5.49 </if> <if id='3' net='mi-ny'> <ipv4 mask='255.255.255.252'>10.0.5.53 </if> </vm> <vm name='PA'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.9 </if> <if id='1' net='il-pa'> <ipv4 mask='255.255.255.252'>10.0.5.46 </if> <if id='2' net='ga-pa'> <ipv4 mask='255.255.255.252'>10.0.5.57 </if> <if id='3' net='ny-pa'> <ipv4 mask='255.255.255.252'>10.0.5.61 </if> <if id='4' net='nj-pa'> <ipv4 mask='255.255.255.252'>10.0.5.65 </if> </vm> <vm name='NY'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.10 </if> <if id='1' net='mi-ny'> <ipv4 mask='255.255.255.252'>10.0.5.54 </if> <if id='2' net='ny-pa'> <ipv4 mask='255.255.255.252'>10.0.5.62 </if> <if id='3' net='dc-ny'> <ipv4 mask='255.255.255.252'>10.0.5.69 </if> </vm> <vm name='NJ'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.11 </if> <if id='1' net='mi-nj'> <ipv4 mask='255.255.255.252'>10.0.5.50 </if> <if id='2' net='nj-pa'> <ipv4 mask='255.255.255.252'>10.0.5.66 </if> <if id='3' net='dc-nj'> <ipv4 mask='255.255.255.252'>10.0.5.73 </if> </vm> <vm name='DC'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.12 </if> <if id='1' net='dc-tx'> <ipv4 mask='255.255.255.252'>10.0.5.77 </if> <if id='2' net='dc-ny'> <ipv4 mask='255.255.255.252'>10.0.5.70 </if> <if id='3' net='dc-nj'> <ipv4 mask='255.255.255.252'>10.0.5.74 </if> </vm> <vm name='GA'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.13 </if> <if id='1' net='ga-pa'> <ipv4 mask='255.255.255.252'>10.0.5.58 </if> <if id='2' net='ga-tx'> <ipv4 mask='255.255.255.252'>10.0.5.81 </if> </vm> <vm name='TX'> <if id='1' net='lo'> <ipv4 mask='255.255.255.255'>10.0.50.14 </if> <if id='1' net='ca2-tx'> <ipv4 mask='255.255.255.252'>10.0.5.22 </if> <if id='2' net='co-tx'> <ipv4 mask='255.255.255.252'>10.0.5.38 </if> <if id='3' net='dc-tx'> <ipv4 mask='255.255.255.252'>10.0.5.78 </if> <if id='4' net='ga-tx'> <ipv4 mask='255.255.255.252'>10.0.5.82 </if> </vm>

Download

 * VNUML specification file: Nsf-14.xml
 * VNUML configuration file: Nsf-14_ospf_conf.xml

N3VLR

 * N3VLR version: n3vlr

Old Releases

 * 1.8