3 ms·
Lots of correct and insightful information here, but I'd like to pick out one specific aspect here. > [...] clients could be configured to quickly attach to an
by rdpintqogeogsaa 5y ago
Lots of correct and insightful information here, but I'd like to pick out one specific aspect here.
> [...] clients could be configured to quickly attach to another server in another region and that is just DNS management. This could have been further improved by amending or replacing the IRC RFC's to allow SRV records. This may have been done by now for all I know.
To set the stage: Larger IRC networks balance their global servers. A DNS A query for irc.example.com will yield a list of geographically local servers, possibly shuffled on each query as well.
I know of at least one IRC network that refuses to send even the list of all geographically local servers, only sending a subset, as a measure to avoid trivial DDoS attacks if people don't go around collecting the DNS records ahead of time. I'm told that this actually works because the thread actors are not the sophisticated kind.
Incidentally, I have also noted that some networks will shuffle the order of A records for each query because the clients cannot be trusted to select a random DNS response. Considering something this trivial already doesn't work, I dread to imagine how much a DNS SRV implementation would go wrong, considering it needs both sorting and a weighted random sampling[1] to really work.
[1] https://datatracker.ietf.org/doc/html/rfc2782 https://datatracker.ietf.org/doc/html/rfc2782 page 3 et seq.
- samsquire 5y agoOn some operating systems getaddrinfo sorts the DNS response by IPv6 distance! Breaking load balancing https://access.redhat.com/solutions/22132 https://access.redhat.com/solutions/22132
- toast0 5y agoThis is not exclusive to IPv6, I've seen it on v4 as well. If you've got short DNS TTLs and can return 2-4 records out of a larger pool, that can help, but if your TTLs are longer, you have to consider the handful of recusrive DNS servers that serve a large number of users... You want to give them more records to balance that traffic better. OTOH, current IRC usage numbers are pretty low, a beefy single server should work, except for the disruption potential of single servers. Latency can be a bit of an issue too, depending on where your users are; not great if users are in south asia and the only server is in east coast US.