Debian stretch-en eth0-t szeretnék

 ( pista_ | 2017. június 9., péntek - 15:26 )

Hi!

Biztos nagyon jó meg hasznos, de a megszokásom, hogy eth0 és eth1 a hálózati interfaceim nevei.
Namost systemd "szépen" átnevezgette, google-ban eljutottam odáig, hogy:

/etc/default/grub
==========
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 quiet"
==========

update-grub

A /etc/network/interfaces-ban átírtam a "csodanevet" hagyományosra:
===========================
allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug eth1
iface eth1 inet dhcp
============================

Ezek után reboot.

Már kezdtem megörülni, hogy minden jó, mert az alaplapi hálókártyávan kap is IP-t, de ha átteszem a másik hálókártyába, akkor ezt kapom:
===========================================================
Jun 9 15:04:43 gateway-doom0 systemd-udevd[311]: seq 1828 '/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/net/eth0' is taking a long time
Jun 9 15:05:13 gateway-doom0 systemd-udevd[320]: error changing net interface name 'eth0' to 'eth1': File exists
Jun 9 15:05:13 gateway-doom0 systemd-udevd[320]: could not rename interface '2' from 'eth0' to 'eth1': File exists
============================================================

Google és okos leírások alapján azt találtam, hogy újra kellene generálnom a neveket a /etc/udev/rules.d/75-persistent-net-generator.rules-al, de olyanom nincs, sőt a /lib/udev/rules.d/ alatt is csak ezeket látom:
====================================
75-net-description.rules
80-ifupdown.rules
80-net-setup-link.rules
==================================


Kérdés:
Hol keressem a már "legyártott" udeves eszközöket?
Mi hiányzik még, hogy működő eth0 és eth1-em legyen?

Előre is köszönök minden ötletet!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

szerintem igazabol csak rkj oda egy ruls allomanyt azzal ahogy szeretned hogy feljojjenek az eszkozok:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ide jon az eth0 mac adresse", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ide jon az eth1 mac adresse", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

aztan lassuk. mondjuk hogy mi legyen a szama ahhoz tudni kellene mi van mondjuk a 75-ben. De a fenti lehet mondjuk 70-persistent-net.rules, ahogy az ubuntun lenni szokott.

De ubuntun van ehhez egy /lib/udev/write_net_rules allamoy is, amit ha lefuttatsz jonak kell lennie.

/lib/udev/write_net_rules all_interfaces

+1
És ne használd a net.ifnames=0 paramétert, így sikerülni fog az udev-nek az átnevezés az új nevezéktanról eth*-ra (nem lesz ütközés). RHEL7-en szívtam ugyanezzel.

Ezt hogy érted? Én mindenhol használom az net.ifnames=0 paramétert és nem tapasztaltam még semmi gondot (igaz, már a telepítőnek is át van adva, így az is eth* neveket használ).

Telepítőnek hogyan, ha kérdezhetném?

PXE telepítőket haszálunk, de gondolom a logika a sima esetén is ugyanaz:

LABEL centos7_64bit
MENU LABEL ^CentOS 7 (64-bit)
KERNEL centos7/x86_64/vmlinuz
APPEND initrd=centos7/x86_64/initrd.img method=http://ftp.freepark.org/pub/linux/distributions/centos/7/os/x86_64/ devfs=nomount ip=dhcp net.ifnames=0

Igen, telepítésnél paraméterben a "net.ifnames=0" megadásával már jó lett.

"Aprócska" szépséghiba, hogy az alaplapi kártya az eth1, megszokásból az szokott az eth0 lenni. Esetleg hogy tudnám felcserélni a két interface elnevezését? (A korábbiaknál a /etc/udev/-en belül megoldható volt, de most ott nincs semmi :( ).

Köszönöm az eddigi segítséget!

https://access.redhat.com/solutions/2592561


MikroVPS | 50% kedvezmény VPS-re HUP50 kuponnal

Ha te szeretnéd eldönteni, hogy melyik legyen az eth0, eth1, ... akkor az udev-nek át kell őket nevezni. Ha van már eth1, akkor az eth0-t nem fogja tudni átnevezni és kapod a fenti üzenetet (File exists). Ha mindegy, hogy melyiknek jut a 0, 1, ... sorszám, akkor persze jó a net.ifnames=0 megoldás is. Ha nem mindegy, akkor jobb ha az új nevekkel jön fel az OS, és az udev meg át tudja nevezni úgy, ahogy szeretnéd.

Nekem pont megfelel úgy, ahogy tizenx vagy mittén hány éve működik :)

Sajnos nem ennyire egyszerű.... :(
Újra kellett húznom, mert sikerült rendesen "elbarmolnom".

Esetleg más tipp?

Esetleg a net.ifnames=0 mellé egy biosdevname=0?

+1
Ez szokott segíteni:
net.ifnames=0 biosdevname=0

Ha tanácsot adsz, javaslom teszteld le. Az irány jó, de a " , KERNEL=="eth*" " miatt nem fog működni. Ezt el kell távolítani.

Ennek itt ehhez semmi köze, és kb ez a hozzáállás okozza a problémát is.

Off: ki tudja, hová jutnánk, ha sikerülne leszedni a sytemd-t, udev-et, dbus-t... Talán egy unix-szerű rendszerhez...

udev es dbus eddig is mukodott a systemd nelkul. A desktopon a loginok valtasa is, nem kellett hozza systemd-logind.
Amugy mind az udev, mind a dbus modern es kell.
De...blablabla...kigyobeka...systemd. Had ne kelljen megint vegigmenni azon miert szar.

cat 70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
...

sub

Hi!

Először is köszönöm mindenkinek az ötleteket, segítséget!

Legalább kétféle helyzet létezhet:

1. Még nem telepítettük fel, tiszta telepítésnél tartunk: boot után az Install-on állva Tab, majd paraméternek adjuk meg net.ifnames=0

2. Már feltelepítettük és az új neveket használja a stretch:
/etc/defaul/grub
GRUB_CMDLINE_LINUX="net.ifnames=0"

update-grub

Hozzunk létre 1 filet (értelemszerűen 2 filet, ha 2 hálókártyánk van), a MAC címre figyeljünk:
/etc/systemd/network/10-eth0.link
[Match]
MACAddress=38:d5:47:7b:a8:39

[Link]
Description=Internet
Name=eth0

Majd ne felejtkezzünk el a /etc/network/interfaces rész megfelelő kitöltéséről sem:

allow-hotplug eth0
iface eth0 inet dhcp

Igyekeztem pontosan leírni a megoldást, de felelősséget nem vállalok. ;-)

sub

Azt hittem ez a "furcsaság" csak engem zavar.
A problémám ezzel a történettel inkább az, hogy pl. nem működik az ifup parancs, amit eddig kiszúrtam. Ráadásul attól tartok, hogy az nem megoldás ha ezeket a "neveket" letiltjuk, tetszik, nem tetszik ez lesz a jövő.
Viszont már az egész systemd óta gondjaim vannak a különféle konfigurálásokkal. Pl. ha az ifup -nál tartunk hogy tiltok egy interfészt?
Régen egy paranccsal - /etc/init.d/networking start/stop/restart - lehetett piszkálni az egész hálózati kommunikációs alrendszert, futás közben módosítani tudtam a hálózati beállításokat.
Most ezt nem tudom hogy kellene ezzel az "új" rendszerrel ezt megoldani.
Valahol van valami leírás ami ezeket leírná?
Talán ez: https://wiki.debian.org/NetworkConfiguration
Lehet mindent újra tanulni ;)

* Én egy indián vagyok. Minden indián hazudik.

Ha használsz NetworkManager-t, akkor az nmcli a barátod. Meg esetenként a systemctl. ;)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Kösz a tippet! Nem szívesen használok ilyen eszközöket, mégnehezebb kideríteni mi a baj ha csődöt mond.
Azt már tapasztaltam, hogy az ifup hibát dob ezekre a nevekre :(
Inkább az zavar a dologban, hogy most ez mennyire a jövő?
A másik ilyen fájdalmam a diszk UUID, nekem sokkal szimpatikusabb a label használata (lilo root="LABEL=rendszer"), így minden alap telepítés után az UUID -ket kiírtom, a bootloaderből és az fstab -ból. Sok éve jól működik és nincs vele gond, lehet ez az elnevezés konvenció is ilyen lesz?
Arról már nem is beszélve, hogy mi lesz az egy kártyás mikrógépekkel, pl. Raspberry PI. Ott ennek a konvenciónak, nem sok értelmét látom.

* Én egy indián vagyok. Minden indián hazudik.

Mi a gondod az uuid-dal? Vannak rá eszközök, amellyel le tudod kérdezni, onnán már copy-paste. De ha nem, akkor a parancs kimenetét hozzá appendeled a konfig fileodhoz, ami nem kell, azt törlöd, ami kell, a megfelelő helyre teszed. Ettől függetlenül tudtommal a label is támogatott.

Változik a világ, az új parancsok manual page-eit is kell olvasgatni. Paraméter nélküli mount helyett findmnt, ifconfig helyett ip parancs például. Aztán van {login,system,timedate,journal}ctl, meg ki tudja, mi még.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Az uuid -vel leginkább akkor szokott meggyűlni a bajom, ha migrálni kell, vagy diszket cserélni.
Az új parancsokat köszönöm!
Rögtön kipróbáltam az ip és a findmnt - bőséges infót nyújtanak, tetszetős különösen a findmnt.
A bajom a szokásos, honnan kellett volna ezekről az "újdonságokról" tudnom?

* Én egy indián vagyok. Minden indián hazudik.

Én sok esetben a Hupról, vagy, ha egy problémával küzdök, manual page-ből, illetve a netről értesülök az újabb parancsokról. Például az ifconfig manuálja úgy kezdődik, hogy a parancs elavult, használd helyette az ip parancsot. :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Szóval nincs egy bűvös hely ahol ezeknek utána lehet nézni :(
Konkrét probléma (lehet új topic kellene), két hálókártya van a gépben, az alaplapi és egy pci. Pechemre azonos típus, persze más-más pci ágon.
Megszerkesztettem az /etc/network/interfaces fájl inet static -ra.
Az alaplapit összeszedi, a különálló kártyát nem :(
Mind az ifconfig -a mind a az ip address parancs látja, de mégsem áll fel (be van dugva). Mi az ördögöt hiányolhat még?
Az ip parancs sem segít, a működő kártyára azt írja "state UNKNOWN", a nem működőre "state DOWN".
Az /etc/udev/rules.d/ üres.

* Én egy indián vagyok. Minden indián hazudik.

Érdekes módon, az "ifup enp6s0" működik?
reboot után nem jön föl, valami hibádzik :(
SZERK:
No már megint a figyelmetlenség: allow-hotplug enp2s0

* Én egy indián vagyok. Minden indián hazudik.

Sub (OMG...)

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség