summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-09-18 21:48:53 +0200
committerChristian Poessinger <christian@poessinger.com>2021-09-18 21:48:53 +0200
commite2f9f4f4e8b2e961a58d935d09798ddb4e1e0460 (patch)
tree8256fc409b678ade7a730c55c05206b7728c2378
parenta4440bd589db645eb99f343a8163e188a700774c (diff)
downloadvyos-1x-e2f9f4f4e8b2e961a58d935d09798ddb4e1e0460.tar.gz
vyos-1x-e2f9f4f4e8b2e961a58d935d09798ddb4e1e0460.zip
dhcp-server: T3838: rename dns-server to name-server node
IPv4 DHCP uses "dns-server" to specify one or more name-servers for a given pool. In order to use the same CLI syntax this should be renamed to name-server, which is already the case for DHCPv6.
-rw-r--r--data/templates/dhcp-server/dhcpd.conf.tmpl4
-rw-r--r--interface-definitions/dhcp-server.xml.in14
-rw-r--r--interface-definitions/dhcpv6-server.xml.in42
-rw-r--r--interface-definitions/dns-forwarding.xml.in19
-rw-r--r--interface-definitions/include/name-server-ipv4-ipv6.xml.i (renamed from interface-definitions/include/accel-ppp/name-server.xml.i)4
-rw-r--r--interface-definitions/include/name-server-ipv4.xml.i15
-rw-r--r--interface-definitions/include/name-server-ipv6.xml.i15
-rw-r--r--interface-definitions/interfaces-openvpn.xml.in18
-rw-r--r--interface-definitions/service_ipoe-server.xml.in2
-rw-r--r--interface-definitions/service_pppoe-server.xml.in2
-rw-r--r--interface-definitions/service_router-advert.xml.in14
-rw-r--r--interface-definitions/vpn_ipsec.xml.in3
-rw-r--r--interface-definitions/vpn_l2tp.xml.in2
-rw-r--r--interface-definitions/vpn_openconnect.xml.in2
-rw-r--r--interface-definitions/vpn_pptp.xml.in14
-rw-r--r--interface-definitions/vpn_sstp.xml.in2
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcp-server.py16
-rwxr-xr-xsrc/migration-scripts/dhcp-server/5-to-67
18 files changed, 63 insertions, 132 deletions
diff --git a/data/templates/dhcp-server/dhcpd.conf.tmpl b/data/templates/dhcp-server/dhcpd.conf.tmpl
index 3ac92d3c9..ed39ff4da 100644
--- a/data/templates/dhcp-server/dhcpd.conf.tmpl
+++ b/data/templates/dhcp-server/dhcpd.conf.tmpl
@@ -84,8 +84,8 @@ shared-network {{ network | replace('_','-') }} {
{% if network_config.subnet is defined and network_config.subnet is not none %}
{% for subnet, subnet_config in network_config.subnet.items() %}
subnet {{ subnet | address_from_cidr }} netmask {{ subnet | netmask_from_cidr }} {
-{% if subnet_config.dns_server is defined and subnet_config.dns_server is not none %}
- option domain-name-servers {{ subnet_config.dns_server | join(', ') }};
+{% if subnet_config.name_server is defined and subnet_config.name_server is not none %}
+ option domain-name-servers {{ subnet_config.name_server | join(', ') }};
{% endif %}
{% if subnet_config.domain_search is defined and subnet_config.domain_search is not none %}
option domain-search "{{ subnet_config.domain_search | join('", "') }}";
diff --git a/interface-definitions/dhcp-server.xml.in b/interface-definitions/dhcp-server.xml.in
index c0f72dd86..3a1eee60e 100644
--- a/interface-definitions/dhcp-server.xml.in
+++ b/interface-definitions/dhcp-server.xml.in
@@ -117,19 +117,7 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="dns-server">
- <properties>
- <help>DNS server IPv4 address</help>
- <valueHelp>
- <format>ipv4</format>
- <description>DNS server IPv4 address</description>
- </valueHelp>
- <constraint>
- <validator name="ipv4-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv4.xml.i>
<leafNode name="domain-name">
<properties>
<help>Client Domain Name</help>
diff --git a/interface-definitions/dhcpv6-server.xml.in b/interface-definitions/dhcpv6-server.xml.in
index 95b1e5602..58181872b 100644
--- a/interface-definitions/dhcpv6-server.xml.in
+++ b/interface-definitions/dhcpv6-server.xml.in
@@ -14,19 +14,7 @@
<help>Additional global parameters for DHCPv6 server</help>
</properties>
<children>
- <leafNode name="name-server">
- <properties>
- <help>IPv6 address of a Recursive DNS Server</help>
- <valueHelp>
- <format>ipv6</format>
- <description>IPv6 address of DNS name server</description>
- </valueHelp>
- <constraint>
- <validator name="ipv6-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv6.xml.i>
</children>
</node>
<leafNode name="preference">
@@ -70,19 +58,7 @@
</properties>
</leafNode>
#include <include/dhcp-server-domain-search.xml.i>
- <leafNode name="name-server">
- <properties>
- <help>IPv6 address of a Recursive DNS Server</help>
- <valueHelp>
- <format>ipv6</format>
- <description>IPv6 address of DNS name server</description>
- </valueHelp>
- <constraint>
- <validator name="ipv6-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv6.xml.i>
</children>
</node>
<tagNode name="subnet">
@@ -194,19 +170,7 @@
</leafNode>
</children>
</node>
- <leafNode name="name-server">
- <properties>
- <help>IPv6 address of a Recursive DNS Server</help>
- <valueHelp>
- <format>ipv6</format>
- <description>IPv6 address of DNS name server</description>
- </valueHelp>
- <constraint>
- <validator name="ipv6-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv6.xml.i>
<leafNode name="nis-domain">
<properties>
<help>NIS domain name for client to use</help>
diff --git a/interface-definitions/dns-forwarding.xml.in b/interface-definitions/dns-forwarding.xml.in
index 06e45ce1e..33cb6223f 100644
--- a/interface-definitions/dns-forwarding.xml.in
+++ b/interface-definitions/dns-forwarding.xml.in
@@ -148,24 +148,7 @@
</properties>
<defaultValue>3600</defaultValue>
</leafNode>
- <leafNode name="name-server">
- <properties>
- <help>Domain Name Servers (DNS) addresses [OPTIONAL]</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Domain Name Server (DNS) IPv4 address</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6</format>
- <description>Domain Name Server (DNS) IPv6 address</description>
- </valueHelp>
- <multi/>
- <constraint>
- <validator name="ipv4-address"/>
- <validator name="ipv6-address"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv4-ipv6.xml.i>
<leafNode name="source-address">
<properties>
<help>Local addresses from which to send DNS queries</help>
diff --git a/interface-definitions/include/accel-ppp/name-server.xml.i b/interface-definitions/include/name-server-ipv4-ipv6.xml.i
index e744b384f..14973234b 100644
--- a/interface-definitions/include/accel-ppp/name-server.xml.i
+++ b/interface-definitions/include/name-server-ipv4-ipv6.xml.i
@@ -1,7 +1,7 @@
-<!-- include start from accel-ppp/name-server.xml.i -->
+<!-- include start from name-server-ipv4-ipv6.xml.i -->
<leafNode name="name-server">
<properties>
- <help>Domain Name Server (DNS) propagated to client</help>
+ <help>Domain Name Servers (DNS) addresses</help>
<valueHelp>
<format>ipv4</format>
<description>Domain Name Server (DNS) IPv4 address</description>
diff --git a/interface-definitions/include/name-server-ipv4.xml.i b/interface-definitions/include/name-server-ipv4.xml.i
new file mode 100644
index 000000000..0cf884e03
--- /dev/null
+++ b/interface-definitions/include/name-server-ipv4.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from name-server-ipv4.xml.i -->
+<leafNode name="name-server">
+ <properties>
+ <help>Domain Name Servers (DNS) addresses</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Domain Name Server (DNS) IPv4 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/name-server-ipv6.xml.i b/interface-definitions/include/name-server-ipv6.xml.i
new file mode 100644
index 000000000..d4517c4c6
--- /dev/null
+++ b/interface-definitions/include/name-server-ipv6.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from name-server-ipv6.xml.i -->
+<leafNode name="name-server">
+ <properties>
+ <help>Domain Name Servers (DNS) addresses</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Domain Name Server (DNS) IPv6 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/interfaces-openvpn.xml.in b/interface-definitions/interfaces-openvpn.xml.in
index 3ad367900..2ecac78e2 100644
--- a/interface-definitions/interfaces-openvpn.xml.in
+++ b/interface-definitions/interfaces-openvpn.xml.in
@@ -554,23 +554,7 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="name-server">
- <properties>
- <help>Domain Name Server (DNS)</help>
- <valueHelp>
- <format>ipv4</format>
- <description>DNS server IPv4 address</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6</format>
- <description>DNS server IPv6 address</description>
- </valueHelp>
- <constraint>
- <validator name="ip-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv4-ipv6.xml.i>
<tagNode name="push-route">
<properties>
<help>Route to be pushed to all clients</help>
diff --git a/interface-definitions/service_ipoe-server.xml.in b/interface-definitions/service_ipoe-server.xml.in
index 7c575ba77..b19acab56 100644
--- a/interface-definitions/service_ipoe-server.xml.in
+++ b/interface-definitions/service_ipoe-server.xml.in
@@ -111,7 +111,7 @@
</leafNode>
</children>
</tagNode>
- #include <include/accel-ppp/name-server.xml.i>
+ #include <include/name-server-ipv4-ipv6.xml.i>
#include <include/accel-ppp/client-ipv6-pool.xml.i>
<node name="authentication">
<properties>
diff --git a/interface-definitions/service_pppoe-server.xml.in b/interface-definitions/service_pppoe-server.xml.in
index 6fb0bf9f4..188aed6c4 100644
--- a/interface-definitions/service_pppoe-server.xml.in
+++ b/interface-definitions/service_pppoe-server.xml.in
@@ -59,7 +59,7 @@
</children>
</node>
#include <include/accel-ppp/client-ipv6-pool.xml.i>
- #include <include/accel-ppp/name-server.xml.i>
+ #include <include/name-server-ipv4-ipv6.xml.i>
<tagNode name="interface">
<properties>
<help>interface(s) to listen on</help>
diff --git a/interface-definitions/service_router-advert.xml.in b/interface-definitions/service_router-advert.xml.in
index e18b27f1b..0f4009f5c 100644
--- a/interface-definitions/service_router-advert.xml.in
+++ b/interface-definitions/service_router-advert.xml.in
@@ -135,19 +135,7 @@
</leafNode>
</children>
</node>
- <leafNode name="name-server">
- <properties>
- <help>IPv6 address of recursive DNS server</help>
- <valueHelp>
- <format>ipv6</format>
- <description>IPv6 address of DNS name server</description>
- </valueHelp>
- <constraint>
- <validator name="ipv6-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv6.xml.i>
<leafNode name="other-config-flag">
<properties>
<help>Hosts use the administered (stateful) protocol for autoconfiguration of other (non-address) information</help>
diff --git a/interface-definitions/vpn_ipsec.xml.in b/interface-definitions/vpn_ipsec.xml.in
index 4120232ea..164ba6618 100644
--- a/interface-definitions/vpn_ipsec.xml.in
+++ b/interface-definitions/vpn_ipsec.xml.in
@@ -884,8 +884,7 @@
</constraint>
</properties>
</leafNode>
- <!-- Include Accel-PPP definition here, maybe time for a rename? -->
- #include <include/accel-ppp/name-server.xml.i>
+ #include <include/name-server-ipv4-ipv6.xml.i>
</children>
</tagNode>
#include <include/radius-server-ipv4.xml.i>
diff --git a/interface-definitions/vpn_l2tp.xml.in b/interface-definitions/vpn_l2tp.xml.in
index 6d556d0bb..cbd5e38e7 100644
--- a/interface-definitions/vpn_l2tp.xml.in
+++ b/interface-definitions/vpn_l2tp.xml.in
@@ -23,7 +23,7 @@
</properties>
</leafNode>
#include <include/accel-ppp/gateway-address.xml.i>
- #include <include/accel-ppp/name-server.xml.i>
+ #include <include/name-server-ipv4-ipv6.xml.i>
<node name="lns">
<properties>
<help>L2TP Network Server (LNS)</help>
diff --git a/interface-definitions/vpn_openconnect.xml.in b/interface-definitions/vpn_openconnect.xml.in
index a33ff67ea..0db5e79d0 100644
--- a/interface-definitions/vpn_openconnect.xml.in
+++ b/interface-definitions/vpn_openconnect.xml.in
@@ -170,7 +170,7 @@
</leafNode>
</children>
</node>
- #include <include/accel-ppp/name-server.xml.i>
+ #include <include/name-server-ipv4-ipv6.xml.i>
</children>
</node>
</children>
diff --git a/interface-definitions/vpn_pptp.xml.in b/interface-definitions/vpn_pptp.xml.in
index dab317f68..0d1690013 100644
--- a/interface-definitions/vpn_pptp.xml.in
+++ b/interface-definitions/vpn_pptp.xml.in
@@ -22,19 +22,7 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="name-server">
- <properties>
- <help>Domain Name Server (DNS) propagated to client</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Domain Name Server (DNS) IPv4 address</description>
- </valueHelp>
- <constraint>
- <validator name="ipv4-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/name-server-ipv4.xml.i>
#include <include/accel-ppp/wins-server.xml.i>
<node name="client-ip-pool">
<properties>
diff --git a/interface-definitions/vpn_sstp.xml.in b/interface-definitions/vpn_sstp.xml.in
index 5cd331d7f..9901a0cdf 100644
--- a/interface-definitions/vpn_sstp.xml.in
+++ b/interface-definitions/vpn_sstp.xml.in
@@ -27,7 +27,7 @@
</node>
#include <include/interface/mtu-68-1500.xml.i>
#include <include/accel-ppp/gateway-address.xml.i>
- #include <include/accel-ppp/name-server.xml.i>
+ #include <include/name-server-ipv4-ipv6.xml.i>
<node name="client-ip-pool">
<properties>
<help>Client IP pools and gateway setting</help>
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py
index 40977bb04..37e016778 100755
--- a/smoketest/scripts/cli/test_service_dhcp-server.py
+++ b/smoketest/scripts/cli/test_service_dhcp-server.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
-# Copyright (C) 2020 VyOS maintainers and contributors
+# Copyright (C) 2020-2021 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@@ -59,8 +59,8 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
# we use the first subnet IP address as default gateway
self.cli_set(pool + ['default-router', router])
- self.cli_set(pool + ['dns-server', dns_1])
- self.cli_set(pool + ['dns-server', dns_2])
+ self.cli_set(pool + ['name-server', dns_1])
+ self.cli_set(pool + ['name-server', dns_2])
self.cli_set(pool + ['domain-name', domain_name])
# check validate() - No DHCP address range or active static-mapping set
@@ -108,8 +108,8 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
# we use the first subnet IP address as default gateway
self.cli_set(pool + ['default-router', router])
- self.cli_set(pool + ['dns-server', dns_1])
- self.cli_set(pool + ['dns-server', dns_2])
+ self.cli_set(pool + ['name-server', dns_1])
+ self.cli_set(pool + ['name-server', dns_2])
self.cli_set(pool + ['domain-name', domain_name])
self.cli_set(pool + ['ip-forwarding'])
self.cli_set(pool + ['smtp-server', smtp_server])
@@ -201,8 +201,8 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
# we use the first subnet IP address as default gateway
self.cli_set(pool + ['default-router', router])
- self.cli_set(pool + ['dns-server', dns_1])
- self.cli_set(pool + ['dns-server', dns_2])
+ self.cli_set(pool + ['name-server', dns_1])
+ self.cli_set(pool + ['name-server', dns_2])
self.cli_set(pool + ['domain-name', domain_name])
# check validate() - No DHCP address range or active static-mapping set
@@ -261,7 +261,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
# we use the first subnet IP address as default gateway
self.cli_set(pool + ['default-router', router])
- self.cli_set(pool + ['dns-server', dns_1])
+ self.cli_set(pool + ['name-server', dns_1])
self.cli_set(pool + ['domain-name', domain_name])
self.cli_set(pool + ['lease', lease_time])
diff --git a/src/migration-scripts/dhcp-server/5-to-6 b/src/migration-scripts/dhcp-server/5-to-6
index 4cd2ec07a..7f447ac17 100755
--- a/src/migration-scripts/dhcp-server/5-to-6
+++ b/src/migration-scripts/dhcp-server/5-to-6
@@ -14,6 +14,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# T1968: allow multiple static-routes to be configured
+# T3838: rename dns-server -> name-server
import sys
from vyos.configtree import ConfigTree
@@ -45,6 +47,7 @@ for network in config.list_nodes(base):
for subnet in config.list_nodes(base_network + ['subnet']):
base_subnet = base_network + ['subnet', subnet]
+ # T1968: allow multiple static-routes to be configured
if config.exists(base_subnet + ['static-route']):
prefix = config.return_value(base_subnet + ['static-route', 'destination-subnet'])
router = config.return_value(base_subnet + ['static-route', 'router'])
@@ -53,6 +56,10 @@ for network in config.list_nodes(base):
config.set(base_subnet + ['static-route', prefix, 'next-hop'], value=router)
config.set_tag(base_subnet + ['static-route'])
+ # T3838: rename dns-server -> name-server
+ if config.exists(base_subnet + ['dns-server']):
+ config.rename(base_subnet + ['dns-server'], 'name-server')
+
try:
with open(file_name, 'w') as f:
f.write(config.to_string())