Multiemisja DNS

W sieciach komputerowych protokół multiemisji DNS ( mDNS ) tłumaczy nazwy hostów na adresy IP w małych sieciach, które nie zawierają lokalnego serwera nazw . Jest to o zerowej konfiguracji , wykorzystująca zasadniczo te same interfejsy programistyczne, formaty pakietów i semantykę działania, co system nazw domen (DNS) emisji pojedynczej. Został zaprojektowany do pracy jako samodzielny protokół lub kompatybilny ze standardowymi serwerami DNS. Wykorzystuje protokół IP multicast User Datagram Protocol (UDP) i jest implementowany przez pakiety oprogramowania Apple Bonjour i open source Avahi , zawarte w większości dystrybucji Linuksa. Chociaż systemu Windows 10 ograniczała się do wykrywania drukarek sieciowych, kolejne wersje rozwiązały również nazwy hostów. mDNS może działać w połączeniu z DNS Service Discovery (DNS-SD), towarzyszącą techniką sieciową o zerowej konfiguracji, określoną oddzielnie w dokumencie RFC 6763.

Historia

Multiemisja DNS została po raz pierwszy zaproponowana przez Billa Woodcocka i Billa Manninga w IETF w 2000 r., a ostatecznie została opublikowana jako ścieżka standardów IETF RFC 6762 przez Stuarta Cheshire i Marca Krochmala trzynaście lat później.

Przegląd protokołów

Kiedy klient mDNS musi rozwiązać nazwę hosta, wysyła zapytanie multiemisji IP , które prosi hosta o tej nazwie o zidentyfikowanie się. Następnie ta maszyna docelowa wysyła multiemisję, która zawiera jej adres IP. Wszystkie maszyny w tej podsieci mogą następnie użyć tych informacji do aktualizacji swoich pamięci podręcznych mDNS. Każdy host może zrezygnować z prawa do nazwy, wysyłając pakiet odpowiedzi z czasem życia (TTL) równym zeru.

Domyślnie mDNS rozpoznaje wyłącznie nazwy hostów kończące się na domenę najwyższego poziomu .local . Może to powodować problemy, jeśli .local zawiera hosty, które nie implementują mDNS, ale można je znaleźć za pośrednictwem konwencjonalnego serwera DNS emisji pojedynczej. Rozwiązanie takich konfliktów wymaga zmian w konfiguracji sieci, których mDNS został zaprojektowany w celu uniknięcia.

Struktura pakietu

Wiadomość mDNS to pakiet multiemisji UDP wysyłany przy użyciu następującego adresowania:

Struktura danych jest oparta na formacie pojedynczego pakietu DNS , który składa się z dwóch części — nagłówka i danych.

Nagłówek jest identyczny z tym, który można znaleźć w DNS emisji pojedynczej, podobnie jak podsekcje w części danych: zapytania, odpowiedzi, autorytatywne serwery nazw i dodatkowe rekordy. Liczba rekordów w każdej podsekcji jest zgodna z wartością odpowiedniego pola *COUNT w nagłówku.

Zapytania

Format drutu dla rekordów w sekcji zapytań jest nieco zmodyfikowany w stosunku do formatu pojedynczego DNS, dodając jednobitowe pole UNICAST-RESPONSE.

Pola sekcji zapytań mDNS
Pole Opis Bity długości
QNAME Nazwa węzła, którego dotyczy zapytanie Zmienny
TYP Typ zapytania, czyli typ RR, który ma zostać zwrócony w odpowiedziach. 16
ODPOWIEDŹ UNICAST Flaga logiczna wskazująca, czy wymagana jest odpowiedź emisji pojedynczej 1
KLASA Q Kod klasy, 1 aka „IN” dla Internetu i sieci IP 15

Podobnie jak w DNS typu unicast, pole QNAME składa się z serii podpól długości/wartości zwanych „etykietami”. Każda etykieta reprezentuje jeden z podłańcuchów oddzielonych kropkami w pełni kwalifikowanej nazwie domeny (FQDN). Lista jest zakończona albo pojedynczym bajtem zerowym reprezentującym „korzeń” DNS, albo bajtem z ustawionymi dwoma bitami wysokiego rzędu (wartość 192), aby zasygnalizować pośredni wskaźnik do innej lokalizacji w wiadomości. Jest to znane jako kompresja nazw w RFC-6762.

Pole UNICAST-RESPONSE jest używane do minimalizowania niepotrzebnych emisji w sieci: jeśli ten bit jest ustawiony, respondenci POWINNI wysłać odpowiedź skierowaną w trybie emisji pojedynczej bezpośrednio do węzła pytającego, zamiast rozgłaszać odpowiedź do całej sieci.

Pole QCLASS jest identyczne z polem w DNS emisji pojedynczej.

Rekordy zasobów

Wszystkie rekordy w sekcjach odpowiedzi, autorytatywnych serwerów nazw i dodatkowych rekordów mają ten sam format i są wspólnie określane jako rekordy zasobów (RR).

Rekordy zasobów w mDNS mają również nieco zmodyfikowany ogólny format w porównaniu do pojedynczego DNS:

Pola rekordu zasobów mDNS
Pole Opis Bity długości
RRNAZWA Nazwa węzła, którego dotyczy rekord Zmienny
RRTYP Typ rekordu zasobu 16
USUWANIE CACHE Flaga logiczna wskazująca, czy przestarzałe rekordy w pamięci podręcznej powinny zostać usunięte 1
RRKLASA Kod klasy, 1 aka „IN” dla Internetu i sieci IP 15
TTL Przedział czasu (w sekundach), w którym RR powinien być buforowany 32
DŁUGOŚĆ Liczba całkowita reprezentująca długość (w oktetach) pola RDATA 16
RDATA dane zasobów; struktura wewnętrzna różni się w zależności od RRTYPE Zmienny

Bit CACHE-FLUSH jest używany do instruowania sąsiednich węzłów, że rekord powinien nadpisać, a nie być dołączany, wszelkie istniejące wpisy w pamięci podręcznej dla tego RRNAME i RRTYPE.

Formaty pól RDATA są takie same, jak w przypadku pojedynczego DNS. Jednak DNS Service Discovery (DNS-SD), najczęstszy przypadek użycia mDNS, określa niewielkie modyfikacje niektórych ich formatów (zwłaszcza rekordów TXT).

Zobacz też

Linki zewnętrzne