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: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> 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
¡Muy versátil el comando ip! En teoría ifconfig, route y demás compañeros de viaje estan obsoletos, si bien los sigo usando a diario. Otras operaciones para completar el tutotial:
Añadir un default gateway:
ip route add default via 192.168.99.254
Añadir/quitar rutas:
ip route add 192.168.55.0/24 via 192.168.1.254 dev eth1
ip route del 192.168.55.0/24 via 192.168.1.254 dev eth1
También puedes crear diferentes tablas de rutas (a parte de la por defecto):
echo 7 special >> /etc/iproute2/rt_tables
ip route show table special
ip route add table special default via 192.168.99.254
Prohibir una ruta (avisando con un destination unreachable):
ip route add prohibit 209.10.26.51
Prohibir una ruta a un remitente en concreto:
ip route add prohibit 209.10.26.51 from 192.168.99.35
En fin, que tiene muchas cositas. Keep up the good work!
Fuente: http://linux-ip.net/html/tools-ip-route.html
¡Muchísimas gracias por ampliar la información Jors!
También un mersi anónimo para jors. Se agradece ese plus de información. Hasta me tomo tiempo librado de google para enviaros un saludo a ambos.
Añadir que los parametros se pueden abreviar:
«ip addr list» es lo mismo que «ip a l»
«ip link set» -> «ip l s»
Cisco Style. No lo sabía, gracias!
Excelente información mis amigos muchísimas gracias por la ayuda