Jak mogę utworzyć alias dla urządzenia sieciowego?


13

Próbuję uruchomić określone oprogramowanie, które korzysta z menedżera licencji, który nie zauważył, że nowsze dystrybucje Linuksa nie wymieniają już nazw swoich urządzeń sieciowych eth0. Próbuje zweryfikować adres MAC, ale ponieważ moja karta sieciowa jest wywoływana ens1na Centos 7, to nie działa.

Sprzedawca tego oprogramowania naprawił już to na innym komputerze i chciałbym zrozumieć, jak to zrobili. Stworzyli jakiś alias, ens1aby menedżer licencji mógł znaleźć eth0ponownie.

Alias ​​w ogóle nie jest wyświetlany, jeśli tak ifconfig -a, ale jest widoczny podczas jawnego wywoływania ifconfig eth0. Za pomocą ip linkpolecenia można to zobaczyć w następujący sposób:

eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff

Co dokładnie tutaj zrobili i jak mogę odtworzyć tego rodzaju alias na innym komputerze?


2
Czy może użyli ip link set ens1 name eth0@ens1? Wątpię, czy przetrwałby taki restart, ale może uda ci się zmienić DEVICElinię ifcfg-ens1lub coś takiego? Czy widzisz jedno eth0@ens1i drugie ens1na ip linkliście, czy tylko nową nazwę?
Eric Renouf,

1
właśnie przetestowałem to na maszynie wirtualnej - ip link set ens1 name eth0@ens1pokazuje też nową nazwę ifconfig -a. i ip link set ens1 alias eth0wyświetla alias eth0się w osobnym wierszu po uruchomieniu ip link.
cas

Odpowiedzi:


5

Prawdopodobnie odbywa się to za pomocą tej macvlanfunkcji. Umożliwia dodanie wirtualnych interfejsów Ethernet na istniejącym interfejsie sprzętowym. W twoim przypadku można to zrobić w następujący sposób:

ip link add link ens1 name eth0 type macvlan

Domyślnie nowy interfejs otrzymuje losowo wybrany lokalnie zarządzany adres MAC emisji pojedynczej. Alternatywnie możesz podać adres MAC za pomocą address <MAC>.


1

Możesz użyć reguły udev, aby zmienić nazwę karty sieciowej z powrotem do starego eth0stylu.

np. edytuj, /etc/udev/rules.d/70-persistent-net.rulesaby mieć taką linię:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

gdzie xx:xx:xx:xx:xx:xxjest adres MAC twojej karty sieciowej.

Będziesz także musiał zaktualizować dowolną konfigurację sieci, aby używała eth0nazwy zamiastens1

Zobacz Przewidywalne nazwy interfejsów sieciowych, aby uzyskać więcej informacji na temat przyczyn tej zmiany.


2
Chciałbym uniknąć całkowitej zmiany nazw interfejsów, a także jestem ciekawy, jak działa alias, który zaimplementowali.
Szalony naukowiec

1
nigdy wcześniej nie widziałem tej eth0@ens1formy, a wyszukiwanie w niej tylko pokazuje twoje pytanie. Próbowałeś grep -r eth0 /etc? jeśli znajdziesz, napisz, bo jestem również ciekawy.
cas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.