Comandos de gestión de red
ping
El comando ping se utiliza para enviar mensajes ICMP a un host (IP o dominio). ICMP (Internet Control Message Protocol) es un protocolo que pertenece al grupo de protocolos de internet como DHCP, FTP, HTTP, etc que se utiliza con fines de diagnóstico o comprobación de respuestas de un equipo. Básicamente utilizaremos ping verificar que la máquina destino responde y su tiempo de respuesta.
$ ping www.google.com
Por defecto envía un mensaje por segundo de forma constante hasta que paremos el proceso utilizando Ctrl + C
. Podemos especificar el número de paquetes a enviar con -c <number>
:
$ ping -c 3 www.google.com
PING www.google.com (172.217.17.4) 56(84) bytes of data.
64 bytes from mad07s09-in-f4.1e100.net (172.217.17.4): icmp_seq=1 ttl=63 time=23.8 ms
64 bytes from mad07s09-in-f4.1e100.net (172.217.17.4): icmp_seq=2 ttl=63 time=23.8 ms
64 bytes from mad07s09-in-f4.1e100.net (172.217.17.4): icmp_seq=3 ttl=63 time=25.0 ms
--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 23.759/24.188/24.985/0.563 ms
Tiene otras opciones interesantes como -i <number>
para especificar el intervalo de espera entre envíos, -4
o -6
para utilizar IPv4 ó IPv6 respectivamente; o -I <iface>
para indicar desde qué interfaz o IP de red enviar los paquetes.
traceroute
El comando traceroute
viene en el paquete traceroute
que no está instalado en Ubuntu por defecto y proporciona información de los saltos entre nodos de red para llegar a la IP destino:
$ traceroute www.google.com
traceroute to www.google.com (216.58.211.36), 30 hops max, 60 byte packets
1 _gateway (10.0.2.2) 0.103 ms 0.067 ms 0.075 ms
2 192.168.1.1 (192.168.1.1) 0.799 ms 0.789 ms 0.862 ms
3 10.195.103.1 (10.195.103.1) 19.217 ms 19.209 ms 19.198 ms
4 10.254.45.33 (10.254.45.33) 11.727 ms 11.712 ms 11.695 ms
5 10.179.37.89 (10.179.37.89) 32.300 ms 212.166.147.222 (212.166.147.222) 23.803 ms 10.179.37.89 (10.179.37.89) 32.231 ms
6 108.170.253.225 (108.170.253.225) 23.740 ms 212.166.147.22 (212.166.147.22) 24.775 ms 10.252.37.158 (10.252.37.158) 24.741 ms
7 108.170.233.246 (108.170.233.246) 27.754 ms 108.170.234.221 (108.170.234.221) 23.404 ms 72.14.233.124 (72.14.233.124) 21.386 ms
8 72.14.233.124 (72.14.233.124) 21.381 ms 74.125.242.178 (74.125.242.178) 28.102 ms 74.125.253.200 (74.125.253.200) 25.029 ms
9 mad08s05-in-f4.1e100.net (216.58.211.36) 29.416 ms 24.943 ms 108.170.234.221 (108.170.234.221) 31.983 ms
nslookup
El comando nslookup
se utiliza para resolver direcciones de nombre a IP:
$ nslookup as.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: as.com
Address: 199.232.194.133
Name: as.com
Address: 199.232.198.133
ip
El comando ip
se utiliza para manipular interfaces, redes y enrutamiento. Tiene una gran variedad de sub-comandos (link
, route
, address
, tunnel
, rule
, etc), veremos algunos más útiles.
Para ver el listado de interfaces utilizaremos ip link show
:
$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
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 fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:2f:66:f7 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:d4:68:c3 brd ff:ff:ff:ff:ff:ff
Para ver el listado de interfaces con sus IPs utilizaremos ip address show
:
$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:2f:66:f7 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
valid_lft 82689sec preferred_lft 82689sec
inet6 fe80::a00:27ff:fe2f:66f7/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d4:68:c3 brd ff:ff:ff:ff:ff:ff
inet 192.168.33.20/24 brd 192.168.33.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fed4:68c3/64 scope link
valid_lft forever preferred_lft forever
Para activar o desactivar interfaces de red utilizaremos ip link set dev <iface> down/up
:
$ ip link show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:d4:68:c3 brd ff:ff:ff:ff:ff:ff
# ip link set dev eth1 down
$ ip link show eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 08:00:27:d4:68:c3 brd ff:ff:ff:ff:ff:ff
# ip link set dev eth1 up
$ ip link show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:d4:68:c3 brd ff:ff:ff:ff:ff:ff
Para ver la tabla de enrutamiento utilizaremos ip route
:
$ ip route
default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100
192.168.33.0/24 dev eth1 proto kernel scope link src 192.168.33.20
Para añadir una nueva entrada a la tabla de enrutamientos para una interfaz específica haremos: ip route add <ip_adress> dev <iface>
:
# ip route add 172.16.0.42 dev eth1
$ ip route
default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100
172.16.0.42 dev eth1 scope link
192.168.33.0/24 dev eth1 proto kernel scope link src 192.168.33.20
Para eliminar la entrada añadida utilizaremos con el subcomando del
:
# ip route del 172.16.0.42 dev eth1
$ ip route
default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100
192.168.33.0/24 dev eth1 proto kernel scope link src 192.168.33.20
[!] Nota importante: las instrucciones realizadas con el comando
ip
como alteraciones de la tabla de enrutamiento o cambios de interfaces desaparecen si la máquina es reiniciada. Para que persistan es mejor traducirlas a otro lenguaje o utilizar otra herramienta comosystemd
o manipular los ficheros de/etc/network
.