Чи можу я мати точки в імені хоста?


23

Я використовую такі імена, як a.alpha, для імені хоста мого вікна linux, але здається, що ці назви не є повністю використаними. Відповідь команди оболонки імені хоста правильна (a.alpha). Але назва, надрукована після мого облікового запису користувача, - "user @ a" замість "user@a.alpha". Коли я використовую avahi, я можу досягти (по імені хоста) a.alpha, але не b.alpha. Це нормально?

Відповіді:


23

Чоппер має рацію. Завдяки тому, як працює DNS, "альфа" компонент "a.alpha" вважається дискретним "міткою" в DNS. Використання імені хоста з крапкою в ньому призведе до несуперечливих результатів будь-якої системи, яка споживає DNS.

Avahi дійсно взаємодіє з іменами DNS, і конкретно <host-name>директива повинна мати в собі DNS FQDN служби, тому вона також підпадає під невідповідність DNS пунктирним іменам.

Не використовуйте пунктирне ім’я.


Це правильно, але потрібні посилання, щоб вважатись надійною відповіддю. Хтось каже: "Завдяки тому, як працює DNS" у стеці Overflow нічого не підтверджує.
mikemaccana

Чи є жорстким правилом, що ім'я хоста не може містити "." ?
Дінеш Кумар P

1
@DineshKumarP Так. DNS RFC описують символ періоду як роздільник між мітками DNS. Хоча послуги, що не належать до DNS, такі як Avahi або SLP, можуть це дозволити, сам DNS цього не робить.
sysadmin1138

Це не зовсім правильно. DNS із задоволенням дає точки в мітках, хоча він пропонує відповідати обмеженому синтаксису ("правило LDH"; див. Tools.ietf.org/html/rfc1035#section-2.3.1 ). Застосування DNS - наприклад, зберігання імен хостів у DNS - вступають у дію обмеження на синтаксис міток DNS.
Тоні Гарнок-Джонс

17

Ви запитуєте проблеми з цією схемою іменування через DNS, замість цього розгляньте a-alpha.


Я буду задавати те саме питання на askubuntu, і ніхто більше не може відповісти мені. Тому я буду використовувати цей метод
benzen

1

Як вже згадували інші люди, ви, безумовно, хочете уникати крапок у своїх іменах хостів через DNS, і я також виявив, що це може створити проблему, якщо ви використовуєте сертифікати wildcard для виконання SSL, оскільки сертифікати wildcard дозволять використовувати лише wildcard для одного рівня субдомен. Отже, якщо ваш wildcard cert призначений для * .mycompany.com, але у вас є ім'я хоста, яке є a.alpha, cert wildcard може не працювати, якщо він розглядає "альфа" як субдомен.


1

Повне ім'я хоста IS, як правило, оснащене доменом FQDN (повністю кваліфіковане ім'я домену), а в Linux має в кінцевому підсумку бути результатом host --fqdn, причому частина перед першою крапкою вважатиметься прізвиськом хоста. Однак різні системи (Linux, SunOS і все, що завгодно) реалізували концепцію "hostnick" різними способами. Як от:

  • / etc / hostname містить лише хост-нік, а решта - у / etc / domainname
  • / etc / hostname містить весь FQDN, а домен також у / etc / domainname
  • Ім’я домену існує лише в конфігурації YP / NIS
  • Ім’я домену існує лише в певних підсистемах, а не є глобальною системою
  • (інші, як правило, більш дивні підходи)

Крім того, ідея hostnick є невеликою змінною:

  • Частина FQDN перед першою крапкою
  • Деяка частина лівої частини FQDN, виражена виключно без кінцевої крапки
  • Частина FQDN перед фактичним доменним іменем (як встановлено десь)

І, щоб ще більше ускладнити речі, hostкоманда від bind9-хоста порушує стандарти DNS, маючи -N <int>можливість контролювати, чи використовуються пошукові домени чи ні. Це розбиває пошук DNS різними способами залежно від сценарію. DNS повинен приймати будь-який пошук імені з кінцевою крапкою як буквально на те, що шукати, а для інших імен шукати їх з доданими доменами до /etc/resolv.confтих пір, поки не буде знайдено збіг або вони не завершаться (ці домени неявно мають кінцева крапка). [Це з пам'яті, будь ласка, прокоментуйте, якщо загальний процес змінився в RFC, який я пропустив]

Таким чином, якщо ви використовуєте крапки у своєму hostnick, hostкоманда, ймовірно, буде виконувати річ, порушуючи скрипти, які використовують її для пошуку. Мені особисто здається, що hostце неможливо зламати , і, здається, навіть сьогодні порушується пошук у системі в моїй домашній мережі, оскільки в мене вдома є і IPv4, і -v6, і такі імена, як .v4. як додаткові, конкретні для версії короткі форми, які hostне вдається шукати, хоча вони pingвважають їх просто чудовими.

Було надзвичайно рідко намагатися вводити крапки в хост-книжки, так що навіть не маючи hostпошкодження, я б рекомендував дотримуватися безликих хост-книжок навіть з точки зору простої семантики.


0

Правильна відповідь, безумовно, "не роби цього", як зазначено вище.

Щоб прочитати, можливо, корисне і напевно дотичне читання, будь ласка, продовжуйте:

Ви говорите про дозвіл dns або про ваш командний рядок? Якщо ви хочете виправити командний рядок, просто знайдіть $ PS1 (або подібний еквівалент не bash / sh, де це можливо).

Якщо ви дійсно хочете, щоб a.alpha було іменем хоста, яке визначає IP-адресу на інтерв'ю, ви можете це зробити, але це може включати піддомен для кожного суфікса імені хоста (EG-альфа, бета-версія тощо).

Можливо навіть, що ви могли налаштувати свій DNS-сервер на роботу без створення субдоменів. Ви можете обслуговувати IP-адресу серверів імен субдомену в файлах зон батьківського домену, тому це може "просто працювати". Це тому, що коли хтось запитує у вашого DNS-сервера IP-адресу a.alpha.examaple.com, він запитує DNS-сервер для example.com, і якщо на цьому сервері DNS вже вказана адреса, він відповість відповіддю , а не намагатися здати вас на авторитетний сервер піддомену. Це може загорнутись навколо відсутнього SOA ... тому, можливо, ви додасте запис A для кожного префікса хоста та SOA для кожного суфікса хосту. Так, це квиток ...

Все в Інтернеті все ще буде вважати, що ваше ім’я хоста - це "a", а ваш домен - alpha.example.com.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.