Troubleshooting en perdida de paquetes
Troubleshooting quiere decir "Solución de problemas o Recursos para solucionar problemas", para esta seccion lo aplicaremos para la perdida de paquetes de red.
Cuando se administra un servidor o un equipo este puede llegar a tener problemas de red, los cuales van desde lo fisico a lo virtual(configuracion) en las distribuciones linux estas cuentan con herramientas para poder intuir el posible error que lo provoca.
Comando ping
Este comando nos permite checar si existe comunicación entre un equipo remoto y el nuestro.
#sintaxis para pedir ciertas veces si existe conexion en un equipo remoto
ping -c <numero de veces de consulta> <ip>
#ejemplo
ping -c 4 8.8.8.8
El resultado que nos da el comando anterior demuestra que existe conexion con el equipo remoto 8.8.8.8 ya que en los parametros de la parte inferior dice que de 4 paquetes tramitidos, estos fueron recividos en su totalidad en un tiempo de 300 ms.
[user@linux ~]$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=22.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=23.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=22.8 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=115 time=22.3 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 22.192/22.735/23.645/0.580 ms
Para fines didacticos se activo del firewall en modo panico para simulara un fallo con la conexion el resultado que produce seria que los 4 paquetes que fueron enviados, todos estos no fueron recibidos tal y como se muestra a continuacion.
[user@linux ~]# ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3085ms
existe ocasiones que de 4 paquete enviados 2 son recibidos y 2 son perdidos, lo cual se puede llegar a deducir que existe intermitencia en la conexion.
Comando mtr
Este comando nos permite ver los saltos(traceroute) que realiza el ordenador al host remoto al cual se desea comunicar por ejemplo.
My traceroute [v0.95]
fedora (10.0.2.15) -> 8.8.8.8 (8.8.8.8) 2022-10-06T15:00:27-0500
keys: Help Display Mode Restart statistics order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. _gateway 0.0% 8 0.7 0.6 0.2 0.3 0.1
2. 192.168.1.254 0.0% 8 0.7 0.6 0.2 0.3 0.1
3. dns.google 0.0% 7 0.7 0.6 0.2 0.3 0.1
Dentro de una red interna se veria mejor el efecto ya que uno conoce aproximandamente que dispositivos existen dentro de la red.
Comando ifstat
Es una herramienta para informar la actividad de un interfaz.
- Ejemplo
[user@linux ~]$ ifstat
#host #tuordenador
#kernel #EntradaPaq #SalidaPaq #EntradaData #SalidaData
Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate
RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
lo 42 0 42 0 5034 0 5034 0
0 0 0 0 0 0 0 0
enp0s3 21374 0 9055 0 23389K 0 1831K 0
0 0 0 0 0 0 0 0
podemos ver que en paquetes enviados por nuesta interfaz en0s3(TX Pkts) no tuvo ningun paquete con error(TX errs) o caido(Drop) y sucede lo mismo con los paquetes que entraron(RX pkts) por la misma interfaz.
Comando tcpdump
Es una herramienta la cual analiza el trafico que circula por la red de todas las interfaz que cuenta su dispositivo.
- Ejemplo de salida de este comando:
[user@linux ~]$ sudo tcpdump
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:39:01.575406 IP 8.2.110.21.https > localhost.51002: Flags [P.], seq 651654678:651654709, ack 503686153, win 65535, length 31
11:39:01.575625 IP localhost.51002 > 8.2.110.21.https: Flags [.], ack 31, win 62780, length 0
11:39:01.575687 IP 8.2.110.21.https > localhost.51002: Flags [F.], seq 31, ack 1, win 65535, length 0
11:39:01.582224 IP localhost.60581 > _gateway.domain: 31841+ [1au] PTR? 21.110.2.8.in-addr.arpa. (52)
11:39:01.622870 IP localhost.51002 > 8.2.110.21.https: Flags [.], ack 32, win 62780, length 0
11:39:01.727822 IP _gateway.domain > localhost.60581: 31841 NXDomain 0/1/1 (120)
11:39:01.728820 IP localhost.60581 > _gateway.domain: 31841+ PTR? 21.110.2.8.in-addr.arpa. (41)
- Selecionar el trafico de red de una interfaz especifica
[user@linux ~]$ sudo tcpdump -i enp0s3
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:49:42.388944 IP localhost.49154 > 143.244.35.229.https: Flags [.], ack 648537732, win 65535, length 0
11:49:42.389131 IP localhost.37554 > 38.71.2.236.https: Flags [.], ack 649856621, win 64064, length 0
11:49:42.389522 IP localhost.traceroute > e2a.google.com.https: Flags [.], ack 656837815, win 62780, length 0
11:49:42.389576 IP localhost.52408 > ext-189-247-217-56.uninet.net.mx.https: Flags [.], ack 644805732, win 63970, length 0
11:49:42.389602 IP localhost.53120 > ext-189-247-217-33.uninet.net.mx.https: Flags [.], ack 643410929, win 62780, length 0
11:49:42.389625 IP localhost.52396 > ext-189-247-217-56.uninet.net.mx.https: Flags [.], ack 644627159, win 62780, length 0
11:49:42.389735 IP 143.244.35.229.https > localhost.49154: Flags [.], ack 1, win 65535, length 0