diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-04-24 21:56:46 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-04-28 17:32:31 +0200 |
commit | 9599d9d25a6b383b72b119c709af33f6f6031786 (patch) | |
tree | 2ac2f19b9f5f55578ab6cebe25ebb35dea659492 /include/expression.h | |
parent | 2885cf2e65042b3dbc44fc232fd35840df255935 (diff) |
src: NAT support for intervals in maps
This patch allows you to specify an interval of IP address in maps.
table ip x {
chain y {
type nat hook postrouting priority srcnat; policy accept;
snat ip interval to ip saddr map { 10.141.11.4 : 192.168.2.2-192.168.2.4 }
}
}
The example above performs SNAT to packets that comes from 10.141.11.4
to an interval of IP addresses from 192.168.2.2 to 192.168.2.4 (both
included).
You can also combine this with dynamic maps:
table ip x {
map y {
type ipv4_addr : interval ipv4_addr
flags interval
elements = { 10.141.10.0/24 : 192.168.2.2-192.168.2.4 }
}
chain y {
type nat hook postrouting priority srcnat; policy accept;
snat ip interval to ip saddr map @y
}
}
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/expression.h')
-rw-r--r-- | include/expression.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/expression.h b/include/expression.h index 87c39e5d..35934827 100644 --- a/include/expression.h +++ b/include/expression.h @@ -184,6 +184,7 @@ const struct expr_ops *expr_ops_by_type(enum expr_types etype); * @EXPR_F_PROTOCOL: expressions describes upper layer protocol * @EXPR_F_INTERVAL_END: set member ends an open interval * @EXPR_F_BOOLEAN: expression is boolean (set by relational expr on LHS) + * @EXPR_F_INTERVAL: expression describes a interval */ enum expr_flags { EXPR_F_CONSTANT = 0x1, @@ -191,6 +192,7 @@ enum expr_flags { EXPR_F_PROTOCOL = 0x4, EXPR_F_INTERVAL_END = 0x8, EXPR_F_BOOLEAN = 0x10, + EXPR_F_INTERVAL = 0x20, }; #include <payload.h> |