Skonfigurowanie komunikacji serwer-z-serwerem w oficjalnym serwerze Jabbera jabberd 1.4.2 może być trudnym zadaniem - w Przewodniku administratoraJabberd jest mało lub nawet brak informacji o najważniejszych zagadnieniach.
Oto, do jakich wniosków udało mi się dojść kiedy konfigurowałem połączenia s2s jabberd działającego pod kontrolą OpenBSD 3.2:
Następujące porty muszą być odblokowane na poziomie filtra pakietów (o ile takiego używasz - ja mam filtr, który przyjmuje, że każdy pakiet jest odrzucany, chyba, że spełnia określone warunki):
pass in quick on $int_if proto udp from any to any port = 5222 keep state
pass in quick on $int_if proto tcp from any to any port = 5222 flags S/SA keep state
pass in quick on $int_if proto udp from any to any port = 5269 keep state
pass in quick on $int_if proto tcp from any to any port = 5269 flags S/SA keep state
pass in quick on $int_if proto udp from any to any port = 5223 keep state
pass in quick on $int_if proto tcp from any to any port = 5223 flags S/SA keep state
pass in quick on $int_if proto udp from any to any port = 7000 keep state
Należy również skompilować jabberd zlinkowany z biblioteką GNU PTH 1.4.0 (nie 1.4.1), jest ona dołączona w pakiecie źródeł jabberd-1.4.2 i używana jeśli biblioteki pth brak w twoim systemie.
Następnie musisz utworzyć rekordy SRV dla usług Jabbera w twojej domenie. Używam pakietu DJBDNS Daniela J. Bernsteina (serwer tinydns) ze względów bezpieczeństwa, więc w moim przypadku zadanie było trochę bardziej skomplikowane.
Wykorzystałem tinydns Record Maker Roba Mayoff'a by wygenerować poprawne definicje rekordów SRV w formacie DJBDNS.
Dla mojego servera jabber na office.altkom.com.pl, użyłem następujących parametrów w generatorze rekordów SRV:
| Service | _jabber-server._tcp.office.altkom.com.pl |
| Priority | 10 |
| Weight | 0 |
| Port | 5269 |
| Target | office.altkom.com.pl |
| Service | _jabber._tcp.office.altkom.com.pl |
| Priority | 10 |
| Weight | 0 |
| Port | 5269 |
| Target | office.altkom.com.pl |
| Service | _jabber-client._tcp.office.altkom.com.pl |
| Priority | 10 |
| Weight | 0 |
| Port | 5222 |
| Target | office.altkom.com.pl |
Dało to w wyniku następujące rekordy w formacie serwera tinydns z pakietu DJBDNS:
:_jabber._tcp.office.altkom.com.pl:33:\000\012\000\000\024\225\006office\006altkom\003com\002pl\000
:_jabber-server._tcp.office.altkom.com.pl:33:\000\012\000\000\024\225\006office\006altkom\003com\002pl\000
:_jabber-client._tcp.office.altkom.com.pl:33:\000\012\000\000\024\146\006office\006altkom\003com\002pl\000
Umieściłem je w moim pliku danych (data) tinydns-a, skompilowałem i od tej pory połączenia serwer-do-serwera mojego demona jabberd działały poprawnie.
Dla przetestowania tych rekordów SRV wykorzystałem narzędzie dig:
$ dig @192.168.254.205 _jabber-client._tcp.office.altkom.com.pl srv +noall +answer
; <<>> DiG 9.2.1 <<>> @192.168.254.205 _jabber-client._tcp.office.altkom.com.pl srv +noall +answer
;; global options: printcmd
_jabber-client._tcp.office.altkom.com.pl. 86400 IN SRV 10 0 5222 office.altkom.com.pl.
$ dig _jabber-client._tcp.office.altkom.com.pl srv +noall +answer
; <<>> DiG 9.2.1 <<>> _jabber-client._tcp.office.altkom.com.pl srv +noall +answer
;; global options: printcmd
_jabber-client._tcp.office.altkom.com.pl. 86400 IN SRV 10 0 5222 office.altkom.com.pl.