ifconfig vs ip: diferencia y comparación de la configuración de red


Las distribuciones basadas en Linux han presentado un conjunto de comandos que proporcionan una forma de configurar la red de una manera fácil y poderosa a través de la línea de comandos. Este conjunto de comandos está disponible en el paquete net-tools, que ha estado allí durante mucho tiempo en casi todas las distribuciones, e incluye comandos como: ifconfig, route, nameif, iwconfig, iptunnel, netstat, arp.

Estos comandos son casi suficientes para configurar la red de una manera que cualquier usuario novato o experto de Linux desearía, pero debido al avance en el kernel de Linux en los últimos años y a la falta de mantenimiento de este conjunto empaquetado de comandos, se están volviendo obsoletos y son más poderosos. Está surgiendo una alternativa que tiene la capacidad de reemplazar todos estos comandos.

Esta alternativa también existe desde hace bastante tiempo y es mucho más poderosa que cualquiera de estos comandos. El resto de las secciones destacarían esta alternativa y la compararían con uno de los comandos del paquete net-tools, es decir, ifconfig.

ip - Un reemplazo para ifconfig

ifconfig ha estado ahí durante mucho tiempo y todavía se usa para configurar, mostrar y controlar interfaces de red por muchos, pero ahora existe una nueva alternativa en las distribuciones de Linux que es mucho más poderosa que esta. Esta alternativa es el comando ip del paquete iproute2util.

Aunque este comando puede parecer un poco complejo en el primer sitio, tiene una funcionalidad mucho más amplia que ifconfig. Está organizado funcionalmente en dos capas de Networking Stack, es decir, Layer 2 (Link Layer), Layer 3 (IP Layer) y hace el trabajo de todos los comandos mencionados anteriormente del paquete net-tools.

Si bien ifconfig muestra o modifica principalmente las interfaces de un sistema, este comando es capaz de realizar las siguientes tareas:

  1. Displaying or Modifying Interface properties.
  2. Adding, Removing ARP Cache entries along creating new Static ARP entry for a host.
  3. Displaying MAC addresses associated with all the interfaces.
  4. Displaying and modifying kernel routing tables.

Uno de los aspectos más destacados que lo separa de su antiguo homólogo ifconfig es que este último usa ioctl para la configuración de la red, que es una forma menos apreciada de interacción con el kernel, mientras que el primero aprovecha el mecanismo de socket netlink para el mismo, que es un sucesor mucho más flexible. de ioctl para la intercomunicación entre el kernel y el espacio de usuario usando rtnetlink (que agrega capacidad de manipulación del entorno de red).

Ahora podemos comenzar a resaltar las características de ifconfig y cómo son reemplazadas efectivamente por el comando ip.

Comandos ip vs ifconfig

La siguiente sección destaca algunos de los comandos ifconfig y su reemplazo mediante comandos ip:

Aquí, una característica distintiva entre ip e ifconfig es que mientras que ifconfig solo muestra las interfaces habilitadas, ip muestra todas las interfaces, ya sean habilitadas o deshabilitadas.

$ ifconfig
$ ip a

El siguiente comando asigna la dirección IP 192.168.80.174 a la interfaz eth0 .

# ifconfig eth0 add 192.168.80.174

Sintaxis para agregar/eliminar una interfaz usando el comando ifconfig:

# ifconfig eth0 add 192.168.80.174
# ifconfig eth0 del 192.168.80.174
# ip a add 192.168.80.174 dev eth0

Sintaxis para agregar/eliminar una interfaz usando el comando ip:

# ip a add 192.168.80.174 dev eth0
# ip a del 192.168.80.174 dev eth0

El siguiente comando establece la dirección de hardware para la interfaz eth0 en el valor especificado en el comando. Esto se puede verificar verificando el valor HWaddr en la salida del comando ifconfig.

Aquí, la sintaxis para agregar la dirección MAC usando el comando ifconfig:

# ifconfig eth0 hw ether 00:0c:29:33:4e:aa

Aquí, la sintaxis para agregar la dirección MAC usando el comando ip:

# ip link set dev eth0 address 00:0c:29:33:4e:aa

Además de establecer la dirección IP o la dirección de hardware, otras configuraciones que se pueden aplicar a una interfaz incluyen:

  1. MTU (Maximum Transfer Unit)
  2. Multicast flag
  3. Transmit Queue length
  4. Promiscuous mode
  5. Enable or disable all multicast mode

# ifconfig eth0 mtu 2000
# ip link set dev eth0 mtu 2000

# ifconfig eth0 multicast
# ip link set dev eth0 multicast on

# ifconfig eth0 txqueuelen 1200
# ip link set dev eth0 txqueuelen 1200

# ifconfig eth0 promisc
# ip link set dev eth0 promisc on

# ifconfig eth0 allmulti
# ip link set dev eth0 allmulti on

Los siguientes comandos habilitan o deshabilitan una interfaz de red específica.

El siguiente comando deshabilita la interfaz eth0 y se verifica mediante la salida de ifconfig que, por defecto, muestra solo aquellas interfaces que están activas.

# ifconfig eth0 down

Para volver a habilitar la interfaz, simplemente reemplace abajo por arriba.

# ifconfig eth0 up

El siguiente comando ip es una alternativa para que ifconfig deshabilite una interfaz específica. Esto se puede verificar con la salida del comando 'ip a' que muestra todas las interfaces por defecto, ya sea arriba o abajo, pero resalta su estado junto con la descripción.

# ip link set eth0 down

Para volver a habilitar la interfaz, simplemente reemplace abajo con arriba.

# ip link set eth0 up

Los siguientes comandos habilitan o deshabilitan el protocolo ARP en una interfaz de red específica.

El comando permite utilizar el protocolo ARP con la interfaz eth0. Para deshabilitar esta opción, simplemente reemplace arp con -arp .

# ifconfig eth0 arp

Este comando es la alternativa de ip para habilitar ARP para la interfaz eth0. Para deshabilitar, simplemente reemplácelo con apagado.

# ip link set dev eth0 arp on

Conclusión

Por lo tanto, hemos resaltado las características del comando ifconfig y cómo se pueden hacer usando el comando ip. Actualmente, las distribuciones de Linux proporcionan al usuario ambos comandos para que pueda usarlos de acuerdo con su conveniencia. Entonces, ¿qué comando es conveniente según usted y cuál preferiría usar? Mencione esto en sus comentarios.

Si desea obtener más información sobre estos dos comandos, debe consultar nuestros artículos anteriores que muestran algunos ejemplos prácticos de ifconfig e ip command de manera más detallada.