(My hypothesis) When using iptables -j REDIRECT to intercept UDP traffic, the kernel rewrites the source port when delivering the packet to the proxy (e.g., frontend sends from port 51960, but proxy sees it as 32317). This causes incorrect connection tracking when the proxy uses src.String() as the key.
I think the fix is also to use TPROXY instead.
Currently, we add a few lines in the proxy to hardcode client's port number