Rewrote Dynamic DNS documentation/examples to align with T5791

(cherry picked from commit 5a6aa7506d74b40db52a2852629898457cb5753f)
This commit is contained in:
Ginko (Giggum) 2024-03-06 13:15:26 -05:00 committed by Mergify
parent 99821111f4
commit a2b0eec03a

View File

@ -143,33 +143,6 @@ avoid being tracked by the provider of your upstream DNS server.
168.192.in-addr.arpa, 16-31.172.in-addr.arpa, which enabling upstream
DNS server(s) to be used for reverse lookups of these zones.
.. cfgcmd:: set service dns forwarding serve-stale-extension <0-65535>
Maximum number of times an expired records TTL is extended by 30s when
serving stale. Extension only occurs if a record cannot be refreshed. A
value of 0 means the Serve Stale mechanism is not used. To allow records
becoming stale to be served for an hour, use a value of 120.
.. cfgcmd:: set service dns forwarding exclude-throttle-address <ip|prefix>
When an authoritative server does not answer a query or sends a reply the
recursor does not like, it is throttled. Any servers matching the supplied
netmasks will never be throttled.
.. cfgcmd:: set service dns forwarding options ecs-add-for <address>
The requestor netmask for which the requestor IP Address should be used as the
EDNS Client Subnet for outgoing queries.
.. cfgcmd:: set service dns forwarding options ecs-ipv4-bits <number>
Number of bits of client IPv4 address to pass when sending EDNS Client Subnet
address information.
.. cfgcmd:: set service dns forwarding options edns-subnet-allow-list <address|domain>
The netmask or domain that EDNS Client Subnet should be enabled for in outgoing queries.
Example
=======
@ -231,8 +204,8 @@ this only one purpose.
ddclient_ uses two methods to update a DNS record. The first one will send
updates directly to the DNS daemon, in compliance with :rfc:`2136`. The second
one involves a third party service, like DynDNS.com or any other similar
website. This method uses HTTP requests to transmit the new IP address. You
one involves a third party service, like DynDNS.com or any other such
service provider. This method uses HTTP requests to transmit the new IP address. You
can configure both in VyOS.
.. _dns:dynmaic_config:
@ -243,46 +216,43 @@ Configuration
:rfc:`2136` Based
-----------------
.. cfgcmd:: set service dns dynamic address <interface> rfc2136 <service-name>
.. cfgcmd:: set service dns dynamic name <service-name> address interface <interface>
Create new :rfc:`2136` DNS update configuration which will update the IP
Create new dynamic DNS update configuration which will update the IP
address assigned to `<interface>` on the service you configured under
`<service-name>`.
.. cfgcmd:: set service dns dynamic address <interface> rfc2136 <service-name>
key <keyfile>
.. cfgcmd:: set service dns dynamic name <service-name> description <text>
File identified by `<keyfile>` containing the secret RNDC key shared with
remote DNS server.
Set description `<text>` for dynamic DNS service being configured.
.. cfgcmd:: set service dns dynamic address <interface> rfc2136 <service-name>
server <server>
.. cfgcmd:: set service dns dynamic name <service-name> key <filename>
File identified by `<filename>` containing the TSIG authentication key for RFC2136
nsupdate on remote DNS server.
.. cfgcmd:: set service dns dynamic name <service-name> server <server>
Configure the DNS `<server>` IP/FQDN used when updating this dynamic
assignment.
.. cfgcmd:: set service dns dynamic address <interface> rfc2136 <service-name>
zone <zone>
.. cfgcmd:: set service dns dynamic name <service-name> zone <zone>
Configure DNS `<zone>` to be updated.
.. cfgcmd:: set service dns dynamic address <interface> rfc2136 <service-name>
record <record>
.. cfgcmd:: set service dns dynamic name <service-name> host-name <record>
Configure DNS `<record>` which should be updated. This can be set multiple
times.
Configure DNS `<record>` which should be updated. This can be set multiple times..
.. cfgcmd:: set service dns dynamic address <interface> rfc2136 <service-name>
ttl <ttl>
.. cfgcmd:: set service dns dynamic name <service-name> ttl <ttl>
Configure optional TTL value on the given resource record. This defaults to
600 seconds.
.. cfgcmd:: set service dns dynamic timeout <60-3600>
.. cfgcmd:: set service dns dynamic interval <60-3600>
Specify timeout / update interval to check if IP address changed.
This defaults to 300 seconds.
Specify interval in seconds to wait between Dynamic DNS updates.
The default is 300 seconds.
.. _dns:dynmaic_example:
@ -295,32 +265,48 @@ Example
.. code-block:: none
# Configuration commands entered:
#
set service dns dynamic name 'VyOS-DNS' address interface 'eth0'
set service dns dynamic name 'VyOS-DNS' description 'RFC 2136 dynamic dns service'
set service dns dynamic name 'VyOS-DNS' key '/config/auth/my.key'
set service dns dynamic name 'VyOS-DNS' server 'ns1.vyos.io'
set service dns dynamic name 'VyOS-DNS' zone 'vyos.io'
set service dns dynamic name 'VyOS-DNS' host-name 'example.vyos.io'
set service dns dynamic name 'VyOS-DNS' protocol 'nsupdate'
set service dns dynamic name 'VyOS-DNS' ttl '300'
# Resulting config:
#
vyos@vyos# show service dns dynamic
interface eth0.7 {
rfc2136 VyOS-DNS {
name VyOS-DNS {
address {
interface eth0
}
description "RFC 2136 dynamic dns service"
host-name example.vyos.io
key /config/auth/my.key
record example.vyos.io
protocol nsupdate
server ns1.vyos.io
ttl 300
zone vyos.io
}
}
This will render the following ddclient_ configuration entry:
.. code-block:: none
# ddclient configuration for interface "eth0":
#
# ddclient configuration for interface "eth0.7":
#
use=if, if=eth0.7
# RFC2136 dynamic DNS configuration for example.vyos.io.vyos.io
server=ns1.vyos.io
protocol=nsupdate
password=/config/auth/my.key
ttl=300
zone=vyos.io
# Web service dynamic DNS configuration for VyOS-DNS: [nsupdate, example.vyos.io]
use=if, \
if=eth0, \
protocol=nsupdate, \
server=ns1.vyos.io, \
zone=vyos.io, \
password='/config/auth/my.key', \
ttl=300 \
example.vyos.io
.. note:: You can also keep different DNS zone updated. Just create a new
@ -335,40 +321,43 @@ VyOS is also able to use any service relying on protocols supported by ddclient.
To use such a service, one must define a login, password, one or multiple
hostnames, protocol and server.
.. cfgcmd:: set service dns dynamic address <interface> service <service>
host-name <hostname>
.. cfgcmd:: set service dns dynamic name <service-name> address interface <interface>
Create new dynamic DNS update configuration which will update the IP
address assigned to `<interface>` on the service you configured under
`<service-name>`.
.. cfgcmd:: set service dns dynamic name <service-name> description <text>
Set description `<text>` for dynamic DNS service being configured.
.. cfgcmd:: set service dns dynamic name <service-name> host-name <hostname>
Setup the dynamic DNS hostname `<hostname>` associated with the DynDNS
provider identified by `<service>` when the IP address on address
`<interface>` changes.
provider identified by `<service-name>`.
.. cfgcmd:: set service dns dynamic address <interface> service <service>
username <username>
.. cfgcmd:: set service dns dynamic name <service-name> username <username>
Configure `<username>` used when authenticating the update request for
DynDNS service identified by `<service>`.
For Namecheap, set the <domain> you wish to update.
DynDNS service identified by `<service-name>`.
.. cfgcmd:: set service dns dynamic address <interface> service <service>
password <password>
.. cfgcmd:: set service dns dynamic name <service-name> password <password>
Configure `<password>` used when authenticating the update request for
DynDNS service identified by `<service>`.
DynDNS service identified by `<service-name>`.
.. cfgcmd:: set service dns dynamic address <interface> service <service>
protocol <protocol>
.. cfgcmd:: set service dns dynamic name <service-name> protocol <protocol>
When a ``custom`` DynDNS provider is used the protocol used for communicating
When a ``custom`` DynDNS provider is used, the protocol used for communicating
to the provider must be specified under `<protocol>`. See the embedded
completion helper for available protocols.
completion helper when entering above command for available protocols.
.. cfgcmd:: set service dns dynamic address <interface> service <service>
server <server>
.. cfgcmd:: set service dns dynamic name <service-name> server <server>
When a ``custom`` DynDNS provider is used the `<server>` where update
requests are being sent to must be specified.
.. cfgcmd:: set service dns dynamic address <interface> ipv6-enable
.. cfgcmd:: set service dns dynamic name <service-name> ip-version 'ipv6'
Allow explicit IPv6 address for the interface.
@ -376,14 +365,17 @@ hostnames, protocol and server.
Example:
^^^^^^^^
Use DynDNS as your preferred provider:
Use deSEC (dedyn.io) as your preferred provider:
.. code-block:: none
set service dns dynamic address eth0 service dyndns
set service dns dynamic address eth0 service dyndns username my-login
set service dns dynamic address eth0 service dyndns password my-password
set service dns dynamic address eth0 service dyndns host-name my-dyndns-hostname
set service dns dynamic name dedyn description 'deSEC dynamic dns service'
set service dns dynamic name dedyn username 'myusername'
set service dns dynamic name dedyn password 'mypassword'
set service dns dynamic name dedyn host-name 'myhostname.dedyn.io'
set service dns dynamic name dedyn protocol 'dyndns2'
set service dns dynamic name dedyn server 'update.dedyn.io'
set service dns dynamic name dedyn address interface 'eth0'
.. note:: Multiple services can be used per interface. Just specify as many
services per interface as you like!
@ -393,12 +385,14 @@ Example IPv6 only:
.. code-block:: none
set service dns dynamic address eth0 ipv6-enable
set service dns dynamic address eth0 service dyndns6 username my-login
set service dns dynamic address eth0 service dyndns6 password my-password
set service dns dynamic address eth0 service dyndns6 host-name my-dyndns-hostname
set service dns dynamic address eth0 service dyndns6 protocol dyndns2
set service dns dynamic address eth0 service dyndns6 server dyndns-v6-server
set service dns dynamic name dedyn description 'deSEC ipv6 dynamic dns service'
set service dns dynamic name dedyn username 'myusername'
set service dns dynamic name dedyn password 'mypassword'
set service dns dynamic name dedyn host-name 'myhostname.dedyn.io'
set service dns dynamic name dedyn protocol 'dyndns2'
set service dns dynamic name dedyn ip-version 'ipv6'
set service dns dynamic name dedyn server 'update6.dedyn.io'
set service dns dynamic name dedyn address interface 'eth0'
Running Behind NAT
@ -408,21 +402,15 @@ By default, ddclient_ will update a dynamic dns record using the IP address
directly attached to the interface. If your VyOS instance is behind NAT, your
record will be updated to point to your internal IP.
Above, command syntax isn noted to configure dynamic dns on a specific interface.
It is possible to overlook the additional address option, web, when completeing
those commands. ddclient_ has another way to determine the WAN IP address, using
a web-based url to determine the external IP. Each of the commands above will
need to be modified to use 'web' as the 'interface' specified if this functionality
is to be utilized.
ddclient_ has another way to determine the WAN IP address. This is controlled
by:
This functionality is controlled by adding the following configuration:
.. cfgcmd:: set service dns dynamic address web web-options url <url>
.. cfgcmd:: set service dns dynamic name <service-name> address web <url>
Use configured `<url>` to determine your IP address. ddclient_ will load
`<url>` and tries to extract your IP address from the response.
.. cfgcmd:: set service dns dynamic address web web-options skip <pattern>
.. cfgcmd:: set service dns dynamic name <service-name> address web skip <pattern>
ddclient_ will skip any address located before the string set in `<pattern>`.