We’re utilizing a pair of edge nodes I suppose you could possibly name them proxies however they is perhaps extra merely appearing as reflectors (they do not act as a shopper, they’re merely forwarding the packets to both finish). We see intermittent points once we set up a DTLS session via proxy A, then disconnecting and try to ascertain a session via proxy B the place “generally” the DTLS handshake “hey” response seems to return again to the shopper from proxy A as a substitute of proxy B.
- shopper -> Proxy A: ship hey
- Proxy A -> shopper: hey response and handshake finally succeeds
shopper disconnect and wait ~24 seconds
- shopper -> Proxy B: ship hey
- Proxy A -> shopper: packet arrives and shopper throws away response, and by no means hears from Proxy B.
We verified this in Wireshark, that we get a packet after our hey is shipped, however the packet comes from Proxy A. :/
We suspect this is perhaps a “hey response” showing to return from the incorrect tackle. It might probably simply be that we did not shut our UDP session totally and we’re getting an previous packet from the earlier session however the timing between the classes, and the truth that we by no means hear from proxy B makes me lean in the direction of the previous than the latter.
We are attempting to make the proxy choice extra steady to keep away from this (if a shopper will get proxy A they may all the time get proxy A), not splendid for load balancing causes so I’m making an attempt to COE what is occurring. I believe there’s a routing desk someplace caching the route however I’m not certain find out how to show it or whether or not that clarification is ample.
The timings concerned between disconnecting from one DTLS session and making an attempt to ascertain the opposite is ~24 seconds. As soon as the connection fails, retrying appears to work nearly each time.
Anybody have some sage perception into routing desk timeouts? May or not it’s a shopper aspect router problem? One thing in between? Thanks prematurely and apologies if this query is poorly fashioned.