Puncte:0

Why would a NIC on CentOS 7, attached to a Dell N2048P switch, only get a carrier when plugged in after boot?

drapel cn

My situation:

  • I have a new machine, with two NICs (Intel Corporation Intel(R) Ethernet Controller I225-LM (rev 02), according to lspci), but only one is connected.
  • It's connected into a larger network, but directly connects to a Dell N2048P switch.
  • The machine is running the last CentOS 7 (for software compatibility reasons - this may change in the future), minimal installation, entirely vanilla.

My problem:

  • When I boot the machine, the NIC and switch both show activity, there appears to be a carrier, but when CentOS gets around to initialising the hardware or the network, the NIC seems to be disabled. The activity indicators on the switch go dead, then briefly come on again to go dead and never come back.
  • However, if I boot the machine with the same network cable disconnected and connect it once I get to the login prompt (or at least after that initialisation), the card connects properly, and there's no issues.

Some notes:

  • The problem sometimes doesn't occur, about 1 in 4-5 reboots. I've timed them, but there appears to be little pattern to when it works or doesn't, although I've never seen it work twice in a row. There's almost always two or three failures between successes, when cycling through reboots quickly.
  • The NIC always works, without fail and immediately, when plugged in after boot.
  • In the logging on the Switch, I see it cycling from Forwarding to Blocking, from Learning to Forwarding and then from Forwarding to Block (and then 'down' and 'failed') three times in a row, within a second or so.

What I tried already:

  • I suspected it might be some issue with STP, but turning off STP for this port on the switch doesn't fix it (the network does use STP); nor did any combination of LINKDELAY and NETWORKDELAY I attempted to configure. The frequency of failure remained unchanged, or at least not significantly changed.
  • I tried assigning the NIC a static IP with BOOTPROTO set to none. This does assign it the correct IP, but the NIC still shows as having NO-CARRIER after booting with the cable connected and the link is dead (no activity lights), which seems to suggest that it's not something happening at this stage. Without knowing more than the basics, I'd suggest it's a 'layer 2' problem and not a 'layer 3' problem.
  • I tried configuring the NIC with ETHTOOL_OPTS to default to the settings it ends up negotiating (which work and are to my liking), but this appears not to have an effect (ethtool will report that it is still configured for Auto-negation, even though I set it to be off) and the problem remains.

Any suggestions on what the issue might be?

Edit: adding some information, after suggestions in comments:

  • The system is now up to date with the latest LT kernel, the issue remains.
  • I've tried disabling the NetworkManager altogether, and after that, retried the varies settings I'd mentioned previously, realising they may have been ignored due to NetworkManager, but the same result.
  • Interestingly, without NetworkManager, I noticed that having the network card being disabled on boot and then using ifup to bring it online causes it to lose the link when I do that; also, running ifup before connecting the cable and then connecting the cable doesn't get me a connection; nothing works in this setup.
  • Also, in the situation where NetworkManager is enabled, where I can get a working network connection by plugging in after boot, if reboot with the cable connected and the connection goes dead, there is no (known) way to revive the connection, even if I disconnect the cable, bring the adapter down and back up, etc., in any order I could think of.
Michael Hampton avatar
drapel cz
Actualizați-vă sistemul la cel mai recent kernel disponibil și încercați din nou. Dacă problema reapare, colectați informații relevante de la `dmesg`.
Gerard H. Pille avatar
drapel in
Cei doi sunt identici? Celălalt are aceeași problemă?
Grismar avatar
drapel cn
@GerardH.Pille ambele NIC au aceeași problemă, niciuna nu are o problemă când este instalat Windows Server 2019 sau Windows 10 Pro, problema apare întotdeauna cu CentOS 7.
Grismar avatar
drapel cn
@MichaelHampton Am făcut ceea ce ai sugerat, oricum nu este un sfat rău.Acest lucru m-a determinat să mut sistemul de la SSD-ul instalat la matricea RAID HDD instalată, deoarece nu ar porni de pe SSD, dar aceasta nu este o problemă pe care vreau să o depanez mai întâi. Indiferent, după reinstalare și actualizare completă și upgrade cu cel mai recent kernel LT pe un CentOS 7 actualizat, rămâne aceeași problemă.
Gerard H. Pille avatar
drapel in
Când apare problema, deconectarea și reconectarea o rezolvă?
Grismar avatar
drapel cn
Nu, odată ce linkul este mort, nu îl pot reînvia, decât prin repornirea mașinii și conectarea cablului numai după finalizarea procesului de pornire (sau, probabil, până când trece un anumit punct)
Gerard H. Pille avatar
drapel in
Verificați la Intel cel mai recent driver pentru nucleul dvs. Încercați un live CD Linux actual.
Michael Hampton avatar
drapel cz
Cel mai recent nucleu LT? Mai exact ce kernel rulezi?
Grismar avatar
drapel cn
Cel mai recent nucleu disponibil pe `kernel-lt` de la elrepo; Am încercat și cel mai recent despre `kernel-ml`, dar asta îmi provoacă multe alte probleme și nici nu pare să rezolve problema. (Nu am numărul versiunii la îndemână când scriu asta) Verificarea celui mai recent driver de la Intel pentru nucleul pe care îl folosesc și apoi construirea unui nucleu personalizat, @GerardH.Pille? Asta merită încercat în acest moment, deși trebuie să mă întreb ce minte este folosirea acestei configurații în acest moment.
Gerard H. Pille avatar
drapel in
Cu un driver pentru nucleul dvs., nu ar fi nevoie de o versiune. CD-ul live este pentru a verifica dacă problema a fost rezolvată.
Grismar avatar
drapel cn
Rularea Live CD-ului a provocat aceeași situație, așa că rămâne să găsiți driverele adecvate pentru nucleul actual.
Grismar avatar
drapel cn
În cele din urmă, se pare că nu există un driver curent pentru Linux pentru modelul specific (I225-LM) de la Intel în acest moment, sau cel puțin niciunul pe care l-am putut găsi. Intel listează pachetul complet de drivere, dar în special pentru acest model, este inclus doar un driver win64 (ca singur model, toate celelalte modele au și un driver Linux disponibil). De atunci am adăugat două NIC-uri rapide bazate pe USB pentru a rezolva problema și sper că Intel va lansa mai târziu un driver Linux pentru acest model (sau va include o descărcare adecvată dacă pur și simplu lipsește).

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.