Как разрешить локальное доменное имя?


21

Мой маршрутизатор Belkin имеет опцию для установки локального доменного имени, которое, я подозреваю, позволяет мне обращаться к хостам в моей собственной сети, используя этот домен. По умолчанию это «Белкин».

Можно ли так называть хосты в моей сети, например ping foobar.belkinвместо ping 192.168.2.4?

Дело в том, что моя внутренняя страница маршрутизаторов показывает все установленные имена хостов ( dhclientкажется, что работает), а сам маршрутизатор доступен router.belkin, но других хостов нет.

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

Примечание: Nmap показало, что порт udp / 53 для DNS открыт на моем маршрутизаторе, но я не могу найти способ настроить его через веб-интерфейс.

Добавить: // Это "Belkin F7D3302 v1"


Ну, а вы можете пинговать локальных клиентов по IP?
— М.Беннетт

Да, без проблем
— МечМК1

Хотя я могу подключиться к своему FRITZ! Box http://fritz.box, я получаю доступ к другим машинам в сети, используя .localвместо .box. Раньше с другим модемом / роутером было .lan.
— Арджан

Я думаю, что мы все опередили себя, отвечая на этот вопрос, фактически не зная, какой продукт Belkin используется. Какую модель роутера вы используете?
— Квилсон

Ответы:


11

Как правило, маршрутизатор не будет действовать как DNS-сервер, но он часто будет действовать как DNS-прокси. То есть в DHCP они будут выдавать свой собственный IP-адрес в качестве DNS-сервера, а затем развернутся и поразят настоящие DNS-серверы. Если он делает это, то я думаю, что вы могли бы разрешить эти местные, .belkin, имена.

Проверьте ipconfig / all и посмотрите, имеют ли шлюз по умолчанию и DHCP-сервер одинаковые IP-адреса. Если нет, то введите nslookup, затем введите «сервер ROUTER_IP» в запросе и попробуйте выполнить поиск на google.com. Если это работает, то, вероятно, в маршрутизаторе есть настройка, чтобы он давал свой собственный IP-адрес в качестве DNS-сервера, который не проверен.


14

Если на компьютерах в вашей локальной сети установлена относительно современная операционная система, вы можете получить к ним доступ, добавив «.local» к имени хоста, например:

ping MACHINE_NAME.local

Чтобы получить имя с данного IP, используйте

avahi-resolve-address MACHINE_IP

Чтобы увидеть все подключенные имена компьютеров и IP-адреса в локальной сети, используйте что-то вроде этой команды BASH:

px-lan-scan () {
    LOCAL_MASK=$(ip -o -4 addr show | awk -F '[ /]+' '/global/ {print $4}' | cut -d. -f1,2,3)
    GATEWAY=$(route -n | \grep '^0.0.0.0' | awk '{print $2}')
    if [ $1 ] ; then range=$1 ; else range="10" ; fi

    for num in $(seq 1 ${range}) ; do
        IP=$LOCAL_MASK.$num
        if [[ $IP == $GATEWAY ]] ; then MACHINE="gateway" ; else MACHINE=$(avahi-resolve-address $IP 2>/dev/null | sed -e :a -e "s/$IP//g;s/\.[^>]*$//g;s/^[ \t]*//") ; fi
        ping -c 1 $IP>/dev/null
        if [ $? -eq 0 ] ; then
            echo -e "UP    $IP \t ($MACHINE)" ; else
            echo -e "DOWN  $IP"
        fi
    done
}

1

Конечно, это то, что я делаю со своим роутером дома.

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

Вы должны заставить каждого клиента использовать маршрутизатор для своих DNS-запросов, которые они, скорее всего, будут использовать, если вы также используете DHCP.


Мой маршрутизатор является сервером DHCP, но я не уверен, что он может служить сервером DNS. По крайней мере, я не нашел такой вариант
— MechMK1

Я был бы удивлен, если бы не мог, если честно. Я использую роутер asus, но с прошивкой ddwrt. Я уверен, что он может сделать это из коробки, хотя.
— Sirex

Я немного
— погуглил

@Sirex Я думаю, что ключевое отличие здесь заключается в том, что маршрутизатор ASUS использует DDWRT для своей прошивки. Это программное обеспечение, как и OpenWRT, хорошо известно тем, что оно предоставляет отличные функции, которые можно ожидать от маршрутизатора
— b01

1

Краткий ответ (по большей части) нет. Ваш роутер (в большинстве случаев) не является DNS-сервером. Однако вы можете установить статические записи для всех ваших устройств, а затем добавить их в список хостов на указанных устройствах.

Belkin F7D3302 не поддерживает обслуживание DNS.


Вы вполне можете быть правы, но все модемы / маршрутизаторы домашнего уровня, которые я использовал (например, SpeedTouch, FRITZ! Box), поставлялись с некоторым встроенным DNS-сервером. (Или, по крайней мере, я всегда мог использовать имена компьютеров, а не какой-нибудь IP-адрес.)
— Arjan

Ну, Дэвид использует Белкин. Он упомянул, что он не видит места для настройки параметров DNS в маршрутизаторе. Мой ответ был основан на предположении (сформированном предоставленной информацией), что этот маршрутизатор не будет управлять DNS.
— Квилсон

Да, это работает, но это наиболее нежелательный вариант, так как его очень сложно поддерживать. И если маршрутизатор меняет любой из IP-адресов, он ломается.
— b01

1

У меня была точно такая же проблема.

Кажется, проблема в том, что если вы попытаетесь обратиться к имени локального хоста, маршрутизатор автоматически добавит «.belkin», предполагая, что belkin - это то, что вы указали в качестве имени локального домена. Изменение его на другое не решит проблему, и вы не можете оставить это поле пустым.

Как сказал выше xaccrocheur, большинство современных ОС получат доступ к большинству вещей, добавив .local. Итак ... Я сделал своего рода обходной путь, который хорошо работает с большинством моих машин. Я изменил настройки локального доменного имени на маршрутизаторе на локальный

Теперь я могу получить доступ к большинству устройств только по имени хоста


0

Установите и настройте DNS-сервер в локальной сети, зарегистрируйте его на всех хостах, сначала введите внутренний DNS-сервер в списке DNS-серверов на маршрутизаторе Belkin. Тогда у тебя будет то, что ты хочешь.


1
Я хотел бы уважительно не согласиться с вашим ответом. Размещение DNS-сервера в сети было бы решением, но, учитывая тот факт, что вопрос Дэвида является специфическим для достижения DNS через маршрутизатор, это не является приемлемым ответом.
— Квилсон

@Qwilson Великолепно. Где же тогда нужно хранить и находить DNS-записи для локального устройства?
— STTR

Для (большинства) локальных устройств будет файл хоста для внутренних записей и выделенный сервер для внешних записей (например, 8.8.8.8).
— Квилсон

0

Хотя я не предлагаю этого делать, это даст вам желаемый результат (возможность пинговать локальные имена хостов без установки отдельного DNS-сервера)

  1. На основном компьютере перейдите в C: \ Windows \ System32 \ drivers \ etc
  2. откройте файл hosts с помощью блокнота
  3. прокрутите до конца файла hosts
  4. добавьте новую строку ниже последней закомментированной строки в файле, которая выглядит следующим образом

192.168.2.1 router.belkin

192.168.2.2 имя хоста

192.168.2.3 hostname2

Сохраните файл hosts.

Теперь попробуйте пинговать hostname и hostname2, вы должны увидеть следующее

ping hostname2

Pinging hostname2 [192.168.2.3] with 32 bytes of data:

ping hostname

Pinging hostname2 [192.168.2.2] with 32 bytes of data:

Опять же, я бы так не поступил. Я бы сам решил настроить DNS-сервер, но если у вас нет такой опции, это быстрая и грязная альтернатива.

О, не забудьте, если вы планируете это сделать, добавьте себя в разрешения безопасности для файла hosts, чтобы вы могли записать в файл. Также не забудьте скопировать этот файл хостов на все остальные машины в вашей сети.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.