Philipp_Stadler
Oct 04, 2017Nimbostratus
nat64 irule with snat config not working with ICMP
Hi all,
I've a question regarding NAT64 and ICMP. I want to "NAT" a IPv6 connection to a IPv4 connection. Goal is that destination IP is selected dynamically (based on v6 address) - this can be done quite easily with:
when CLIENT_ACCEPTED {
node [string range [IP::addr [IP::local_addr] mask ::ffff:ffff] 0 end]
}
This is done with SNAT to one address - also ICMP is correctly converted to ICMP in version4. Now my real goal is to also have "dynamic" 1-to-1 translation on source side:
when LB_SELECTED {
snat [string range [IP::addr [IP::client_addr] mask ::ffff:ffff] 0 end]
}
This parts also works for TCP and UDP (where no protocol change is done), but on ICMP the protocol isn't translated and therefore I have IPv4 header with ICMPv6 on serverside, which couldn't be answered by v4 servers.
Does anyone have any hints how I can fix this?
Thanks in advance,
Philipp