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
lubpci2#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
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
.70-persistent-net.rules
. Dane o
położeniu fizycznym brane są z ACPI, DMI i tablicy przerwań PCI.
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ć iptraf
a, 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.