fabio icon indicating copy to clipboard operation
fabio copied to clipboard

UDP support coming?

Open pjebs opened this issue 8 years ago • 32 comments

pjebs avatar Nov 28 '17 06:11 pjebs

Yeah, I had thought about this a while ago. Shouldn't be too difficult. What's your use case?

magiconair avatar Nov 28 '17 08:11 magiconair

I have a program in a docker container that listens to udp

pjebs avatar Nov 28 '17 08:11 pjebs

Any special requirements in terms of performance and throughput?

magiconair avatar Nov 28 '17 09:11 magiconair

It would be nice if it could match nginx

pjebs avatar Nov 28 '17 09:11 pjebs

What does that mean? Can you provide numbers?

magiconair avatar Nov 28 '17 09:11 magiconair

Just a joke. As fast as possible is nice.

pjebs avatar Nov 28 '17 09:11 pjebs

Not expecting nginx performance in immediate future

pjebs avatar Nov 28 '17 09:11 pjebs

UDP proxy support is good for IoT. :)

kelvinji2009 avatar Dec 04 '17 06:12 kelvinji2009

Indeed

magiconair avatar Dec 04 '17 08:12 magiconair

+1

tomwganem avatar Dec 04 '17 18:12 tomwganem

It might come or it might not :P

discobean avatar Dec 06 '17 00:12 discobean

I'll do it. Can't be that hard, can it? (famous last words)

magiconair avatar Dec 06 '17 00:12 magiconair

As for use cases, I just came up with one. I'm planning on sending logs from my apps to logstash using GELF, and it uses UDP. Having Fabio in front of the Logstash cluster so I don't lose the logs while doing some maintentance or due to one node going down would be nice 👍

Verdoso avatar Mar 25 '18 14:03 Verdoso

For information, i have a similary use case... and found this : http://gobetween.io/ It's just work... stable since one month... but not very active project.

LordFPL avatar Mar 25 '18 15:03 LordFPL

Good to know, LordFPL. I'd rather not add another element to the mix, but if I have to, it's nice to see there are alternatives. But yeah, it doesn't seem to be very active, so I'll keep an eye on it just in case.

But if we had this and the GELF logger (PR 246), Fabio would be sending its logs through itself, hehehe.

Verdoso avatar Mar 25 '18 15:03 Verdoso

@Verdoso Since UDP is a connectionless protocol fabio wouldn't buffer the data since it wouldn't know when data didn't get to the upstream server. I can have a look at the GELF logger in #246 and see if that is still ready to be merged.

magiconair avatar Mar 25 '18 17:03 magiconair

Yes, I guess the balancing part is just using the consul stated to decide if one server should be sent or not packets. UDP being as it is, I doubt other proxies are doing more than that. That could be enough. I'm checking also if going the tcp route would be performant enough.

Verdoso avatar Mar 25 '18 17:03 Verdoso

I would like to respectfully ask if there was any progress on this issue (L4 UDP)?

pjebs avatar Jul 12 '18 04:07 pjebs

I’m still in the middle of moving my family to another country and meeting a deadline. If someone from the community wants to jump in then this is a good opportunity. This should not be too difficult.

— Frank Schröder

On 12. Jul 2018, at 06:30, pj [email protected] wrote:

I would like to respectfully ask if there was any progress on this issue (L4 UDP)?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

magiconair avatar Jul 14 '18 06:07 magiconair

This would be a really interesting solution for video game servers, especially with the ACLs we can set on remote IPs. Being able to update in realtime which remote IPs should be permitted to even talk into a gameserver instance UDP port would be useful. I'd seriously consider running all gameserver traffic through a Fabio instance running locally on a host.

Another use case is sending telemetry to statsd relays/servers (over UDP 8125, for instance). Being able to provide high availability for those would make me sleep better at night ;)

joshuaclausen avatar Feb 04 '19 19:02 joshuaclausen

Hey @magiconair was this still something you were interested in doing? I would really like this feature. Perhaps if you still don't have time I might find some time to work on it. I don't have a lot of experience with Go but I could try if you could point me in the right direction. Thank you :)

braunsonm avatar Jun 13 '19 01:06 braunsonm

+1 would like to load balance UDP for Syslog, DNS, Kerberos.

nmaludy avatar Apr 29 '20 20:04 nmaludy

Another use-case: I'm hoping to migrate a Minetest Server to my new Nomad + Consul Raspberry Pi cluster, which uses UDP.

sbrl avatar May 13 '20 19:05 sbrl

+1 for UDP support

steveww avatar Jun 11 '20 11:06 steveww

I just ran into this issue when I encountered my first service that uses UDP. My use-case was a Terraria server, which needs port 7777 on both TCP and UDP. The initial connection seems to be made using TCP, but then it stops there, unless I'm not routing it through fabio.

nathanpalmer avatar Aug 22 '21 13:08 nathanpalmer

Quake

AdrienneCohea avatar Dec 08 '21 08:12 AdrienneCohea

If nobody is working on this yet, I'd like to give it a try

mier85 avatar May 08 '22 15:05 mier85

I doubt anyone's working on it at the moment - it would be awesome if you could give it a go @mier85!

sbrl avatar Jun 07 '22 15:06 sbrl

Would like UDP support for Consul + AlertManager mesh.

Forked...need time. @mier85 is maybe faster?

jeanphilipperuijs avatar Mar 10 '23 15:03 jeanphilipperuijs

Any news?

CRASH-Tech avatar Feb 06 '24 20:02 CRASH-Tech