81a9a86305
some documentation updates refs #3809 Change-Id: I0c837a3b8f0f5e5e15d20ba41418bf17660fffb5
187 lines
4.8 KiB
ReStructuredText
187 lines
4.8 KiB
ReStructuredText
.. _ndn-autoconfig:
|
|
|
|
ndn-autoconfig
|
|
==============
|
|
|
|
Usage
|
|
-----
|
|
|
|
::
|
|
|
|
ndn-autoconfig [options]
|
|
|
|
Description
|
|
-----------
|
|
|
|
Client tool to run :ref:`NDN hub discovery procedure`.
|
|
|
|
Options
|
|
-------
|
|
|
|
``-h`` or ``--help``
|
|
Print usage information.
|
|
|
|
``-d`` or ``--daemon``
|
|
Run ndn-autoconfig in daemon mode, detecting network change events and re-running
|
|
auto-discovery procedure. In addition, the auto-discovery procedure is unconditionally
|
|
re-run every hour.
|
|
|
|
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.
|
|
|
|
``-V`` or ``--version``
|
|
Print version information.
|
|
|
|
.. _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 <https://named-data.net/ndn-testbed/>`_.
|
|
|
|
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 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: 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 <https://github.com/named-data/ndn-fch>`__.
|
|
|
|
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
|
|
<https://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
|
|
^^^^^^^
|
|
|
|
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.
|
|
|
|
|
|
See also
|
|
--------
|
|
|
|
:ref:`ndn-autoconfig-server`, :doc:`ndn-autoconfig.conf`
|