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:
- Look for a local NDN router by multicast.
This is useful in a home or small office network. - 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. - 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 Certification Architecture.
Request¶
The end host loads the default user identity (eg. /ndn/edu/ucla/cs/afanasev
), and converts it to DNS format (reference implementation: ndn-name-dnsifier.py).
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¶
- Send a multicast discovery Interest. If this Interest got answered, connect to the HUB and abort these steps.
- Send a DNS query with default suffix. If this query got answered, connect to the HUB and abort these steps.
- Load default user identity (ndn-cpp-dev
KeyChain::getDefaultIdentity()
), and converts to DNS format; if either fails, this step fails. Send a DNS query to find home HUB. If this query got answered, connect to the home HUB. Otherwise, fail.
Updated by Junxiao Shi almost 11 years ago ยท 7 revisions