268 lines
16 KiB
HTML
268 lines
16 KiB
HTML
{% load i18n %}{% load bootstrap %}
|
|
<ul class="nav nav-tabs" id="myTab">
|
|
<li class="active"><a href="#generic" data-toggle="tab">General</a></li>
|
|
<li><a href="#avm" data-toggle="tab">AVM Fritz!Box</a></li>
|
|
<li><a href="#ddwrt" data-toggle="tab">DD-WRT</a></li>
|
|
<li><a href="#ddclient" data-toggle="tab">ddclient</a></li>
|
|
<li><a href="#m0n0wall" data-toggle="tab">m0n0wall</a></li>
|
|
<li><a href="#pfsense" data-toggle="tab">pfSense</a></li>
|
|
<li><a href="#browser" data-toggle="tab">Browser</a></li>
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
<div class="tab-pane active" id="generic">
|
|
<h4>{% trans "General configuration hints" %}</h4>
|
|
<p>
|
|
{% blocktrans %}
|
|
Usually, you should configure one system on your network to update the DNS.
|
|
This can be either your router or a host on your network and it will run some software
|
|
called the update client.{% endblocktrans %}
|
|
</p>
|
|
<p>
|
|
{% blocktrans %}
|
|
We have some specific configuration hints for some devices and update clients,
|
|
please see the tabs above. If you don't find yours there, use the generic hints below.{% endblocktrans %}
|
|
</p>
|
|
<p>
|
|
{% blocktrans %}
|
|
<b>Important note about security and compatibility</b>:
|
|
For update URLs, we always give the https (not: http) URL as that will use an encrypted connection
|
|
to transfer your data (including your update secret). Depending on your update client (router firmware or
|
|
PC software) <em>and</em> the specific nsupdate.info-based service, https might be not supported.
|
|
So, if it does not work, you have the choice of using a different update client and/or a different service,
|
|
or transmitting your data using an unencrypted connection (using http: instead of https:).<br>{% endblocktrans %}
|
|
<b>On {{ WWW_HOST }} https is {% if not WE_HAVE_TLS %}not {% endif %}supported.</b>
|
|
</p>
|
|
<hr>
|
|
<p>
|
|
{% trans "Your update client needs to access the following URLs to update the DNS:" %}
|
|
</p>
|
|
{% trans "For IPv4 updates:" %}
|
|
<div class="well well-sm">
|
|
<a href="https://{{ host.get_fqdn|default:"<your fqdn>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_IPV4_HOST }}/nic/update">https://{{ host.get_fqdn|default:"<your fqdn>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_IPV4_HOST }}/nic/update</a>
|
|
</div>
|
|
{% trans "For IPv6 updates:" %}
|
|
<div class="well well-sm">
|
|
<a href="https://{{ host.get_fqdn|default:'<your fqdn>' }}:{{ update_secret|default:'<your secret>' }}@{{ WWW_IPV6_HOST }}/nic/update">https://{{ host.get_fqdn|default:'<your fqdn>' }}:{{ update_secret|default:'<your secret>' }}@{{ WWW_IPV6_HOST }}/nic/update</a>
|
|
</div>
|
|
{% blocktrans %}
|
|
The IPs will be determined automatically using the remote address our service is seeing
|
|
(see below for more details).{% endblocktrans %}
|
|
<hr>
|
|
<p>
|
|
{% trans "Your update client has to do the following steps:" %}
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
{% trans "Check your current IP:" %}
|
|
<ul>
|
|
<li>https://{{ WWW_IPV4_HOST }}/myip ({% trans "to get your current IPv4 address" %})</li>
|
|
<li>https://{{ WWW_IPV6_HOST }}/myip ({% trans "to get your current IPv6 address" %})</li>
|
|
<li>https://{{ WWW_HOST }}/myip ({% trans "to get your current IPv4 or IPv6 address" %})</li>
|
|
</ul>
|
|
{% trans "Important: Do not send an update if your IP did not change since last update!" %}
|
|
</li>
|
|
<li>{% trans "Do HTTP Basic Auth with:" %}
|
|
<ul>
|
|
<li>{% trans "Username:" %} {{ host.get_fqdn|default:"<your fqdn>" }}</li>
|
|
<li>{% trans "Password:" %} {{ update_secret|default:"<your secret>" }}</li>
|
|
</ul>
|
|
</li>
|
|
<li>{% trans "Send a http GET request to:" %}
|
|
<ul>
|
|
<li>https://{{ WWW_IPV4_HOST }}/nic/update {% trans "(to update IPv4 A record in DNS)" %}</li>
|
|
<li>https://{{ WWW_IPV6_HOST }}/nic/update {% trans "(to update IPv6 AAAA record in DNS)" %}</li>
|
|
</ul>
|
|
</li>
|
|
<li>{% trans "Optionally, we support some URL arguments:" %}
|
|
<ul>
|
|
<li>{% blocktrans %}myip=127.0.0.1 or myip=::1 (by default, we autodetect the IP. If the autodetected IP is not
|
|
the one you want to put into DNS, you need to give the wanted one explicitly using myip=...){% endblocktrans %}
|
|
</li>
|
|
<li>hostname={{ host.get_fqdn|default:"<your fqdn>" }} {% blocktrans %}(if not given: autodetect from http basic auth){% endblocktrans %}</li>
|
|
</ul>
|
|
</li>
|
|
<li>{% trans "The response status and content will be:" %}
|
|
<ul>
|
|
<li>Status 200 and "good <your ip>" <i class="fa fa-long-arrow-right"></i> {% trans "new IP accepted" %}</li>
|
|
<li>Status 200 and "nochg <your ip>" <i class="fa fa-long-arrow-right"></i> {% trans "IP accepted, but did not change since last update" %}</li>
|
|
<li>Status 401: Authorization Required <i class="fa fa-long-arrow-right"></i> {% trans "Incorrect authentication or no http basic auth header received" %}</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="tab-pane" id="avm">
|
|
<h4>Fritz!Box 6360, 7390 {% trans "and maybe others:" %}</h4>
|
|
<hr>
|
|
<h5>{% trans "Go to:" %}</h5>
|
|
<div class="well well-sm">
|
|
Internet <i class="fa fa-long-arrow-right"></i>
|
|
Permit Access <i class="fa fa-long-arrow-right"></i>
|
|
Dynamic DNS
|
|
</div>
|
|
<h5>{% trans "Enter the following data:" %}</h5>
|
|
<table class="table">
|
|
<thead><tr><th>Setting</th><th>Value</th></tr></thead>
|
|
<tr><td>Dynamic DNS provider</td><td>Custom</td></tr>
|
|
<tr><td>Update-URL</td><td>https://{{ WWW_IPV4_HOST }}/nic/update</td></tr>
|
|
<tr><td>Domain Name</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>User name</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>Password</td><td>{{ update_secret|default:"<your secret>" }}</td></tr>
|
|
</table>
|
|
<h5>{% trans "If you have IPv4 and IPv6" %}</h5>
|
|
{% trans "Set Update-URL to the following (two URLs, separated by one space)" %}
|
|
<div class="well well-sm">https://{{ WWW_IPV4_HOST }}/nic/update https://{{ WWW_IPV6_HOST }}/nic/update</div>
|
|
<h5>{% trans "Forcing a dynamic DNS update" %}</h5>
|
|
{% trans "If you want to force a dynamic update for testing purposes, you can do it like this:" %}
|
|
<ul>
|
|
<li>{% trans "disable dynamic DNS, apply" %}</li>
|
|
<li>{% trans "enable dynamic DNS, apply" %}</li>
|
|
<li>{% trans '(now the Fritz!Box sends an update, it might be "good" or "nochg" depending on whether we already have that IP in DNS)' %}</li>
|
|
</ul>
|
|
</div>
|
|
<div class="tab-pane" id="ddwrt">
|
|
<h4>DD-WRT ({% trans "verified with" %} v24-sp2)</h4>
|
|
<h5>{% trans "Go to:" %}</h5>
|
|
<div class="well well-sm">
|
|
Setup <i class="fa fa-long-arrow-right"></i>
|
|
DDNS
|
|
</div>
|
|
<h5>{% trans "Enter the following data:" %}</h5>
|
|
<table class="table">
|
|
<thead><tr><th>Setting</th><th>Value</th></tr></thead>
|
|
<tr><td>DDNS Service</td><td>Custom</td></tr>
|
|
<tr><td>DYNDNS Server</td><td>{{ WWW_IPV4_HOST }}</td></tr>
|
|
<tr><td>Username</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>Password</td><td>{{ update_secret|default:"<your secret>" }}</td></tr>
|
|
<tr><td>Hostname</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>URL</td><td>/nic/update?</td></tr>
|
|
<tr><td>Additional DDNS Options</td><td>{% trans "(leave this field empty)" %}</td></tr>
|
|
<tr><td>Do not use external ip check</td><td>Yes</td></tr>
|
|
<tr><td>Force Update Interval</td><td>7</td></tr>
|
|
</table>
|
|
</div>
|
|
<div class="tab-pane" id="ddclient">
|
|
<h4>ddclient</h4>
|
|
<p>
|
|
{% trans "ddclient is a popular dyndns update daemon on Linux." %}
|
|
</p>
|
|
<pre># /etc/ddclient.conf
|
|
|
|
# this will update your ipv4 address to the address
|
|
# the web service sees requests coming from:
|
|
protocol=dyndns2
|
|
use=web, web=http://{{ WWW_IPV4_HOST }}/myip
|
|
ssl=yes # yes = use https for updates
|
|
server={{ WWW_IPV4_HOST }}
|
|
login={{ host.get_fqdn|default:"<your hostname>" }}
|
|
password='{{ update_secret|default:"<your secret>" }}'
|
|
{{ host.get_fqdn|default:"<your hostname>" }}
|
|
|
|
# ddclient releases <= 3.8.1 do not support ipv6,
|
|
# but there is a patch for ipv6 from Eduardo Trapani.
|
|
# using such a patched ddclient, the following should work:
|
|
#
|
|
# this will update your ipv6 address to the interface address:
|
|
#protocol=dyndns2
|
|
#usev6=if, if=eth0
|
|
#ssl=yes # yes = use https for updates
|
|
#server={{ WWW_IPV6_HOST }}
|
|
#login={{ host.get_fqdn|default:"<your hostname>" }}
|
|
#password='{{ update_secret|default:"<your secret>" }}'
|
|
#{{ host.get_fqdn|default:"<your hostname>" }}
|
|
</pre>
|
|
</div>
|
|
<div class="tab-pane" id="m0n0wall">
|
|
<h4>m0n0wall</h4>
|
|
<p>Homepage: <a href="http://m0n0.ch/wall/">http://m0n0.ch/wall</a></p>
|
|
<h5>{% trans "Go to:" %}</h5>
|
|
<div class="well well-sm">
|
|
Services <i class="fa fa-long-arrow-right"></i>Dynamic DNS
|
|
</div>
|
|
<h5>{% trans "Enter the following data:" %}</h5>
|
|
<table class="table">
|
|
<thead><tr><th>Setting</th><th>Value</th></tr></thead>
|
|
<tr><td>Service Type</td><td>DynDNS</td></tr>
|
|
<tr><td>Hostname</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>Server</td><td>{{ WWW_IPV4_HOST }}</td></tr>
|
|
<tr><td>Username</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>Password</td><td>{{ update_secret|default:"<your secret>" }}</td></tr>
|
|
</table>
|
|
</div>
|
|
<div class="tab-pane" id="pfsense">
|
|
<h4>pfSense</h4>
|
|
<p>Homepage: <a href="https://www.pfsense.org/">https://www.pfsense.org</a></p>
|
|
<p>
|
|
{% blocktrans %}Please note: if the pfSense WAN interface does not have
|
|
your public IP and does not notice your public IP changing, the
|
|
update will be done delayed (default: daily at 01:01). You can
|
|
tweak this by editing /etc/crontab from where it invokes
|
|
/etc/rc.dyndns.update - but be careful: do not invoke it too
|
|
frequently and consider that this applies to all your DDNS updaters.
|
|
{% endblocktrans %}
|
|
</p>
|
|
<h5>{% trans "Enter the following data:" %}</h5>
|
|
<table class="table">
|
|
<thead><tr><th>Setting</th><th>Value</th></tr></thead>
|
|
<tr><td>Disable</td><td>{% trans "(do not select this)" %}</td></tr>
|
|
<tr><td>DDNS Service</td><td>Custom</td></tr>
|
|
<tr><td>Interface to monitor</td><td>WAN {% trans "(most likely)" %}</td></tr>
|
|
<tr><td>Interface to send from</td><td>WAN {% trans "(most likely)" %}</td></tr>
|
|
<tr><td>Verbose logging</td><td>{% trans "(select this as long as you need it)" %}</td></tr>
|
|
<tr><td>Username</td><td>{{ host.get_fqdn|default:"<your hostname>" }}</td></tr>
|
|
<tr><td>Password</td><td>{{ update_secret|default:"<your secret>" }}</td></tr>
|
|
<tr><td>Update URL</td><td>https://{{ WWW_IPV4_HOST }}/nic/update</td></tr>
|
|
<tr><td>Result Match</td><td>good|nochg</td></tr>
|
|
<tr><td>Description</td><td>update DDNS host with IP v4 address</td></tr>
|
|
</table>
|
|
</div>
|
|
<div class="tab-pane" id="browser">
|
|
<h4>{% trans "Browser-based update client" %}</h4>
|
|
{% blocktrans %}
|
|
These URLs invoke the built-in update client, which is intended for temporary and adhoc scenarios only.
|
|
It periodically checks your IP and updates DNS if it changes.{% endblocktrans %}
|
|
<ul>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_HOST }}/update">{% blocktrans %}update DNS to point to remote ipv4 or ipv6 address{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_IPV4_HOST }}/update">{% blocktrans %}similar, ipv4 only{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_IPV6_HOST }}/update">{% blocktrans %}similar, ipv6 only{% endblocktrans %}</a></li>
|
|
</ul>
|
|
<h4>{% trans "URLs for browser / http user agent use" %}</h4>
|
|
{% trans "Important: Do not send an update if your IP did not change since last update!" %}
|
|
{% trans "Check your current IP:" %}
|
|
<ul>
|
|
<li><a href="https://{{ WWW_IPV4_HOST }}/myip">{% blocktrans %}to get your current IPv4 address{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ WWW_IPV6_HOST }}/myip">{% blocktrans %}to get your current IPv6 address{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ WWW_HOST }}/myip">{% blocktrans %}to get your current IPv4 or IPv6 address{% endblocktrans %}</a></li>
|
|
</ul>
|
|
{% trans "Interactive - will ask for username (give your hostname) and password (give your secret):" %}
|
|
<ul>
|
|
<li><a href="https://{{ WWW_HOST }}/nic/update">{% blocktrans %}update DNS to point to remote ipv4 or ipv6 address{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ WWW_IPV4_HOST }}/nic/update">{% blocktrans %}similar, ipv4 only{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ WWW_IPV6_HOST }}/nic/update">{% blocktrans %}similar, ipv6 only{% endblocktrans %}</a></li>
|
|
</ul>
|
|
{% trans "Giving the http basic auth username and password in the URL:" %}
|
|
<ul>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_HOST }}/nic/update">{% blocktrans %}update DNS to point to remote ipv4 or ipv6 address{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_IPV4_HOST }}/nic/update">{% blocktrans %}similar, ipv4 only{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_IPV6_HOST }}/nic/update">{% blocktrans %}similar, ipv6 only{% endblocktrans %}</a></li>
|
|
</ul>
|
|
{% trans "As above, but manually specifying the IP address:" %}
|
|
<ul>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_HOST }}/nic/update?myip=127.0.0.1">{% blocktrans %}update DNS to point to ipv4 127.0.0.1{% endblocktrans %}</a></li>
|
|
<li><a href="https://{{ host.get_fqdn|default:"<your hostname>" }}:{{ update_secret|default:"<your secret>" }}@{{ WWW_HOST }}/nic/update?myip=::1">{% blocktrans %}update DNS to point to ipv6 ::1{% endblocktrans %}</a></li>
|
|
</ul>
|
|
{% trans "Explanation of parameters:" %}
|
|
<ul>
|
|
{% if not host %}
|
|
<li><your hostname>: {% blocktrans %}your fully qualified hostname, something like example.{{ WWW_HOST }}{% endblocktrans %}</li>
|
|
{% endif %}
|
|
{% if not update_secret %}
|
|
<li><your secret>: {% blocktrans %}the secret you have configured for this hostname{% endblocktrans %}</li>
|
|
{% endif %}
|
|
<li>{% blocktrans %}IP addresses: we use the v4 and v6 localhost addresses in the examples, but
|
|
of course you need to use your real public IP instead of that.{% endblocktrans %}
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|