ifconfig no muestra todas las IP vinculadas a la máquina

11

He configurado varias direcciones IP en un cuadro de ubuntu, pero cuando lo ejecuto ifconfigmuestra solo una de ellas. Sin embargo, puedo hacer ping a todas las otras direcciones asignadas a esta máquina.

/etc/network/interface contenido:

# 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

Sin embargo, la salida de ifconfiges solo:

192.168.202.11

pankaj sharma
fuente
ifconfig -a mostrar todo?
Alex R
solo muestra la dirección IP eth0 .. :(
pankaj sharma
1
¿Qué versión de Ubuntu estás ejecutando? Agregue su información al error # 921280 también.
jdthood
1
ip addr showfunciona
xinthose

Respuestas:

20

ifconfigestá esencialmente en desuso, aunque no tengo conocimiento de ningún plan para deshacerme de él. El reemplazo es el ipcomando. El equivalente moderno de ifconfigpor sí solo es ip address list.

¿Por qué ha ifconfigsido reemplazado con ip? Se ha agregado mucha funcionalidad nueva a las redes Linux en las décadas desde que ifconfigse escribió. Esto implicó una API completamente nueva (netlink) para que la herramienta de espacio de usuario le hablara al kernel para configurar la red. Era mucho más práctico escribir una nueva herramienta para mapear mejor la nueva funcionalidad a través de la API de netlink y hasta la línea de comando, que intentar adaptar la ifconfigherramienta anterior. Echa un vistazo a la página de manual de ip (8) para ver todas las novedades que puedes hacer ahora.

La API del kernel utilizada por ifconfigla ifconfigherramienta en sí misma sigue siendo compatible con versiones anteriores, pero esta interfaz es ciega a cualquier cosa que no se asigne fácilmente al modelo anterior.

La razón por la que ifconfigno le muestran los alias IP es que parece que están siendo añadidos por Debian de ifupdown(el paquete que los mangos /etc/network/interfaces) mediante un mecanismo diferente que no agrega las etiquetas :1, :2etc. Así que la ifconfigherramienta es ciega a ellos, dado que la antigua API requería estas etiquetas, por lo que las direcciones adicionales no se asignan a la antigua API. Desde la página de manual de 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.

Los errores vinculados en la respuesta de maggotbrain parecen centrarse en agregar soporte ifconfigpara leer direcciones sin etiquetas. Otro enfoque podría ser organizar ifupdownlas direcciones con etiquetas, de modo que ifconfigpueda verlas sin modificaciones.

Robie Basak
fuente
0

Es muy probable que sea un error en el paquete de herramientas de red y ifconfigespecíficamente.

Vea los errores de launchpad aquí y aquí para obtener información adicional.

Si ingresa sus interfaces manualmente, desde la línea de comando usando ifconfigasí (siguiendo la configuración anterior):

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

Tendrá que mostrar esas interfaces, como se esperaba, cuando se ejecute ifconfig.

/etc/network/interfacesSin embargo, estos cambios no aparecerán en su . Por lo tanto, deberá agregarlos en ambos lugares.

Nota: Esto tampoco es persistente en todos los reinicios de interfaz, por lo que deberá volver a ejecutar los comandos al reiniciar la interfaz / máquina.

Kevin Bowen
fuente