Czy w nazwie hosta rozróżniana jest wielkość liter?

Odpowiedzi:

24

W nazwach rozpoznawanych z DNS nie jest rozróżniana wielkość liter. Jest to ważne, aby uniknąć zamieszania. Gdyby rozróżniała wielkość liter, mielibyśmy osiem wariantów .com (.com, .Com, .cOm, .COm, .coM, .CoM, .cOM i .COM). Kody krajów miałyby cztery.

Jeśli w rozpoznawaniu nazw rozróżniana jest wielkość liter w przypadku polecenia Ping, DNS nie wykonuje tego.

BillThor
źródło
Najwyraźniej staje się nieco trudny po dodaniu internacjonalizowanych nazw domen. W kontekstach innych niż ASCII sprawa może mieć znaczenie.
Zoredache,
1
@Zoredache: Wygląda na to, że domeny zinternacjonalizowane za pomocą systemu IDNA muszą być kodowane w Punycode, co wymaga tłumaczenia na małe litery. Istnieją również dodatkowe ograniczenia, aby zapewnić, że nazwy są wizualnie różne. Nie chcesz też zmuszać użytkowników do upewnienia się, że dobrze załatwili sprawę.
BillThor
6

Właśnie miałem to tutaj w pracy. DNS powinien rozróżniać małe i wielkie litery ... określa to RFC. https://tools.ietf.org/html/rfc4343, ale nie mówi, że MUSI to być mała litera.

Mieliśmy więc przyjemność rozwiązywać problemy z hostem, który nie rozwiązał problemu w naszej domenie wewnętrznej „t.local”

p123$ ping p123-db.t.local
PING p123-db.t.local (192.168.106.175) 56(84) bytes of data.
....works ok

p123$ ping P123-dB.T.lOcal
ping: unknown host P123-dB.T.lOcal

Po co zawracać sobie głowę rozwiązywaniem mieszanej sprawy? Ponieważ właśnie to tcpdump pokazywał jako zapytanie DNS, ponieważ o to prosił działające oprogramowanie. pgbouncer skonfigurowano tak, aby używał „p123-db” w swojej konfiguracji, a resolv.conf określił domenę wyszukiwania „t.local”. Więc co jest pomieszane?

Okazuje się, że glibc losowo przełączał sprawę. Proces ten nazywa się „wypełnieniem 0x20” i został po raz pierwszy opisany w 2008 r. W „Użycie bitu 0x20 w etykietach DNS do poprawy tożsamości transakcji” http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00

Głównym celem jest zwiększenie entropii, aby trudniej było sfałszować odpowiedź - przypadek pytania musi pasować do przypadku odpowiedzi.

Dobra dyskusja znajduje się tutaj. https://developers.google.com/speed/public-dns/docs/security?csw=1#randomize_case


Oddzielnie uruchamiamy powerDNS wewnętrznie, a to wyszukuje dane w bazie danych. Przez lata nikt nie używał nazwy hosta ani nazwy FQDN w domenie t.local z wielką literą, więc nigdy nie zauważyliśmy, że w naszej domenie wewnętrznej rozróżniana jest wielkość liter.

Zostało naprawione przez niektóre poprawki w zapytaniu, ale zepsułoby to wyszukiwanie mieszanych wielkości liter 0x20, jak powyżej - klient może wymagać, aby odpowiedź była zwracana w tej samej sprawie, o jaką została poproszona.

Krótka odpowiedź : DNS nie powinien rozróżniać wielkości liter, ale pytanie i odpowiedź będą musiały być identyczne w przyszłości.

Criggie
źródło
2
Odpowiedź 4 lata po zadaniu pytania jest nieco inna. Zastanawiam się, czy za kolejne 4 lata odpowiedź brzmi „tak - w DNS rozróżniana jest teraz
wielkość
4

Właśnie zakończyłem rozwiązywanie problemu na wbudowanym urządzeniu SE Linux, w którym rozpoznawanie nazw hostów wykazywało rozróżnianie wielkości liter.

„ping MYHOST” pinguje na 127.0.0.1, podczas gdy „ping myhost” pinguje poprawny adres IP.

nslookup wygenerował poprawne wyniki zarówno dla wielkich, jak i małych liter, wskazując, że serwer DNS nie był winny.

Ale w przeciwieństwie do nslookup, który ignoruje pamięć podręczną, „getent hosts MYHOST” wyprowadza „0.0.0.0”, a „getent hosts myhost” podaje poprawny adres IP.

Więc nscd najwyraźniej rozróżnia małe i wielkie litery. Wywołanie „hostów nscd -i” w celu wyczyszczenia pamięci podręcznej rozwiązało problem.

MYHOST w (wielkie litery) skończył buforowany z 0.0.0.0 z powodu procesu próbującego nawiązać połączenie z MYHOST przed utworzeniem wpisu DNS, co dzieje się, gdy zdalne urządzenie otrzymuje przypisanie DHCP.

Andrew Weimholt
źródło
0

Jak wspomniał BillThor, wielkość liter nie jest rozróżniana na poziomie DNS ani netbios.

Różne systemy operacyjne również nie będą miały problemu z inną obudową.

Jednak aplikacje mogą o nich wiedzieć. Na przykład platformy internetowe w różnych środowiskach mogą sprawdzać rozróżnianie wielkości liter. Obecnie jest bardziej powszechne z powodów optymalizacji pod kątem wyszukiwarek (SEO), aby zwracać uwagę na inną obudowę i przekierowanie. To wszystko zależy od aplikacji, więc odpowiedź jest różna.

W większości przypadków nazwa hosta również nie rozróżnia wielkości liter na poziomie aplikacji.

Scott Forsyth - MVP
źródło