Есть маршрутизатор на Arch Linux, dnsmasq настроен как dhcp и кэширующий dns-сервер. В /etc/hosts и /etc/hostname прописал имя "router".
С виндовой машины по этому имени не пингуется ("При проверке связи не удалось обнаружить узел router").
Команда ping -a 192.168.0.1 выводит имя router.localdomain; и по этому полному имени пинги тоже ходят.
Но для пинга других машин в сети достаточно короткого имени (например, server).
Сейчас добавил в dnsmasq.conf строки:
expand-hosts
domain=mydomain
Ничего не изменилось:
ping router - ошибка
ping -a 192.168.0.1 - router.mydomain
ping server - идет обмен с узлом server
ping -a 192.168.0.5 - идет обмен с узлом server.mydomain
Т.е. для "третьего" компа в сети идут пинги и по короткому имени по длинному, а к роутеру - только по длинному (помимо ip-адреса).
На router'е в hosts были перечислены все машины сети с полными и короткими именами. Пробовал удалять из файла все узлы, кроме самого router - не помогло.
На виндовой машине hosts пустой.
На машине server стоит debian и вот она спокойно пингует router и по короткому имени.
Также на виндовой машине после подключения к рабочей vpn-сети (Cisco Systems VPN Client) (да, в общем, к любым vpn-сетям) перестают работать сетевые диски, подключенные с помощью короткого имени server. Указание полного имени позволяет зайти в расшаренный ресурс. После перезагрузки всё восстанавливается.
Подскажите, пожалуйста, можно ли как-то настроить router или эту виндовую машину, чтобы было достаточно короткого имени и vpn не мешал обращаться по коротким именам?
С выключенным dnsmasq команда ping server работает, видимо сам server "умеет" овтетить за себя.
Дописал в настройках сетевого подключения на виндовой машине dns-суффикс localdomain. Теперь при любом пинге он дописывает имя до полного, т.е. ping router заработала. Т.е. проблема решена. Сам спросил - сам ответил :)
Но можно ли решить её на стороне router'а?
Олег: Каким образом router может отвечать?
Такого корневого домена как router нет, поэтому Windows автоматически будет пробовать искать не доменное имя DNS а доменное имя Windows-домена (router.localdomain).
Как бы короткие имена Windows сам по себе не любит, и на самом деле ищет машину в том домене, в котором у вас прописан DNS-suffix
Возможно у server есть суффикс из вашего локального домена, поэтому находит.
Возможно он засветился в Wins
Если в винде написать ping name, он автоматом к name допишет dns суффикс по умолчанию.
Сергей: Да, стоит. А на роутере - нет.
Я все-таки не понял фразу: "Windows автоматически будет пробовать искать не доменное имя DNS а доменное имя Windows-домена". В чем разница?
DNS и NetBIOS имена.
Изначально Windows разрабатывала свою службу каталогов NetBIOS. Но со времен перехода на Active Directory стала пользоваться DNS. Тем не менее NetBIOS не был выкинут, а поддерживается парралельно для обратной совместимости. Ну и свои разработки выкидывать не хочется.
Поэтому, например, есть файл hosts и lmhosts
Windows машины доступны по \\server - тут как раз идет обращение через NetBIOS имя - они как раз короткие.
Сергей: Спасибо за разъяснения. А можно ли как-то заставить DNS/DHCP-сервер сообщать клиентам dns-суффикс, чтобы руками его не прописывать в настройках сети на каждой Windows-машине? Может за это отвечает опция expand-hosts в dnsmasq'е и мне следовало сделать на windows-машинах ipconfig /renew для принудительного обновления dhcp-настроек?