I finally decided to move the Jabber server of luon.net to a different server. Our main luon.net server was being fairly loaded for weeks because of the business of the S2S component. The transition was a lot easier than I had expected and everyone got to keep his/her JID.

Some tips/hints concerning the steps I took:

  • First I moved all our services’ DNS names to a CNAME of jabber.luon.net, that is:
      msn 1800 IN CNAME jabber
      icq 1800 IN CNAME jabber
      s2s 1800 IN CNAME jabber
      c2s 1800 IN CNAME jabber
      …
    Note that jabber.luon.net still has the same addresses as luon.net at this time.
  • I also added SRV records for luon.net so XMPP servers and some of the clients can find us right away. (Since the server won’t be running on luon.net anymore, the @luon.net-JIDs still will let everything try to contact us there). The SRV records used:
      jabber.tcp      1800 IN SRV 5 1 jabber.luon.net.
      xmpp-client.tcp 1800 IN SRV 5 1 jabber.luon.net.
      xmpp-server.tcp 1800 IN SRV 5 1 jabber.luon.net.
  • With that done, I installed all components we use on the new machine, rsynced the configuration, restarted the server and services and tested the connection.
  • Then, I modified the address of jabber.luon.net to point to the new host and let it propagate.
  • Next, I sent a MOTD (luon.net/announce/motd) about our server move and notified the users that if their clients do not support SRV records, they will not be able to login anymore and they’ll have to change the server address in the client1.
  • Finally, I installed a second C2S component on luon.net that connects to the main XMPP router component on the other host for transition purpose. I’ll leave it on for two weeks.

It’s a pity that SRV records aren’t used more these days. But I guess the whole sub-domain and multiplex-by-CNAME stuff came earlier (why doesn’t your website start with ‘www.’?).

1 I thank Google for introducing the gmail.com JIDs <→ talk.google.com server discrepancy so that now all clients can configure the server separately from the JID.