Czy mogę mieć kropki w nazwie hosta?

23

Używam nazw takich jak a.alpha dla nazwy hosta mojego Linux-a, ale wydaje się, że te nazwy nie są w pełni użyteczne. Odpowiedź polecenia powłoki nazwy hosta jest poprawna (a.alfa). Ale nazwa wydrukowana po moim koncie użytkownika to „użytkownik @ a” zamiast „uż[email protected]”. Kiedy używam avahi, mogę uzyskać (według nazwy hosta) a.alfa, ale nie b.alfa. Czy to normalne?

benzen
źródło

Odpowiedzi:

23

Chopper ma rację. Ze względu na to, jak działa DNS, składnik „alfa” „a.alpha” jest uważany w DNS za dyskretną „etykietę”. Użycie nazwy hosta z kropką spowoduje niespójne wyniki z dowolnego systemu korzystającego z DNS.

Avahi wchodzi w interakcję z nazwami DNS, a konkretnie w <host-name>dyrektywie musi znajdować się nazwa DNS FQDN usługi, więc może również występować niezgodność DNS z nazwami kropkowanymi.

Nie używaj kropkowanej nazwy.

sysadmin1138
źródło
To prawda, ale odniesienia należy uznać za wiarygodną odpowiedź. Ktoś, kto mówi „Z powodu działania DNS” na przepełnieniu stosu, niczego nie dowodzi.
mikemaccana
Czy to sztywna reguła, że ​​nazwa hosta nie może zawierać „.” ?
Dinesh Kumar P
1
@DineshKumarP Tak. DNS RFC opisują znak kropki jako separator między etykietami DNS. Chociaż usługi inne niż DNS, takie jak Avahi lub SLP, mogą na to zezwalać, sam DNS nie pozwala.
sysadmin1138
To nie do końca prawda. DNS z przyjemnością dopuszcza kropki w etykietach, choć sugeruje zgodność z ograniczoną składnią („reguła LDH”; patrz tools.ietf.org/html/rfc1035#section-2.3.1 ). Aplikacje DNS - takie jak przechowywanie nazw hostów w DNS - mają zastosowanie w ograniczeniach składni etykiet DNS.
Tony Garnock-Jones,
17

Pytasz o problemy z tym schematem nazewnictwa z powodu DNS, zamiast tego rozważ alfa.

Siekacz 3
źródło
Zadam to samo pytanie na askubuntu i nikt nie może mi odpowiedzieć. Więc
użyję
1

Jak wspomnieli inni ludzie, na pewno chcesz unikać kropek w nazwach hostów z powodu DNS, a także odkryłem, że może to stanowić problem, jeśli używasz certyfikatów wieloznacznych do wykonywania SSL, ponieważ certyfikaty wieloznaczne będą tylko symbole wieloznaczne dla jednego poziomu subdomena. Więc jeśli twój znak zastępczy jest dla * .mojafirma.com, ale masz nazwę hosta, która jest a. Alfa, znak zastępczy może nie działać, jeśli traktuje „alfa” jako poddomenę.

Mitchell Tracy
źródło
1

Pełna nazwa hosta JEST zwykle FQDN wyposażoną w domenę (w pełni kwalifikowana nazwa domeny), aw systemie Linux powinna ona być wyjściowa host --fqdn, przy czym część przed pierwszą kropką jest traktowana jako pseudonim hosta. Jednak różne systemy (Linux, SunOS, cokolwiek) zaimplementowały koncepcję „hostnick” na różne sposoby. Jak na przykład:

  • / etc / hostname zawiera tylko hostnick, a reszta znajduje się w / etc / domainname
  • / etc / hostname zawiera całą nazwę FQDN, a domena również znajduje się w / etc / domainname
  • Nazwa domeny istnieje tylko w konfiguracji YP / NIS
  • Nazwa domeny istnieje tylko w niektórych podsystemach zamiast globalnego systemu
  • (inne, ogólnie bardziej podejrzane podejście)

Ponadto pomysł hostnick jest małą zmienną:

  • Część nazwy FQDN przed pierwszą kropką
  • Część lewej części nazwy FQDN wyrażona wyłącznie bez kropki końcowej
  • Część nazwy FQDN przed rzeczywistą nazwą domeny (jak gdzieś ustawiona)

Aby jeszcze bardziej skomplikować hostsprawę , polecenie bind9-host narusza standardy DNS, ponieważ ma -N <int>opcję kontrolowania, czy używane są domeny wyszukiwania. To przerywa wyszukiwanie DNS na różne sposoby, w zależności od scenariusza. DNS powinien wyszukiwać nazwy z kropką jako dosłownie to, co należy wyszukać, oraz inne nazwy, aby wyszukiwać je za pomocą dołączonych domen od /etc/resolv.confmomentu znalezienia dopasowania lub wszystkich zawiodących (domeny te domyślnie mają kropka). [To z pamięci, proszę o komentarz, jeśli ogólny proces zmienił się w RFC, którego mi brakowało]

W związku z tym, jeśli użyjesz kropek na swoim hostnicku, hostpolecenie prawdopodobnie będzie botować , przerywając skrypty, które używają go do wyszukiwania. Osobiście uważam, że hostjest niezgłębiony, co jest zepsute, i wydaje się, że nawet dzisiaj przerywa wyszukiwanie w systemie w mojej sieci domowej, ponieważ mam zarówno IPv4, jak i -v6 w domu i mam nazwy takie jak .v4. jako dodatkowe, krótkie formularze specyficzne dla wersji, które hostnie pingwyszukują, nawet jeśli są w porządku.

W każdym razie niezwykle rzadko próbowano umieścić kropki na hostnickach, więc nawet bez hostszkód w stosunku do nich zalecałbym trzymanie się kropek na hostnickach nawet z prostej perspektywy semantyki.

Alex North-Keys
źródło
0

Prawidłowa odpowiedź zdecydowanie „nie rób tego”, jak stwierdzono powyżej.

Aby uzyskać jakieś przydatne i zdecydowanie styczne czytanie, kontynuuj:

Czy mówisz o rozdzielczości dns lub wierszu polecenia? Jeśli chcesz naprawić wiersz polecenia, po prostu majstruj przy $ PS1 (lub podobnym odpowiedniku innym niż bash / sh, jeśli dotyczy).

Jeśli naprawdę chcesz, aby a. Alfa była nazwą hosta, która przekształca się w adres IP w interwebach, możesz to zrobić, ale może to wymagać poddomeny dla każdego sufiksu nazwy hosta (EG alfa, beta itd.).

Możliwe jest nawet, że możesz skonfigurować serwer DNS do pracy bez tworzenia poddomen. Możesz podać adres IP serwerów nazw subdomeny w plikach strefy domeny nadrzędnej, aby mogła ona po prostu „działać”. Dzieje się tak, ponieważ gdy ktoś prosi serwer DNS o adres IP a.alpha.examaple.com, pyta serwer DNS na przykład example.com, a jeśli ten serwer DNS już ma adres, odpowie na nie , zamiast próbować przekazać Cię autorytatywnemu serwerowi poddomeny. Może być zajęty brakującym SOA ... więc możesz dodać rekord A dla każdego prefiksu hosta i SOA dla każdego sufiksu hosta. Tak, to jest bilet ...

Wszystko w Internecie nadal będzie myślało, że nazwa hosta to „a”, a domena to alpha.example.com.

Dylan Martin
źródło