Предположим, у меня есть два компьютера с именами хостов 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)
Я попытался провести исследование того, что это значит, и мне кажется, там говорится следующее.
Теперь мои вопросы:
- Что такое
.home
домен? Он обычный или его просто настраивает мой роутер? - Как мне добавить мои компьютеры (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\hosts
Windows.
Обратите внимание: если у вас возникли проблемы с использованием hosts
файла в Linux, вам может потребоваться отредактировать его /etc/nsswitch.conf
и убедиться, что files
запись находится первой в списке hosts:
.
Другие варианты
Локальный DNS-сервер
Не зная всех подробностей о вашем маршрутизаторе, (теоретически) вы можете просто настроить локальный DNS-сервер для обслуживания .home
доменов.
По сути, вам необходимо:
Назначьте ПК в качестве DNS-сервера. Это может быть любой ПК в вашей сети, но он должен быть постоянно доступен (оставлен постоянно включенным) для разрешения DNS.
Установите программное обеспечение DNS-сервера на этот ПК (например,СВЯЗЫВАТЬ,Dnsmasq, и т. д.)
Настройте программное обеспечение DNS-сервера для:
- Распознавать, например,
pc1.home
черезpc2.home
отдельные файлы зон с соответствующими сопоставлениями IP-адресов (вероятно, лучший вариант).
или
Разрешите весь
.home
домен и добавьте, например,pc1.home
иpc2.home
в этот файл зоны с соответствующими сопоставлениями IP-адресов (вероятно, не лучший вариант).Все остальные запросы отправляйте наверх (например, на DNS-серверы вашего интернет-провайдера).
- Распознавать, например,
Направьте свой маршрутизатор на ваш 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/