Как настроить локальное доменное имя (.home)?

Как настроить локальное доменное имя (.home)?

Предположим, у меня есть два компьютера с именами хостов pc1и pc2в моей локальной сети 10.0.0.0/24. Мой маршрутизатор имеет IP-адрес 10.0.0.138и в его инструкциях указано, что он также доступен по адресу modem.home, что я и попробовал, и это правда.

Я хочу подключиться из pc1к pc2через ssh и использовать его имя хоста, а не его ip для этого. Однако, hostкоманда под linux дает мне этот результат при использовании ip-адреса pc2:

host 10.0.0.53
Host 53.0.0.10.in-addr.arpa not found: 2(SERVFAIL)

Я попытался провести исследование того, что это значит, и мне кажется, там говорится следующее.

Теперь мои вопросы:

  1. Что такое .homeдомен? Он обычный или его просто настраивает мой роутер?
  2. Как мне добавить мои компьютеры (Linux) в этот домен, чтобы иметь возможность получить имена хостов других устройств (в локальной сети)?

решение1

Что такое домен .home? Он обычный или его просто настраивает мой роутер?

Это просто то, что настраивает ваш маршрутизатор.

Как и многие маршрутизаторы, он внутри запускает DNS-кэш/прокси и объявляет себя DNS-сервером во всех ответах DHCP. DNS-прокси маршрутизатора настроен на обслуживание *.homeимен из локальной конфигурации вместо пересылки запросов в DNS провайдера. (Вы можете найти эту функцию в dnsmasq, если планируете создать свою собственную.)

Имя маршрутизатора modem.homeопределено статически, чтобы всегда возвращать свой собственный IP-адрес, но другие *.homeподдомены обычно считываются из базы данных аренды DHCP-сервера.

Как мне добавить мои компьютеры (Linux) в этот домен, чтобы иметь возможность получить имена хостов других устройств (в локальной сети)?

Убедитесь, что ваши компьютеры используют DHCP и что их клиенты DHCP всегда заполняют опцию «Имя хоста» (12) в запросах. Например, если компьютер используетdhclient, добавьте send host-name = gethostname();в его конфигурацию.

решение2

Что такое .homeдомен? Он обычный или его просто настраивает мой роутер?

Пока.домаи.домой.arpaопределены для определенных целей, .homeдомен, похоже, в настоящее время не существует (насколько мне известно). Тем не менее,RFC для .home.arpaпримечания:

Протокол управления домашней сетью (HNCP) обновлен для использования домена «home.arpa.» вместо «.home».

Так что, похоже, в этом случае есть вероятность, что .homeон предназначался для использования сHNCPустройства, способные, например, осуществлять автоматическое обнаружение, настройку и т. д. Но это всего лишь предположение.

Как мне добавить мои компьютеры (Linux) в этот домен, чтобы иметь возможность получить имена хостов других устройств (в локальной сети)?

Возможно, вам стоит проверить настройки маршрутизатора, чтобы узнать, есть ли у него возможность добавлять дополнительные имена хостов и IP-адреса для локального разрешения.

В противном случае, как подробно описано в другом ответе на этот вопрос, самым простым методом будет использование файла hostsна каждом ПК для определения сопоставлений имени хоста и IP-адреса:

напр. hosts(ПК 1 → 10.0.0.10)

10.0.0.20        pc2.home

напр. hosts(ПК 2 → 10.0.0.20)

10.0.0.10        pc1.home

Файл hostsобычно находится /etc/hostsв Linux/MacOS и C:\windows\system32\drivers\etc\hostsWindows.

Обратите внимание: если у вас возникли проблемы с использованием hostsфайла в Linux, вам может потребоваться отредактировать его /etc/nsswitch.confи убедиться, что filesзапись находится первой в списке hosts:.

Другие варианты

Локальный DNS-сервер

Не зная всех подробностей о вашем маршрутизаторе, (теоретически) вы можете просто настроить локальный DNS-сервер для обслуживания .homeдоменов.

По сути, вам необходимо:

  1. Назначьте ПК в качестве DNS-сервера. Это может быть любой ПК в вашей сети, но он должен быть постоянно доступен (оставлен постоянно включенным) для разрешения DNS.

  2. Установите программное обеспечение DNS-сервера на этот ПК (например,СВЯЗЫВАТЬ,Dnsmasq, и т. д.)

  3. Настройте программное обеспечение DNS-сервера для:

    • Распознавать, например, pc1.homeчерез pc2.homeотдельные файлы зон с соответствующими сопоставлениями IP-адресов (вероятно, лучший вариант).

    или

    • Разрешите весь .homeдомен и добавьте, например, pc1.homeи pc2.homeв этот файл зоны с соответствующими сопоставлениями IP-адресов (вероятно, не лучший вариант).

    • Все остальные запросы отправляйте наверх (например, на DNS-серверы вашего интернет-провайдера).

  4. Направьте свой маршрутизатор на ваш DNS-сервер для разрешения DNS (в настройках адреса сервера доменных имен (DNS) маршрутизатора). Вероятно, вам также потребуется перенаправить порты 53 и 953 на DNS-сервер.

.локальные домены

Если вы не привязаны к домену .home, .localобычно используется дляmDNS (ZeroConf) DNS. СогласноСтатья в Википедии о многоадресной DNS (mDNS):

В компьютерных сетях протокол многоадресной DNS (mDNS) разрешает имена хостов в IP-адреса в небольших сетях, которые не включают локальный сервер имен. Это служба нулевой конфигурации, использующая по сути те же программные интерфейсы, форматы пакетов и операционную семантику, что и одноадресная система доменных имен (DNS).

mDNS часто доступен в различных дистрибутивах Linux черезавахи.

решение3

Для двух компьютеров, по моему мнению, вам не нужен домен. Настройте имя другого компьютера в локальном файле HOSTS. Сделайте это для каждого компьютера. Затем вы можете обращаться к компьютерам по имени.

Локальный файл hosts находится здесь: https://www.makeuseof.com/tag/modify-manage-hosts-file-linux/

Связанный контент