blob: b436c61b561c8b7422587cb83d0f07b6f6f37927 [file] [log] [blame]
.. _ndn-autoconfig:
ndn-autoconfig
==============
Usage
-----
::
ndn-autoconfig
Description
-----------
Client tool to run :ref:`NDN hub discovery procedure`.
.. _NDN hub discovery procedure:
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 <http://named-data.net/ndn-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 in a large enterprise network.
3. Connect to the home NDN router according to user certificate.
This ensures connectivity from anywhere.
After connecting to an NDN router, two prefixes will be automatically registered:
- /ndn
- /localhop/nfd --- this to inform RIB manager that there is connectivity to the hub
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 a
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
<http://redmine.named-data.net/attachments/download/23/CertificationArchitecture.pptx>`_.
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 NDN router of this user's site.
Client procedure
----------------
Stage 1
^^^^^^^
Send a multicast discovery Interest.
If this Interest is answered, connect to the HUB and terminate auto-discovery.
Stage 2
^^^^^^^
Send a DNS query with default suffix.
If this query is answered, connect to the HUB and terminate auto-discovery.
Stage 3
^^^^^^^
* 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.
See also
--------
:ref:`ndn-autoconfig-server`