Hi Willy,

Thanks for the information.
Actually, our UDP traffic are radius requests to be forwarded to 1812, and 1813 
UDP ports. we need to load balance these requests. Can we load balance these 
UDP requests?


Best Regards,
Shehan Jayawardane
Head of Engineering
sheh...@nvision.lk
www.thryvz.com<http://www.thryvz.com/>


[cid:fb31532f-27cb-4f27-8464-61339a52893d]
________________________________
From: Willy Tarreau <w...@1wt.eu>
Sent: 02 January 2025 17:27
To: Shehan Jayawardane <sheh...@nvision.lk>
Cc: Joshua Turnbull <jos...@loadbalancer.org>; haproxy@formilux.org 
<haproxy@formilux.org>; Dev Ops <dev...@nvision.lk>; Sathiska Udayanga 
<sathi...@nvision.lk>
Subject: Re: HAproxy load balancing query

Hi Shehan,

On Thu, Jan 02, 2025 at 11:25:25AM +0000, Shehan Jayawardane wrote:
> Hi Willy,
>
> Good day to you.
> After long time I'm requesting this query as well.
> with HA proxy are we able to load balance udp traffic?

There isn't such a thing as "udp traffic" but there are udp-based services
and that makes a huge difference. Haproxy supports load-balancing syslog
messages that it can receive over udp/tcp and send to udp/tcp, possibly
even completing them (e.g. prepend the source address).

For the rest, you'll almost always need service-specific handling since
some services are message-based, others connection-based, uni- or bi-
directional. Most services depend on the source address being joinable
by the server, or may alter the behavior based on the source IP address
(e.g. syslog, dns if using zones/geoip). There are already a number of
dedicated proxies for various UDP-based services, which will always do
the job better than a generic proxy. For example, for syslog, a tool
such as rsyslog will be able to use the RELP protocol for reliable
delivery and even to queue messages to avoid losses. For DNS there's
dnsdist etc.

For completeness, there's a module dealing with all these particularities
in as much a generic way as possible in the haproxy enterprise packages,
and I'm personally glad I don't have to maintain that because it's very
far away from haproxy's scope.

For more details and background on all of this, and some of the technical
challenges, I invite you to read the discussion in this issue:

  https://github.com/haproxy/haproxy/issues/62

Hoping this helps,
Willy

Reply via email to