Teniendo en cuenta que ha muchos usuarios o administradores principiantes no conocen herramientas por consola para determinar el estado de las red, del enlace, el direccionamiento IP, las rutas y demás parámetros de TCP/IP del sistema, decidí hacer esta entrada como un aporte básico de administración usando el comando IP, que es el que Debian y casi todos los Linux traen por defecto en sus instalaciones.
Este comando tiene 10 opciones complementarias de sintaxis, ya que no se puede usar completamente solo, y estas son las siguientes:
IP ROUTE
Permite la administración y control de la capa de red del modelo TCP/IP en Linux, donde podemos visualizar las tablas de enrutamiento IP. A diferencia del comando route, este entrega todas las posibilidades de la tabla de enrutamiento, como por ejemplo cuando se tiene una máquina que balancee tráfico y tiene dos puertas de enlace. Por defecto en una máquina normal la salida de este comando sería así
root@localhost:~# ip route
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.39
169.254.0.0/16 dev eth0 scope link
default via 10.0.1.1 dev eth0
Pero si el sistema posee múltiples conexiones y varias rutas por defecto para hacer balanceo, el comando nos permite identificar cada una de estas y su peso en el balanceo, como se ve a continuación
root@localhost:~# ip route
172.16.30.2 dev tun0 proto kernel scope link src 172.16.30.1
172.19.0.2 dev tun3 proto kernel scope link src 172.19.0.1
172.17.0.2 dev tun2 proto kernel scope link src 172.17.0.1
200.293.151.188/30 dev eth1 proto kernel scope link src 230.293.151.189
198.125.251.200/29 dev eth2 proto kernel scope link src 198.125.251.202
192.168.20.0/24 via 172.17.0.2 dev tun2
10.0.0.0/24 via 192.168.0.8 dev eth0
192.168.150.0/24 via 192.168.0.8 dev eth0
192.168.1.0/24 via 172.19.0.2 dev tun3
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100
172.16.30.0/24 via 172.16.30.2 dev tun0
192.168.30.0/24 via 192.168.0.8 dev eth0
169.254.0.0/16 dev eth2 scope link
default
nexthop via 198.125.251.205 dev eth2 weight 8
nexthop via 230.293.151.190 dev eth1 weight 1
Ahora como también permite administrar tiene mecanismos para adicionar o eliminar rutas, los cuales he mostrado en anteriores entradas, y que tienen la siguiente estructura.
Adicionar
root@localhost:~# ip route add 225.255.225.16/30 via 192.168.2.1 dev eth0
Elminiar
root@localhost:~# ip route del 225.255.225.16/30 via 192.168.2.1 dev eth0
Modificar la Ruta por defecto
root@localhost:~# ip route change default via 12.16.152.15 dev eth1
Este comando tiene 10 opciones complementarias de sintaxis, ya que no se puede usar completamente solo, y estas son las siguientes:
- link --> Permite realizar monitoreo y configuraciones directamente sobre el dispositivo de red.
- addr --> Permite la configuración y visualización de parámetros de IPv4 e IPv6 que se encuentran en el dispositivo.
- addrlabel --> Permite colocarle una etiqueta a la configuración de la tarjeta.
- neighbour --> Permite administrar y monitorear entradas guardadas en el cache de ARP.
- route --> Permite la administración de la tabla de enrutamiento de TCP/IP.
- rule --> Permite generar reglas para la base de datos de enrutamiento del sistema
- maddr --> Administración de direccionamiento multicast
- mroute --> Administración de enrutamiento multicast
- tunnel --> Permite la generación de túneles sobre IP
- xfrm --> Administración de características de IPSec
No las se manejar todas por lo que mostrare los ejemplos mas relevantes de los que conozco.
IP LINK
Permite manejar las características de la capa de enlace en el dispositivo de red, por defecto el muestra datos como el mtu, el estado de la conexión, longitud de la cola de transmisión, dirección MAC, entre otros, como se ve a continuación
root@localhost:~# ip link
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 UNKNOWN qlen 1000
link/ether 6c:62:6d:4e:98:2d brd ff:ff:ff:ff:ff:ff
Sin embargo, si le adicionas la opción S el sistema te mostrara algunos datos adicionales muy importantes, tales como si la tarjeta tiene o no colisiones y/o errores en la transmisión, además la cantidad de bytes transmitidos y recibidos, como se ve en el ejemplo a continuación
root@guardianmar ~]# ip -s link show eth0
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 2c:27:d7:14:18:5b brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
1959086592 582608492 0 0 0 6
TX: bytes packets errors dropped carrier collsns
858442681 433455195 4596945 0 0 8807701
IP ADDR
Este permite administrar la capa de red del dispositivo, configurando el direccionamiento de IPv4 e IPv6. La salida por defecto muestra la configuración IP actual de todos los dispositivos, como se ve a continuación
root@localhost:~# ip addr
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 UNKNOWN qlen 1000
link/ether 6c:62:6d:4e:98:2d brd ff:ff:ff:ff:ff:ff
inet6 fe80::6e62:6dff:fe4e:982d/64 scope link
valid_lft forever preferred_lft forever
3: eth1: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:e0:b3:10:80:99 brd ff:ff:ff:ff:ff:ff
4: vnet0: mtu 1500 qdisc noqueue state UNKNOWN
link/ether 6c:62:6d:4e:98:2d brd ff:ff:ff:ff:ff:ff
inet 10.0.1.38/24 brd 10.255.255.255 scope global vnet0
inet6 fe80::6e62:6dff:fe4e:982d/64 scope link
valid_lft forever preferred_lft forever
Ahora para adicionar una dirección a una tarjeta sería con el siguiente comando
root@localhost:~# ip addr add 10.0.1.39/24 dev eth0
Con esto adicionas la IP 10.0.1.39 al dispositivo eth0, creando una IP virtual si este ya tiene dirección. Para eliminarla es practicamente el mismo comando pero con la opción del, como se ve a continuación
root@localhost:~# ip addr del 10.0.1.39/24 dev eth0
Para ver los datos únicamente de un dispositivo se debe usar la opción show y el dispositivo que se deseea así
root@localhost:~# ip addr show eth4.20
10: eth4.20@eth4: mtu 1500 qdisc noqueue
link/ether 00:26:55:e3:9b:aa brd ff:ff:ff:ff:ff:ff
inet 172.30.234.1/24 brd 172.30.234.255 scope global eth4.20
inet 172.30.234.26/24 brd 172.30.234.255 scope global secondary eth4.20:1
inet 172.30.234.35/24 brd 172.30.234.255 scope global secondary eth4.20:2
inet 172.30.234.125/24 brd 172.30.234.255 scope global secondary eth4.20:3
inet 172.30.234.126/24 brd 172.30.234.255 scope global secondary eth4.20:4
inet 172.30.234.36/24 brd 172.30.234.255 scope global secondary eth4.20:5
inet 172.30.234.37/24 brd 172.30.234.255 scope global secondary eth4.20:6
Esta última es especial por que es una configuración de VLAN con 7 direcciones IP configuradas en el dispositivo.
IP NEIGH
Permite visualizar la tabla de cache de ARP del sistema e identificar con esto un posible ataque de hombre en el medio o conocer las MAC de sus vecinos, como se puede apreciar a continuación
root@localhost:~# ip neigh
10.0.1.3 dev vnet0 lladdr 8c:89:a5:13:ee:c0 STALE
10.0.1.1 dev vnet0 lladdr 00:03:ce:89:e8:12 REACHABLE
Con la opción add permite adicionar una entrada a la tabla ARP de forma permanente o con el del eliminar una entrada directamente. Si se desea eliminar completamente la tabla se debe realizar el siguiente comando
root@localhost:~# ip neigh flush
Y para ver la tabla de una sola tarjeta se debe ejecutar el siguiente comando
root@localhost:~# ip neigh show dev eth0
IP ROUTE
Permite la administración y control de la capa de red del modelo TCP/IP en Linux, donde podemos visualizar las tablas de enrutamiento IP. A diferencia del comando route, este entrega todas las posibilidades de la tabla de enrutamiento, como por ejemplo cuando se tiene una máquina que balancee tráfico y tiene dos puertas de enlace. Por defecto en una máquina normal la salida de este comando sería así
root@localhost:~# ip route
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.39
169.254.0.0/16 dev eth0 scope link
default via 10.0.1.1 dev eth0
Pero si el sistema posee múltiples conexiones y varias rutas por defecto para hacer balanceo, el comando nos permite identificar cada una de estas y su peso en el balanceo, como se ve a continuación
root@localhost:~# ip route
172.16.30.2 dev tun0 proto kernel scope link src 172.16.30.1
172.19.0.2 dev tun3 proto kernel scope link src 172.19.0.1
172.17.0.2 dev tun2 proto kernel scope link src 172.17.0.1
200.293.151.188/30 dev eth1 proto kernel scope link src 230.293.151.189
198.125.251.200/29 dev eth2 proto kernel scope link src 198.125.251.202
192.168.20.0/24 via 172.17.0.2 dev tun2
10.0.0.0/24 via 192.168.0.8 dev eth0
192.168.150.0/24 via 192.168.0.8 dev eth0
192.168.1.0/24 via 172.19.0.2 dev tun3
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100
172.16.30.0/24 via 172.16.30.2 dev tun0
192.168.30.0/24 via 192.168.0.8 dev eth0
169.254.0.0/16 dev eth2 scope link
default
nexthop via 198.125.251.205 dev eth2 weight 8
nexthop via 230.293.151.190 dev eth1 weight 1
Ahora como también permite administrar tiene mecanismos para adicionar o eliminar rutas, los cuales he mostrado en anteriores entradas, y que tienen la siguiente estructura.
Adicionar
root@localhost:~# ip route add 225.255.225.16/30 via 192.168.2.1 dev eth0
Elminiar
root@localhost:~# ip route del 225.255.225.16/30 via 192.168.2.1 dev eth0
Modificar la Ruta por defecto
root@localhost:~# ip route change default via 12.16.152.15 dev eth1
Adición de Ruta por defecto con varios canales
root@localhost:~# ip route add default scope global nexthop via 84.2.18.12 dev eth1 weigth 1 nexthop via 15.5.25.66 dev eth0 weigth
root@localhost:~# ip route add default scope global nexthop via 84.2.18.12 dev eth1 weigth 1 nexthop via 15.5.25.66 dev eth0 weigth
Ahora para la parte de control también tiene sus ayudas especiales, como poder hacer búsquedas de una red, ver solo la tabla de enrutamiento de una regla establecida (veremos más adelante las reglas), entre otras como veremos a continuación.
Búsqueda de red
root@localhost:~# ip route show match 172.20.0
172.20.0.0/22 via 172.20.254.18 dev eth1
default via 86.58.43.17 dev eth6
root@localhost:~# ip route show match 172.20.4
172.20.4.0/22 via 10.1.1.5 dev eth3
default via 86.58.43.17 dev eth6
Búsqueda de red
root@localhost:~# ip route show match 172.20.0
172.20.0.0/22 via 172.20.254.18 dev eth1
default via 86.58.43.17 dev eth6
root@localhost:~# ip route show match 172.20.4
172.20.4.0/22 via 10.1.1.5 dev eth3
default via 86.58.43.17 dev eth6
Visualizar una sola tabla
root@localhost:~# ip route show table 10
210.3.11.188/30 dev eth1 proto kernel scope link src 210.3.11.189
141.5.1.200/29 dev eth2 proto kernel scope link src 141.5.1.204
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100
192.168.30.0/24 via 192.168.0.8 dev eth0
169.254.0.0/16 dev eth2 scope link
default via 141.5.1.202 dev eth2
root@localhost:~#ip route show table 20
210.3.11.188/30 dev eth1 proto kernel scope link src 210.3.11.189
141.5.1.200/29 dev eth2 proto kernel scope link src 141.5.1.204
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100
192.168.30.0/24 via 192.168.0.8 dev eth0
169.254.0.0/16 dev eth2 scope link
default via 210.3.11.190 dev eth1
root@localhost:~# ip route show table 10
210.3.11.188/30 dev eth1 proto kernel scope link src 210.3.11.189
141.5.1.200/29 dev eth2 proto kernel scope link src 141.5.1.204
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100
192.168.30.0/24 via 192.168.0.8 dev eth0
169.254.0.0/16 dev eth2 scope link
default via 141.5.1.202 dev eth2
root@localhost:~#ip route show table 20
210.3.11.188/30 dev eth1 proto kernel scope link src 210.3.11.189
141.5.1.200/29 dev eth2 proto kernel scope link src 141.5.1.204
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100
192.168.30.0/24 via 192.168.0.8 dev eth0
169.254.0.0/16 dev eth2 scope link
default via 210.3.11.190 dev eth1
Hola, buen post.
ResponderBorrar¿sería posible resolver nombres de host en la intranet local con este comando?
Gracias
Con este comando no, pero para eso tienes el comando dig, que si tienes configurado el servidor de DNS local de la red LAN elte resolvera el nombre FQDN de cualquier maquina interna
Borrar