Нет маршрута к хосту после изменения интерфейса на статический IP [закрыто]

Я установил сервер Linux (Ubuntu) в своей домашней локальной сети, изначально он автоматически настроен для использования интерфейса DHCP.Я подключаюсь к этому серверу с другого компьютера, используя имя хоста этого сервера. Все в порядке, мой маршрутизатор настроен на использование DHCP в моей домашней сети и автоматически присваивает IP-адреса каждому компьютеру. Но когда я подключаюсь к этому хосту с помощью SSH, он предупреждает меня, что я должен принимать отпечаток пальца с каждого недавно назначенного IP-адреса сервера, и это немного раздражает. Поэтому я настроил его на использование статической IP-адресации, отредактировав файл / etc / network / interfaces следующим образом:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 iface eth0 inet static

address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1

Все работает хорошо, за исключением того, что я не могу подключиться к этому серверу, используя его имя хоста. Во время проверки связи я вижу, что он маршрутизируется на последний назначенный IP-адрес, который был динамически предоставлен DHCP, и, конечно же, Destination Host is Unreachable . Я знаю, что могу жестко закодировать его в моем файле / etc / hosts , но я хочу знать - почему он хорошо работает с DHCP, а не со статическим. Видимо, я чего-то не понимаю. Заранее спасибо!

-2
задан 11 December 2012 в 20:51
3 ответа

Ваш маршрутизатор, вероятно, действует как DNS-сервер для локальной сети, раздающий информацию об узлах, получивших адрес через DHCP. Или, другими словами, при обработке запроса DHCP маршрутизатор динамически обновляет локальную базу данных DNS. DNSMasq - это обычный DHCP + DNS-сервер на маршрутизаторах, который делает это.

Устанавливая статический адрес, вы фактически лишаете маршрутизатор информации, необходимой для ответа на запросы DNS о вашем хосте.

Если возможно, вам следует установить резервирование DHCP в вашем маршрутизаторе, а не устанавливать статический адрес. Если это не вариант, вам просто нужно будет обновить файлы хостов на всех ваших машинах или запустить локальный DNS-сервер.

3
ответ дан 5 December 2019 в 21:09

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

. Вам необходимо будет предоставить внутренний DNS-сервер в вашем файле /etc/resolv.conf в формате, аналогичном этому

nameserver 192.168.1.1
nameserver 8.8.8.8
1
ответ дан 5 December 2019 в 21:09

Речь идет не о DHCP, а, скорее всего, о DNS. У вас должен быть адрес в /etc/resolv.conf , где известно имя хоста вашего сервера, чтобы разрешение могло работать. Я думаю, что предложение DHCP вставило здесь что-то, чего нет (или что-то другое), когда вы назначаете статический IP.

Кроме того, файл /etc/nsswitch.conf определяет, в каком порядке ваш файл hosts, mdns, DNS и тому подобное. Это строка, начинающаяся с «hosts».

Итак, выясните, как в первую очередь работало разрешение имени хоста на его IP-адрес (с помощью dhcp), и продолжайте смотреть на машине, упомянутой в /etc/resolv.conf или отвечающий объект в /etc/nsswitch.conf.

0
ответ дан 5 December 2019 в 21:09

Теги

Похожие вопросы