Gdy aplikacja ma znaleźć właściwy serwer, sam adres IP często nie wystarcza. Rekord SRV w DNS wskazuje jednocześnie usługę, protokół, port i host, który ją obsługuje. Wyjaśniam, jak czytać taki wpis, gdzie stosuje się go najczęściej, jak go skonfigurować oraz dlaczego nie zastępuje rekordu A ani CNAME.
Rekord SRV mówi klientowi, gdzie i przez jaki port działa usługa
- Lokalizacja usługi jest zapisana w DNS razem z nazwą hosta i numerem portu.
- Priorytet wskazuje, który serwer ma być wybrany w pierwszej kolejności.
- Waga pozwala rozłożyć ruch między serwery o tym samym priorytecie.
- Wpis SRV jest używany między innymi przez SIP, XMPP, LDAP i Active Directory.
- Cel rekordu powinien prowadzić do nazwy z rekordem A lub AAAA, a nie bezpośrednio do adresu IP.
SRV wskazuje usługę, a nie zwykły adres serwera
Rekord SRV, czyli Service Record, to specjalny typ wpisu DNS służący do lokalizowania usług sieciowych. Zamiast odpowiadać wyłącznie na pytanie „jaki adres IP ma ta domena?”, przekazuje klientowi pełniejszą informację: na jakim hoście, przy użyciu którego protokołu i na jakim porcie działa konkretna usługa.
To ważne rozróżnienie. Rekord A prowadzi nazwę do adresu IPv4, a AAAA do adresu IPv6. SRV nie podaje adresu IP bezpośrednio. Wskazuje nazwę serwera docelowego, którą klient może później rozwiązać za pomocą rekordu A lub AAAA.
Przykładowo aplikacja komunikacyjna może sprawdzić, gdzie znajduje się usługa SIP dla domeny example.pl. Nie musi mieć na stałe wpisanego adresu serwera ani portu 5060. Odczytuje odpowiedni rekord SRV i korzysta z aktualnej konfiguracji DNS.
Jak czytać rekord SRV bez zgadywania
Standardowy zapis wygląda następująco:
_sip._tcp.example.pl. 3600 IN SRV 10 20 5060 sip01.example.pl.
Początkowo taki ciąg znaków może wyglądać chaotycznie, ale każda jego część ma konkretne znaczenie.
| Element | Przykład | Znaczenie |
|---|---|---|
| Usługa | _sip |
Nazwa usługi, której szuka klient. |
| Protokół | _tcp |
Protokół transportowy, najczęściej TCP lub UDP. |
| Nazwa | example.pl |
Domena, której dotyczy wpis. |
| TTL | 3600 |
Czas przechowywania odpowiedzi w pamięci podręcznej, tutaj 3600 sekund. |
| Priorytet | 10 |
Preferencja serwera. Niższa liczba oznacza wyższy priorytet. |
| Waga | 20 |
Udział w wyborze serwera przy identycznym priorytecie. |
| Port | 5060 |
Numer portu, na którym działa usługa. |
| Cel | sip01.example.pl. |
Nazwa hosta obsługującego usługę. |
Podkreślenia w nazwie usługi i protokołu są częścią składni. Dlatego zapis _sip._tcp nie powinien być zamieniany na sip.tcp. W panelu operatora DNS pola mogą być rozdzielone, ale w pełnym zapisie rekord zawsze tworzy tę charakterystyczną strukturę.

Priorytet i waga decydują o wyborze serwera
Jeżeli dla jednej usługi istnieje kilka wpisów SRV, klient najpierw porównuje wartość priorytetu. Serwer z liczbą 10 jest preferowany przed serwerem z priorytetem 20. Waga nie zmienia tej kolejności, dopóki dostępny jest wpis z niższym priorytetem.
Przykład może wyglądać tak:
_xmpp._tcp.example.pl. 3600 IN SRV 10 60 5222 chat01.example.pl.
_xmpp._tcp.example.pl. 3600 IN SRV 10 30 5222 chat02.example.pl.
_xmpp._tcp.example.pl. 3600 IN SRV 20 0 5222 chat03.example.pl.
W tym układzie chat01 i chat02 mają ten sam priorytet, więc klient może rozdzielać między nie połączenia zgodnie z wagą. Trzeci serwer ma niższy priorytet, czyli pełni rolę zapasową i powinien zostać wykorzystany dopiero wtedy, gdy serwery z priorytetem 10 nie są dostępne.
Waga nie jest jednak precyzyjnym mechanizmem równoważenia obciążenia. To wskazówka dla klienta, a sposób jej interpretacji zależy od konkretnego protokołu i aplikacji. Przy jednej aktywnej usłudze najczytelniej ustawić weight 0. Przy kilku równorzędnych serwerach można użyć proporcji 50 i 50 albo 70 i 30.
Gdzie rekordy SRV naprawdę się przydają
Telefonia internetowa i SIP
W systemach VoIP rekord SRV może wskazywać serwer obsługujący sygnalizację SIP oraz właściwy port TCP, UDP lub TLS. Dzięki temu zmiana serwera centralnego nie wymaga ręcznej rekonfiguracji każdego telefonu, o ile urządzenia poprawnie obsługują wyszukiwanie SRV.
Komunikatory i XMPP
Protokół XMPP korzysta z wpisów takich jak _xmpp-client._tcp lub _xmpp-server._tcp. Rekord pozwala rozdzielić adres domeny używany przez użytkownika od technicznej nazwy serwera komunikacyjnego.
Active Directory i LDAP
W środowisku Windows rekordy SRV pomagają komputerom odnaleźć kontrolery domeny oraz usługi LDAP. Typowe wpisy zawierają między innymi _ldap._tcp i _kerberos._tcp. Ich brak lub błędna rejestracja może powodować problemy z logowaniem do domeny, odnajdywaniem kontrolera i replikacją.
Przeczytaj również: Typy złącz światłowodowych - jak dobrać właściwe?
Gry i usługi działające na nietypowym porcie
Rekord SRV bywa używany także przy serwerach gier, na przykład wtedy, gdy użytkownik chce łączyć się przez prostą nazwę, mimo że właściwa usługa działa na innym porcie. Trzeba jednak sprawdzić, czy dana gra faktycznie obsługuje SRV. Sam wpis DNS nie zmusi aplikacji do jego odczytania.
Jak skonfigurować i sprawdzić wpis SRV
Konfigurację wykonuje się w panelu dostawcy DNS albo bezpośrednio w pliku strefy. W formularzu wybiera się typ SRV, a potem uzupełnia usługę, protokół, priorytet, wagę, port i host docelowy.
- Ustal dokładną nazwę usługi i protokołu zgodnie z dokumentacją aplikacji.
- Wpisz nazwę hosta docelowego, na przykład
sip01.example.pl. - Dodaj dla tego hosta rekord A albo AAAA.
- Ustaw port, na którym rzeczywiście nasłuchuje usługa.
- Dobierz priorytet i wagę, jeśli korzystasz z więcej niż jednego serwera.
- Sprawdź wpis z zewnętrznego resolvera DNS po zakończeniu propagacji.
Do szybkiej diagnostyki używam najczęściej polecenia dig:
dig SRV _sip._tcp.example.pl
W systemie Windows można skorzystać z:
nslookup -type=SRV _sip._tcp.example.pl
Brak wyniku nie zawsze oznacza błąd konfiguracji. Przyczyną może być jeszcze pamięć podręczna DNS, zbyt wysoki TTL albo sprawdzanie niewłaściwej nazwy. Jeżeli rekord jest widoczny, ale aplikacja nadal nie działa, trzeba zweryfikować port zaporą sieciową, działanie usługi oraz to, czy klient obsługuje SRV.
SRV nie zastępuje rekordów A, AAAA ani CNAME
Najczęstsze nieporozumienie polega na traktowaniu SRV jak uniwersalnego przekierowania domeny. Ten rekord nie zmienia działania przeglądarki i nie sprawi, że adres panel.example.pl zacznie automatycznie prowadzić do dowolnego portu serwera WWW.
| Typ rekordu | Do czego służy | Czego nie robi |
|---|---|---|
| A | Wskazuje adres IPv4 hosta. | Nie opisuje portu usługi. |
| AAAA | Wskazuje adres IPv6 hosta. | Nie określa, która aplikacja działa na serwerze. |
| CNAME | Tworzy alias jednej nazwy dla innej nazwy. | Nie przenosi informacji o porcie. |
| MX | Wskazuje serwery pocztowe domeny. | Nie służy do lokalizowania dowolnych usług. |
| SRV | Wskazuje usługę, protokół, port i host docelowy. | Nie działa, jeśli aplikacja nie wykonuje zapytań SRV. |
Host umieszczony w polu target powinien być nazwą zakończoną rekordem A lub AAAA. Nie należy wpisywać tam adresu IP ani zwykle kierować go na CNAME, ponieważ część klientów i serwerów DNS odrzuci taką konfigurację. Osobną sytuacją jest target oznaczony pojedynczą kropką, który może sygnalizować, że dana usługa jest wyłączona dla tej domeny.
Przy wdrożeniach produkcyjnych zwracam też uwagę na DNSSEC, poprawny TTL i spójność strefy. Rekord SRV może wskazać właściwy port, ale nie otworzy go w firewallu, nie uruchomi aplikacji i nie zastąpi certyfikatu TLS. DNS opisuje drogę do usługi, natomiast za jej dostępność odpowiada cała reszta infrastruktury.
Dobrze ustawiony SRV skraca drogę do usługi
Najprościej zapamiętać, że rekord A wskazuje komputer, a rekord SRV wskazuje konkretną usługę na tym komputerze. Dodaje do nazwy hosta informacje o protokole, porcie, kolejności wyboru i ewentualnym rozłożeniu ruchu.
Przed zapisaniem wpisu sprawdzam zawsze trzy rzeczy: czy aplikacja obsługuje SRV, czy target ma rekord A lub AAAA oraz czy wskazany port jest osiągalny z sieci klienta. Taka krótka kontrola usuwa większość problemów, przez które poprawnie wyglądający rekord pozostaje w praktyce niewykorzystany.