Howtos
Connect Mini-NDN nodes to an outside network
Mini-NDN nodes can be connected to an outside network indirectly by running NFD on the local machine:
(Mini-NDN node) ------ (NFD running on the host machine where Mini-NDN is running) ------- (External Network)
Add a node in root namespace
For this simple example, we can use a single node topology with node ‘a’
If we want node ‘a’ to connect to the host machine, we need to add a “root” node which has a link with node “a.”
Then the following code can be used:
topo = Topo()
root = topo.addHost('root', inNamespace=False)
a = topo.addHost('a')
topo.addLink(root, a, delay='10ms')
ndn = Minindn(topo=topo)
...
Configuration
Run Mini-NDN with the above code and issue ifconfig on the local machine to confirm the addition of the interface. You should be able to locate “root-eth0”:
root-eth0 Link encap:Ethernet HWaddr 3e:eb:77:d2:6f:1f
inet addr:1.0.0.9 Bcast:1.0.0.11 Mask:255.255.255.252
inet6 addr: fe80::3ceb:77ff:fed2:6f1f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2667 (2.6 KB) TX bytes:2797 (2.7 KB)
To make the IP address associated with this interface persistent, add the following line to /etc/network/interfaces and reboot your machine:
iface root-eth0 inet manual
Check connection
After rebooting, run Mini-NDN and issue the following command:
mini-ndn>net
a a-eth0:b-eth0 a-eth1:c-eth0 a-eth2:root-eth0
Node “a” is connected to “root-eth0”. Now issue “ifconfig a-eth2” on node “a”:
mini-ndn>a ifconfig a-eth2
a-eth2 Link encap:Ethernet HWaddr fa:76:d4:86:d3:ba
inet addr:1.0.0.10 Bcast:1.0.0.11 Mask:255.255.255.252
As learned from the previous step, the IP address of root-eth0 is 1.0.0.9.
mini-ndn>a ping 1.0.0.9
PING 1.0.0.9 (1.0.0.9) 56(84) bytes of data.
64 bytes from 1.0.0.9: icmp_seq=1 ttl=64 time=0.137 ms
64 bytes from 1.0.0.9: icmp_seq=2 ttl=64 time=0.123 ms
The host machine will also be able to ping node “a”:
VirtualBox:~$ ping 1.0.0.10
PING 1.0.0.10 (1.0.0.10) 56(84) bytes of data.
64 bytes from 1.0.0.10: icmp_seq=1 ttl=64 time=0.086 ms
Run NFD on local machine and register route
Start NFD on the local machine by using:
sudo nfd
The “nfd-start” script cannot be used, since the script allows only one instance of NFD at a time. The NFD processes running on the Mini-NDN nodes will prevent the “nfd-start” script from working.
Now, using “nfdc register”, we can register a route from node “a” in Mini-NDN to the NFD process on the host machine and from the host machine to an external machine.
Also, if the local machine has a public IP, Mini-NDN nodes can be reached via external machines.
Generate NDN testbed topology
Visit the NDN Play testbed page and utilize the MiniNDN Config button after setting loss and latency parameters. This will export an up to date topology modeled on the testbed. We also provide a topology at topologies/testbed.conf, which is based on a sample from 2020 which has latencies based on measurements from that configuration.