У меня есть несколько серверов CentOS7 с двумя IP-адресами в двух разных подсетях (скажем, 192.168.1.0/24 и 192.168.2.0/24).
Некоторые из серверов имеют два физических сетевых подключения, и разные адреса назначаются разным устройствам с использованием двух разных (NetworkManager's) адресов. связи:
подключение nmcli add type ethernet con-name SUBNET1 ifname eth0 ip4 192.168.1.1/24 ...
подключение nmcli add type ethernet con-name SUBNET2 ifname eth1 ip4 192.168.2.1/24 ...
У меня также есть несколько скриптов для динамической установки некоторых свойств связи, например:
Соединение nmcli изменить SUBNET2 +ipv4.routes "192.168.3.100 src=192.168.2.1"
Остальные машины в кластере имеют только один физический сетевой интерфейс, а адреса в подсети 192.168.2.0/24 назначаются как псевдоним для eth0.
Я надеялся использовать существующие сценарии на всех машинах в кластере. К сожалению, несмотря на то, что вы можете определить два разных связи используя одно и то же устройство, вы не можете активировать их вместе (т. е. они не «объединяются»). Это прискорбно, потому что концептуальное разделение двух объектов с их соответствующими свойствами было незначительной абстракцией.
На этих машинах я должен определить новый связь (например, «СИСТЕМА») с адресами ботов, т.е.
подключение nmcli add type ethernet con-name SYSTEM ip4 192.168.1.x/24,129.168.2.x/24 ...
но так как скрипты полагаются на связь name ("SUBNET1" или "SUBNET2"), здесь они не сработают.
Итак, вопрос: Как я могу программно получить имя соединения с адресом в заданной подсети, чтобы я мог превратить жестко заданное имя соединения в параметр?
P.S. для редактирования свойств подключения я бы предпочел использовать нмкли
только я бы предпочел не добавлять маршруты с помощью IP
командой или путем прямого изменения файлов в /etc/sysconfig/сетевые сценарии/
.