Разрешение DNS локальных клиентов (DHCP), UniFi Network
grahamrb
Guest
15.10.2016 04:45:00
Интересно, есть ли у кого-то ещё такая проблема с их USG после обновления на 5.2.7 или 5.2.9... Раньше, до этих точечных обновлений, когда клиент подключался к USG и получал IP-адрес от DHCP-сервера, этот клиент становился доступен для локального разрешения через DNS-сервер. То есть, если сервер с именем «fred» подключался к USG и получал IP 192.168.1.11, то я мог просто использовать имя «fred», чтобы получить этот IP-адрес. Кто-нибудь ещё сталкивался с этим? Кто-нибудь нашёл решение? К слову, было бы здорово иметь возможность задавать домен для всех устройств, подключённых к USG. Я нашёл пару инструкций, как сделать это через конфигурационные файлы (сам пока не пробовал), но это, кажется, простая штука для добавления в интерфейс — да и есть на большинстве домашних роутеров.
Извиняюсь за длину... Во-первых, хочу поблагодарить @UBNT-cmb за то, что снова включился в обсуждение этой темы на форуме. Очевидно, что это проблема, с которой сталкиваются многие, и нам просто хочется понять, как её решить. Когда официальный представитель UBNT пишет, это даёт вашим клиентам ощущение, что вы активно работаете над решением. Открытость в этом вопросе способствует пониманию и лояльности со стороны пользователей. Если вы вовлечены, не может случиться ничего, кроме хорошего — может, нам и не понравятся ответы, но хотя бы они будут, а это уже приближает понимание.
Во-вторых, спасибо @jchappell за отличную работу по устранению неполадок! Полагаю, тебе удалось сделать большие шаги в разборе этой проблемы и помочь UBNT с решением.
Хочу прокомментировать заявление от @UBNT-cmb: «Нет, всё произошло именно так, как я описал. Это касалось изначальной темы ветки — отключения регистрации DNS для DHCP-имён хостов. Вы же притянули сюда совсем другой вопрос, о котором я не говорил, кроме того, что его добавили в версии 5.5.x». Они не правы, эти вещи связаны, может быть, не у вас в голове, но в головах ваших клиентов — точно. Главная проблема — чтобы локальный DNS работал корректно (название темы: «DNS разрешение локальных клиентов (DHCP)»). Хосты получают IP с DHCP-сервера, после чего записываются в DNS (и/или в hosts-файл), чтобы другие устройства могли их находить (добавляя домен по умолчанию, если нужно). Если любой шаг этого процесса ломается, весь механизм кажется сломанным, ведь итог — DNS-резолвинг — не работает. Так что, хотя эта тема началась с регистрации DHCP-хостов, цель этого процесса — дать возможность находить их по FQDN и/или по имени хоста в DNS. История началась с вашего сообщения: «Это было ошибочно отключено по умолчанию. Я подал правку, чтобы вернуть прежнее поведение, и в следующем релизе контроллера оно будет снова включено». Это было ответом на вопрос @grahamrb, почему перестал работать DNS-резолвинг. Было принято (хотя и ошибочно), что «это» всё исправит. Но не исправило. Отсюда и длина обсуждения.
Другая ветка по этой теме (Правильный DNS-резолвинг локальных имён) находится здесь: . Благодаря разбору проблемы другим нашим клиентом, похоже, мы близки к выявлению причины и, возможно, к постоянному исправлению.
Когда я смотрю файл /etc/hosts на своём USG, вижу смешанную картину:
Несколько хостов записаны только с MAC-адресом как именем (см. ниже). Некоторые указаны с «именем хоста». Те, что с «именем хоста», показывают изначально обнаруженное имя, а не то, которое я менял через интерфейс USG (например, «iPhone-7-Plus», а не то, что задано в клиентском алиасе — «iphone-7plus»). Для хостов, где вместо имени просто MAC, никакой закономерности не вижу. Примеры: принтер HP OfficeJet, Apple TV, UBNT CloudKey, NextSAN Transporter, Mac mini и прочие. Все они — с локальными именами без пробелов. Единственные хосты, у которых всё кажется правильным — мои Linux-системы. В моей сети вообще нет Windows-машин.
Для ВСЕХ хостов в /etc/hosts DNS-резолвинг с MacBook Pro работает по коротким именам (я даже могу использовать MAC-адреса). К сожалению, ни одно имя не совпадает с тем, которое я задавал, поэтому реально использовать имена невозможно, так как я не знаю, как они там зарегистрированы... Возможно, именно в этом и кроется часть проблемы. Ожидается, что если я задал алиас, то он и будет зарегистрированным именем, но этого, похоже, не происходит. Кроме того, в /etc/hosts отсутствует много хостов.
Это приводит меня к другому наблюдению... Давно заметил, что интерфейс «Клиенты» в UniFi UI Controller как бы «теряет» хосты. У меня около сотни хостов (76 по файлу /config/dhcpd.leases), а в интерфейсе Клиенты показывается только 33. При сравнении клиентов из интерфейса с /etc/hosts файлом они примерно совпадают. Похоже, что хосты исчезают из интерфейса Клиенты и затем удаляются из /etc/hosts... логично? Мне бы хотелось, чтобы в Клиентах появлялись ВСЕ когда-либо виденные хосты, даже если давно от них не было связи (минимум — если они есть в dhcpd.leases, то должны оставаться в DNS).