La commande 'ip addr' affiche 'UP' même s'il n'y a pas d'adresse associée à cette interface


16

Je voudrais comprendre ce que signifie une interface réseau? Parce que la commande ip addrou ifconfigaffiche une interface comme étant active même lorsqu'aucune IP ne lui est associée.

par exemple sur 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

(ou)

[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

Quelle est l'utilité réelle d'afficher comme UP lorsque l'interface n'a pas du tout IP? Je crois que lorsqu'il n'y a pas d'IP, il ne peut y avoir aucune communication à ce sujet? Alors à quoi ça sert?


1
Les trames Ethernet peuvent faire plus que simplement contenir des paquets IP.
casey

Réponses:


17

La LOWER_UPest l'état de l' Ethernet de liaison (ou un autre protocole de couche de liaison). Il est défini comme Driver signals L1 up, ce qui signifie essentiellement que le câble est installé et qu'il peut voir un autre appareil à l'autre extrémité du câble.

Les UPmoyens qu'il a été activé. Vous pouvez contrôler cela (ou un script) à l'aide de la commande ip link set <device> upof ifconfig <device> up.

Il existe d'autres protocoles, tels que IPX qui utilisent Ethernet, mais n'auront pas d'adresse IP car ils ne font pas partie de la pile de protocoles Internet. Il est donc parfaitement acceptable que le lien soit UPsans avoir d'adresse IP.


DHCP est en fait construit au-dessus de la diffusion UDP, ce qui nécessite une couche IP (en fait, il peut être routé). Un autre exemple d'alternative historiquement utilisée à IP était NetBIOS (avant d'être porté sur NetBIOS sur IPX / SPX puis sur NetBIOS sur TCP / IP)
pqnet

[root @ IDCDVAM887 ~] # ip addr show eno33557248 3: eno33557248: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link / ether 00: 50: 56: 9e: 68: 86 brd ff: ff : ff: ff: ff: ff inet 10.54.2.7/32 portée globale eno33557248: 1 valid_lft pour toujours Pourquoi ne s'est-il pas affiché séparément? Suffit-il d'afficher uniquement l'interface d'origine comme UP?
Srikanth Ganesan

@pqnet - J'essayais d'expliquer que la partie "pas d'IP, pas de communication" de la question du PO n'est pas vraie. Ce n'était peut-être pas le meilleur exemple alors! Je vais le supprimer car cela ne fera que créer de la confusion.
garethTheRed

Cette partie maintenant j'ai compris merci à vous deux .. !!!
Srikanth Ganesan

commande ip addr dans RHEL7 pour une interface qui a configuré plusieurs interfaces virtuelles ou alias, ce qui provoque beaucoup de confusion quant à la façon de savoir si elle est active ou non
Srikanth Ganesan

7

Le UPstatut est l' état administratif de l'interface, c'est-à-dire si l'interface a été activée. Vous pouvez activer n'importe quelle interface en utilisant par exemple

ip l s eth0 up

Si le câble est branché et qu'une liaison est établie, l'interface obtient également l' état de fonctionnement de RUNNING.

De nombreuses cartes empêcheront la génération de l'opérateur sortant si l'état administratif ne l'est pas UP, et une interface qui ne l'est pas ne UPpeut pas non RUNNINGplus, donc si je mets

ip l s eth0 down

Je m'attendrais à ce que mon interface locale perde les deux UPet RUNNING, et l'interface correspondante du côté distant ne le serait également plus RUNNING(mais quand même UP, donc si je réactive mon côté, j'obtiendrais un lien).

Ce n'est que le lien Ethernet. En plus du lien, différents protocoles peuvent être liés, l'un d'eux étant IPv4. Par défaut, IPv4 est lié à toutes les interfaces qui prennent en charge la famille de protocoles.

Lorsque le protocole est lié, je peux envoyer et recevoir des paquets avec n'importe quelle adresse attribuée à l'interface. Si aucune adresse n'est affectée, cela signifie simplement qu'il n'y a pas d'adresse valide qui peut être utilisée pour les paquets sortants (donc l'envoi d'un paquet échoue), ni aucune adresse de monodiffusion un paquet entrant peut être adressée à laquelle le système reconnaîtrait comme local (donc seuls les paquets de diffusion / multidiffusion peuvent être reçus).

Cela ne concerne pas du tout la couche de liaison, car elle établira uniquement un lien.

Certains programmes, tels que le client DHCP, ont une autorisation spéciale pour envoyer des paquets au format arbitraire, en remplissant une adresse source fantaisie ou 0.0.0.0, et pour recevoir des paquets arrivant, qu'ils soient destinés à la machine locale ou non. Ceci est utilisé pendant la configuration automatique de l'adresse IP, où la requête DHCP est envoyée en utilisant une adresse source de 0.0.0.0et la réponse du serveur est adressée à l'adresse de diffusion 255.255.255.255.

Ainsi, il existe un cas d'utilisation valide où les paquets IP sont échangés même sans adresse liée à l'interface.

Outre IPv4, il existe également IPv6, IPX, AppleTalk, etc., qui peuvent tous partager la même couche physique. Dès que la liaison est établie, n'importe lequel de ces protocoles de niveau supérieur peut utiliser sa propre séquence d'activation pour entrer dans un état opérationnel.


>> une interface qui n'est pas UP ne peut pas non plus être EN COURS <<. Je pense que cela peut ne pas être applicable aux machines Solaris x86 où l'interface affiche le fonctionnement même lorsque l'état n'est pas «UP». Par exemple 1. Plumb une nouvelle interface virtuelle. root @ IDCDVAM890: ~ # ifconfig net0: 2 plumb 2. Vérifiez l'état de l'interface. RUNNING mais aucune IP n'est attribuée. 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, vous n'avez pas besoin d'une adresse IP pour avoir l'interface en état UP ou RUNNING, en fait, l'interface doit être UP et RUNNING pour que DHCP fonctionne. Il semble que Solaris hérite de l'état RUNNING des interfaces virtuelles du parent, mais conserve un état UP distinct. C'est quelque peu irrégulier, il pourrait être intéressant de voir si l'agent SNMP qu'ils expédient corrige cela dans la vue externe.
Simon Richter

3

une interface peut être "montée" même sans aucune adresse. Le statut "up" se réfère à la couche de liaison de données (également appelée couche 2), c'est-à-dire "up" signifie que vous pouvez envoyer et recevoir des paquets Ethernet. L'IP est quelque chose de construit par-dessus.

Un exemple de configuration dans laquelle une interface est active mais n'a pas d'adresse IP (et il ne devrait pas lui être attribué) est lorsque l'interface est un pont esclave.


0

comme par magie, si vous spécifiez l' -4option ou -oneline, cela affichera vraiment l'interface "en cours d'exécution" comme vous l'avez imaginé.

Pour faciliter la lecture, j'ai utilisé l' -briefoption mais peu importe la conclusion.

voir le résultat de l' upoption, il montre toujours un DOWNappareil.

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

voir le résultat de l' -4option, tous avec des adresses, pas d' DOWNappareils.

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

voir le résultat de l' -onlineoption, toutes avec des adresses, pas de DOWNpériphériques, mais des adresses divisées en IPv4 et 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.