blob: 8e56435cab3a32ca21dc4e31ba8352ae51f6e90a [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.
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`