extensions: libip6t_MASQUERADE: Add translation to nft
PATCH v2 1/1 extensions: libip6t_MASQUERADE: Add translation to nft
Add translation for masquerade to nftables.
Examples:
$ sudo ip6tables-translate -t nat -A POSTROUTING -j MASQUERADE nft add rule ip6 nat POSTROUTING counter masquerade
$ sudo ip6tables-translate -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 10 nft add rule ip6 nat POSTROUTING ip6 nexthdr tcp counter masquerade to :10
$ sudo ip6tables-translate -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 10-20 --random nft add rule ip6 nat POSTROUTING ip6 nexthdr tcp counter masquerade to :10-20 random
Signed-off-by Shivani Bhardwaj <[email protected]>
---
Changes in v2:
Add code for masquerading port range selection
extensions/libip6t_MASQUERADE.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
extensions/libip6t_MASQUERADE.c +22 -0
@@ -131,6 +131,27 @@ MASQUERADE_save(const void *ip, const struct xt_entry_target *target)printf (" --random" ); } +static int +MASQUERADE_xlate (const struct xt_entry_target *target, +struct xt_xlate *xl,int numeric) +{ +const struct nf_nat_range *r = (const void *)target->data; + +xt_xlate_add (xl,"masquerade" ); + +if (r->flags &NF_NAT_RANGE_PROTO_SPECIFIED ) { +xt_xlate_add (xl," to :%hu" ,ntohs (r->min_proto.tcp.port)); +if (r->max_proto.tcp.port != r->min_proto.tcp.port) +xt_xlate_add (xl,"-%hu" ,ntohs (r->max_proto.tcp.port)); + } + +xt_xlate_add (xl," " ); +if (r->flags &NF_NAT_RANGE_PROTO_RANDOM ) +xt_xlate_add (xl,"random " ); + +return 1 ; +} +static struct xtables_target masquerade_tg_reg = { .name ="MASQUERADE" , .version =XTABLES_VERSION ,
@@ -142,6 +163,7 @@ static struct xtables_target masquerade_tg_reg = { .print = MASQUERADE_print, .save = MASQUERADE_save, .x6_options = MASQUERADE_opts, + .xlate = MASQUERADE_xlate, };void _init (void )
Signature · 1 line
1.9.1
Pablo Neira Ayuso
maintainerQuoted 4 lines · Shivani Bhardwaj
Add translation for masquerade to nftables.
Examples:
Quoted 8 lines
$ sudo ip6tables-translate -t nat -A POSTROUTING -j MASQUERADE nft add rule ip6 nat POSTROUTING counter masquerade$ sudo ip6tables-translate -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 10 nft add rule ip6 nat POSTROUTING ip6 nexthdr tcp counter masquerade to :10$ sudo ip6tables-translate -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 10-20 --random nft add rule ip6 nat POSTROUTING ip6 nexthdr tcp counter masquerade to :10-20 random
Also applied, thanks Shivani.