This article discusses the proper way to do an "open" NAT64 policy to translate a /96 into the full IPv4 0/0 range on a dual stack IPv4/6 interface on the SRX series firewalls.
In some scenarios, IPv4 traffic may be tunneled through an IPv6 network. The full range of IPv4 my be present in the traffic, or it may be a lot of work to specify or maintain the IPv4 subnets in question.
After adding the open NAT64 to a dual stack IPv4/6 interface, you may start to lose IPv4 <---> IPv4 traffic with the following message in flow traces:
<--->
The packet destination ip is not same as source ip version, drop it
A common configuration is an "open" NAT64 to covert an incoming IPv6 /96 to the full IPv4 range without having to be specific with the IPv4 subnet.
It is typically accomplished by simply stating then static-nat inet
then static-nat inet
root@SRX5800# show security nat static rule-set untrust_to_trust_nat64 { from zone untrust; rule dst-nat64-rule { match { destination-address 64:ff9b::/96; } then { static-nat { inet; } } } }
Therefore:
"The packet destination ip is not same as source ip version, drop it"
Add an additional match condition to the NAT64 rule.
source-address ::/0
root@SRX5800# show security nat static rule-set untrust_to_trust_nat64 { from zone untrust; rule dst-nat64-rule { match { source-address ::/0; destination-address 64:ff9b::/96; } then { static-nat { inet; } } } }