Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UDP support #1430

Open
kyessenov opened this issue Nov 3, 2017 · 94 comments
Open

UDP support #1430

kyessenov opened this issue Nov 3, 2017 · 94 comments
Labels
area/networking kind/enhancement lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed

Comments

@kyessenov
Copy link
Contributor

@kyessenov commented on Thu Jan 26 2017

Proxy manager should be in charge of routing UDP traffic. There are many pieces needed for this to work:

  • Envoy UDP routing support
  • IP tables rules to trap UDP traffic
  • Code to handle UDP protocol in the Manager services model

@rshriram commented on Thu Jan 26 2017

Do we need to handle UDP now? If we only trap tcp traffic, applications can
continue to use kube proxy as is for UDP right?

Until we have a solid use case for UDP and UDP routing or mixer related
stuff, it seems pointless to bloat envoy codebase with unnecessary
complexity.

On Thu, Jan 26, 2017 at 7:18 PM Kuat [email protected] wrote:

Proxy manager should be in charge of routing UDP traffic. There are many
pieces needed for this to work:

  • Envoy UDP routing support
  • IP tables rules to trap UDP traffic
  • Code to handle UDP protocol in the Manager services model


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
istio/old_pilot_repo#62, or mute the thread
https://github.com/notifications/unsubscribe-auth/AH0qd5lqmPJdmxhHlhGXJ4eD239ROHEfks5rWTfSgaJpZM4LvToe
.

--

~shriram


@kyessenov commented on Thu Jan 26 2017

This is not a high priority item. As of now, we're not handling UDP traffic
at all, and don't have a good use case why we should.

On Thu, Jan 26, 2017, 4:41 PM Shriram Rajagopalan [email protected]
wrote:

Do we need to handle UDP now? If we only trap tcp traffic, applications can
continue to use kube proxy as is for UDP right?

Until we have a solid use case for UDP and UDP routing or mixer related
stuff, it seems pointless to bloat envoy codebase with unnecessary
complexity.

On Thu, Jan 26, 2017 at 7:18 PM Kuat [email protected] wrote:

Proxy manager should be in charge of routing UDP traffic. There are many
pieces needed for this to work:

  • Envoy UDP routing support
  • IP tables rules to trap UDP traffic
  • Code to handle UDP protocol in the Manager services model


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
istio/old_pilot_repo#62, or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AH0qd5lqmPJdmxhHlhGXJ4eD239ROHEfks5rWTfSgaJpZM4LvToe

.

--

~shriram


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
istio/old_pilot_repo#62 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJGIxh09sriOe9luRa89y_gbwFyywHcTks5rWT0ggaJpZM4LvToe
.


@rshriram commented on Mon Feb 06 2017

@moderation you had a use case right?


@moderation commented on Tue Feb 07 2017

Yes. We are interested in using Envoy as an external service proxy for a PaaS. Typically this proxy will broker HTTP connections and TCP database connections etc. There are some people accessing Kafka external from the PaaS and the authentication scheme uses Kerberos and therefore requires UDP.

Another potential use case is in the public cloud where creating an encrypted service mesh that can handle things like DNS and NTP.

It looks like Nginx supports UDP load balancing / proxying but like a lot of their functionality it is only available in the commercial Nginx Plus product.


@rshriram commented on Tue Feb 07 2017

@moderation, thanks for the use case. Will take a look at adding this
support to envoy.
On Tue, Feb 7, 2017 at 9:54 AM moderation [email protected] wrote:

Yes. We are interested in using Envoy as an external service proxy for a
PaaS. Typically this proxy will broker HTTP connections and TCP database
connections etc. There are some people accessing Kafka external from the
PaaS and the authentication scheme uses Kerberos and therefore requires UDP.

Another potential use case is in the public cloud where creating an
encrypted service mesh that can handle things like DNS and NTP.

It looks like Nginx supports UDP load balancing / proxying but like a lot
of their functionality it is only available in the commercial Nginx Plus
product.


You are receiving this because you commented.

Reply to this email directly, view it on GitHub
istio/old_pilot_repo#62 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH0qd54r-5AYbd-2jzmJ_EXQpYaPjfQdks5raIWsgaJpZM4LvToe
.

--

~shriram


@drasko commented on Thu May 25 2017

+1 for UDP, needed for CoAP and LwM2M IoT scenarios.


@shalako commented on Tue Oct 31 2017

+1 for UDP support. Needed for IOT use cases; specifically LWM2M and CoAP protocols.


@kyessenov commented on Fri Aug 04 2017

Thanks for your interest. This is blocked by Envoy issue envoyproxy/envoy#492

@cmluciano
Copy link
Member

/assign

@lixiaobing1
Copy link

+1 for UDP, there is a strong use in telecommunication, all data is transferred with UDP in 3G PS, 4G both FDD and TDD, also in future 5G. I think we should start the support for UDP immediateley.

@matt0x6F
Copy link

I'll plus one the Telecom usecase here and broaden it to IOT/m2m devices. A huge array of existing IOT and m2m protocols are using UDP. We've been writing our new IOT platform and unfortunately will not be able to utilize a service mesh because of this.

@stale
Copy link

stale bot commented Jul 30, 2018

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 2 weeks unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jul 30, 2018
@shalako
Copy link

shalako commented Jul 30, 2018

@cmluciano Are you working on this actively?

@stale stale bot removed the stale label Jul 30, 2018
@varnaik
Copy link

varnaik commented Jul 31, 2018

+1 for UDP support in istio . UDP is the transport layer protocol used for communication between various entities in EPC( Evolved Packet Core ) in telecom.

@cmluciano
Copy link
Member

@shalako Just confirmed some timelines on the Envoy community call today. I halted progress for a while awaiting some Envoy refactorings & Istio 1.0 priorities. I will be continuing progress on this for an alpha implementation targeted for late Q3/early Q4.

kyessenov pushed a commit to kyessenov/istio that referenced this issue Aug 13, 2018
…istio#1403) (istio#1430)

Automatic merge from submit-queue.

Refactor authn filter - use simple for loop to replace fancy callbacks

**What this PR does / why we need it**:
use simple for loop to replace fancy callbacks, for easy readability 

**Which issue this PR fixes** 
https://github.com/istio/proxy/issues/1384

**Special notes for your reviewer**:

**Release note**:
@shalako
Copy link

shalako commented Aug 15, 2018

Another use case for UDP support: https://www.eclipse.org/hono/

@ijsnellf ijsnellf removed their assignment Oct 3, 2018
@joseba4242
Copy link

+1 for UDP support. Use case is DNS, NTP, Syslog and SNMP Traps.

@dstockton
Copy link

+1 for UDP

@MightyDjinn
Copy link

+1 for UDP support. Use case is RADIUS.

@unnicris
Copy link

+1 for UDP

@howels
Copy link

howels commented Nov 1, 2018

+1 for UDP, TFTP and syslog are required for our use-case.

@armand1m
Copy link

+1 for hosting chat services like Mumble

@badarihp
Copy link

badarihp commented Apr 5, 2021

Hi,
Yes , UDP LB +1, we have strong need for UDP LB in 3gpp telecom world, legacy 4g protocols such has GtpV2 is not enhanced for cloud native deployment. This would be very good use case to support UDP proxying on istio.

@owenthereal
Copy link

UDP +1, I need it to proxy WireGuard traffic!

@paulliss
Copy link

paulliss commented Jul 4, 2021

+1 UDP for radius server

afaik Envoy 1.19 already have an UDP support

@cdino
Copy link

cdino commented Sep 23, 2021

+1 UDP for SNMP Traps and Syslog
what is the status of this feature? There is a temporary workaround to also route UDP to a TCP/UDP svc?

@sdeboeck
Copy link

sdeboeck commented Dec 6, 2021

+1 UDP for COAP server

@jared-schmidt-niceincontact

+1 UDP for SIP and RTP

@waynezhang1984
Copy link

+1 UDP for SCTP and PFCP

@jondunning
Copy link

+1 UDP for anything UDP

@febus982
Copy link

@sedlund
Copy link

sedlund commented Mar 11, 2022

Can this be locked?

@su225
Copy link
Contributor

su225 commented Mar 13, 2022

Hello, I have opened a draft PR #37891 for UDP support at gateways only (for the sidecars, there is additional work in terms of iptables rules, config generation as Istio uses different codepaths for gateway and sidecar config gen). Given that Envoy support for UDP is very limited (even subset routing for canary deployments is not there), it is currently a dumb UDP proxy which load balances. See the draft PR for illustrations.

@chinaran
Copy link
Contributor

chinaran commented Aug 9, 2022

+1 UDP

@kyessenov
Copy link
Contributor Author

Wow, it's been five years :) It's difficult to provide features for a mesh with the simple UDP proxy in Envoy. We cannot easily enable transport security or provide peer-to-peer telemetry, and both are the expected tablestakes for uniform traffic management. The best proposal we have right now is CONNECT-UDP by @DavidSchinazi, which builds upon HTTP CONNECT tunneling and quic, generalizing the Ambient protocol for TCP with h2 CONNECT. I'll investigate the state of Envoy support, but it looks like we're close to something working.

@DavidSchinazi
Copy link

My team is working on getting CONNECT-UDP support in Envoy. I can't commit to a precise date but we expect to have it ready in early 2023.

@kyessenov
Copy link
Contributor Author

xref envoyproxy/envoy#23564

@emaildanwilson
Copy link
Contributor

Since connect-udp is available in envoy can work begin on the istio side now? envoyproxy/envoy#27714

@kyessenov
Copy link
Contributor Author

@emaildanwilson Sure, why not. As any other feature, this would be opt-in, off-default at first, and driven by the concrete use cases. There are some integration challenges related to tunneling in general, e.g. using a different port for tunneling breaks the network firewall policies.

@jpd08
Copy link

jpd08 commented Nov 20, 2023

Is there any workaround to support udp protocol for a vpn tunnel (OpenVPN) running behind istio mesh?
A tcp based vpn server works just fine.

@insylogo
Copy link

This is super important - blocks any QUIC traffic via any protocol.

@howardjohn
Copy link
Member

This is super important - blocks any QUIC traffic via any protocol.

FWIW there is experimental support to terminate HTTP/3 at gateway (and forward as HTTP1/2): https://github.com/istio/istio/wiki/Experimental-QUIC-and-HTTP-3-support-in-Istio-gateways

@insylogo
Copy link

This is super important - blocks any QUIC traffic via any protocol.

FWIW there is experimental support to terminate HTTP/3 at gateway (and forward as HTTP1/2): https://github.com/istio/istio/wiki/Experimental-QUIC-and-HTTP-3-support-in-Istio-gateways

That's good too - my application is for using QUIC with other protocols so it wouldn't quite work for me.

@uasya1
Copy link

uasya1 commented Jul 13, 2024

+1 for UDP

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/networking kind/enhancement lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed
Projects
Status: P2
Development

No branches or pull requests