Skip to main content

Руководство пользователя

Обращение к сетевому устройству по hostname

Вопрос: Можно ли с помощью встроенного DNS-сервера в Keenetic настроить автоматическое сопоставление hostname и IP-адреса в DHCP-запросе? Это нужно для того, чтобы с хостов локальной сети можно было обратиться к любому другому хосту по сетевому имени, а не по IP-адресу, который может меняться при динамическом назначении и при отсутствии привязки к определенному IP. Например, указать в адресной строке проводника Windows '\\server' и увидеть список общих папок на сервере.

Ответ: Да, это можно настроить средствами интернет-центра Keenetic. Данная настройка не касается организации выделенного WINS-сервера, она может быть выполнена с помощью специальных команд роутера из интерфейса командной строки (CLI).

В Keenetic можно включить возможность добавлять статические записи в DNS-прокси при выдаче DHCP-адресов. По умолчанию эта функция отключена. Для включения используется команда:

(config)> ip dhcp pool _WEBADMIN update-dns

где _WEBADMIN — по умолчанию название пула для интерфейса Home, но у пользователя имя может отличаться, если он его ранее менял в системе. Посмотреть точное имя пула можно в файле self-test.txt

И команда для сохранения настроек:

(config)> system configuration save

В этом случае будет возможен доступ к хостам (или терминалам) по hostname, которые заданы по умолчанию. В качестве имени используется имя хоста из DHCP-запроса.

Важно

После включения этой команды, она будет распространяться на вновь подключенные к роутеру устройства по DHCP. Мы рекомендуем перезагрузить роутер по питанию, после выполнения указанной выше настройки.

На компьютере с ОС Windows, перед проверкой обращения к сетевому устройству по имени хоста, выполните команду для очистки кэша DNS (её нужно выполнить в командной строке Windows):

ipconfig /flushdns

После проверьте автоматическое распознавание сетевых имен хостов в локальной сети роутера с помощью команды ping.

Покажем на примере. Предположим, в сети есть компьютер и ноутбук, на которых соответственно используются имена хостов 'PC' и 'Notebook' (например, в вашей сети это может быть сервер с hostname 'SERVER'). Выполним включение в роутере указанной выше команды и перезагрузим устройство. С ноутбука выполним команду ping pc для пинга компьютера.

hostname-01-en.png

Указав в адресной строке Проводника Windows адрес \\pc, можно будет увидеть список общедоступных сетевых ресурсов.

hostname-02-en.png

Теперь с компьютера выполним командой ping notebook пинг ноутбука.

hostname-03-en.png

Как мы видим, автоматически срабатывает сопоставление hostname и IP-адреса.

Помимо включения механизма сопоставления hostname и IP-адреса в DHCP-запросе, можно настроить автоматическое присвоение хостам локальной сети определенного имени домена в DHCP-запросах. Подробная информация представлена в инструкции 'Настройка DHCP Option 15'.

Важно

Keenetic отрабатывает доступ по параметру hostname. В веб-интерфейсе на странице Список клиентов можно задать и изменить другой параметр — name. В CLI роутера по команде show ip dhcp bindings _WEBADMIN видно, что это два разных поля:

hostname-04-en.png
hostname-05-en.png

Когда хост регистрируется в Списке клиентов, то поле hostname копируется в name и они в этом случае одинаковые. Но как только пользователь меняет название хоста на странице Список клиентов, это изменение записывается в поле name и по этому имени не будет сопоставления доменного имени и IP-адреса. Потребуется в CLI добавлять ещё одну запись DNS нужному хосту с помощью команды ip host или изменить параметр hostname непосредственно на хосте.

Если не задано имя на хосте или терминале по умолчанию, то можно задать его в Keenetic с помощью команды ip host.

Для этого нужно сделать следующее:

Зарегистрировать на интернет-центре и присвоить постоянный IP-адрес необходимому хосту. Регистрацию можно выполнить в веб-интерфейсе на странице Список клиентов. После регистрации указанное устройство будет постоянно получать один и тот же IP-адрес от интернет-центра.

Далее подключиться к интерфейсу командной строки (CLI) роутера и выполнить следующие команды:

(config)> ip host <host_domain_name> <address>
(config)> system configuration save

Доменное имя хоста рекомендуем указать в формате доменных имен 2-го уровня* в виде localhost.localdomain (например: my.comp, test.local, host.test, pc.example).

(config)> ip host my.comp 192.168.1.33
Dns::Manager: Added static record for "my.comp", address 192.168.1.33.
(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...

С помощью указанных команд мы добавили доменное имя хоста и IP-адрес в таблицу DNS на роутере. В нашем примере my.comp — доменное имя хоста с IP-адресом 192.168.1.33.

Подсказка

* — Рекомендация в команде ip host использовать имя хоста в формате доменных имен 2-го уровня связана с особенностью работы ОС Windows. При обращении к доменным именам 1-го уровня система отправляет LLMNR (Link-Local Multicast Name Resolution) запрос или NBNS (NetBIOS Name Service) в случае отключения LLMNR, и при проверке связи пингом хост не будет обнаружен. Поэтому для корректной работы в Windows рекомендуется использовать доменные имена 2-го уровня в записях ip host.

Теперь в локальной сети интернет-центра Keenetic можно будет обращаться к нужному хосту/терминалу по доменному имени.

Выполним пинг хоста по доменному имени в ОС Windows:

C:\Users\User> ping -n 5 my.comp

Pinging my.host [192.168.1.33] with 32 bytes of data:
Reply from 192.168.1.33: bytes=32 time=57ms TTL=64
Reply from 192.168.1.33: bytes=32 time=5ms TTL=64
Reply from 192.168.1.33: bytes=32 time=5ms TTL=64
Reply from 192.168.1.33: bytes=32 time=83ms TTL=64
Reply from 192.168.1.33: bytes=32 time=5ms TTL=64

Ping statistics for 192.168.1.33:
    Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 5ms, Maximum = 83ms, Average = 31ms

Выполним пинг хоста по доменному имени в ОС Linux:

[comp@comp-lnx ~]$ ping -c 5 my.comp
PING my.host (192.168.1.33) 56(84) bytes of data.
64 bytes from 192.168.1.33 (192.168.1.33): icmp_seq=1 ttl=128 time=0.342 ms
64 bytes from 192.168.1.33 (192.168.1.33): icmp_seq=2 ttl=128 time=0.508 ms
64 bytes from 192.168.1.33 (192.168.1.33): icmp_seq=3 ttl=128 time=0.331 ms
64 bytes from 192.168.1.33 (192.168.1.33): icmp_seq=4 ttl=128 time=0.427 ms
64 bytes from 192.168.1.33 (192.168.1.33): icmp_seq=5 ttl=128 time=0.414 ms

--- my.host ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 56ms
rtt min/avg/max/mdev = 0.331/0.404/0.508/0.066 ms

Важно

Если до хоста не доходят пакеты ICMP Echo-Request в утилите Ping, необходимо проверить настройку разрешающего правила фильтрации брандмауэра (firewall) на стороне хоста для протокола ICMP (Internet Control Message Protocol).

Данная схема будет работать только в том случае, если на хостах локальной сети в качестве предпочитаемого DNS-сервера установлен IP-адрес интернет-центра Keenetic.

В интернет-центрах Keenetic можно добавить до 64 записей с помощью команды ip host.

Посмотреть все статические dns-записи команды ip host можно в системном файле конфигурации роутера startup-config.txt или по команде show dns-proxy (при выводе этой команды отображается много другой информации, помимо статических dns-записей).