Linux networking – Descubriendo vecinos en la red

arp-scan -I eth1 192.168.0.0/24 10.0.0.0/8
nmap -sP 192.168.0.0/24 10.0.0.0/8
fping -g -r1 -s 192.168.0.0/24
arp-scan --interface=eth1 --localnet
for ip in $(seq 1 254); do ping -c1 -w1 192.168.0.$ip &>/dev/null; [ $? -eq 0 ] && echo "192.168.0.$ip"; done
for ip in 192.168.0.{1..254}; do if ping -c1 -w1 $ip &>/dev/null; then echo $ip; fi done

LAN IP

hostname -Iip
ifconfig | grep 'eth0' | tr -s ' ' | cut -d ' ' -f5
ifconfig | grep 'eth1' | tr -s ' ' | cut -d ' ' -f5
cat /sys/class/net/eth0/address
cat /sys/class/net/eth1/address

Router

netstat -r
route -n
traceroute -m 1 -N 1 1.2 | grep ms | perl -nle'/\((\S+)/&&print$1' | tr -d \)

Por favor consulte:

Linux Networking: Lo que sucede en la Red

“Siempre hay que guardar los registros para que otros también puedan interpretar los reportes tal y como los vimos.”

Probando la conectividad con ping

No es un secreto que ping es la herramienta número uno para comprobar la conectividad.

ping -c3 scanme.nmap.org

Se recomienda no bloquear los siguientes mensajes:

  • echo-request
  • echo-reply
  • time-exceeded
  • destination-unreachable

Algunos administradores de sistemas bloquean los mensajes de ping en sus firewalls, y este es un error y un problema porque la mayoría de las funciones de las redes ocupan que al menos estos 4 mensajes operen de manera adecuada.

Perfile y compare la red con FPing y Nmap

Primero descubramos todos los hosts de la red, los que conforman la subred:

arp-scan -I eth0 192.168.0.0/24 10.0.0.0/8

nmap -sP 192.168.0.0/24 10.0.0.0/8

Seguidamente podemos establecer la línea base de rendimiento de la red mediante ping, lo cual es útil para tener con que comparar al momento de tratar de encontrar soluciones a problemas de rendimiento. Muchas de estas características se pueden automatizar con ping, con un script que reporte el rendimiento de toda una subred.

Por favor consulte:

fping -c1 -sdg 192.168.0.0/24 2>&1 | egrep -v "ICMP|xmt"

Encontrando IPs duplicadas

arping -c5 -D 192.168.0.1

arping -c5 -D 192.168.0.15

arping también es esencial para ver si un host se encuentra arriba cuando ping falla, pero usar arping no va a funcionar cuando ping se encuentre bloqueado.

Pruebas de latencia y rendimiento HTTP

httping -c5 -g scanme.nmap.org

httping -c5 -Gg scanme.nmap.org

httping -c5 -h scanme.nmap.org -p 80

httping -c5 -Gsbrg scanme.nmap.org

Escarbando y localizando los problemas de red

Si existe un problema tratando de alcanzar algún host o equipo en la red y además ping lo confirma, hay que imaginar que deben de haber varios routers entre nosotros y el problema, por esta razón es que es necesario escarbar un poco más, gracias a la bondad esto se puede hacer con:

traceroute scanme.nmap.org

traceroute -n scanme.nmap.org

traceroute -q5 -w1 scanme.nmap.org

Traceroute significa seguir la ruta de los paquetes desde una IP de la red en su camino hacia un host determinado. Utiliza el tiempo de vida (TTL) del protocolo IP e intenta provocar una respuesta ICMP TIME_EXCEEDED para cada puerta de enlace a lo largo de la ruta necesaria para llegar al host destino.

Si por alguna razón traceroute no funciona sobre la Internet, ya que algunos routers pueden estar programados para ignorar datagramas UDP. Por esta razón, si vemos muchos “timeouts”, podemons intentar con la opción -I, le dice a traceroute que envíe peticiones ICMP ECHO en lugar de peticiones TCP SYN.

También se puede usar tcptraceroute, el cual envía paquetes TCP SYN en lugar de paquetes UDP o paquetes ICMP ECHO. Estos son más propensos a pasar a través de firewalls, y van a ser menos ignorados por routers. Una vez que el host responde, tcptraceroute envía TCP RST para cerrar la conexión, por lo que el “TCP three-way handshake” nunca es completado. Este es igual a las opciones (-sS) de exploración medio-abierta utilizada por Nmap.

Como alternativa, también se puede usar tcptraceroute:

tcptraceroute scanme.nmap.org

Cuando se inicia mtr, investiga la conexión de red entre el host donde se corre mtr y el host destino HOSTNAME. Lo que hace es enviar paquetes con un TTL bajo, entonces continúa enviando paquetes con un TTL bajo, considerando el tiempo de respuesta de los routers intermedios. Esto le permite a mtr desplegar el porcentaje de respuesta y los tiempos de respuesta de la ruta vía internet hacia nombre el host destino HOSTNAME. Por lo tanto, un aumento repentino en la pérdida de paquetes o en el tiempo de respuesta, a menudo es una indicación de problemas de sobrecarga en un enlace.

mtr scanme.nmap.org

mtr -n scanme.nmap.org

mtr -c60 scanme.nmap.org

Debido a que mtr puede generar una gran cantidad de tráfico de red, se recomienda no dejarlo corriendo de manera indefinida.

Entonces si un router se presenta caido de manera constante, o si mtr consistentemente muestra más de un 5 por ciento en la pérdida de paquetes o largos tiempos de tránsito en el mismo router, entonces es seguro decir que ese router en particular tiene un problema. Si se trata de un router que podemos controlar, entonces hay buenos motivos para intentar arreglarlo. Si no es así, entonces podemos usar dig o whois para averiguar a quién pertenece, incluso para avisarles sobre el problema por si no se han dado cuenta.

Encontrando problemas de alta latencia o de pérdida de paquetes

Ping sirve para verificar que la configuración de los servicios de red TCP/IP están funcionando correctamente. Es muy usado para encontrar problemas de alta latencia o de pérdida de paquetes.

ping -c 3 `hostname -i`

fping `hostname -i`

Comprueba que la pila TCP/IP funciona bien en la tarjeta de interfaz de red (NIC).

Si lo anterior no funciona, hay que comprobar si se han cargado de manera adecuada los servicios TCP/IP.

Puerta de enlace por defecto

ping -c 3 `route -n | grep 'UG' | awk '{ print $2 }'`

fping `route -n | grep 'UG' | awk '{ print $2 }'`

Comprueba que la tarjeta de interfaz de red está funcionando en la subred local haciendo ping a la parte local de la puerta de enlace predeterminada que es un Router.

Si lo anterior no funciona, hay que comprobar que TCP/IP está ligado a la NIC. A continuación, comprobar que la IRQ del NIC, y la dirección base se han establecido correctamente tanto en la propia tarjeta como en la configuración de la interfaz del sistema operativo.

Dirección IP a través de la puerta de entrada

El comando traceroute muestra los nodos/aparatos/routers que se recorren para llegar al destino. Algunos se encuentran en nuestra oficina u hogar (LAN) y otros están en la red de la organización que ofrece el servicio de conexión al Internet (ISP) y otros afuera en otros destinos o nodos de enlace usados para llegar al destino.

traceroute www.google.com

mtr www.google.com

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 2' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 4' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 6' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 8' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^10' | awk '{ print $2 }'`

Comprueba que la puerta de enlace por defecto está correctamente identificada en la configuración de TCP/IP, tambiém comprueba que la máscara de subred está correctamente configurada.

La dirección IP anterior no debe estar en la subred local.

Nombre de dominio

ping -c 3 www.google.com

fping www.google.com

Comprueba que los servicios de nombres de dominio (DNS) están correctamente configurado en la pila TCP/IP.

Si lo anterior no funciona, hay que comprobar que la dirección IP del servidor DNS se introduce en forma adecuada en la configuración de TCP/IP.

Para más información, por favor consulte: