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

Support multiple addresses per listener #11184

Closed
mattklein123 opened this issue May 13, 2020 · 4 comments · Fixed by #21391, #21521 or #22381
Closed

Support multiple addresses per listener #11184

mattklein123 opened this issue May 13, 2020 · 4 comments · Fixed by #21391, #21521 or #22381

Comments

@mattklein123
Copy link
Member

Via #11124. This would avoid mass listener duplication in cases where a listener config needs to be bound to multiple addresses.

@ggreenway
Copy link
Contributor

This may be required for some QUIC use cases. If Envoy is terminating QUIC and sets a Server Preferred Address, packets will start arriving on a different listener, but are part of the same QUIC connection. So packets from different listeners will need to go to the same QUIC connection router.

Same story for QUIC connection migration.

This will also remove duplication if both HTTP/2 and HTTP/3 are needed for the same configuration (UDP vs TCP listeners).

@uablrek
Copy link

uablrek commented Nov 1, 2020

FYI the same for contour which also uses envoy projectcontour/contour#1162

@soulxu
Copy link
Member

soulxu commented Dec 24, 2021

I'm trying to work out a PoC for this issue

@danzh2010
Copy link
Contributor

This may be required for some QUIC use cases. If Envoy is terminating QUIC and sets a Server Preferred Address, packets will start arriving on a different listener, but are part of the same QUIC connection. So packets from different listeners will need to go to the same QUIC connection router.

Same story for QUIC connection migration.

I think supporting dual-stack ipv6 sockets and QUIC server migration are different things. The former only needs a 2nd listener with the same config but listening on a different socket. But QUIC server migration requires one connection lands on the same listener. #19367 seems to implement the former, but I don't see how it helps with the latter. QUIC server migration might be easier to implement in L4 load balancer rather than requires one listener to listen on both sockets. Google is planning to experiment server migration, but we don't have a good story to tell yet.

@ggreenway ggreenway reopened this Jun 9, 2022
@ggreenway ggreenway reopened this Jun 21, 2022
alyssawilk pushed a commit that referenced this issue Jul 18, 2022
Commit Message: multiple addresses: add integration tests
Additional Description:
Risk Level: low
Testing: integration tests
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a
Part of #11184



Signed-off-by: He Jie Xu <[email protected]>
alyssawilk pushed a commit that referenced this issue Aug 1, 2022
Commit Message: multiple addresses listener: remove the legacy interface
Additional Description:
Since the multiple addresses listener is implemented, all the code moves to use the new multiple socket factories interface, then those old single socket factory interfaces can be removed now.
Risk Level: low
Testing: unittest
Docs Changes: n/a
Release Notes: n/a
Fixes #11184

Signed-off-by: He Jie Xu <[email protected]>
phlax pushed a commit to phlax/envoy that referenced this issue Nov 18, 2022
Commit Message: multiple addresses: add integration tests
Additional Description:
Risk Level: low
Testing: integration tests
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a
Part of envoyproxy#11184



Signed-off-by: He Jie Xu <[email protected]>
Signed-off-by: Ryan Northey <[email protected]>
phlax pushed a commit to phlax/envoy that referenced this issue Nov 18, 2022
Commit Message: multiple addresses: add integration tests
Additional Description:
Risk Level: low
Testing: integration tests
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a
Part of envoyproxy#11184



Signed-off-by: He Jie Xu <[email protected]>
Signed-off-by: Ryan Northey <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment