Pożegnanie z eth0



Osoby instalujące Fedorę 15 i późniejsze może zaskoczyć drobna zmiana w nazewnictwie interfejsów sieciowych. Zamiast niemal losowo przyznawanych ethX, nazwa będzie zgadzała się z położeniem karty sieciowej w komputerze i opisem producenta. Mianowicie:

  • karty wbudowane w płytę główną: emX, czyli em1, em2 itd.
  • karty dołożone: pciX#Y lub pciX#Y_Z (X – numer slotu, Y– numer portu na karcie, Z – numer funkcji) , co daje przykładowe pci3#1 lub pci2#2_15. Druga wersja wyróżnia funkcje wirtualne w ramach SRV-IO.

Przyznawanie nazw dotyczy oczywiście tylko kart pojawiających się w systemie po raz pierwszy. Raz nazwana, karta zawsze dostanie tę samą etykietkę na podstawie adresu MAC i 70-persistent-net.rules. Aktualizacja:. Nazwy nadawane są przy każdym uruchomieniu. Zamiana karty w slocie PCI na inną spowoduje, że nowy interfejs przejmie nazwę starego. Nie zmienią się nazwy w systemach aktualizowanych i tam, gdzie administrator wymusił przypisania w 70-persistent-net.rules. Dane o położeniu fizycznym brane są z ACPI, DMI i tablicy przerwań PCI.

Interfejsy sieciowe
Etykiety na obudowie w końcu będą zgodne z rzeczywistością

Inne uniksowate zazwyczaj nazywają karty sieciowe na podstawie modelu urządzenia i obsługującego go sterownika. Ja od lat staram się nazywać interfejsy od ich funkcji/providera: lan, nsm, storagenet, tpsa, netia, kabel, eter itp. Znacząco ułatwia to np. pisanie reguł filtra pakietów. Wieki temu musiałem łatać iptrafa, który upierał się na działaniu tylko z interfejsami o nazwach ethX. Dzisiaj spokojnie można zakładać, że tak popsutych programów już nie ma. Nazwy interfejsów sieciowych można w Linuksie zmieniać od lat!

Więcej na stronie Features/ConsistentNetworkDeviceNaming.

Update: Pożegnanie z em1.


Archived comments:

Wildente 2010-12-21 13:29:23

Jednym słowem Dupa Blada. Będzie to samo co z USB. Wpięty pendrajw nie wiadomo gdzie się pojawi, bo nazwę bierze z nazwy dysku. Pod Windows wiadomo, że dostanie literkę kolejną i można pewne rzeczy zautomatyzować. eth0 było eth0 i można było porady z internetu wklejać albo skrypty sobie pisać automatyzujące. A tu kolejne zamieszanie....

No ale nie od dzisiaj wiadomo, że linuksy prześcignęły windowsa w zakresie automagiczności i nieprzewidywalności.

zdz 2010-12-21 13:36:38

Polemizowałbym. Będzie wiadomo gdzie się pojawi: wpinasz w slot PCI numer 2, to masz pci2#port. W tej chwili przypisanie karty↔ethX potrafi zmienić się co każdy reboot (w zależności jak akurat pójdzie enumeracja).

Wildente 2010-12-21 13:43:57

Już tak miałam, że kartę podmieniałam w locie, a system nadal działał po restarcie. A akurat losowej zmiany nie zauważyłam, ale ja używam Debiana, może Fedora szalała.

zdz 2010-12-21 13:51:26

To nie kwestia dystrybucji, tylko zachowanie jądra. Więcej info http://lwn.net/Articles/325131/ i http://lkml.org/lkml/2006/9/29/268 .

W Debianie zmiana karty też powinna skutkować nazwaniem jej eth1 bądź kolejna. Przynajmniej widzę w Debianie /lib/udev/rules.d/75-persistent-net-generator.rules

Wildente 2010-12-21 13:53:21

Może... Od wielu lat nic nie zmieniałam :D Więc w sumie może po pojawieniu się udeva tak się narobiło.

Margor 2010-12-21 14:05:10

Mi tam najbardziej podoba się podejście stosowane przez FreeBSD tzn. nazwa interfejsu przepisana jest do sterownika. Ale chyba od niedawna się to po części zmienia tzn. od FreeBSD 8 dla WLAN tworzony jest jeden interfejs wirtualny wlan0 (wczęsniej np. ath0). Nie leży mi to, ale może ma to jakiś słuszny cel, na szczęście dla ethernetu pozostało po staremu.

A pomysł nadawania własnych nazw w zależności od przeznaczenia bardzo mi się podoba. Od razu wiadomo do czego służy i nie trzeba się zastanawiać.

rozie 2010-12-21 20:16:49

IMHO bez sensu zmiana. Przepięcie karty ze zintegrowanej na PCI będzie się teraz wiązało z koniecznością zmiany skryptów, jeśli któreś korzystają z karty. A dowolne przypisywanie numeru ethX do adresu MAC od dawna jest możliwe (przynajmniej w Debianie, ale nie sądzę by był wyjątkiem).

BTW co z kartami na USB i bezprzewodowymi?

zdz 2010-12-23 19:57:43

rozie: moja karta wifi nie podlega zmianom nazwy, na USB nic nie mam do sprawdzenie, ale sądzę, że również nie będzie zmiany (bo nie ma slotu PCI).

zdz 2010-12-24 20:40:51

rozie: btw, zobacz tutaj: http://dżogstaff.pipebreaker.pl/2010.12.21-netlabels2.jpg . 8 portów sieciowych. Powodzenia w zgadywaniu, który jest który bez opisanego mechanizmu. Z biosdevname wszystko jest jasne: em1, em2, em3, em4, pci5#0, pci5#1, pci6#0, pci6#1.

AlchemyX 2010-12-27 09:48:57

@Wildente: No ale pendrive możesz odnaleźć po nazwie modelu lub uuid, więc automatyzacja nadal jest możliwa

Wildente 2010-12-28 22:33:36

Chyba nie rozumiem. Wkładam pendrajwa, a on zamiast się po ludzku zamontować jako znany z góry dysk F: :D montuje się każdy pendrajw gdzie indziej. Pewnie da się to jakoś automatyzować, ale trzeba pewnie mocno złożony skrypt pisać, co wykryje jakieś pojawienia się nośnika.

Wildente 2010-12-28 22:35:54

A jeszcze dodam -- te UUIDy dla dysków też porażka. Skopiowałam kiedyś konfigurację Burga na 20 stacji roboczych identycznych i się miałam z pyszna, bo mi uciekło, że UUIDy są zmienne.. /dev/sda2 to /dev/sda2, dobrze że przynajmniej nie usunęli tego z systemu i po odpaleniu z lajwów udało się wrzucić poprawne konfigi z /dev/sda2

zdz 2010-12-30 12:04:13

Pendrive montuje sie jako z góry znany dysk /media/<label>. Jak system plikow nie ma etykiety, to jako /media/<uuid>.
W drugiej sytuacji, skoro popelniles blad uzywajac UUIDow, zawsze mogles skorzystac z LABEL= do wskazania aetykiety. A sda2 nie zawsze trafia jako sda2. W niektorych komputerach wystarczy, zeby w trakcie bootowania byl wetkniety pendrive i juz enumeracja sie zmienia.

Wildente 2011-01-01 17:12:44

A skąd niby mam wiedzieć jaką etykietę ma podłączany dysk? W przupadku UUIDów to już w ogóle porażka, jak pisałam, przy np. klonowaniu konfiguracji na identycznie w miarę maszyny

zdz 2011-01-02 11:39:06

No chyba wiesz co podłączasz? Jak nie, to po wetknięciu masz polecenia "findmnt", "blkid" i inne. Pytając analogicznie, skąd możesz wiedzieć jakie /dev/sdX dostanie napęd?

Wildente 2011-01-02 13:47:34

A skąd mam wiedzieć, co podłączam? Włączam pendrajwa do windowsa i mam zawsze jako ten sam dysk, nie ważne który z miliona pendrajwów. Podłączam do Linuksa i mam na milion sposobów. A co do /dev/sda2, to wiem, bo dyski zawsze są tak samo, przynajmniej u mnie. Nie zaobserwowałam zmian.

No pewnie można jakoś sobie oprogramować te zmiany, ale zauważam po prostu fakt, że to tylko utrudnienie. I że jak kiedyś nie było UUIDów, to było wygodnie, bo było /dev/hda... Później było /dev/sda ale zasada pozostała. A teraz są UUIDy i przenaszalność mi szlag trafia.

Comments


Comments powered by Disqus