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


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.