summaryrefslogtreecommitdiff
path: root/python/vyos/nat.py
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2024-01-05 11:18:16 +0200
committerGitHub <noreply@github.com>2024-01-05 11:18:16 +0200
commit09dea9fc44dc19181ce24cec42b49f19a4605a3e (patch)
tree994eeb7b4d05c51abb0850475190fc6eb04e0670 /python/vyos/nat.py
parent4f34e19e062e1609a48b62311c51cdf1b5acc084 (diff)
parent76109e22d03a18286fc5d4b2b5ed879030f9222c (diff)
downloadvyos-1x-09dea9fc44dc19181ce24cec42b49f19a4605a3e.tar.gz
vyos-1x-09dea9fc44dc19181ce24cec42b49f19a4605a3e.zip
Merge pull request #2755 from vyos/mergify/bp/sagitta/pr-2694
T5169: nat: add option to map network and ports. (backport #2694)
Diffstat (limited to 'python/vyos/nat.py')
-rw-r--r--python/vyos/nat.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/python/vyos/nat.py b/python/vyos/nat.py
index 392d38772..7215aac88 100644
--- a/python/vyos/nat.py
+++ b/python/vyos/nat.py
@@ -89,7 +89,10 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False):
if addr and is_ip_network(addr):
if not ipv6:
map_addr = dict_search_args(rule_conf, nat_type, 'address')
- translation_output.append(f'{ip_prefix} prefix to {ip_prefix} {translation_prefix}addr map {{ {map_addr} : {addr} }}')
+ if port:
+ translation_output.append(f'{ip_prefix} prefix to {ip_prefix} {translation_prefix}addr map {{ {map_addr} : {addr} . {port} }}')
+ else:
+ translation_output.append(f'{ip_prefix} prefix to {ip_prefix} {translation_prefix}addr map {{ {map_addr} : {addr} }}')
ignore_type_addr = True
else:
translation_output.append(f'prefix to {addr}')
@@ -112,7 +115,10 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False):
if port_mapping and port_mapping != 'none':
options.append(port_mapping)
- translation_str = " ".join(translation_output) + (f':{port}' if port else '')
+ if ((not addr) or (addr and not is_ip_network(addr))) and port:
+ translation_str = " ".join(translation_output) + (f':{port}')
+ else:
+ translation_str = " ".join(translation_output)
if options:
translation_str += f' {",".join(options)}'