summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface-definitions/ntp.xml20
-rwxr-xr-xsrc/conf_mode/ntp.py14
2 files changed, 31 insertions, 3 deletions
diff --git a/interface-definitions/ntp.xml b/interface-definitions/ntp.xml
index 4688454c3..d324404da 100644
--- a/interface-definitions/ntp.xml
+++ b/interface-definitions/ntp.xml
@@ -1,7 +1,5 @@
<?xml version="1.0"?>
-
<!-- NTP configuration -->
-
<interfaceDefinition>
<node name="system">
<children>
@@ -66,6 +64,24 @@
</leafNode>
</children>
</node>
+ <leafNode name="listen-address">
+ <properties>
+ <help>Addresses to listen for NTP queries</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Network Time Protocol (NTP) IPv4 address</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Network Time Protocol (NTP) IPv6 address</description>
+ </valueHelp>
+ <multi/>
+ <constraint>
+ <validator name="ipv4-address"/>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
</children>
</node>
</children>
diff --git a/src/conf_mode/ntp.py b/src/conf_mode/ntp.py
index 9a4846bdf..2a6088575 100755
--- a/src/conf_mode/ntp.py
+++ b/src/conf_mode/ntp.py
@@ -62,11 +62,20 @@ restrict {{ n.address }} mask {{ n.netmask }} nomodify notrap nopeer
{% endfor -%}
{% endif %}
+{% if listen_address -%}
+# NTP should listen on configured addresses only
+interface ignore wildcard
+{% for a in listen_address -%}
+interface listen {{ a }}
+{% endfor -%}
+{% endif %}
+
"""
default_config_data = {
'servers': [],
- 'allowed_networks': []
+ 'allowed_networks': [],
+ 'listen_address': []
}
def get_config():
@@ -89,6 +98,9 @@ def get_config():
ntp['allowed_networks'].append(net)
+ if conf.exists('listen-address'):
+ ntp['listen_address'] = conf.return_values('listen-address')
+
if conf.exists('server'):
for node in conf.list_nodes('server'):
options = []