[Bug 269770] libalias udp redirect_port temporary translation failure

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 13 Aug 2024 09:28:18 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269770

Peter Much <pmc@citylink.dinoex.sub.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |donner@FreeBSD.org

--- Comment #6 from Peter Much <pmc@citylink.dinoex.sub.org> ---
Hunting it down - the problem is a race condition: libalias has an internal
representation of a flow (called a "temporary link"). 
These can expire and get deleted - the logic when and how this happens is
unintellegible, but there is a time gap between expiry and deletion.

When another packet arrives from outside during this time gap - which is
unlikely in TCP, but likely with UDP (like syslog sending another message after
some pause, or VPN restarting after reboot) - libalias finds the old "temporary
link", detects that it is already expired, and deletes it - but does then not
anymore check for a configured portforward for this flow.
So the newly installed "temporary link" is without portforwarding, and will
continue to exist until perchance traffic ceases and it might get expired.

-- 
You are receiving this mail because:
You are the assignee for the bug.