English version [1]
Skonfigurowanie komunikacji serwer-z-serwerem w oficjalnym serwerze Jabbera jabberd 1.4.2 [2] może być trudnym zadaniem - w Przewodniku administratoraJabberd [3] 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 [4] (serwer tinydns) ze względów bezpieczeństwa, więc w moim przypadku zadanie było trochę bardziej skomplikowane.
Wykorzystałem tinydns Record Maker [5] 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 [6] 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.
Links:
[1] http://olo.org.pl/dr/adminstuff/jabber/s2s
[2] http://www.jabber.org/
[3] http://jabber.itn.pl/docs/
[4] http://cr.yp.to/djbdns.html
[5] http://dqd.com/%7Emayoff/tools/djbdns/make-record.adp
[6] http://cr.yp.to/djbdns/tinydns-data.html