diff options
| author | R. Christian McDonald <rcm@FreeBSD.org> | 2026-10-30 17:32:37 +0000 |
|---|---|---|
| committer | R. Christian McDonald <rcm@FreeBSD.org> | 2026-10-30 17:32:37 +0000 |
| commit | cb007621bc729c346e59b3e5e7e4234f5578d3a0 (patch) | |
| tree | 8fabe7527cb769698fe42f835c7501d9c1b0476d /lib/libsys/cap_rights_limit.2 | |
| parent | 8c73c0f1230dde0a65474b1ae9a94f27f6568bda (diff) | |
ip6_tryforward() sends time exceeded for an expiring packet before the
inbound pfil hooks have seen it, whereas ip_tryforward() and
ip6_forward(), which ip6_input() calls after the hooks, check it
afterwards. On the fast path the router therefore answers packets the
firewall blocks inbound, and pf never handles the expiry itself: a
nat64 (af-to) packet with hop limit 1 gets a time exceeded error from
the router, which a "block" ruleset then drops on the way out, instead
of the one pf_translate_af() sends with the untranslated addresses.
Check the hop limit after the inbound hooks.
Reviewed by: kp
Fixes: 5a1842a2 ("Add ip6_tryforward() - a run to completion ...")
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D61034
Diffstat (limited to 'lib/libsys/cap_rights_limit.2')
0 files changed, 0 insertions, 0 deletions
