Когда мои начальные загрузки системы, которые это должно проверить на данный интерфейс (например, eth0), возможна ли конфигурация DHCP соответственно, если сервер DHCP существует в сети. Если да, DHCP должен использоваться. В противном случае предопределенный статический IP-адрес должен использоваться.
Я пытался играть вокруг с dhclient, например.
dhclient -1 # Try once to get a lease. One failure, exit with code 2.
См. http://www.computerhope.com/unix/dhclient.htm
Однако dhclient всегда возвращается '0', даже если нет соединения, avilable вообще.
Каков был бы корректный подход?
Простая опция, если бы Ваша статическая установка не собирается потенциально конфликтовать с чем-нибудь, состояла бы в том, чтобы установить сетевой псевдоним. Для соединения непсевдонима Вы оставляете настроенным для DHCP, но затем Вы настраиваете соединение псевдонима со своим статическим соединением. Таким образом, если DHCP доступен, технически оба соединения активны, по-видимому, только DHCP, каждый действительно "работает" сеть, которую Вы используете. Если DHCP не доступен, он сам присваивает 169 адресов и не работает, но статический псевдоним делает. Не забывайте перезагружать или перезапускать сервис после редактирования.
/etc/network/interfaces Пример
auto eth0
allow-hotplug eth0
iface eth0 inet dhcpauto eth0
allow-hotplug eth0
iface eth0 inet dhcp
auto eth0:1
iface eth0:1 inet static
name Ethernet alias LAN card
address 192.168.1.7
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
Детали, доступные здесь: https://www.cyberciti.biz/faq/linux-creating-or-adding-new-network-alias-to-a-network-card-nic/