Skip to content

tunnel: http/2 support #464

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

Closed
calebdoxsey opened this issue Nov 5, 2024 · 1 comment
Closed

tunnel: http/2 support #464

calebdoxsey opened this issue Nov 5, 2024 · 1 comment
Labels
blocked PR/ISSUE is blocked by third party

Comments

@calebdoxsey
Copy link
Contributor

Currently the Pomerium CLI only supports tunneling TCP connections over HTTP/1 via the CONNECT protocol. There's a variant of the CONNECT protocol described in RFC8441 (Extended CONNECT). We should add support for this.

We will need to detect if the server supports HTTP/2 and that the SETTINGS_ENABLE_CONNECT_PROTOCOL is set. This will likely mean using the x/net/http2 package instead of the http package. If the server does not support Extended CONNECT we should fallback to the existing HTTP/1 solution.

This was referenced Nov 5, 2024
@calebdoxsey calebdoxsey self-assigned this Dec 3, 2024
@calebdoxsey calebdoxsey mentioned this issue Dec 3, 2024
4 tasks
@calebdoxsey
Copy link
Contributor Author

HTTP/2 support for TCP tunneling is implemented, but not via Extended Connect, rather standard Connect was used (and envoy handled it fine). Unfortunately HTTP/2 support for UDP tunneling requires full Extended Connect support, which is (I believe) blocked on golang/go#53208.

@calebdoxsey calebdoxsey removed their assignment Dec 9, 2024
@calebdoxsey calebdoxsey added the blocked PR/ISSUE is blocked by third party label Dec 9, 2024
@calebdoxsey calebdoxsey closed this as not planned Won't fix, can't repro, duplicate, stale Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked PR/ISSUE is blocked by third party
Projects
None yet
Development

No branches or pull requests

1 participant