diff --git a/changelogs/fragments/t8323-vyos_nat.yml b/changelogs/fragments/t8323-vyos_nat.yml
index 32053ce9..ae71d4a9 100644
--- a/changelogs/fragments/t8323-vyos_nat.yml
+++ b/changelogs/fragments/t8323-vyos_nat.yml
@@ -1,3 +1,3 @@
---
minor_changes:
- - vyos_nat - Add new module to support NAT configuration
+ - vyos_nat - Add new module to support NAT configuration.
diff --git a/docs/vyos.vyos.vyos_nat_module.rst b/docs/vyos.vyos.vyos_nat_module.rst
index 47d21e8f..3323a5c9 100644
--- a/docs/vyos.vyos.vyos_nat_module.rst
+++ b/docs/vyos.vyos.vyos_nat_module.rst
@@ -1,3499 +1,3499 @@
.. _vyos.vyos.vyos_nat_module:
******************
vyos.vyos.vyos_nat
******************
**NAT resource module**
Version added: 6.0.0
.. contents::
:local:
:depth: 1
Synopsis
--------
- This module manages NAT configuration on devices running VyOS.
Parameters
----------
.. raw:: html
| Parameter |
Choices/Defaults |
Comments |
|
config
dictionary
|
|
The desired configuration for the NAT resource represented as a dictionary.
|
|
nat
dictionary
|
|
Configuration for NAT rules.
|
|
|
cgnat
dictionary
|
|
Configuration for Carrier Grade NAT (CGNAT).
|
|
|
|
log_allocation
boolean
|
|
Log CGNAT address allocations.
|
|
|
|
pool
dictionary
|
|
Configuration for CGNAT pools.
|
|
|
|
|
external
list
/ elements=dictionary
|
|
List of external NAT pools for CGNAT.
|
|
|
|
|
|
external_port_range
string
|
|
Port range to use for NAT translations in this external pool.
|
|
|
|
|
|
name
string
/ required
|
|
Name of the external NAT pool.
|
|
|
|
|
|
per_user_limit
dictionary
|
|
Per-user limit configuration for the external pool.
|
|
|
|
|
|
|
port
string
|
|
Maximum number of ports allocated per user.
|
|
|
|
|
|
range
list
/ elements=dictionary
|
|
List of external IP address ranges in the pool.
|
|
|
|
|
|
|
seq
string
|
|
Optional sequence number for this range entry.
|
|
|
|
|
|
|
value
string
/ required
|
|
IP address, prefix, or range (e.g. 203.0.113.0/24 or 203.0.113.1-203.0.113.60).
|
|
|
|
|
internal
list
/ elements=dictionary
|
|
List of internal NAT pools for CGNAT.
|
|
|
|
|
|
name
string
/ required
|
|
Name of the internal NAT pool.
|
|
|
|
|
|
range
list
/ elements=string
|
|
List of internal IP addresses or prefixes in the pool.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of CGNAT rules.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for CGNAT.
|
|
|
|
|
source
dictionary
|
|
Source pool configuration for CGNAT translation.
|
|
|
|
|
|
pool
string
|
|
Source pool name to use for CGNAT translation.
|
|
|
|
|
translation
dictionary
|
|
Translation pool configuration for CGNAT.
|
|
|
|
|
|
pool
string
|
|
Translation pool name to use for CGNAT translation.
|
|
|
destination
dictionary
|
|
Configuration for destination NAT rules.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of destination NAT rules.
|
|
|
|
|
description
string
|
|
User-friendly description of the destination NAT rule.
|
|
|
|
|
destination
dictionary
|
|
Match criteria for destination NAT.
|
|
|
|
|
|
address
string
|
|
IP address, subnet, or range to match.
|
|
|
|
|
|
address_group
string
|
|
Address group name to match.
|
|
|
|
|
|
domain_group
string
|
|
Domain group name to match.
|
|
|
|
|
|
fqdn
string
|
|
Fully qualified domain name to match.
|
|
|
|
|
|
mac_group
string
|
|
MAC address group name to match.
|
|
|
|
|
|
network_group
string
|
|
Network group name to match.
|
|
|
|
|
|
port
string
|
|
Port number or range to match.
|
|
|
|
|
|
port_group
string
|
|
Port group name to match.
|
|
|
|
|
disable
boolean
|
|
Disable this destination NAT rule.
|
|
|
|
|
exclude
boolean
|
|
Exclude packets matching this rule from NAT.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for destination NAT.
|
|
|
|
|
inbound_interface
dictionary
|
|
Match inbound interface.
|
|
|
|
|
|
group
string
|
|
Interface group to match.
|
|
|
|
|
|
name
string
|
|
Interface name to match.
|
|
|
|
|
log
boolean
|
|
Log packets hitting this rule.
|
|
|
|
|
packet_type
string
|
|
Packet type to match.
|
|
|
|
|
protocol
string
|
|
Protocol to NAT (default all).
|
|
|
|
|
translation
dictionary
|
|
Translation configuration for destination NAT.
|
|
|
|
|
|
address
string
|
|
IP address or prefix to translate destination to.
|
|
|
|
|
|
address_mapping
string
|
Choices:
- random
- persistent
|
Address mapping mode for translation.
|
|
|
|
|
|
port
string
|
|
Port number or range to translate destination port to.
|
|
|
|
|
|
port_mapping
string
|
|
Port mapping mode for translation.
|
|
|
|
|
|
redirect_port
string
|
|
Redirect to local port number.
|
|
|
source
dictionary
|
|
Configuration for source NAT rules.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of source NAT rules.
|
|
|
|
|
description
string
|
|
User-friendly description of the source NAT rule.
|
|
|
|
|
destination
dictionary
|
|
Destination match criteria for source NAT.
|
|
|
|
|
|
address
string
|
|
IP address, subnet, or range to match.
|
|
|
|
|
|
address_group
string
|
|
Address group name to match.
|
|
|
|
|
|
domain_group
string
|
|
Domain group name to match.
|
|
|
|
|
|
fqdn
string
|
|
Fully qualified domain name to match.
|
|
|
|
|
|
mac_group
string
|
|
MAC address group name to match.
|
|
|
|
|
|
network_group
string
|
|
Network group name to match.
|
|
|
|
|
|
port
string
|
|
Port number or range to match.
|
|
|
|
|
|
port_group
string
|
|
Port group name to match.
|
|
|
|
|
disable
boolean
|
|
Disable this source NAT rule.
|
|
|
|
|
exclude
boolean
|
|
Exclude packets matching this rule from NAT.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for source NAT.
|
|
|
|
|
log
boolean
|
|
Log packets hitting this rule.
|
|
|
|
|
outbound_interface
dictionary
|
|
Match outbound interface.
|
|
|
|
|
|
group
string
|
|
Interface group to match.
|
|
|
|
|
|
name
string
|
|
Interface name to match.
|
|
|
|
|
packet_type
string
|
|
Packet type to match.
|
|
|
|
|
protocol
string
|
|
Protocol to NAT (default all).
|
|
|
|
|
source
dictionary
|
|
Source match criteria for source NAT.
|
|
|
|
|
|
address
string
|
|
IP address, subnet, or range to match.
|
|
|
|
|
|
address_group
string
|
|
Address group name to match.
|
|
|
|
|
|
domain_group
string
|
|
Domain group name to match.
|
|
|
|
|
|
fqdn
string
|
|
Fully qualified domain name to match.
|
|
|
|
|
|
mac_group
string
|
|
MAC address group name to match.
|
|
|
|
|
|
network_group
string
|
|
Network group name to match.
|
|
|
|
|
|
port
string
|
|
Port number or range to match.
|
|
|
|
|
|
port_group
string
|
|
Port group name to match.
|
|
|
|
|
translation
dictionary
|
|
Translation configuration for source NAT.
|
|
|
|
|
|
address
string
|
|
IP address or prefix to translate source to. Use masquerade to masquerade as the outbound interface address.
|
|
|
|
|
|
address_mapping
string
|
Choices:
- random
- persistent
|
Address mapping mode for translation.
|
|
|
|
|
|
port
string
|
|
Port number or range to translate source port to.
|
|
|
|
|
|
port_mapping
string
|
|
Port mapping mode for translation.
|
|
|
static
dictionary
|
|
Configuration for static one-to-one NAT rules.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of static NAT rules.
|
|
|
|
|
description
string
|
|
User-friendly description of the static NAT rule.
|
|
|
|
|
destination
dictionary
|
|
Match criteria for static NAT.
|
|
|
|
|
|
address
string
|
|
IP address, subnet, or range to match.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for static NAT.
|
|
|
|
|
inbound_interface
string
|
|
Inbound interface that this static NAT rule applies to.
|
|
|
|
|
log
boolean
|
|
Log packets hitting this static NAT rule.
|
|
|
|
|
translation
dictionary
|
|
Translation configuration for static NAT.
|
|
|
|
|
|
address
string
|
|
IP address or prefix to translate to.
|
|
nat64
dictionary
|
|
Configuration for NAT64 (IPv6-to-IPv4) rules.
|
|
|
source
dictionary
|
|
Configuration for NAT64 source rules.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of NAT64 source rules.
|
|
|
|
|
description
string
|
|
User-friendly description of the NAT64 source rule.
|
|
|
|
|
disable
boolean
|
|
Disable this NAT64 source rule.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for NAT64 source rule (1-999999).
|
|
|
|
|
match
dictionary
|
|
Match criteria for NAT64 source rule.
|
|
|
|
|
|
mark
integer
|
|
Match on firewall mark value (1-2147483647).
|
|
|
|
|
source
dictionary
|
|
IPv6 source prefix to match for NAT64 translation.
|
|
|
|
|
|
prefix
string
|
|
IPv6 source prefix to match (h:h:h:h:h:h:h:h/x).
|
|
|
|
|
translation
dictionary
|
|
Translation configuration for NAT64 source rule.
|
|
|
|
|
|
pool
list
/ elements=dictionary
|
|
List of translation pools for NAT64.
|
|
|
|
|
|
|
address
string
|
|
IPv4 address or prefix for translation pool.
|
|
|
|
|
|
|
description
string
|
|
User-friendly description of the translation pool.
|
|
|
|
|
|
|
disable
boolean
|
|
Disable this translation pool.
|
|
|
|
|
|
|
id
integer
/ required
|
|
Pool number (1-999999).
|
|
|
|
|
|
|
port
string
|
|
Port number or range for translation pool.
|
|
|
|
|
|
|
protocol
string
|
|
Protocol for this translation pool entry.
|
|
nat66
dictionary
|
|
Configuration for NAT66 (IPv6-to-IPv6) rules.
|
|
|
destination
dictionary
|
|
Configuration for NAT66 destination rules.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of NAT66 destination rules.
|
|
|
|
|
description
string
|
|
User-friendly description of the NAT66 destination rule.
|
|
|
|
|
destination
dictionary
|
|
Match criteria for NAT66 destination rule.
|
|
|
|
|
|
address
string
|
|
IPv6 address or prefix to match.
|
|
|
|
|
|
port
string
|
|
Port number or range to match.
|
|
|
|
|
disable
boolean
|
|
Disable this NAT66 destination rule.
|
|
|
|
|
exclude
boolean
|
|
Exclude packets matching this rule from NAT66.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for NAT66 destination rule.
|
|
|
|
|
inbound_interface
dictionary
|
|
Inbound interface to match for NAT66 destination rule.
|
|
|
|
|
|
name
string
|
|
Interface name to match.
|
|
|
|
|
log
boolean
|
|
Log packets hitting this NAT66 destination rule.
|
|
|
|
|
protocol
string
|
|
Protocol to match.
|
|
|
|
|
source
dictionary
|
|
Source match criteria for NAT66 destination rule.
|
|
|
|
|
|
address
string
|
|
IPv6 source address or prefix to match.
|
|
|
|
|
|
port
string
|
|
Source port number or range to match.
|
|
|
|
|
translation
dictionary
|
|
Translation configuration for NAT66 destination rule.
|
|
|
|
|
|
address
string
|
|
IPv6 address or prefix to translate destination to.
|
|
|
|
|
|
port
string
|
|
Port number or range to translate destination port to.
|
|
|
source
dictionary
|
|
Configuration for NAT66 source rules.
|
|
|
|
rule
list
/ elements=dictionary
|
|
List of NAT66 source rules.
|
|
|
|
|
description
string
|
|
User-friendly description of the NAT66 source rule.
|
|
|
|
|
destination
dictionary
|
|
Destination match criteria for NAT66 source rule.
|
|
|
|
|
|
port
string
|
|
Destination port number or range to match.
|
|
|
|
|
|
prefix
string
|
|
IPv6 destination prefix to match (h:h:h:h:h:h:h:h/x).
|
|
|
|
|
disable
boolean
|
|
Disable this NAT66 source rule.
|
|
|
|
|
exclude
boolean
|
|
Exclude packets matching this rule from NAT66.
|
|
|
|
|
id
integer
/ required
|
|
Rule number for NAT66 source rule.
|
|
|
|
|
log
boolean
|
|
Log packets hitting this NAT66 source rule.
|
|
|
|
|
outbound_interface
dictionary
|
|
Outbound interface to match for NAT66 source rule.
|
|
|
|
|
|
name
string
|
|
Interface name to match.
|
|
|
|
|
protocol
string
|
|
Protocol to match.
|
|
|
|
|
source
dictionary
|
|
Source match criteria for NAT66 source rule.
|
|
|
|
|
|
port
string
|
|
Source port number or range to match.
|
|
|
|
|
|
prefix
string
|
|
IPv6 source prefix to match (h:h:h:h:h:h:h:h/x).
|
|
|
|
|
translation
dictionary
|
|
Translation configuration for NAT66 source rule.
|
|
|
|
|
|
address
string
|
|
IPv6 address or prefix to translate source to. Use masquerade to masquerade as the outbound interface address.
|
|
|
|
|
|
port
string
|
|
Port number or range to translate source port to.
|
|
running_config
string
|
|
This option is used only with state parsed.
The value of this option should be the output received from the VyOS device by executing the command show configuration commands | match 'nat'.
The state parsed reads the configuration from show configuration commands | match 'nat' and transforms it into Ansible structured data as per the module argspec. The value is then returned in the parsed key within the result.
- The states replaced and overridden have identical behaviour for this module.
+ The state replaced replaces only the provided configuration, while overridden removes any existing NAT configuration not specified in config.
|
|
state
string
|
Choices:
- deleted
merged ←
- overridden
- replaced
- gathered
- rendered
- parsed
|
The state the configuration should be left in.
|