7

У меня Windows и Linux машины в одной подсети. Моя конфигурация маршрутизатора правильно сообщает мне как имена их компьютеров, так и их IP-адреса. Однако, когда я пытаюсь пропинговать компьютер с Linux с компьютера с Windows, или пинговать компьютер с Windows с компьютера с Linux, мне нужно использовать IP-адреса, а не имена. Если я проверяю связь с машиной Windows с машины Windows или машиной Linux с машины Linux, имя машины правильно разрешается без каких-либо записей файла hosts.

Почему это?

Я бы подумал, что мой маршрутизатор (D-Link DIR-655) будет действовать как сам DNS-сервер. Я вижу, что у него есть опция под названием "Включить DNS Relay", но из того, что я прочитал, это мне не поможет. Если это уместно, DIR-655 используется для внутреннего трафика, а Netgear DGN1000 моего интернет-провайдера используется в качестве шлюза в Интернет. Он находится в другой подсети, и все мои машины подключаются к моему DIR-655, а не к DGN1000.

Что мне нужно сделать, чтобы имена хостов автоматически разрешались в моей подсети независимо от операционной системы, в которой они работают?

3 ответа3

2

Имена хостов ARP отличаются от имен NetBIOS.

Windows основывается на именах NetBIOS, а Linux основывается на именах хостов.

Ваш маршрутизатор получает имена хостов через ARP / DHCP; да, в Windows тоже есть имена хостов.


Вам нужно, чтобы ваш маршрутизатор размещал имена хостов в его DNS, или вам нужно настроить все файлы hosts.

Если ваш маршрутизатор не поддерживает его, вы можете установить DD-WRT на своем маршрутизаторе и использовать dnsmasq вместе с файлом hosts котором вы будете заполнять хосты. Я бы посчитал, что это в значительной степени обходной путь, вы действительно хотите сделать это, чтобы иметь возможность пинговать? Не ежедневная компьютерная активность ...

2

Я знаю вашу боль, это совершенно безумие, что в 2011 году имена хостов не просто "работают", прямо из коробки.

Другим вариантом является Bonjour. Это технология Apple, но есть реализации для Linux (Avahi) и Windows (Bonjour для Windows). Bonjour позволяет вам получить доступ к другим компьютерам, используя синтаксис:

<hostname>.local

Я пошел с этим решением, потому что у меня нет DD-WRT-совместимого маршрутизатора или постоянно включенного сервера для запуска DNS. Кроме того, после настройки вам не нужно беспокоиться о том, изменяется ли IP, как в случае с файлом hosts.

2

Вам нужен какой-нибудь сервер разрешения имен.

Сначала настройте DNS-сервер, который принимает динамические обновления на одном компьютере со статическим IP-адресом. BIND - очевидный выбор (устанавливается на Windows и Linux), но есть и другие версии Linux, которые работают так же хорошо, как DJBDNS и т.д. Вашему DNS-серверу потребуется перенаправить запросы на DNS-сервер вашего интернет-провайдера или на какой-либо другой общедоступный DNS-сервер. Хорошим доменным именем, которое должно быть достаточно безопасным для использования, является "home.internal". Нет необходимости регистрировать его, и оно не является публичным доменом ... Эта машина, на которую вы устанавливаете DNS, должна быть постоянно включена ...

После того, как это будет настроено, скажите DHCP-серверу вашего reouter выдать IP-адрес DNS-сервера, который вы только что настроили.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .