diff options
| -rw-r--r-- | data/templates/proxy-ndp/ndppd.conf.tmpl | 4 | ||||
| -rwxr-xr-x | src/conf_mode/nat66.py | 14 | ||||
| -rw-r--r-- | src/systemd/ndppd.service | 6 | 
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 | 
