Am niște servere CentOS7 cu două adrese IP, în două subrețele diferite (să zicem 192.168.1.0/24 și 192.168.2.0/24).
Unele dintre servere au două conexiuni fizice de rețea și adrese diferite sunt atribuite dispozitivelor diferite folosind două conexiuni distincte (NetworkManager) conexiuni:
conexiune nmcli adăugați tip ethernet con-name SUBNET1 ifname eth0 ip4 192.168.1.1/24 ...
conexiune nmcli adăugați tip ethernet con-name SUBNET2 ifname eth1 ip4 192.168.2.1/24 ...
Am, de asemenea, câteva scripturi pentru a seta dinamic unele proprietăți ale conexiuni, de exemplu.:
conexiunea nmcli modifică SUBNET2 +ipv4.routes „192.168.3.100 src=192.168.2.1”
Celelalte mașini din cluster au o singură interfață fizică de rețea, iar adresele din subrețeaua 192.168.2.0/24 sunt atribuite ca alias lui eth0.
Speranța mea era să folosesc scripturile existente pe toate mașinile din cluster. Din păcate, în ciuda faptului că puteți defini două diferite conexiuni folosind același dispozitiv, nu le puteți activa împreună (adică nu sunt „combinate”). Acest lucru este regretabil, deoarece separarea conceptuală a celor două obiecte, cu proprietățile lor respective, a fost o mică abstracție.
Pe aceste mașini, trebuie să definesc un nou conexiune (de exemplu, „SISTEM”) cu adrese bot, de ex.
conexiune nmcli adăugați tip ethernet con-name SYSTEM ip4 192.168.1.x/24,129.168.2.x/24...
dar din moment ce scripturile se bazează pe conexiune nume ("SUBNET1" sau "SUBNET2"), acestea nu ar funcționa aici.
Deci intrebarea este: Cum pot prelua în mod programatic numele conexiunilor cu o adresă dintr-o subrețea dată, astfel încât să pot transforma numele conexiunii codificată într-un parametru?
P.S. pentru a edita proprietățile conexiunii pe care aș prefera să le folosesc nmcli
numai, aș prefera să nu adaug rute folosind ip
comanda sau prin modificarea directă a fișierelor în /etc/sysconfig/network-scripts/
.