Как настроить резервный статический IP-адрес при отсутствии DHCP-сервера

Я работаю со встроенным устройством Linux, к которому мы обычно подключаемся по статическому IP-адресу во время разработки. Однако на месте у нас есть требование для подключения с использованием DHCP, поэтому я хотел бы настроить основное DHCP-соединение с резервным статическим IP-адресом в другой сети. Возможно ли это?

Я могу использовать nmcli для настройки DHCP-соединения (IPV4.method = manual) и могу успешно добавить дополнительный статический IP-адрес. Оба будут существовать, когда одновременно присутствует DHCP-сервер, однако, когда DHCP-сервер отсутствует, соединение отключается, включая статический IP-адрес.

Я также пробовал настроить несколько подключений, назначенных для eth0, то есть одно статическое и один DHCP, и могу вручную включить их с помощью

nmcli con up ConnectionName

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

Есть ли способ указать сетевому менеджеру попытаться установить одно соединение, а в случае неудачи - другое?

Я использую Ubuntu 18.04.

Спасибо.

0
задан 6 November 2019 в 12:55

2 ответа

Вы можете решить эту проблему, создав два профиля (также известные как соединение).

  1. Конфигурация DHCP с высоким приоритетом, которая пытается в течение некоторого времени
  2. Статическая конфигурация с более низким приоритетом, которая подключается в случае сбоя DHCP

В файлах конфигурации (например, /etc/NetworkManager/system-connections/*.nmconnection):

Профиль DHCP

[connection]
id=dhcp
uuid=<an UUID>
type=ethernet
interface-name=eth0
autoconnect-priority=1
autoconnect-retries=2

[ipv4]
dns-search=
method=auto
dhcp-timeout=10
may-fail=false

Статический профиль

[connection]
id=static
uuid=<an UUID>
type=ethernet
interface-name=eth0
autoconnect-priority=0
autoconnect-retries=-1

[ipv4]
address1=192.168.1.10/24,192.168.1.1
dns=192.168.1.1
dns-search=
method=manual

Примечание: по умолчанию autoconnect = true, если не указан, иначе это не сработает.

1
ответ дан 10 April 2020 в 10:21

Я также пробовал ту же конфигурацию на Ubuntu 18.04 - она ​​просто не работает (играл с ipv4.addresses, connection.autoconnect, connection.autoconnect-retries, ipv4.dhcp-timeout, ipv4.method, ipv4. может потерпеть неудачу и т. д.)

Единственный работоспособный вариант:

1) отключить NetworkManager

2) /etc/network/interfaces.d/some_name

    auto lo eth0
    iface lo inet loopback
    iface eth0 inet dhcp

/ etc / dhcp / dhclient. conf

    timeout 10;
    alias {
      interface "eth0";
      fixed-address 192.168.1.1;
      option subnet-mask 255.255.255.0;
    } 
0
ответ дан 23 January 2020 в 06:12

Другие вопросы по тегам:

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