diff options
author | Christian Breunig <christian@breunig.cc> | 2023-05-04 23:19:49 +0200 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2023-05-04 23:19:49 +0200 |
commit | 11e25707683138d4a5a64a3717160edb84816182 (patch) | |
tree | 9fda4ee0fde4953c524330e3efc06d90c49428dc | |
parent | 5122049d9e69c9a7614fcb19637fe0e50aba0ccf (diff) | |
download | vyos-1x-11e25707683138d4a5a64a3717160edb84816182.tar.gz vyos-1x-11e25707683138d4a5a64a3717160edb84816182.zip |
dns-forwarding: T5193: implement NS resource type
-rw-r--r-- | interface-definitions/dns-forwarding.xml.in | 28 | ||||
-rwxr-xr-x | src/conf_mode/dns_forwarding.py | 4 |
2 files changed, 30 insertions, 2 deletions
diff --git a/interface-definitions/dns-forwarding.xml.in b/interface-definitions/dns-forwarding.xml.in index 61f297f0a..de6991e06 100644 --- a/interface-definitions/dns-forwarding.xml.in +++ b/interface-definitions/dns-forwarding.xml.in @@ -277,6 +277,34 @@ #include <include/generic-disable-node.xml.i> </children> </tagNode> + <tagNode name="ns"> + <properties> + <help>NS record</help> + <valueHelp> + <format>txt</format> + <description>A DNS name relative to the root record</description> + </valueHelp> + <constraint> + <regex>([-_a-zA-Z0-9.]{1,63}|@)(?<!\.)</regex> + </constraint> + </properties> + <children> + <leafNode name="target"> + <properties> + <help>Target DNS server authoritative for subdomain</help> + <valueHelp> + <format>nsXX.example.com</format> + <description>Absolute DNS name</description> + </valueHelp> + <constraint> + <regex>[-_a-zA-Z0-9.]{1,63}(?<!\.)</regex> + </constraint> + </properties> + </leafNode> + #include <include/dns/time-to-live.xml.i> + #include <include/generic-disable-node.xml.i> + </children> + </tagNode> <tagNode name="ptr"> <properties> <help>PTR record</help> diff --git a/src/conf_mode/dns_forwarding.py b/src/conf_mode/dns_forwarding.py index b7214caf7..0d86c6a52 100755 --- a/src/conf_mode/dns_forwarding.py +++ b/src/conf_mode/dns_forwarding.py @@ -99,7 +99,7 @@ def get_config(config=None): recorddata = zonedata['records'] - for rtype in [ 'a', 'aaaa', 'cname', 'mx', 'ptr', 'txt', 'spf', 'srv', 'naptr' ]: + for rtype in [ 'a', 'aaaa', 'cname', 'mx', 'ns', 'ptr', 'txt', 'spf', 'srv', 'naptr' ]: if rtype not in recorddata: continue for subnode in recorddata[rtype]: @@ -126,7 +126,7 @@ def get_config(config=None): 'ttl': rdata['ttl'], 'value': address }) - elif rtype in ['cname', 'ptr']: + elif rtype in ['cname', 'ptr', 'ns']: rdefaults = defaults(base + ['authoritative-domain', 'records', rtype]) # T2665 rdata = dict_merge(rdefaults, rdata) |