Areg Harutyunyan
d0a1daac3b
TUN-4926: Implement --region configuration option
2021-08-27 09:11:10 +00:00
Rishabh Bector
a4a9f45b0a
TUN-4821: Make quick tunnels the default in cloudflared
2021-08-26 15:53:02 +00:00
Sudarsan Reddy
12ad264eb3
TUN-4866: Add Control Stream for QUIC
...
This commit adds support to Register and Unregister Connections via RPC
on the QUIC transport protocol
2021-08-17 14:50:32 +00:00
Sudarsan Reddy
5f6e867685
TUN-4602: Added UDP resolves to Edge discovery
2021-08-09 18:41:43 +00:00
Sudarsan Reddy
ed1389ef08
TUN-4814: Revert "TUN-4699: Make quick tunnels the default in cloudflared"
...
This reverts commit 18992efa0c
.
2021-07-28 10:02:55 +01:00
Rishabh Bector
18992efa0c
TUN-4699: Make quick tunnels the default in cloudflared
2021-07-26 15:57:36 +00:00
Sudarsan Reddy
8f3526289a
TUN-4701: Split Proxy into ProxyHTTP and ProxyTCP
...
http.Request now is only used by ProxyHTTP and not required if the
proxying is TCP. The dest conversion is handled by the transport layer.
2021-07-19 13:43:59 +00:00
Igor Postelnik
8ca0d86c85
TUN-3863: Consolidate header handling logic in the connection package; move headers definitions from h2mux to packages that manage them; cleanup header conversions
...
All header transformation code from h2mux has been consolidated in the connection package since it's used by both h2mux and http2 logic.
Exported headers used by proxying between edge and cloudflared so then can be shared by tunnel service on the edge.
Moved access-related headers to corresponding packages that have the code that sets/uses these headers.
Removed tunnel hostname tracking from h2mux since it wasn't used by anything. We will continue to set the tunnel hostname header from the edge for backward compatibilty, but it's no longer used by cloudflared.
Move bastion-related logic into carrier package, untangled dependencies between carrier, origin, and websocket packages.
2021-03-29 21:57:56 +00:00
Igor Postelnik
39065377b5
TUN-4063: Cleanup dependencies between packages.
...
- Move packages the provide generic functionality (such as config) from `cmd` subtree to top level.
- Remove all dependencies on `cmd` subtree from top level packages.
- Consolidate all code dealing with token generation and transfer to a single cohesive package.
2021-03-09 14:02:59 +00:00
Nuno Diegues
e9c2afec56
TUN-3948: Log error when retrying connection
2021-02-23 11:40:29 +00:00
Adam Chalmers
a278753bbf
TUN-3902: Add jitter to backoffhandler
...
Jitter is important to avoid every cloudflared in the world trying to
reconnect at t=1, 2, 4, etc. That could overwhelm the backend. But
if each cloudflared randomly waits for up to 2, then up to 4, then up
to 8 etc, then the retries get spread out evenly across time.
On average, wait times should be the same (e.g. instead of waiting for
exactly 1 second, cloudflared will wait betweeen 0 and 2 seconds).
This is the "Full Jitter" algorithm from https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/
2021-02-11 14:36:13 +00:00
Igor Postelnik
0b16a473da
TUN-3869: Improve reliability of graceful shutdown.
...
- Don't rely on edge to close connection on graceful shutdown in h2mux, start muxer shutdown from cloudflared.
- Don't retry failed connections after graceful shutdown has started.
- After graceful shutdown channel is closed we stop waiting for retry timer and don't try to restart tunnel loop.
- Use readonly channel for graceful shutdown in functions that only consume the signal
2021-02-08 14:30:32 +00:00
Adam Chalmers
0d22106416
TUN-3848: Use transport logger for h2mux
2021-02-03 17:31:16 -06:00
Igor Postelnik
a945518404
TUN-3811: Better error reporting on http2 connection termination. Registration errors from control loop are now propagated out of the connection server code. Unified error handling between h2mux and http2 connections so we log and retry errors the same way, regardless of underlying transport.
2021-01-28 10:38:30 -06:00
Igor Postelnik
d503aeaf77
TUN-3118: Changed graceful shutdown to immediately unregister tunnel from the edge, keep the connection open until the edge drops it or grace period expires
2021-01-22 11:14:36 -06:00
Igor Postelnik
db0562c7b8
Fixed connection error handling by removing duplicated errors, standardizing on non-pointer error types
2021-01-22 10:58:06 -06:00
Igor Postelnik
04b1e4f859
TUN-3738: Refactor observer to avoid potential of blocking on tunnel notifications
2021-01-18 11:16:23 +00:00
Areg Harutyunyan
55bf904689
TUN-3471: Add structured log context to logs
2021-01-05 20:21:16 +00:00
Areg Harutyunyan
870f5fa907
TUN-3470: Replace in-house logger calls with zerolog
2020-12-23 14:15:17 -06:00
Adam Chalmers
38fb0b28b6
TUN-3593: /ready endpoint for k8s readiness. Move tunnel events out of UI package, into connection package.
2020-12-02 15:22:59 -06:00
cthuang
5974fb4cfd
TUN-3500: Integrate replace h2mux by http2 work with multiple origin support
2020-11-11 15:20:57 +00:00
cthuang
a490443630
TUN-3458: Upgrade to http2 when available, fallback to h2mux when we reach max retries
2020-11-11 15:11:42 +00:00
cthuang
b5cdf3b2c7
TUN-3456: New protocol option auto to automatically select between http2 and h2mux
2020-11-11 15:11:42 +00:00
cthuang
9ac40dcf04
TUN-3462: Refactor cloudflared to separate origin from connection
2020-11-11 15:11:42 +00:00
cthuang
a5a5b93b64
TUN-3420: Establish control plane and send RPC over control plane
2020-11-11 15:11:42 +00:00
cthuang
8d7b2575ba
TUN-3400: Use Go HTTP2 library as transport to connect with the edge
2020-11-11 15:11:42 +00:00
cthuang
d7498b0c03
TUN-3449: Use flag to select transport protocol implementation
2020-11-11 15:11:42 +00:00
cthuang
be9a558867
TUN-3503: Matching ingress rule should not take port into account
2020-11-05 15:36:12 +00:00
Adam Chalmers
d01770107e
TUN-3492: Refactor OriginService, shrink its interface
2020-11-04 21:28:33 +00:00
Adam Chalmers
e933ef9e1a
TUN-2640: Users can configure per-origin config. Unify single-rule CLI
...
flow with multi-rule config file code.
2020-10-30 07:42:20 -05:00
Adam Chalmers
c96b9e8d8f
TUN-3464: Newtype to wrap []ingress.Rule
2020-10-15 12:48:14 -05:00
Adam Chalmers
4a4a1bb6b1
TUN-3441: Multiple-origin routing via ingress rules
2020-10-13 08:55:17 -05:00
Adam Chalmers
0eebc7cef9
TUN-3438: move ingress into own package, read into TunnelConfig
2020-10-12 16:33:22 +00:00
cthuang
2c9b7361b7
TUN-3427: Define a struct that only implements RegistrationServer in tunnelpogs
2020-10-01 09:08:32 +01:00
Areg Harutyunyan
747427f816
TUN-3216: UI improvements
2020-09-17 13:22:08 +04:00
Rachel Williams
bb530b87dd
TUN-3328: Filter out free tunnel has started log from UI
2020-09-17 11:52:10 +04:00
Rachel Williams
71b98e6111
TUN-3261: Display connections on UI for free classic tunnels
2020-09-17 11:52:10 +04:00
Rachel Williams
fee13dc62f
TUN-3255: Update UI to display URL instead of hostname
2020-09-17 11:52:10 +04:00
Rachel Williams
094e0c7592
TUN-3238: Update UI when connection re-connects
2020-09-17 11:52:10 +04:00
Rachel Williams
b57a953caa
TUN-3200: Add connection information to UI
2020-09-17 11:52:10 +04:00
cthuang
8eeb452cce
TUN-3268: Each connection has its own event digest to reconnect
2020-08-20 16:44:22 +01:00
Adam Chalmers
9952ce0069
TUN-3221: ConnectionOptions tracks numPreviousAttempts.
2020-07-31 20:22:33 +00:00
Igor Postelnik
ac3638f6b1
TUN-3169: Move on to the next address when edge returns duplicate connection. There's no point in trying to connect to the same address since it will be hashed to the same metal.
...
Improve logging of errors from serve tunnel loop, hide useless context cancelled error.
2020-07-07 16:35:44 -05:00
Igor Postelnik
2a3d486126
TUN-3007: Implement named tunnel connection registration and unregistration.
...
Removed flag for using quick reconnect, this logic is now always enabled.
2020-07-01 04:19:30 +00:00
Adam Chalmers
4d3ebaf984
TUN-3106: Pass NamedTunnel config to StartServer
2020-06-17 23:20:37 +00:00
cthuang
fb82b2ced5
TUN-3019: Remove declarative tunnel entry code
2020-05-30 05:54:17 +08:00
Dalton
046be63253
AUTH-2596 added new logger package and replaced logrus
2020-05-27 17:07:19 -05:00
Igor Postelnik
fbe2989f61
TUN-2955: Fix connection and goroutine leaks when tunnel conection is terminated on error. Only unregister tunnels that had connected successfully. Close edge connection used to unregister the tunnel. Use buffered channels for error channels where receiver may quit early on context cancellation.
2020-05-06 03:13:24 +00:00
Igor Postelnik
dd0881f32b
TUN-2940: Added delay parameter to stdin reconnect command.
2020-05-01 15:58:19 +00:00
Areg Harutyunyan
06f29306cd
TUN-2881: Parameterize response meta information header name in the generating function
2020-04-10 20:26:09 +01:00