Page MenuHomeFreeBSD

pf: fix ICMP source address translation for nat64
ClosedPublic

Authored by kp on Wed, Feb 26, 10:42 PM.
Tags
None
Referenced Files
F112606558: D49143.diff
Thu, Mar 20, 10:52 AM
Unknown Object (File)
Wed, Mar 19, 1:09 AM
Unknown Object (File)
Tue, Mar 18, 5:58 AM
Unknown Object (File)
Mon, Mar 17, 6:38 AM
Unknown Object (File)
Sun, Mar 16, 2:15 PM
Unknown Object (File)
Fri, Mar 14, 2:01 AM
Unknown Object (File)
Tue, Mar 11, 10:17 AM
Unknown Object (File)
Mon, Mar 10, 11:58 AM

Details

Summary

While handling an ICMP error related to another state (e.g. TTL expired, port
closed, fragmentation needed, ...) we can't just use the state's source address
as the ICMP source address. We have to translate the IPv4 address back to an
IPv6 nat64 address.

Failing to do so breaks things like traceroute, where the intermediate router
generates an ICMP error message, and the traceroute tool uses the source address
to build the path.

PR: 284944
Sponsored by: Rubicon Communications, LLC ("Netgate")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 62643
Build 59527: arc lint + arc unit

Event Timeline

kp requested review of this revision.Wed, Feb 26, 10:42 PM

Use the approach from OpenBSD's proposed patch.
That's a bit simpler and still works.

Update to the committed OpenBSD version of this fix.

This revision was not accepted when it landed; it landed in state Needs Review.Wed, Mar 5, 9:38 AM
This revision was automatically updated to reflect the committed changes.