zmiana nazw interfejsów sieciowych, debian wheezy


14

Próbuję ustawić nazwę interfejsu „ethLan” zamiast eth0. Spowoduje to również, że nazwa if pozostanie spójna przy każdym ponownym uruchomieniu i jądrze.

Znalazłem kilka artykułów w tym temacie, ale wszystkie mają kilka lat:
http://www.debian-administration.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

Zrobiłem tak, jak powiedzieli i dodałem Mac ethLan do / etc / mactabs / . W tym momencie mam dwa problemy:
1) if [...] && /sbin/nameifSkrypt umieszczony w /etc/network/if-pre-up.d/ nie działa. Rozwiązałem to, dodając to do /etc/init.d/networking , ale dlaczego nie działa if-pre-up.d ?
2) Interfejs nie załaduje się, chyba że ręcznie wykonam ifconfig ethLan , pomimo dodania go do / etc / network / interfaces . Co ja robię źle?

Odpowiedzi:


17

Artykuły, które znalazłeś, są nieco nieaktualne. Istnieje teraz prosta metoda przypisywania nazw interfejsom sieciowym za pośrednictwem Udev .

W Debianie i pochodnych (w tym Ubuntu) poszukaj pliku o nazwie /etc/udev/rules.d/70-persistent-net.rules. Ten plik jest tworzony za /lib/udev/rules.d/75-persistent-net-generator.rulespomocą skryptu /lib/udev/write_net_rules. Za każdym razem, gdy udev zobaczy nowe urządzenie sieciowe, przypisze mu nowy numer i dołączy go /etc/udev/rules.d/70-persistent-net.rules. W ten sposób numery interfejsów są trwałe podczas ponownego uruchamiania i będą zachowane po ponownej instalacji, jeśli przywrócisz /etc.

(Jeśli twoja dystrybucja nie dostarcza tych plików, poszukaj ich w pakiecie Debian .)

Jeśli chcesz nadać interfejsowi znaczącą nazwę /etc/udev/rules.d/70-persistent-net.rules, musisz go tylko edytować i zmienić "eth0"na "ethLan". Uruchom, udevadm trigger --sysname eth0aby zmienić nazwę istniejącego urządzenia po edycji pliku (myślę, że wymaga to wyłączenia interfejsu). Jeśli nie masz tego pliku, możesz napisać w jednym wierszu pasujące do siebie (skomplikowane skrypty, które dodaje Debian, wykonują to automatycznie):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
Jeśli potrzebujesz poręcznej listy atrybutów używanych w regułach udev, możesz spróbować czegoś takiego udevadm info -a /sys/class/net/eth0. (zobacz udevadm(8)szczegóły)
Austin Adams,

1
Pytanie wyraźnie mówi, że dotyczy Wheezy, ale warto zauważyć, że ta odpowiedź nie jest już ważna dla nowszych wersji Debiana i Ubuntu. Zaczynając od systemowej nazywania interfejsu 220-7 należy dokonać innymi sposobami.
sampi

@sampi Moja odpowiedź wciąż dotyczy Debiana jessie (bieżące wydanie stabilne). Czy zawodzi podczas rozciągania, czy po prostu zaleca przestarzałą metodę? Czy wiesz, która wersja Ubuntu jest punktem odcięcia?
Gilles „SO- przestań być zły”

@Gilles Nie zagłębiłem się wystarczająco głęboko w szczegóły, aby wiedzieć, czy to naprawdę zawodzi, czy tylko jest zalecaną deprecją. Wygląda na to, że Ubuntu Wily i nowsze używają systemd wyższej niż 220-7 .
sampi

6

Dla osób napotykających ten post za pośrednictwem wyszukiwarki, takiej jak ja:

W wersji Debian stretch i nowszych możesz użyć systemowych plików .link, aby udev zmienił nazwy urządzeń. Zobacz stronę https://manpages.debian.org/stretch/udev/systemd.link.5.en.html .

Przykład:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

Nie zapomnij uruchomić update-initramfs -upóźniej, aby osadzić te zaktualizowane pliki konfiguracyjne w plikach initramfs, gdzie zostaną one zastosowane.


Jeśli pliki linków są obecne w systemie z udev.rules.d, który z nich będzie miał pierwszeństwo?
vfclists

1

Jest to nieco prostszy sposób, aby to zrobić za pomocą pakietu o nazwie ifrename. Ma osobny udevplik konfiguracyjny (od ) i możesz używać adresów MAC do identyfikacji interfejsów.

Jest to wireless-toolsjednak sprzeczne z .


2
Należy zauważyć, że ifrenamespowoduje konflikt, udevjeśli oba zostaną użyte do nadania interfejsom trwałych nazw.
Mischa Arefiev,
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.