[geek stuff] centos si interfetele de retea

Acu ceva vreme, inainte sa plec in concediu, am pus la niste neni in datacenter un server pe care urma sa pun niste masini virtuale pentru varii chestii de am io nevoie. Eh, m-am intors din concediu vesel nevoie mare sa m’apuc de treaba. Fac io ieri update la system, printre care si kernel si ii dau repede un reboot, ca deh… nefiind dat in productiune, nu se supara nimeni ca-l rebutez in mijlocul zilei. Si fix pula conexiune la loc. Dat mail la suport, conversat cu un nene d’acolo, mai umblat la masinuta, mai gadilat, mai un reboot, a luat-o. Aseara, fac si io o masina virtuala si dau sa dau restart la tot serverul sa vad ca porneste si masina virtuala instalata proaspat cum trebuie. Surpriza: fix pixu conexiuni la server, dar puteam sa ma conectez la masina virtuala…

Asta pana azi cand m-am dus sa vad ce ma-sa are. Si-am aflat: daca in /etc/sysconfig/ifcfg-ethX nu pun si HWADDR si am mai multe interfete, deservite de module separate de retea cum am io Intel si 3Com, din motive necunoscute, cand buteaza sistemul numele interfetelor se asociaza intr-un mod aleator la interfetele fizice. Si ete asa eth2 ajunge asociata pe prima placa de retea si nu pe a treia….

Asa ca azi i-am pus si HWADDR in fisierul de configurare si dupa tzashpe reboot-uri se pare ca face asocierile cum trebuie. Si ete asa o ora pierduta la depanat si alte doua ore in trafic…

3 thoughts on “[geek stuff] centos si interfetele de retea

  1. Nu te supara pe mine ca ti-o zic, dar chestia cu “HWADDR” in ifcfg-* si “nameif” in rc.sysinit sau network sau prin udev.d este in functie de pe la RedHat 8.0 Psyche :-)

    Si e documentata si in cartile oficiale (si mokka), si daca dadeai vreodata cu kudzu sau system-config-network, observai ca si ala ti-o scrie tot asa.

    Bafta in continuare,
    @Dexter

    P.S. Maparea intre numele de dispozitiv si modul (la incarcare) este facuta din /etc/modprobe.conf (alias eth0 rtl8139). Maparea intre dispozitivele fizice si numele logice (la boot) este facuta fie din HWADDR, fie (pe Fedora) din udev.d.
    Smekeria cu dat modprobe si … hopa, interfata are si IP (?!) e facuta din hotplug.d (on insert class Ethernet do ifup $name).

    P.P.S. Ordinea de detectie este si ea determinata: este identica cu ordinea de enumerare a magistralei PCI din acea masina (iar in cadrul ei, de obicei primul este AGP-ul acolo unde exista, apoi slot-urile de pe acelasi bus-bar ca Northbridge-ul, apoi restul de slot-uri, apoi celelalte bus-uri PCI etc. Intr-o masina cu mai multe arome de PCI, de obicei se enumera PCIe/PCI-X inainte de PCI si miniPCI/miniPCIe dupa PCI/PCIe — dar intr-una cu PCI de diverse latimi, de obicei se enumera PCI32 inainte de PCI64 :-) Cel mai simplu/sigur, dai un lspci si te edifici!)

    1. pai in modprobe.conf aveam:

      alias eth0 3c59x
      alias eth1 e1000
      alias eth2 e1000

      Si cu asta, la reboot-uri aleatoare (kernel update etc) nu se mapau intotdeauna corect. ba se facea modprobe la e1000 inainte de 3c59x.

      Intr-un singur caz, foarte interesant aveam: eth0: e1000, eth1: 3c95x, eth2: e1000. Lucru care conform cum stiu io ca se identifica placile de retea nu trebuia sa se intample.
      Adica ori eth0->3c59x si eth1,eth2->e1000 sau eth0,eth1->e1000 si eth2->3c59x.

      S-a fixat dupa ce am pus HWADDR si am dat vreo 3-4 reboot-uri sa fiu sigur :) Acu sper sa tina curentu mult si sa nu apare cine stie ce dume in kernel sa trebuiasca sa-l rebutez.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.