17

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

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

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

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

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

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

7 ответов7

11

Если на компьютерах в вашей локальной сети установлена относительно современная операционная система, вы можете получить к ним доступ, добавив «.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
}
8

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

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

1

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

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

1

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

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

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

1

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

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

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

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

0

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

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, чтобы вы могли записать в файл. Также не забудьте скопировать этот файл hosts на все остальные машины в вашей сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .