Der Befehl 'ip addr' zeigt 'UP' an, obwohl dieser Schnittstelle keine Adresse zugeordnet ist

16

Ich möchte verstehen, was unter einer Netzwerkschnittstelle zu verstehen ist. Denn mit dem Befehl ip addroder ifconfigwird eine Schnittstelle als aktiv angezeigt, auch wenn keine IP-Adresse zugeordnet ist.

Zum Beispiel auf RHEL7:

[root@IDCDVAM887 ~]# ifconfig ens256
ens256: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 00:50:56:9e:19:5b  txqueuelen 1000  (Ethernet)
        RX packets 229406  bytes 59265584 (56.5 MiB)
        RX errors 0  dropped 229454  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(oder)

[root@IDCDVAM887 ~]# ip addr show ens256
5: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:50:56:9e:19:5b brd ff:ff:ff:ff:ff:ff

Was nützt es, wenn UP angezeigt wird, wenn die Schnittstelle überhaupt keine IP hat? Ich glaube, wenn es keine IP gibt, könnte es keine Kommunikation darüber geben? Was nützt es dann?

Srikanth Ganesan
quelle
1
Ethernet-Frames können mehr als nur IP-Pakete enthalten.
Casey

Antworten:

17

Dies LOWER_UPist der Status der Ethernet- Verbindung (oder eines anderen Verbindungsschichtprotokolls). Es ist definiert als Driver signals L1 up, was im Grunde bedeutet das Kabel angebracht ist , und es kann ein anderes Gerät am anderen Ende des Kabels sehen.

Das UPbedeutet, dass es aktiviert wurde. Dies kann von Ihnen (oder einem Skript) mit dem Befehl ip link set <device> upof gesteuert werden ifconfig <device> up.

Es gibt andere Protokolle, z. B. IPX , die Ethernet verwenden, jedoch keine IP-Adresse haben, da sie nicht Teil des Internetprotokollstapels sind. Es ist also durchaus akzeptabel, dass der Link UPeine IP-Adresse hat , aber keine.

garethTheRed
quelle
DHCP baut tatsächlich auf UDP-Broadcast auf, was eine IP-Schicht erfordert (tatsächlich kann es geroutet werden). Ein weiteres Beispiel für eine historisch genutzte Alternative zu IP war NetBIOS (vor der Portierung nach NetBIOS über IPX / SPX und dann als NetBIOS über TCP / IP)
pqnet
[root @ IDCDVAM887 ~] # ip addr show eno33557248 3: eno33557248: <BROADCAST, MULTICAST, UP, LOWER_UP> : ff: ff: ff: ff inet 10.54.2.7/32 scope global eno33557248: 1 valid_lft forever preferred_lft forever Im obigen Format gibt es eine virtuelle Schnittstelle 'eno33557248: 1' mit einer IP. Warum wurde es nicht als separat angezeigt? Reicht es aus, nur die ursprüngliche Oberfläche als UP anzuzeigen?
Srikanth Ganesan
@pqnet - Ich habe versucht herauszustellen, dass der Teil "keine IP, keine Kommunikation" der Frage des OP nicht wahr ist. Vielleicht war es damals nicht das beste Beispiel! Ich werde es entfernen, da es nur Verwirrung stiftet.
garethTheRed
Das Teil jetzt habe ich verstanden, danke euch beiden .. !!!
Srikanth Ganesan
ip addr Befehl in RHEL7 für eine Schnittstelle, die mehrere virtuelle Schnittstelle oder Alias ​​konfiguriert hat, was viel Verwirrung darüber verursacht, ob es aktiv ist oder nicht
Srikanth Ganesan
7

Der UPStatus ist der Verwaltungsstatus der Schnittstelle, dh ob die Schnittstelle aktiviert wurde. Sie können jede Schnittstelle aktivieren, indem Sie z

ip l s eth0 up

Wenn das Kabel eingesteckt und eine Verbindung hergestellt ist, erhält die Schnittstelle auch den Betriebszustand von RUNNING.

Viele Karten werden abgehende Trägererzeugung hemmen , wenn der Verwaltungsstaat ist nicht UP, und eine Schnittstelle , die nicht ist UPkann nicht sein , RUNNINGentweder, wenn ich also Satz

ip l s eth0 down

Ich würde erwarten, dass meine lokale Schnittstelle beides UPund verliert RUNNING, und die entsprechende Schnittstelle auf der Remote-Seite würde es auch nicht mehr sein RUNNING(aber dennoch UP, wenn ich meine Seite wieder aktiviere, würde ich einen Link erhalten).

Dies ist jedoch nur die Ethernet-Verbindung. Über die Verbindung können verschiedene Protokolle gebunden werden, eines davon ist IPv4. Standardmäßig ist IPv4 an alle Schnittstellen gebunden, die die Protokollfamilie unterstützen.

Wenn das Protokoll gebunden ist, kann ich Pakete mit jeder der Schnittstelle zugewiesenen Adresse senden und empfangen. Wenn keine Adresse zugewiesen ist, bedeutet dies einfach, dass es keine gültige Adresse gibt, die für ausgehende Pakete verwendet werden kann (so dass das Senden eines Pakets fehlschlägt), und dass keine Unicast-Adresse adressiert werden kann, an die das System ein eingehendes Paket als lokal erkennt (so) Es können nur Broadcast- / Multicast-Pakete empfangen werden.

Dies betrifft im geringsten nicht die Verbindungsschicht, da nur eine Verbindung hergestellt wird.

Bestimmte Programme, z. B. der DHCP-Client, haben die spezielle Berechtigung, willkürlich formatierte Pakete zu senden, eine Fantasy-Quelladresse einzugeben oder 0.0.0.0ankommende Pakete zu empfangen, unabhängig davon, ob sie für den lokalen Computer bestimmt sind. Dies wird während der automatischen IP-Adressenkonfiguration verwendet, bei der die DHCP-Anfrage unter Verwendung der Quelladresse von gesendet 0.0.0.0und die Antwort vom Server an die Broadcast-Adresse gesendet wird 255.255.255.255.

Somit gibt es einen gültigen Anwendungsfall, bei dem IP-Pakete auch ohne eine an die Schnittstelle gebundene Adresse ausgetauscht werden.

Neben IPv4 gibt es auch IPv6, IPX, AppleTalk usw., die alle dieselbe physikalische Schicht gemeinsam nutzen können. Sobald die Verbindung hergestellt ist, kann jedes dieser übergeordneten Protokolle seine eigene Aktivierungssequenz verwenden, um in einen Betriebszustand zu gelangen.

Simon Richter
quelle
>> Eine Schnittstelle, die nicht UP ist, kann auch nicht RUNNING sein <<. Ich denke, dies trifft möglicherweise nicht auf Solaris x86-Computer zu, auf denen die Benutzeroberfläche ausgeführt wird, auch wenn der Status nicht "UP" ist. Zum Beispiel 1. Eine neue virtuelle Schnittstelle ausloten. root @ IDCDVAM890: ~ # ifconfig net0: 2 lot 2. Überprüfen Sie den Schnittstellenstatus. LÄUFT, aber es ist keine IP zugewiesen. root @ IDCDVAM890: ~ # ifconfig net0: 2 net0: 2: flags = 1000842 <BROADCAST, RUNNING , MULTICAST, IPv4> mtu 1500 index 2 inet 0.0.0.0 netmask 0
Srikanth Ganesan
@SrikanthGanesan, Sie benötigen keine IP-Adresse, um die Schnittstelle in den Status UP oder RUNNING zu versetzen. Tatsächlich muss die Schnittstelle UP und RUNNING sein, damit DHCP funktioniert. Es scheint, dass Solaris den RUNNING-Status der virtuellen Schnittstellen vom übergeordneten System erbt, aber einen separaten UP-Status beibehält. Das ist etwas unregelmäßig, es könnte interessant sein zu sehen, ob der von ihnen gelieferte SNMP-Agent dies in der externen Ansicht korrigiert.
Simon Richter
3

Eine Schnittstelle kann auch ohne Adresse "up" sein. Der Status "up" bezieht sich auf die Datenverbindungsschicht (auch als Schicht 2 bezeichnet). "Up" bedeutet, dass Sie Ethernet-Pakete senden und empfangen können. IP baut darauf auf.

Ein Beispiel für eine Konfiguration, bei der eine Schnittstelle aktiv ist, aber keine IP-Adresse hat (und keine zugewiesen werden sollte), ist, wenn die Schnittstelle ein Bridge-Slave ist.

pqnet
quelle
0

Wenn Sie die -4Option oder angeben -oneline, wird auf magische Weise die "laufende" Benutzeroberfläche so angezeigt, wie Sie es sich vorgestellt haben.

Um das Lesen zu vereinfachen, habe ich die -briefOption verwendet, aber die Schlussfolgerung spielt keine Rolle.

siehe das Ergebnis der upOption, es zeigt immer noch ein DOWNGerät.

ubuntu@ubuntu:~$ ip --brief address show up
lo               UNKNOWN        127.0.0.1/8 ::1/128
eno1             DOWN
enp130s0f0       UP             100.79.223.150/26 fe80::a9e:1ff:fed9:2864/64

siehe das Ergebnis der -4Option, alle mit Adressen, keine DOWNGeräte.

ubuntu@ubuntu:~$ ip -4 -brief address show
lo               UNKNOWN        127.0.0.1/8
enp130s0f0       UP             100.79.223.150/26

Anzeigen des Ergebnisses der -onlineOption, alle mit Adressen, keine DOWNGeräte, aber Aufteilung der Adressen in IPv4 und IPv6.

ubuntu@ubuntu:~$ ip -oneline address show
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
1: lo    inet6 ::1/128 scope host \       valid_lft forever preferred_lft forever
4: enp130s0f0    inet 100.79.223.150/26 brd 100.79.223.191 scope global enp130s0f0\       valid_lft forever preferred_lft forever
4: enp130s0f0    inet6 fe80::a9e:1ff:fed9:2864/64 scope link \       valid_lft forever preferred_lft forever
osexp2003
quelle