Назад | Перейти на главную страницу

Сервер Ubuntu: автоматическое получение IP-адреса от недавно подключенного DHCP-сервера

я знаю как запросить у машины новый IP-адресНо у меня сценарий немного другой.

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

Проблема, которую я видел: сначала подключают питание, а затем Ethernet. Машина не получает IP-адрес автоматически с помощью нового DHCP-сервера, если мы не заставим их перезапустить устройство (или, если они были авторизованы, перезапустив сеть или принудительно выполнив / обновив DHCP).

Есть ли способ настроить сервер Ubuntu (10.04 LTS) на автоматически пытаться освободить / обновить в любое время, когда подключен кабель Ethernet?

Похоже, что один из распространенных способов справиться с этим - добавить файл правил udev. Я считаю, что это устанавливается каким-то пакетом в настольной системе, но я не могу найти его ни на одном из моих серверов Ubuntu или Debian.

Вот блог кажется, есть некоторые детали.

В блоге предлагается добавить такие правила udev.

/etc/udev/rules.d/85-ifupdown.rules

# This file causes network devices to be brought up or down as a result
# of hardware being added or removed, including that which isn't ordinarily
# removable.
# See udev(7) for syntax.

SUBSYSTEM=="net", GOTO="net_start"
GOTO="net_end"

LABEL="net_start"

# Bring devices up and down only if they're marked auto.
# Use start-stop-daemon so we don't wait on dhcp
ACTION=="add",          RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow hotplug $env{INTERFACE}"

ACTION=="remove",       RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow hotplug $env{INTERFACE}"

LABEL="net_end"

Если вы посмотрите на используемую команду ifup, вы заметите, что она применяется только к интерфейсам горячего подключения. Так что обязательно используйте allow-hotplug вместо того auto в твоем сетевые интерфейсы файл.