ayourtch / nat46

OpenWRT feed with stateless NAT46 kernel module
37 stars 28 forks source link

nat46-core: Drop packet with non-IPv4-translatable IPv6 address #10

Open srsmiraato opened 4 years ago

srsmiraato commented 4 years ago

RFC6145 Section 5.2 discussed about non-IPv4-translatable IPv6 addresses on the IPv6 headers, and left the solution for stateless translation as future work. RFC6791 has recommendations for this issue, but until that's implemented, silently drop the packet.

ayourtch commented 4 years ago

Which problem does this solve ? When implementing this, I found that putting in a bogus address helps recover more problematic situation than just dropping the packet.

srsmiraato commented 4 years ago

Hi, the decision to silently drop the packet was based on RFC792, which did not require or made it mandatory to send ICMP error messages. RFC6791 Section 3.1 also stated that the "source address used should not cause the ICMP packet to be discarded". This happened in our scenario, where the receiver of the ICMP packet discarded it.

But I'm very interested to know of these problematic situations you mentioned. Maybe our system hasn't encountered those scenarios yet. I would appreciate if you can provide details on these problematic situations. Thanks.

ayourtch commented 4 years ago

The two scenarios I remember about (alas it was probably 10 years ago :) were the PMTUD and traceroute when debugging. Also, there is another rationale: even if the receiver of the ICMP message discards it, if you for whatever reason begin to troubleshoot the network issue, you will see this ICMP packet in the packet capture, which may give you a help as to the nature of the problem.