Jabberowi admini, pamiętajcie o rekordach SRV!
Na moim nowym Jabberowym koncie wszystko działa ślicznie. No, prawie wszystko. Okazało się, że brak jest komunikacji z pojedynczymi serwerami, a niektóre z innych serwerów lub usług odpowiadają z dużym opóźnieniem. Większość z tych problemów okazała się mieć związek z rekordami SRV, służącymi do lokalizacji właściwego serwera Jabbera.
Moja domena nie ma i raczej nie będzie miała rekoru A. Serwer pocztowy jest wskazywany przez rekord MX, serwer Jabbera przez SRV, strony WWW są w poddomenach. Rekord A dla domeny nie ma sensu, bo niby na co miałby wskazywać, jeżeli każda usługa może być obsługiwana przez inną maszynę? Niestety, niektóre serwery Jabbera wciąż mają problemy z poprawnym obsłużeniem rekordów SRV. Albo od razu dobijają się do rekordu A, albo szukają niewłaściwego SRV, np. "_jabber._tcp", które może było dobre, ale z trzy lata temu, przed opublikowaniem RFC ze specyfikacją XMPP. W obu przypadkach wystarczy poprawa konfiguracji serwera (nie sądzę, żeby któraś z implementacji jeszcze nie miała obsługi SRV).
To tyle o moim rekordzie SRV. To jednak działa także w drugą stronę.
Zauważyłem, że mam straszne opóźnienia przy łączeniu się z konferencjami na
chat.chrome.pl, a także przy wysyłaniu tam wiadomości po dłuższej przerwie.
Okazało się, że serwer po prostu czeka na odpowiedź na zapytanie
o _xmpp-server._tcp.chat.chrome.pl, potem wersję
z "_jabber._tcp", a na końcu dopiero pobiera rekord A. Jeden drobny wpis w DNS
by starczył, żeby działało to szybciej (myślę, że niedługo to będzie
poprawione). Oczywiście, można byłoby zoptymalizować
serwer, żeby od
razu pytał o wszystko co się da, a potem wybierał najlepszą odpowiedź... ale
czy wysyłanie masy niepotrzebnych pakietów na pewno jest rozwiązaniem?
Informacje jak skonfigurować serwer do prawidłowej obsługi rekordów SRV można znaleźć we wpisie u smoka i komentarzach do niego. O tym, jak taki rekord SRV powinien wyglądać, też informacji w sieci nie brakuje. Ja tylko opiszę najprostszy przypadek:
Jeśli Twój serwer jabbera, obsługujący domenę domena.org
(JIDy postaci: użytkownik@domena.org, działa na maszynie
serwer.domena.org o adresie 1.2.3.4, to potrzebujesz
następujących wpisów w DNS (pierwszy zapewne już masz):
serwer.domena.org. IN A 1.2.3.4 _xmpp-server._tcp.domena.org. IN SRV 0 0 5269 serwer.domena.org. _xmpp-client._tcp.domena.org. IN SRV 0 0 5222 serwer.domena.org.
Znaczenia cyferek nie będę tu opisywał, kto będzie chciał, ten znajdzie. Podobne wpisy '_xmpp-server' powinny być dla każdej domeny obsługiwanej przez serwer, która ma być dostępna z zewnątrz. Poprawność wpisów należy oczywiście sprawdzić, np. w ten sposób:
$ host -t SRV _xmpp-server._tcp.jajcus.net _xmpp-server._tcp.jajcus.net SRV 10 0 5269 tropek.jajcus.net. $ host -t SRV _xmpp-client._tcp.jajcus.net _xmpp-client._tcp.jajcus.net SRV 10 0 5222 tropek.jajcus.net. $ host -t SRV _xmpp-server._tcp.gg.jajcus.net _xmpp-server._tcp.gg.jajcus.net SRV 10 0 5269 tropek.jajcus.net.
Śledzenie komentarzy (RSS)
Jesteście obserwowani...
09 kwietnia 2006 22:52:57
hm... a po co dla gg?