Bug #2150
Updated by Junxiao Shi about 10 years ago
I've a machine with multiple interfaces: ``` <pre> $ ifconfig eth0 Link encap:Ethernet HWaddr 00:24:e8:7a:44:cd inet addr:155.98.38.81 Bcast:155.98.39.255 Mask:255.255.252.0 inet6 addr: fe80::224:e8ff:fe7a:44cd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11552 errors:0 dropped:0 overruns:0 frame:0 TX packets:2958 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1770097 (1.7 MB) TX bytes:559424 (559.4 KB) eth1 Link encap:Ethernet HWaddr 00:24:e8:7a:44:cf inet addr:10.1.1.2 Bcast:10.1.1.255 Mask:255.255.255.0 inet6 addr: fe80::224:e8ff:fe7a:44cf/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:674 errors:0 dropped:0 overruns:0 frame:0 TX packets:636 errors:1 dropped:0 overruns:0 carrier:1 collisions:14 txqueuelen:1000 RX bytes:57477 (57.4 KB) TX bytes:48981 (48.9 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:334 errors:0 dropped:0 overruns:0 frame:0 TX packets:334 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:49347 (49.3 KB) TX bytes:49347 (49.3 KB) ``` </pre> and the following entry in the /etc/hosts: 10.1.1.3 CAIDA-lan0 CAIDA-0 CAIDA I added a delay using netem on eth1 (10.1.1.2): sudo tc qdisc add dev eth1 root netem delay 100ms and added an entry in nfd using nfdc: HOME=/tmp nfdc register -c 25 /caida udp://caida ``` <pre> $ nfd-status -fb Faces: faceid=1 remote=internal:// local=internal:// counters={in={0i 143d 0B} out={144i 0d 0B}} local persistent point-to-point faceid=254 remote=contentstore:// local=contentstore:// counters={in={0i 0d 0B} out={0i 0d 0B}} local persistent point-to-point faceid=255 remote=null:// local=null:// counters={in={0i 0d 0B} out={0i 0d 0B}} local persistent point-to-point faceid=256 remote=udp4://224.0.23.170:56363 local=udp4://155.98.38.81:56363 counters={in={0i 0d 0B} out={0i 0d 0B}} non-local persistent point-to-point faceid=257 remote=udp4://224.0.23.170:56363 local=udp4://10.1.1.2:56363 counters={in={0i 0d 0B} out={0i 0d 0B}} non-local persistent point-to-point faceid=258 remote=ether://[01:00:5e:00:17:aa] local=dev://eth0 counters={in={0i 0d 0B} out={0i 0d 0B}} non-local persistent point-to-point faceid=259 remote=ether://[01:00:5e:00:17:aa] local=dev://eth1 counters={in={0i 0d 0B} out={0i 0d 0B}} non-local persistent point-to-point faceid=260 remote=fd://23 local=unix:///run/nfd.sock counters={in={112i 27d 37014B} out={27i 102d 66238B}} local on-demand point-to-point faceid=262 remote=fd://24 local=unix:///run/nfd.sock counters={in={1i 0d 422B} out={0i 1d 785B}} local on-demand point-to-point faceid=264 remote=udp4://10.1.1.3:6363 local=udp4://10.1.1.2:6363 counters={in={0i 23d 8829B} out={23i 0d 894B}} non-local persistent point-to-point faceid=299 remote=fd://25 local=unix:///run/nfd.sock counters={in={1i 0d 46B} out={0i 0d 0B}} local on-demand point-to-point FIB: /localhost/nfd nexthops={faceid=1 (cost=0)} /caida nexthops={faceid=264 (cost=25)} /localhost/nfd/rib nexthops={faceid=260 (cost=0)} ``` </pre> The remote machine (caida in this case) is running ndnpingserver on "/caida" prefix. When I do simple ping, I can see the intended delays: ``` <pre> $ ping caida PING CAIDA-lan0 (10.1.1.3) 56(84) bytes of data. 64 bytes from CAIDA-lan0 (10.1.1.3): icmp_req=1 ttl=64 time=100 ms 64 bytes from CAIDA-lan0 (10.1.1.3): icmp_req=2 ttl=64 time=100 ms ``` </pre> But when I do ndnping I don't see any delay? ``` <pre> $ ndnping /caida === Pinging /caida === Content From /caida - Ping Reference = 500905038 - Round Trip Time = 0.012777 ms Content From /caida - Ping Reference = 500905039 - Round Trip Time = 0.009988 ms Content From /caida - Ping Reference = 500905040 - Round Trip Time = 0.009912 ms ``` </pre> Any idea what's going on here? My guess was nfd is not using the right face to forward the interest. But ndndump shows that the packets are going through eth1: ``` <pre> $ HOME=/tmp/ sudo ndndump -v -i eth1 > /tmp/ndndump.out & $ ndnping /caida === Pinging /caida === Content From /caida - Ping Reference = 716405588 - Round Trip Time = 0.012228 ms Content From /caida - Ping Reference = 716405589 - Round Trip Time = 0.00985 ms $ cat /tmp/ndndump.out 1415385072.714421 From: 10.1.1.2, To: 10.1.1.3, Tunnel Type: UDP, INTEREST: /caida/ping/716405588?ndn.MustBeFresh=1&ndn.Nonce=716405588 1415385072.722551 From: 10.1.1.3, To: 10.1.1.2, Tunnel Type: UDP, DATA: /caida/ping/716405588 1415385073.706848 From: 10.1.1.2, To: 10.1.1.3, Tunnel Type: UDP, INTEREST: /caida/ping/716405589?ndn.MustBeFresh=1&ndn.Nonce=716405589 1415385073.715069 From: 10.1.1.3, To: 10.1.1.2, Tunnel Type: UDP, DATA: /caida/ping/716405589 ``` </pre>