я знаю как запросить у машины новый 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
в твоем сетевые интерфейсы файл.