Я работаю со встроенным устройством Linux, к которому мы обычно подключаемся по статическому IP-адресу во время разработки. Однако на месте у нас есть требование для подключения с использованием DHCP, поэтому я хотел бы настроить основное DHCP-соединение с резервным статическим IP-адресом в другой сети. Возможно ли это?
Я могу использовать nmcli для настройки DHCP-соединения (IPV4.method = manual) и могу успешно добавить дополнительный статический IP-адрес. Оба будут существовать, когда одновременно присутствует DHCP-сервер, однако, когда DHCP-сервер отсутствует, соединение отключается, включая статический IP-адрес.
Я также пробовал настроить несколько подключений, назначенных для eth0, то есть одно статическое и один DHCP, и могу вручную включить их с помощью
nmcli con up ConnectionName
, но это не соответствует требованиям из-за необходимости вручную включать их в случае из другого сбоя. Я, конечно, могу запустить сценарий, чтобы проверить состояние подключения и включить другое, если необходимо, но я подумал, что это будет реалистичным ожиданием сетевого администратора.
Есть ли способ указать сетевому менеджеру попытаться установить одно соединение, а в случае неудачи - другое?
Я использую Ubuntu 18.04.
Спасибо.
Вы можете решить эту проблему, создав два профиля (также известные как соединение).
В файлах конфигурации (например, /etc/NetworkManager/system-connections/*.nmconnection):
[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, если не указан, иначе это не сработает.
Я также пробовал ту же конфигурацию на 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;
}