Widziałem, jaka jest tekstowa reprezentacja żądania HTTP, ale jak wygląda żądanie DNS? Gdzie w danych znajduje się adres URL, który próbujesz zlokalizować? Jak również sformatowana jest odpowiedź?
32
Widziałem, jaka jest tekstowa reprezentacja żądania HTTP, ale jak wygląda żądanie DNS? Gdzie w danych znajduje się adres URL, który próbujesz zlokalizować? Jak również sformatowana jest odpowiedź?
Odpowiedzi:
Jest to surowy zrzut z Wireshark zapytania DNS.
Część DNS zaczyna się od 24 1a:
A oto podział:
I odpowiedź, znowu zaczynając od 24 1a:
Awaria:
Edytować:
Zauważ, że jeśli Twoim prawdziwym pytaniem jest „jak napisać serwer DNS?”, To istnieją dwie odpowiednie odpowiedzi:
Edycja (2):
Żądanie zostało wysłane za pomocą
host
na polu Linux:Jeśli korzystasz z systemu Windows, możesz użyć
nslookup
źródło
/questions/173187/what-does-a-dns-request-look-like
zawarto prośbę?Układ danych żądania DNS jest opisany w RFC 1035 . Myślę, że kopiowanie tekstu tutaj jest trochę bezcelowe ...
źródło
Zapytania i odpowiedzi DNS najlepiej sprawdzać za pomocą analizatora protokołów - Wireshark to dobre narzędzie wieloplatformowe, które może przechwytywać i dekonstruować żądania i odpowiedzi na ich różne części. Tutaj znajduje się ładne wprowadzenie do struktury zapytań i odpowiedzi DNS w Firewall.cx .
Żądania DNS zawierają pytania, które określają nazwę (lub może nieco dowolne pole tekstowe) i typ rekordu - treść odpowiedzi będzie się różnić w zależności od typu. Większość żądań to proste bezpośrednie wyszukiwanie nazwy serwera w odpowiedzi na adres IP (typ A), ale niektóre będą szukać więcej informacji na temat samych serwerów nazw (typ NS), rekordów poczty (typ MX) i innych usług (typ SRV, które zwrócą nazwy, porty, wagi i priorytety). Odpowiedzi DNS zawierają odpowiedzi na te pytania, być może więcej niż jedno, jeśli żądanie tego wymaga i nie zawsze są to tylko adresy IP.
Jeszcze jedno wyjaśnienie - DNS nie rozpoznaje adresów URL - w większości scenariuszy dotyczących adresów URL DNS jest używany tylko w celu umożliwienia systemowi po stronie klienta znalezienia adresu IP części serwerowej adresu URL, wszystko inne jest obsługiwane przez inne protokoły.
źródło
Jeśli możesz dostać się na maszynę z systemem Linux, możesz uruchomić polecenie dig, aby wykonać wyszukiwanie DNS. To narzędzie wykonuje wyszukiwanie i zwraca dokładnie to, co odpowiada serwer nazw. Na przykład:
Wszystko, co zaczyna się od sekcji „HEADER”, jest zwracane z serwera nazw. Zakładam, że jest to tak zwany format tekstowy, ponieważ nie jest to format rzeczywistego pakietu, ale zwracany jest tekst.
źródło