
Ich habe eine Netzwerkschnittstelle, die ip link show
Folgendes meldet:
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:43:e6:b1:e7 brd ff:ff:ff:ff:ff:ff
Aber /sys/class/net/docker0/flags
sagt das:
$ cat /sys/class/net/docker0/flags
0x1003
Die drei gesetzten Bits sind IFF_MULTICAST
, IFF_BROADCAST
und IFF_UP
. Dies sieht aus wie eine Schnittstelle, die aktiv ist. Warum ip link
meldet state DOWN
?
Das System ist Linux 4.15 / Ubuntu 18.04.
Antwort1
Die drei gesetzten Bits sind IFF_MULTICAST, IFF_BROADCAST und IFF_UP. Dies sieht aus wie eine Schnittstelle, die UP ist
Und das entspricht ganz genau dem tatsächlichenFlaggenAusgabe:
3: docker0: <KEIN-TRÄGER,BROADCAST, MULTICAST, NACH OBEN> ↑ ↑ ↑
Warum wird im IP-Link-Bericht der Status „DOWN“ angezeigt?
Das ist ein anderer Zustand.
Das Flag IFF_UP (oben als "<UP>" dargestellt) beschreibtVerwaltungZustand, das ist der manuelle Knopf, den Sie über einstellen können
ip link set eth0 up
.Andererseits beschreibt der Text „Staat […]“betriebsbereitZustand, der angibt, ob die Schnittstellefähigdes Arbeitens.
Der Betriebszustand entspricht in etwa der Anwesenheit eines „Trägers“ – z. B. Ethernet-Verbindung vollständig hergestellt oder Wi-Fi-Zugangspunkt verbunden. Eine Brücke gilt als aktiv (über einen Träger verfügend), wennmindestens einseiner Mitgliedsports ist aktiv. Aus diesem Grund möchten Sie möglicherweise eine dummy0
Schnittstelle als Bridge-Mitglied hinzufügen.
Der Betriebszustand entspricht in etwa den Flags IFF_LOWER_UP
(im Flag-Bereich als „<LOWER_UP>“ angezeigt) und IFF_RUNNING
(sein Fehlen wird in Ihrem Beispiel als Pseudo-Flag „<NO-CARRIER>“ angezeigt). (Quellcode)
Die iproute-Tools erhalten jedoch Schnittstelleninformationen über Netlink, und der state …
Abschnitt wird basierend auf demIFLA_OPERSTATENetlink-Attribut. (Quellcode)
Dieses Attribut ist auch über sysfs verfügbar …/operstate
. Die Linux-Dokumentation enthält eine ausführlichere Erklärung dieser Flags und Attribute inoperstates.txt.