Icono de Terminal

Cómo utilizar iproute2 en lugar de ifconfig

 
 

Índice General

  1. Introducción
  2. Listado de comandos básicos de ip
  3. Listado de comandos básicos de ss
  4. Linux man page

 

  1. Introducción (Volver al índice General)
    El paquete net-tools al que pertenece ifconfig, es un conjunto de comandos para la configuración del subsistema de red del núcleo Linux y, aunque siguen presentes en algunas distribuciones de Linux, otras como Debian 9 stretch consideran que net-tools es un paquete obsoleto (deprecated) y optan por sustituirlo por el paquete iproute2 suite.

    iproute2 suite es una herramienta mucho más completa y moderna que net-tools, por lo que se recomienda su uso para la gestión del del subsistema de red. Con iproute2 suite podemos hacer lo mismo que con net-tools y, al ser una suite más completa, podremos configurar más parámetros que con net-tools. La suite iproute2 incluye todas las funcionalidades que podemos llevar a cabo con los comandos del paquete net-tools. El paquete net-tools se compone de los siguientes comandos: netstat, ifconfig, ipmaddr, iptunnel, mii-tool, nameif, pliconfig, rarp, route, slattach y arp.

    El propósito de iproute2 suite es reemplazar el conjunto de herramientas que componen las net-tools y encargarse de configurar las interfaces de red, la tabla de enrutamiento y gestionar la tabla ARP.

    iproute2 suite tiene la misma funcionalidad que net-tools y, añade otras funcionalidades que convierten a GNU/Linux en un sistema de enrutamiento avanzado. Las herramientas que se incluyen en el paquete iproute2 suite son: bridge, devlink, ip, rtacct, rtmon, tc, tipc, ctstat, lnstat, nstat, routef, routel, rtstat, arpd y genl. Algunas de sus funcionalidades son: enrutamiento por origen, balanceo de carga, tunneling, gestión del ancho de banda, QoS (Quality of Service), VLAN switching, bridging, etc.

  2.  

  3. Listado de comandos básicos de ip (Volver al índice General)
    A continuación mostramos una serie de ejemplos con el comando ip y en algunos casos su equivalente con ifconfig, route, netstat, ipmaddr o arp.
     

    • Mostrar dispositivos de red y su configuración (Volver al índice General)
      $ sudo ifconfig -a

      Con iproute2, el siguiente comando nos da una salida similar a ifconfig.

      $ sudo ip addr list

      o también:

      $ sudo ip addr show

      Con el siguiente, vemos la información en capa 2 (data link layer) del Modelo OSI:

      $ sudo ip link show
    •  

    • Mostrar las direcciones IPv4 de una interfaz concreta (Volver al índice General)
      $ sudo ifconfig eth1
      $ sudo ip addr show dev eth1
    •  

    • Activar una interfaz de red (Volver al índice General)
      $ sudo ifconfig eth0 up
      $ sudo ip link set eth0 up
    •  

    • Desactivar una interfaz de red (Volver al índice General)
      $ sudo ifconfig eth0 down
      $ sudo ip link set eth0 down
    •  

    • Asignar una dirección IPv4 a una interfaz (Volver al índice General)
      Con ifconfig:

      $ sudo ifconfig eth0 192.168.1.1/24

      o también:

      $ sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0

      Con iproute2:

      $ sudo ip address add 192.168.1.1/24 dev eth0

      iproute2 permite asignar múltiples direcciones IPv4 a una interfaz, cosa que no es posible hacer mediante ifconfig.

      $ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
      $ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
      $ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1

      Con ifconfig se puede asignar múltiples direcciones IPv4 mediante IP aliasing:

      # ifconfig eth0:1 10.0.0.1/24
      $ sudo ifconfig eth0:2 10.0.0.2/24
      $ sudo ifconfig eth0:3 10.0.0.3/24
    •  

    • Eliminar una dirección IPv4 de una interfaz (Volver al índice General)
      ifconfig no puede hacer esto. La única forma es asignarle un 0:

      $ sudo ifconfig eth0 0
      $ sudo ip addr del 192.168.1.1/24 dev eth0
    •  

    • Asignar una dirección IPv6 a una interfaz (Volver al índice General)
      IPv6 permite por su naturaleza asignar múltiples direcciones a una misma interfaz, lo que está soportado de forma nativa por net-tools y por iproute2.

      $ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
      $ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64
      $ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
      $ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1
    •  

    • Mostrar las direcciones IPv6 de una interfaz (Volver al índice General)
      $ sudo ifconfig eth1
      $ sudo ip -6 addr show dev eth1
    •  

    • Borrar una dirección IPv6 de una interfaz (Volver al índice General)
      $ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64
      $ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1
    •  

    • Activar/Desactivar el modo promiscuo de la tarjeta de red (Volver al índice General)
      $ sudo ip link set dev eth0 promisc on
      $ sudo ip link set dev eth0 promisc off
    •  

    • Cambiar la MTU de la interfaz (Volver al índice General)
      $ sudo ip link set dev eth2 mtu 10000
    •  

    • Cambiar la MAC de una interfaz de red (Volver al índice General)
      Tanto con ifconfig como con iproute2 hay que deshabilitar la tarjeta de red antes de cambiar la MAC y luego volver a activarla.

      $ sudo ifconfig eth1 hw ether 08:00:27:75:2a:67
      $ sudo ip link set dev eth1 address 08:00:27:75:2a:67
    •  

    • Ver la tabla de rutas (Volver al índice General)
      Con net-tools:

      $ sudo route -n

      o también:

      $ sudo netstat -rn

      Con iproute2:

      $ sudo ip route show

    •  
       

    • Crear una ruta por defecto (Volver al índice General)
      Con net-tools:

      $ sudo route add default gw 192.168.1.2 eth0

      Con iproute2:

      $ sudo ip route add default via 192.168.1.2 dev eth0
    •  

    • Eliminar una ruta por defecto (Volver al índice General)
      Con net-tools:

      $ sudo route del default gw 192.168.1.1 eth0

      Con iproute2:

      $ sudo ip route replace default via 192.168.1.2 dev eth0
    •  

    • Ver la tabla ARP Cache de todas las interfaces (Volver al índice General)
      $ sudo arp -an
      $ sudo ip neigh

      o también:

      $ sudo ip neighbor show
    •  

    • Ver la tabla ARP Cache de una interfaz concreta (Volver al índice General)
      $ sudo ip neighbor show dev eth0
    •  

    • Añadir una entrada en la tabla ARP (Volver al índice General)
      $ sudo arp -i eth0 -s 192.168.0.1 00:11:22:33:44:55
      $ sudo ip neigh add 192.168.0.1 lladdr 00:11:22:33:44:55 nud permanent dev eth0
    •  

    • Borrar una entrada en la tabla ARP (Volver al índice General)
      $ sudo arp -d 192.168.0.1
      $ sudo ip neigh del 192.168.0.1 dev eth0
    •  

    • Desconectar un dispositivo ARP (Volver al índice General)
      $ sudo ifconfig -arp eth0
      $ sudo ip link set dev eth0 arp off
    •  

    • Añadir direcciones MAC multicast (Volver al índice General)
      Con net-tools:

      $ sudo ipmaddr add 33:44:00:00:00:01 dev eth0

      Con iproute2:

      $ sudo ip maddr add 33:44:00:00:00:01 dev eth0
    •  

    • Eliminar direcciones MAC multicast (Volver al índice General)
      Con net-tools:

      $ sudo ipmaddr del 33:44:00:00:00:01 dev eth0

      Con iproute2:

      $ sudo ip maddr del 33:44:00:00:00:01 dev eth0
    •  

    • Ver direcciones MAC multicast (Volver al índice General)
      Con net-tools:

      $ sudo ipmaddr show dev eth0

      o también:

      $ sudo netstat -g

      Con iproute2:

      $ sudo ip maddr list dev eth0
    •  

    • Comprobación de rutas (Volver al índice General)
      Mediante la opción get, podemos comprobar la resolución que da el algoritmo de resolución de rutas a la hora de seleccionar el siguiente salto hacia una determinada IP. Por ejemplo, ¿Qué ruta tomaría un paquete que debe llegar hasta la IP 8.8.4.4?

      $ sudo ip route get 8.8.4.4
      8.8.4.4 via 192.168.218.2 dev eth0 src 192.168.218.129 
          cache
    •  

    • Borrar la caché de rutas (Volver al índice General)
      El kernel de GNU/Linux busca primero en una caché de rutas, que es una referencia rápida a la tabla de rutas. La caché de rutas se rellena en base paquetes previamente enrutados. Las entradas de la caché se van borrando periódicamente pero aun así, si se realiza algún cambio en la tabla de rutas, se pueden obtener resultados no deseados si no se borra la caché. Para ello se utiliza la opción flush cache.
      Para poder consultar la caché actual:

      $ sudo ip route show cache
      broadcast 192.168.1.255 dev eth0  src 192.168.1.100 
          cache   mtu 1500 advmss 1460 hoplimit 64
      broadcast 192.168.1.255 from 192.168.1.100 dev eth0 
          cache   mtu 1500 advmss 1460 hoplimit 64
      local 192.168.1.100 from 80.58.32.33 dev lo  src 192.168.1.100 
          cache   iif eth0
      80.58.32.33 from 192.168.1.100 via 192.168.1.1 dev eth0 
          cache  mtu 1500 advmss 1460 hoplimit 64

      Para borrar la caché:

      $ sudo ip route flush cache
  4.  

  5. Listado de comandos básicos de ss (Volver al índice General)
    ss se utiliza para volcar estadísticas sobre sockets. Permite mostrar información similar a netstat. ss muestra más información TCP y estado que otras herramientas. A continuación mostramos una serie de ejemplos con el comando ss y en algunos casos su equivalente con netstat.
     

    • Ver estadísticas de sockets a la escucha (Volver al índice General)
      Con net-tools:

      $ sudo netstat

      o también:

      $ sudo netstat -l

      Con iproute2:

      $ sudo ss

      o también:

      $ sudo ss -l
    •  

    • Ver estadísticas de sockets TCP a la escucha sin resolución de nombres (Volver al índice General)
      $ sudo netstat -ltn
      $ sudo ss -ltn
  6.  

  7. Linux man page (Volver al índice General)
  8.  

    Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
     
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

2 comentarios

  1. Lucas

    Muy buena info, muchas gracias, hace tiempo que ando buscando info de como administrar mis conexiones de redes desde gnome y no había encontrado una solución concreta, con iproute2 lo puedo hacer fácilmente.

    Gracias por la info!
    Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.