Project

General

Profile

Actions

HubDiscovery » History » Revision 7

« Previous | Revision 7/8 (diff) | Next »
Alex Afanasyev, 03/05/2014 08:55 AM


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 local or home NDN router, in order to gain connectivity to the NDN research testbed.

Overview

This procedure contains three 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 for a large enterprise network.
  3. Connect to the home NDN router according to user certificate.
    This ensures connectivity from anywhere.

Stage 1: multicast discovery

Request

The end host sends an Interest over a multicast face.

Interest Name is /localhop/ndn-autoconf/hub.

Response

A producer app on the HUB answer this Interest with a Data packet that contains TLV-encoded Uri block.
The value of this block is the URI for the HUB, preferrably 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 the NDN router.

Stage 3: find home router

This stage assumes that user has configured default certificate using http://ndncert.named-data.net/ as described in http://redmine.named-data.net/attachments/download/23/CertificationArchitecture.pptx

Request

The end host loads the default user identity (e.g., /ndn/edu/ucla/cs/afanasev) and converts it to DNS format (see https://github.com/named-data/ndnx/blob/master/csrc/util/ndn-name-dnsifier.py as a reference implemenation).

(To get default identity: KeyChain::getDefaultIdentity() method in ndn-cpp-dev library.)

If either loading default user identity or converting to DNS format, the phase finishes with error code.

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 NDN router of this user's site.

Client procedure

  1. Send a multicast discovery Interest. If this Interest got answered, connect to the HUB and abort these steps.
  2. Send a DNS query with default suffix. If this query got answered, connect to the HUB and abort these steps.
  3. Extract the site-specific part from the default certificate of the user; fail if this cannot complete. Send a DNS query to find home HUB. If this query got answered, connect to the home HUB. Otherwise, fail.

Updated by Alex Afanasyev almost 11 years ago · 7 revisions