ndn-autoconfig

Usage

ndn-autoconfig [options]

Description

Client tool to run NDN hub discovery procedure.

Options

-d or --daemon

Run ndn-autoconfig in daemon mode. In this mode, the auto-discovery procedure is re-run hourly or when a network change event is detected.

NOTE: if connection to NFD fails, the daemon will be terminated.

-c [FILE] or --config=[FILE]
Use the specified configuration file. If enabled = true is not specified in the configuration file, no actions will be performed.
--ndn-fch-url=[URL]
Use the specified URL to find the closest hub (NDN-FCH protocol). If not specified, http://ndn-fch.named-data.net/ will be used. Only http:// URLs are supported.
-h or --help
Print help message and exit.
-V or --version
Show version information and exit.

NDN hub discovery procedure

When an end host starts up, or detects a change in its network environment, it MAY use this procedure to discover a NDN router, in order to gain connectivity to the NDN research testbed. This procedure can discover either an NDN router in the local network, or a NDN testbed gateway router (commonly known as a “hub”).

Overview

This procedure contains four methods to discover a NDN router:

  1. Look for a local NDN router by multicast. This is useful in a home or small office network.
  2. Look for a local NDN router by DNS query with default suffix. This allows network administrator to configure a NDN router in a large enterprise network.
  3. Find closest hub by sending an HTTP request to NDN-FCH server.
  4. Connect to the home hub according to user certificate. This ensures connectivity from anywhere.

After connecting, two prefixes will be registered toward the router:

  • / — this allows application communication
  • /localhop/nfd — this informs NFD-RIB that there is connectivity to a router

Stage 1: multicast discovery

Request

The end host sends Interest /localhop/ndn-autoconf/hub over a multicast face.

Response

A producer app on the router answers this Interest with a Data packet that contains a Uri TLV element. The value of this element is the FaceUri for the router, such as a UDP tunnel.

Stage 2: DNS query with default suffix

Request

The end host sends a DNS query that is equivalent to this command:

dig +search +short +cmd +tries=2 +ndots=10 _ndn._udp srv

Response

The DNS server should answer with an SRV record that contains the hostname and UDP port number of a nearby NDN router.

Stage 3: HTTP Request to NDN-FCH server

This stage uses a simple HTTP-based API. For more information about NDN-FCH server, refer to the NDN-FCH README file.

Request

HTTP/1.0 request for the NDN-FCH server URI (http://ndn-fch.named-data.net/ by default)

Response

The HTTP response is expected to be a hostname or an IP address of the closest hub, inferred using IP-geo approximation service.

Stage 4: find home router

This stage assumes that user has configured default certificate using https://ndncert.named-data.net/ as described in Certification Architecture.

Request

The end host loads the default user identity (eg. /ndn/edu/ucla/cs/afanasev), and converts it to DNS format.

The end host sends a DNS query for an SRV record of name _ndn._udp. + user identity in DNS format + _homehub._autoconf.named-data.net. For example:

_ndn._udp.afanasev.cs.ucla.edu.ndn._homehub._autoconf.named-data.net

Response

The DNS server should answer with an SRV record that contains the hostname and UDP port number of the home hub of this user’s site.

Client procedure

Stage 1

Send a multicast discovery Interest. If this Interest is answered, connect to the router and terminate auto-discovery.

Stage 2

Send a DNS query with default suffix. If this query is answered, connect to the router and terminate auto-discovery.

Stage 3

Send HTTP request to NDN-FCH server. If request succeeds, attempt to connect to the discovered hub and terminate auto-discovery.

Stage 4

Load default user identity, and convert it to DNS format. If either fails, the auto-discovery fails.

Send a DNS query to find home hub. If this query is answered, connect to the home hub and terminate auto-discovery. Otherwise, the auto-discovery fails.

Exit status

0: No error.

1: An unspecified error occurred.

2: Malformed command line, e.g., invalid, missing, or unknown argument.

4: Insufficient privileges.