Regional/Node UDP ranges to alleviate IPv4 limits

So, TCP doesn’t usually need the source addresses, because it’s connection-oriented. You can run it through any arbitrary chain of proxies and the responses will all be routed back hop-by-proxy-hop. TCP keeps state blocks (TCBs) for each of those proxy connections, which is what makes that work.

The same is not true of UDP. You can simulate TCP with UDP, of course, but different protocols handle this differently (and none of them have a SYN or an RST to set up and tear down state).

So while there are a bunch of TCP applications where you can get away with raw plugboarded proxies (stripping the source addresses), there aren’t for UDP.

(None of this matters at all of HTTP protocols, because they have headers to carry metadata like this in).

For what it’s worth: some non-HTTP TCP applications do care about source addresses, and for those we support the HAProxy proxy-protocol. But it’s fussy: your TCP software has to know about proxy-proto to make it work.

We can do power-of-2 ranges (or really power-of-anything ranges, so long as it’s the same power for everyone) of ports, to your latter question.

1 Like