Connection priority in case of dualstack
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.2k
- Forks
- 467
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
We have several daemons listening on UDP4+6 and TCP4+6 on the server side. A simple loadbalancer distributes connection in a round robin manner for UDP and TCP. The UDP and TCP counters are independant of each other.
On the client we have two entries, one for udp and the second one for tcp.
remote <SERVER_NAME> 1194 udp
remote <SERVER_NAME> 443 tcp
If a server daemon is full (max-clients), the server makes entries of
MULTI: new incoming connection would exceed maximum number of clients
of about 40 times before the client tries the second entry. If I understood correctly, the clients waits because of already established tls connection
and does not terminate the session until the connect-timeout has been reached?
Is there any possibility/configuration on the client side to try the second entry in such case, without waiting for the timeout? According to the manual, there should be an AUTH_FAILED message to the client?
If it is not possible to react to the message, is it possible to configure the client to try UDPv6 -> TCPv6 instead of UDPv6->UDPv4->TCPv6?
The configuration should not break in case it is used on IPv4 only network (so using remote <SERVER_NAME> 1194 udp6 is not an option).
Thanks and BR
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing client handling of the AUTH_FAILED message, the connect-timeout, and the ordered remote entries described in the report. Determine whether an overloaded server can trigger an immediate fallback and whether address-family ordering can be configured without breaking IPv4-only connections; done means the behavior is specified and covered for dual-stack and IPv4-only clients.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100