summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/proxy-ndp/ndppd.conf.tmpl4
-rwxr-xr-xsrc/conf_mode/nat66.py14
-rw-r--r--src/systemd/ndppd.service6
3 files changed, 15 insertions, 9 deletions
diff --git a/data/templates/proxy-ndp/ndppd.conf.tmpl b/data/templates/proxy-ndp/ndppd.conf.tmpl
index f9485a1cb..6ef9f3f8b 100644
--- a/data/templates/proxy-ndp/ndppd.conf.tmpl
+++ b/data/templates/proxy-ndp/ndppd.conf.tmpl
@@ -37,8 +37,8 @@ proxy {{ i }} {
timeout 500
ttl 30000
{% for map in global.ndppd_prefixs %}
-{% if map['interface'] == i %}
-{% set p = map['rule'] %}
+{% if map.interface == i %}
+{% set p = map.rule %}
rule {{ p }} {
static
}
diff --git a/src/conf_mode/nat66.py b/src/conf_mode/nat66.py
index a5c74259f..7190961e8 100755
--- a/src/conf_mode/nat66.py
+++ b/src/conf_mode/nat66.py
@@ -151,10 +151,16 @@ def generate(nat):
return None
def apply(nat):
- cmd(f'{iptables_nat_config}')
- cmd('systemctl restart ndppd')
- if os.path.isfile(iptables_nat_config):
- os.unlink(iptables_nat_config)
+ if not nat:
+ return None
+ else:
+ cmd(f'{iptables_nat_config}')
+ if 'deleted' in nat or not dict_search('source.rule', nat):
+ cmd('systemctl stop ndppd')
+ else:
+ cmd('systemctl restart ndppd')
+ if os.path.isfile(iptables_nat_config):
+ os.unlink(iptables_nat_config)
return None
diff --git a/src/systemd/ndppd.service b/src/systemd/ndppd.service
index 566172fb0..db471c518 100644
--- a/src/systemd/ndppd.service
+++ b/src/systemd/ndppd.service
@@ -1,13 +1,13 @@
[Unit]
Description=NDP Proxy Daemon
-After=network.target vyos-router.service
+After=vyos-router.service
ConditionPathExists=/run/ndppd/ndppd.conf
StartLimitIntervalSec=0
[Service]
-ExecStart=/usr/sbin/ndppd -d -p /var/run/ndppd/ndppd.pid -c /var/run/ndppd/ndppd.conf
+ExecStart=/usr/sbin/ndppd -d -p /run/ndppd/ndppd.pid -c /run/ndppd/ndppd.conf
Type=forking
-PIDFile=/var/run/ndppd/ndppd.pid
+PIDFile=/run/ndppd/ndppd.pid
Restart=on-failure
RestartSec=20