ifconfig ne montrant pas toutes les adresses IP liées à la machine

11

J'ai configuré plusieurs adresses IP sur une boîte Ubuntu, mais lorsque je l'exécute, ifconfigelle n'en affiche qu'une seule. Je peux cependant envoyer une requête ping à toutes les autres adresses attribuées à cette machine.

/etc/network/interface Contenu:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
     address 192.168.202.11
     netmask 255.255.255.0
     network 192.168.202.0
     broadcast 192.168.202.255
     gateway 192.168.202.1

# dns-* options are implemented by the resolvconf package, if installed   
dns-search idil.dz1.da

auto eth0:1    
iface eth0:1 inet static
     address 192.168.202.12   
     netmask 255.255.255.0

auto eth0:2
iface eth0:2 inet static
     address 192.168.202.13
     netmask 255.255.255.0

auto eth0:3
iface eth0:3 inet static
     address 192.168.202.14
     netmask 255.255.255.0

auto eth0:4
iface eth0:4 inet static
     address 192.168.202.15
     netmask 255.255.255.0

auto eth0:5
iface eth0:5 inet static
     address 192.168.202.16   
     netmask 255.255.255.0

Cependant, la sortie du ifconfigest uniquement:

192.168.202.11

pankaj sharma
la source
ifconfig -a afficher tout?
Alex R
il montre seulement l'adresse ip eth0 .. :(
pankaj sharma
1
Quelle version d'Ubuntu utilisez-vous? Veuillez également ajouter vos informations au bogue # 921280.
jdthood
1
ip addr showtravaux
xinthose

Réponses:

20

ifconfigest essentiellement obsolète, bien qu'il n'y ait aucun plan à ma connaissance pour s'en débarrasser. Le remplacement est la ipcommande. L'équivalent moderne de ifconfiglui-même est ip address list.

Pourquoi a ifconfigété remplacé par ip? Beaucoup de nouvelles fonctionnalités ont été ajoutées au réseau Linux au cours des décennies qui ont suivi sa ifconfigrédaction. Cela impliquait une toute nouvelle API (netlink) pour que l'outil de l'espace utilisateur puisse parler au noyau pour configurer le réseau. Il était beaucoup plus pratique d'écrire un nouvel outil pour mieux mapper la nouvelle fonctionnalité via l'API netlink et jusqu'à la ligne de commande, que d'essayer d'adapter l'ancien ifconfigoutil. Consultez la page de manuel ip (8) pour toutes les nouveautés intéressantes que vous pouvez faire maintenant.

L'API du noyau utilisée par ifconfiget l' ifconfigoutil lui-même restent pour une compatibilité descendante, mais cette interface est aveugle à tout ce qui ne correspond pas facilement à l'ancien modèle.

La raison pour laquelle ifconfigne vous montre pas les alias IP est qu'il dirait qu'ils sont ajoutés par de Debian ifupdown(le paquet que les poignées /etc/network/interfaces) en utilisant un mécanisme différent qui ne donne pas les étiquettes :1, :2etc. Ainsi , l' ifconfigoutil est aveugle pour eux, étant donné que l'ancienne API exigeait ces étiquettes, les adresses supplémentaires ne sont donc pas mappées à l'ancienne API. Depuis la page de manuel ip-address (8) :

          Each address may be tagged with a label string.  In order to
          preserve compatibility with Linux-2.0 net aliases, this string
          must coincide with the name of the device or must be prefixed
          with the device name followed by colon.

Les bogues liés à la réponse de maggotbrain semblent se concentrer sur l'ajout de la prise en charge ifconfigde la lecture des adresses sans étiquettes. Une autre approche pourrait être de prévoir la ifupdowncréation des adresses avec des étiquettes, de ifconfigmanière à pouvoir les voir sans modification.

Robie Basak
la source
0

Il s'agit très probablement d'un bogue dans le package net-tools et plus ifconfigprécisément.

Voir les bugs du tableau de bord ici et ici pour plus d'informations.

Si vous entrez vos interfaces manuellement, à partir de la ligne de commande en utilisant ifconfigcomme ceci (en suivant votre configuration ci-dessus):

sudo ifconfig eth0:1 192.168.202.12 netmask 255.255.255.0
sudo ifconfig eth0:2 192.168.202.13 netmask 255.255.255.0
sudo ifconfig eth0:3 192.168.202.14 netmask 255.255.255.0
sudo ifconfig eth0:4 192.168.202.15 netmask 255.255.255.0
sudo ifconfig eth0:5 192.168.202.16 netmask 255.255.255.0

Vous aurez ces interfaces apparaissent, comme prévu, lors de l'exécution ifconfig.

Ces modifications n'apparaîtront cependant pas dans votre /etc/network/interfaces. Vous devrez donc les ajouter aux deux endroits.

Remarque: Cela n'est pas non plus persistant lors des réinitialisations d'interface, vous devrez donc réexécuter les commandes lors du redémarrage de l'interface / de la machine.

Kevin Bowen
la source