Administración del servidor

Comandos de red de Linux para la resolución de problemas en redes

En la publicación anterior, hablamos sobre la gestión de procesos de Linux. En esta publicación, discutiremos acerca de los comandos de red de Linux y cómo solucionar problemas en tu red.

Una vez que hayas confirmado que la red física está funcionando, el siguiente paso es resolver los problemas de tu red y aquí entramos en nuestro tema, que son los comandos de red de Linux y cómo usarlos para solucionar problemas.


Vamos a cubrir los comandos de red de Linux más utilizados.

 

 

Verifica la conectividad de red utilizando el comando ping

El comando ping es uno de los comandos de red de Linux más utilizados en la solución de problemas de red. Se usa para verificar si se puede llegar a una dirección IP específica.

El comando ping funciona enviando una solicitud de echo ICMP para verificar la conectividad de la red.

$ ping google.com

Comandos de red de Linux

Estos resultados muestran un ping exitoso, y se puede describir como el viaje de una solicitud de echo emitida por nuestro sistema a google.com.

Este comando mide la respuesta promedio. Si no hay respuesta, entonces tal vez haya alguno de los siguientes problemas:

  • Hay un problema físico en la red.
  • La ubicación puede ser incorrecta o no funcional.
  • La solicitud de ping está bloqueada por el objetivo.
  • Hay un problema de enrutamiento.

Si deseas limitar el número de solicitudes de echo realizadas a 3, puede hacerlo así:

$ ping -c 3 google.com

comando ping -c

Aquí el comando ping detiene el envío de solicitudes después de 3 ciclos.

Hay algunos problemas que debes considerar acerca del comando ping. Estos problemas pueden no necesariamente significar que haya un problema como:

Distancia al objetivo: por lo tanto, si vive en los EE. UU. Y haces ping a un servidor en Asia, debes esperar que este ping tarde mucho más tiempo que enviar un ping a un servidor en los EE. UU.

La velocidad de conexión: si tu conexión es lenta, el ping llevará más tiempo que si tiene una conexión rápida.

El recuento de saltos: esto se refiere a los enrutadores y servidores que el echo recorre hasta llegar a su destino.

La regla importante acerca del ping es que un ping bajo es la situación más deseable.

 



Obtener los registros DNS usando los comandos dig y host

Puedes utilizar el comando dig para verificar las asignaciones de DNS, direcciones de host, registros MX y todos los demás registros DNS para una mejor comprensión de la topografía DNS.

El comando dig fue desarrollado para reemplazar el comando nslookup.

$ dig google.com

dig comando

El comando dig por defecto busca registros A, puedes obtener información para tipos de registros específicos como registros MX o NS.

$ dig google.com MX

dig mx comando

You can get all types of records by using ANY query.

$ dig google.com ANY

dig ANY comando

El comando dig hace una búsqueda inversa para obtener información del DNS de la siguiente forma:

$ dig x 8.8.8.8

dig -x comando

El comando dig hace su consulta utilizando los servidores listados en /etc/resolv.conf.

El comando de host es similar al comando dig.

$ host a google.com

host comando

Además, también puedes realizar las búsquedas inversas utilizando el comando de host.

$ host 8.8.8.8

Por lo tanto, ambos comandos funcionan de manera similar, pero el comando dig proporciona opciones más avanzadas.

 


Diagnosticar la latencia de la red usando el comando traceroute

El comando traceroute es uno de los comandos de red de Linux más útiles. Se usa para mostrar el camino hacia tu objetivo y de dónde viene el retraso. Este comando ayuda básicamente a:

  • Proporcionar los nombres y la identidad de cada dispositivo en la ruta.
  • Informar la latencia de la red e identificar de qué dispositivo proviene la latencia.

$ traceroute google.com

traceroute comando

La salida proporcionará el host especificado, el tamaño del paquete que se utilizará, la dirección IP y el número máximo de saltos requeridos. Puedes ver el nombre de host, la dirección IP, el número de salto y los tiempos de viaje del paquete.

Para evitar la búsqueda DNS inversa, usa la opción -n.

$ traceroute -n google.com

traceroute -n comando

Al usar el comando traceroute, puedes identificar cuellos de botella en la red. Los asteriscos que se muestran aquí significa que hay un problema potencial en el enrutamiento para ese host, ya que los asteriscos indican la pérdida de paquetes.

El comando traceroute envía un paquete UDP, traceroute puede enviar paquetes UDP, TCP e ICMP.

Si necesita enviar un paquete ICMP, se realiza de la siguiente forma:

$ sudo traceroute -I google.com

traceroute -I comando

Para usar una variación TCP, puedes hacerlo así:

$ sudo traceroute -T google.com

traceroute -T comando

Esto se debe a que algunos servidores bloquean las solicitudes UDP, por lo que puedes usar este método.

En este caso, puedes enviar UDP, ICMP o TCP para omitir estos problemas.

Comandos de red de linux mtr ( seguimiento en tiempo real )

Este comando es una alternativa al comando traceroute.

$ mtr google.com

mtr comando

Lo mejor de del comando mtr es que muestra datos en tiempo real a diferencia de traceroute.

Además, puedes usar el comando mtr con la opción –report, este comando envía 10 paquetes a cada salto encontrado en su camino:

$ mtr --report google.com

mtr report comando

Este comando proporciona una gran cantidad de detalles y de una forma mejor que traceroute.

Si este comando no se ejecuta con una cuenta de usuario normal, debes usar root, ya que algunas distribuciones ajustan el permiso solo para usuarios root.

 


Comprobación del rendimiento de la conexión con el comando ss

El comando de estadísticas de socket ss es un reemplazo para netstat, es más rápido que netstat y brinda más información.

El comando ss obtiene su información directamente del núcleo en vez de confiar en el directorio /proc como el comando netstat.

$ ss | less

ss comando

Este comando genera todas las conexiones de socket TCP, UDP y UNIX y canaliza el resultado al comando less para una mejor visualización.

Puedes combinar este comando con -t para mostrar los sockets TCP o -u para mostrar UDP o -x para mostrar los sockets de UNIX. Y debes usar una opción combinada con cualquiera de estas opciones para mostrar los sockets conectados y de escucha.

$ ss -ta

ss -ta comando

Para enumerar todos los sockets TCP establecidos para IPV4, usa el siguiente comando:

$ ss -t4 state established

ss conexiones establecidas

Para enumerar todos los sockets TCP cerrados:

$ ss -t4 state closed

Puedes usar el comando ss para mostrar todos los puertos conectados desde una IP específica:

$ ss dst XXX.XXX.XXX.XXX

Y puedes filtrar por un puerto específico de la siguiente funciona:

$ ss dst XXX.XXX.XXX.XXX:22

 


Instalar y utilizar el comando iftop para la supervisión del tráfico

La utilidad Iftop o el comando iftop se usan para monitorear el tráfico y mostrar resultados en tiempo real.

Puedes descargar la herramienta de la siguiente manera:

$ wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

Luego extráelo:

$  tar zxvf iftop-0.17.tar.gz

Entonces debes compilarlo:


Si tienes algún error sobre libpcap, puedes instalarlo así:

$ yum install libpcap-dev

Y puedes ejecutar la herramienta como un usuario root:

$ sudo iftop -I <interface>

iftop comando

Verás esta tabla con datos en tiempo real sobre su tráfico.

Añade la opción  P con iftop para mostrar los puertos.

$ sudo iftop -P

iftop -P comando

Puedes usar el la opción –B para mostrar la salida en bytes en lugar de bits que se muestra de forma predeterminada.

$ iftop -B

iftop -B comando

Hay un montón de opciones, puedes verlas usando man iftop  man iftop.

 

Comando arp

Los sistemas mantienen una tabla de direcciones IP y sus direcciones MAC correspondientes, esta tabla se denomina tabla de búsqueda ARP. Si intenta conectarse a una dirección IP, su enrutador verificará su dirección MAC. Si está en caché, la tabla ARP no se usa.

Para ver la tabla arp, use el comando arp:

$ arp

arp comando

De forma predeterminada, el comando arp muestra los nombres de host, puede mostrar las direcciones IP en su lugar de esta manera:

$ arp -n

arp -n comando

Puede eliminar entradas de la tabla arp de esta manera:

$ arp -d HWADDR

 

Análisis de paquetes con tcpdump

Uno de los comandos de red más importantes de Linux es el comando tcpdump. El comando tcpdump se usa para capturar el tráfico que pasa a través de tu interfaz de red.

Este tipo de acceso a los paquetes el cual es el nivel más profundo de la red puede ser vital para solucionar problemas.

$ tcpdump -i <network_device>

tcpdump comando

También puedes especificar un protocolo (TCP, UDP, ICMP y otros):

$ tcpdump -i <network_device> tcp

Además, puede especificar el puerto:

$ tcpdump -i <network_device> port 80

tcpdump seguirá ejecutándose hasta que se cancele la solicitud; es mejor usar la opción -c para capturar un número predeterminado de eventos como este:

$ tcpdump -c 20 -i <network_device>

También puedes especificar la IP a capturar utilizando la opción src o la dst.

$ tcpdump -c 20 -i <network_device> src XXX.XXX.XXX.XXX

Puedes obtener los nombres de los dispositivos de esta manera:

$ ifconfig

ifconfig comando

Puedes guardar el tráfico capturado de tcpdump en un archivo y leerlo más tarde con la opción -w.

$ tcpdump -w /path/ -i <network_device>

Y para leer ese archivo realiza lo siguiente:

$ tcpdump -r /path

Espero que los comandos de red de Linux que hemos discutido en esta publicación puedan ayudarte a solucionar algunos problemas en tu red y tomar la decisión correcta.

Gracias.

Mokhtar Ebrahim
Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja un comentario

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