DHCP-подключение не устанавливает шлюз по умолчанию автоматически

DHCP-подключение не устанавливает шлюз по умолчанию автоматически

Я только что сделал новую установку Ubuntu 16.04 (Xenial). Я настроил /etc/network/interfacesавтоматический запуск интерфейса wlan с помощью DHCP:

auto lo
iface lo inet loopback

auto wlp2s0
iface wlp2s0 inet dhcp
  wpa-ssid SSID
  wpa-psk "password"

Это работает так: IP настроен нормально, но шлюз по умолчанию не установлен. После загрузки мне всегда приходится запускать route add default gw 192.168.1.1вручную. Есть идеи, в чем может быть проблема? Могу поклясться, что эта настройка работала нормально на старых версиях...

решение1

У меня та же проблема на Ubuntu Server 16.04. После устранения неполадок выяснилось, что проблема заключается в том, что мой DHCP-сервер также предоставляет бесклассовый статический маршрут (DHCP-параметр 121 rfc3442-classless-static-routesв ISC DHCP) с DHCP-сервера Microsoft (Windows Server 2008 R2).

Если рассмотреть /sbin/dhclient-script, то если DHCP-клиенту предоставлен хотя бы один бесклассовый статический маршрут, он игнорирует настройки маршрутизатора, поэтому маршрут по умолчанию не устанавливается.

# if we have $new_rfc3442_classless_static_routes then we have to
# ignore $new_routers entirely

Мое «исправление» — добавить еще один бесклассовый статический маршрут к DHCP-серверу Windows. Итак:

  • Место назначения: 0.0.0.0
  • Маска сети: 0.0.0.0
  • Маршрутизатор: 192.168.1.1

(после добавления маска сети автоматически изменится на 255.255.255.255)

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

Поскольку я слишком новичок, чтобы комментировать:

  • @t11z Мой файл аренды есть /var/lib/dhcp/dhclient.ens32.leases, option routersприсутствует и действителен.
  • @Jos Хотя это и обходной путь, ваше предложение сводит на нет цель использования DHCP для предоставления сетевых настроек. Если IP-адрес шлюза по умолчанию изменится в будущем, затронутые машины необходимо будет обновить вручную.

решение2

Я настраиваю Raspberry Pi как маршрутизатор и столкнулся с той же проблемой. Я исправил ее, отредактировав файл /etc/dhcpcd.conf.

Откройте файл и найдите строку:

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes

Я просто закомментировал "option classless_static_routes"

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
# option classless_static_routes

Теперь я получаю автоматический маршрут по умолчанию, установленный DHCP-сервером.

Аналогичное действие можно попытаться выполнить с помощью dhclient, отредактировав файл /etc/dhcp/dhclient.conf и найдя следующую строку:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

и удаление запроса на rfc3442-classless-static-routes.

Связанный контент