Named Data Networking (NDN) is a common network protocol for all applications and network environment. NDN’s network layer protocol runs on top of a best-effort packet delivery service, which includes physical channels such as Ethernet wires, and logical connections such as UDP or TCP tunnels over the existing Internet. Using this underlying connectivity, NDN provides a content retrieval service, which allows applications to fetch uniquely named “Data packets” each carrying a piece of data. The “data” could be practically anything: text file chunks, video frames, temperature sensor readings … they are all data. Likewise, a packet in a lower layer network protocol, such as an Ethernet frame, is also a piece of data. Therefore, it should be possible to encapsulate Ethernet traffic into NDN Data packets, and establish a Virtual Private Network (VPN) through NDN communication. This post describes the architecture of a proof-of-concept Ethernet-over-NDN tunneling program, and shows a simple performance benchmark over the real world Internet.

The Program

tap-tunnel creates an Ethernet tunnel between two nodes using NDN communication. Each node runs an instance of tap-tunnel.
This program collects packets sent into a TAP interface, and turn them into NDN packets. It then gains NDN connectivity by connecting to the local NDN Forwarding Daemon (NFD). The diagram below shows the overall architecture: Read More

The last post described how to deploy the NDN Forwarding Daemon (NFD) on a low-end box. This post describes how to get it connected.

The procedures and experiences in this post apply to any NDN node. If you aren’t using a low-end box, you may follow the official guide to install binary packages or compile from source. This post assumes you have ndn-cxx, nfd, and ndn-tlv-ping installed. You need access to two machines with NFD running; referred to as “local” and “remote”.

Connect to Another Machine

After installing NFD on your machine, you can connect to any other machine running NFD. Although NDN can run natively above Ethernet, there isn’t a global scale native NDN network yet because NDN is still in its early stage. Instead, NDN can run as an overlay network on top of a traditional IP network. You can specify the IP address and port number of the remote NFD, so that NDN packets get encapsulated into UDP or TCP packets and sent to the remote NFD.