After the fiasco earlier this week, I’ve been taking steps to minimize the impact if tilde.team were to go down. It’s still a large SPOF (single-point-of-failure), but I’m reasonably certain that at least the IRC net will remain up and functional in the event of another outage.
The first thing that I set up was a handful of additional IRCd nodes: see the wiki for a full list. slash.tilde.chat is on my personal vps, and bsd.tilde.chat is hosted on the bsd vps that I set up for tilde.team.
I added the ipv4 addresses for these machines, along with the IP for yourtilde.com as A records for tilde.chat, creating a DNS round-robin. host tilde.chat
will return all four. Requesting the DNS record will return any one of them, rotating them in a semi-random fashion. This means that when connecting to tilde.chat on 6697 for IRC, you might end up on any of {your,team,bsd,slash}.tilde.chat
.
This creates the additional problem that visiting the tilde.chat site will end up at any of those 4 machines in much the same way. For the moment, the site is deployed on all of the boxes, making site setup issues hard to debug. the solution to this problem is to use a subdomain as the round-robin host, as other networks like Libera.Chat do (see host irc.libera.chat
for the list of servers).
I’m not sure how to make any of the other services more resilient. It’s something that I have been and will continue to research moving forward.
The other main step that I have taken to prevent the same issue from happening again was to configure the firewall to drop outgoing requests to the subnets as defined in rfc 1918.
I’d like to consider at least this risk to be mitigated.
Thanks for reading,
~ben
Update: the round robin host is now irc.tilde.chat, which resolves the site issues that we were having, due to the duplicated deployments.