El comando ip, que forma parte de la iproute2 suite parece ser que es el sustituto de ifconfig, pero de momento ifconfig sigue entre nosotros, y creo que hasta que no desaparezca no dejaremos de usarlo (por comodidad, vagancia o desconocimiento del nuevo).
Vamos a ver algunos ejemplos de uso del comando ip para comenzar a familiarizarnos con él y ver como realizariamos las tareas más comunes que hacemos con ifconfig.
Ver interfaces de red y su configuración
El comando ip addr list vendría a ser lo mismo que ejecutar ifconfig. Se puede ejecutar con el mismo resultado como ip address show o ip address list:
~$ ip addr list
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:1b:24:d5:18:99 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.128/24 brd 192.168.1.255 scope global eth0
inet6 fe80::21b:24ff:fed5:1899/64 scope link
valid_lft forever preferred_lft forever
3: eth2: mtu 1500 qdisc pfifo_fast state DORMANT qlen 1000
link/ether 00:1a:73:d1:67:45 brd ff:ff:ff:ff:ff:ff
inet6 fe80::21a:73ff:fed1:6745/64 scope link
valid_lft forever preferred_lft forever
También podemos usar el comando ip link show para ver la información en capa 2 (data link layer) de las interfaces de red del sistema:
~$ ip link show 1: lo:mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:1b:24:d5:18:99 brd ff:ff:ff:ff:ff:ff 3: eth2: mtu 1500 qdisc pfifo_fast state DORMANT qlen 1000 link/ether 00:1a:73:d1:67:45 brd ff:ff:ff:ff:ff:ff
Activar/desactivar interfaces de red
Para habilitar o deshabilitar una interfaz de red seguiremos utilizando ip link:
~# ip link set eth2 down ~# ip addr list eth2 3: eth2: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:1a:73:d1:67:45 brd ff:ff:ff:ff:ff:ff ~# ip link set eth2 up ~# ip addr list eth2 3: eth2: mtu 1500 qdisc pfifo_fast state DORMANT qlen 1000 link/ether 00:1a:73:d1:67:45 brd ff:ff:ff:ff:ff:ff inet6 fe80::21a:73ff:fed1:6745/64 scope link tentative valid_lft forever preferred_lft forever
Os he mostrado en el ejemplo como al levantar o tirar la interfaz desaparece la flag de UP en el ip addr list. En ifconfig lo hacíamos del siguiente modo:
~# ifconfig eth2 down ~# ifconfig eth2 up
Cambiar características de la interfaz
Con ip link también podemos realizar modificaciones en las características o flags de la interfaz, como por ejemplo configurar el modo promiscuo, multicast, arp, dynamic o allmulti. Se utilizan los valores on|off. En esta otra entrada vimos como hacerlo con ifconfig: configurar tarjeta de red en modo promiscuo:
~# ip link set dev eth0 promisc on ~# ip addr list eth0 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:1b:24:d5:18:99 brd ff:ff:ff:ff:ff:ff inet 192.168.1.128/24 brd 192.168.1.255 scope global eth0 inet6 fe80::21b:24ff:fed5:1899/64 scope link valid_lft forever preferred_lft forever ~# ip link set dev eth0 promisc off ~# ip addr list eth0 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:1b:24:d5:18:99 brd ff:ff:ff:ff:ff:ff inet 192.168.1.128/24 brd 192.168.1.255 scope global eth0 inet6 fe80::21b:24ff:fed5:1899/64 scope link valid_lft forever preferred_lft forever
Configurar una IP para la interfaz
Con ip addr add podemos especificar la IP, máscara (también en formato CIDR como vemos a continuación y la IP de broadcast:
~# ip addr add 10.0.0.100/24 broadcast 10.0.0.255 dev eth2 ~# ip addr list eth2 3: eth2: mtu 1500 qdisc pfifo_fast state DORMANT qlen 1000 link/ether 00:1a:73:d1:67:45 brd ff:ff:ff:ff:ff:ff inet 10.0.0.100/24 brd 10.0.0.255 scope global eth2 inet6 fe80::21a:73ff:fed1:6745/64 scope link valid_lft forever preferred_lft forever
Y para eliminar la IP:
~# ip addr del 10.0.0.100/24 dev eth2
También podemos crear alias en la interfaz:
~# ip addr add 10.0.0.101/24 broadcast 10.0.0.255 dev eth2:1
Cambiar la MTU de la interfaz
~# ip link set dev eth2 mtu 9000
Ver la tabla de rutas
~# ip route show
default via 192.168.1.1 dev eth0 proto static
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.128 metric 1
Ver la tabla de ARP Cache
De todas las interfaces:
~# ip neighbor show
192.168.1.1 dev eth0 lladdr 64:68:0c:6b:5f:7e REACHABLE
De una interfaz concreta:
~# ip neighbor show dev eth0
192.168.1.1 lladdr 64:68:0c:6b:5f:7e REACHABLE
Esto es sólo una pequeña muestra de lo que ofrece el comando ip en GNU/Linux y la suite iproute2 en general. Os recomiendo revisar la página man para profundizar en el tema.
$ man ip