Skip to content

Ejercicios de evaluación. Curso 2019 2020. Bloque III

Juan Gonzalez-Gomez edited this page Jun 14, 2020 · 33 revisions

Introducción

  • Ejercicios de evaluación y sus soluciones correspondientes al bloque III de prácticas: Enrutamiento IP, ARP, UDP y TCP

Enunciado en PDF

Soluciones

Parte I: Enrutamiento IP

Descomprime el escenario disponible en el fichero escenario-test.zip y ábrelo con Netgui. Arranca todas las máquinas

  1. Obtén las tablas de enrutamiento de TODAS las máquinas que estén configuradas e indica el comando que hay que usar. Adjunta pantallazos de los resultados en el terminal en todas las máquinas
  • Sol: Para ver las tablas de encaminamiento usamos el comando route

Ni ordenador pc1 ni el router r5 están configurados (no tienen IPs asignadas)

pc2:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
20.20.20.128    *               255.255.255.128 U     0      0        0 eth0
default         20.20.20.213    0.0.0.0         UG    0      0        0 eth0
pc2:~#
pc3:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
30.30.30.0      *               255.255.255.0   U     0      0        0 eth0
default         30.30.30.14     0.0.0.0         UG    0      0        0 eth0
pc3:~#
pc4:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
40.40.40.128    *               255.255.255.128 U     0      0        0 eth0
default         40.40.40.210    0.0.0.0         UG    0      0        0 eth0
pc4:~
r1:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
40.40.40.128    *               255.255.255.128 U     0      0        0 eth1
10.10.10.0      *               255.255.255.0   U     0      0        0 eth0
default         10.10.10.12     0.0.0.0         UG    0      0        0 eth0
r1:~#
r2:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
20.20.20.128    *               255.255.255.128 U     0      0        0 eth1
10.10.10.0      *               255.255.255.0   U     0      0        0 eth0
default         20.20.20.213    0.0.0.0         UG    0      0        0 eth1
r2:~#
r3:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
20.20.20.128    *               255.255.255.128 U     0      0        0 eth0
30.30.30.0      *               255.255.255.0   U     0      0        0 eth1
default         30.30.30.14     0.0.0.0         UG    0      0        0 eth1
r3:~#
r4:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
40.40.40.128    *               255.255.255.128 U     0      0        0 eth1
30.30.30.0      *               255.255.255.0   U     0      0        0 eth0
default         40.40.40.210    0.0.0.0         UG    0      0        0 eth1
r4:~#
  1. Comprueba si pc2 y pc4 pueden intercambiar datagramas. Indica el comando que has usado para ello, la salida que produce y porqué deduces que hay conectividad
  • Sol: Sí hay conectividad entre pc2 y pc4. Lo comprobamos con el comando ping. Se puede probar de varias formas. Por ejemplo yendo a la terminal de pc2 y haciendo un ping a pc (cuya IP es 40.40.40.204):
pc2:~# ping 40.40.40.204
PING 40.40.40.204 (40.40.40.204) 56(84) bytes of data.
64 bytes from 40.40.40.204: icmp_seq=1 ttl=62 time=11.4 ms
64 bytes from 40.40.40.204: icmp_seq=2 ttl=62 time=0.660 ms
64 bytes from 40.40.40.204: icmp_seq=3 ttl=62 time=0.651 ms
64 bytes from 40.40.40.204: icmp_seq=4 ttl=62 time=0.772 ms

--- 40.40.40.204 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.651/3.374/11.413/4.641 ms
pc2:~#

Obtenemos respuesta de la máquina destino, por lo que hay conectividad

  1. Los paquetes enviados de pc2 a pc4, ¿Qué ruta siguen?. Justifícalo indicando los comandos que hay que ejecutar para saberlo, y las salidas que producen
  • Sol: Para saber por qué rúters pasan los paquetes de pc2 con destino a pc4, nos situamos sobre el terminal de pc2 y usamos el comando traceroute
traceroute to 40.40.40.204 (40.40.40.204), 64 hops max, 40 byte packets
 1  20.20.20.213 (20.20.20.213)  10 ms  0 ms  0 ms
 2  40.40.40.214 (40.40.40.214)  35 ms  0 ms  0 ms
 3  40.40.40.204 (40.40.40.204)  9 ms  0 ms  0 ms
pc2:~# 

Observando las IPs de las máquinas intermedias, vemos que los paquetes van de pc2 a r3, de ahí a r4 y de r4 a pc4. Por tanto, la ruta es: pc2 => r3 => r4 => pc4

  1. Configura la IP de PC1 para que haya conectividad con PC2. Los paquetes de pc1 a pc2 deben seguir la ruta pc1=>r2=>PC2. Sin cambiar ninguna tabla de enrutamiento del resto de máquinas, ¿Qué ruta siguen los paquetes que van de PC2 a PC1?
  • Sol: PC1 está en la misma subred que r1 y r2. Nos vamos a la terminal de cualquier de ellos (por ejemplo a r1) y ejecutamos el comando ifconfig para conocer la máscara de red:
r1:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 6e:01:79:84:7c:80  
          inet addr:10.10.10.11  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::6c01:79ff:fe84:7c80/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:440 (440.0 B)  TX bytes:1828 (1.7 KiB)
          Interrupt:5 

Vemos que es 255.255.255.0. Con esta información y viendo las IPs de r1 y r2 samos que la IP de pc1 tiene que ser de la forma: 10.10.10.x, donde x puede ser cualquier números excepto 0, 11, 12 ó 255. Elejimos por ejemplo el 1 y configuramos su IP a 10.10.10.1

Configuramos también su tabla de enrutamiento para que los paquetes salgan por r2. El fichero /etc/network/interfaces de pc1 quedaría así:

pc1:~# cat /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.10.10.1
    netmask 255.255.255.0
    gateway 10.10.10.12
pc1:~#

Ahora, si ejecutamos un ping a pc2, vemos que hay conectividad:

pc1:~# ping 20.20.20.202
PING 20.20.20.202 (20.20.20.202) 56(84) bytes of data.
64 bytes from 20.20.20.202: icmp_seq=1 ttl=61 time=10.5 ms
64 bytes from 20.20.20.202: icmp_seq=2 ttl=61 time=0.662 ms
64 bytes from 20.20.20.202: icmp_seq=3 ttl=61 time=0.392 ms

--- 20.20.20.202 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.392/3.863/10.535/4.719 ms
pc1:~

Y con traceroute verifcamos que efectivamente siguen el caminio pc1 => r2 => pc2

pc1:~# traceroute 20.20.20.202
traceroute to 20.20.20.202 (20.20.20.202), 64 hops max, 40 byte packets
 1  10.10.10.12 (10.10.10.12)  0 ms  0 ms  0 ms
 2  20.20.20.202 (20.20.20.202)  0 ms  0 ms  0 ms
pc1:~#

Si hacemos el traceroute desde pc2 a pc1, lo que obtenemos es:

pc2:~# traceroute 10.10.10.1
traceroute to 10.10.10.1 (10.10.10.1), 64 hops max, 40 byte packets
 1  20.20.20.213 (20.20.20.213)  0 ms  0 ms  0 ms
 2  40.40.40.214 (40.40.40.214)  8 ms  0 ms  0 ms
 3  10.10.10.11 (10.10.10.11)  0 ms  0 ms  0 ms
 4  10.10.10.1 (10.10.10.1)  0 ms  0 ms  0 ms
pc2:~#

Comprobamos que la ruta es diferente: pc2 => r3 => r4 => r1 => pc1

  1. Apaga r1, r2, r3 y r4. Configura las máquinas restantes para que haya conectividad entre todas ellas. Muestra la información del comando traceroute desde PC1 al resto de máquina, y justifica que tu configuración está funcionando. Guarda esta configuración de forma persistente
  • Sol: Para que haya conectividad entre todos la única posibilidad es que sea a través de r5, por ello hay que configurar las 4 interfaces de r5 con direcciones IPs adecuadas, y luego hay que cambar las tablas de enrutamiento de pc1, pc2, pc3 y pc4 para que por defecto envíen los paquetes a través de r5

El primer paso es recopilar todas las máscaras de red de las cuatro subredes. Eso lo hacemos mirando la configuración de las IP de cada PC, con el comando ifconfig. En esta tabla se muestran los resultados.

Máquina IP Máscara de red
PC1 10.10.10.1 255.255.255.0
PC2 20.20.20.202 255.255.255.128
PC3 30.30.30.3 255.255.255.0
PC4 40.40.40.204 255.255.255.128

Ahora ya podemos seleccionar direcciones IP válidas para cada uno de los 4 interfaces de r5. Hay muchas posibilidades. En esta tabla se recoge una posible solución:

Interfaz r5 IP Máscara
eth0 40.40.40.215 255.255.255.128
eth1 10.10.10.215 255.255.255.0
eth2 20.20.20.215 255.255.255.128
eth3 30.30.30.215 255.255.255.0

Una vez configurado todo hacemos traceroute desde pc1 al resto de máquinas para confirmar que hay conexión con todas ellas

pc1:~# traceroute 20.20.20.202
traceroute to 20.20.20.202 (20.20.20.202), 64 hops max, 40 byte packets
 1  10.10.10.215 (10.10.10.215)  0 ms  0 ms  0 ms
 2  20.20.20.202 (20.20.20.202)  8 ms  0 ms  0 ms
pc1:~#
pc1:~# traceroute 30.30.30.3
traceroute to 30.30.30.3 (30.30.30.3), 64 hops max, 40 byte packets
 1  10.10.10.215 (10.10.10.215)  0 ms  0 ms  0 ms
 2  30.30.30.3 (30.30.30.3)  0 ms  0 ms  0 ms
pc1:~#
pc1:~# traceroute 40.40.40.204
traceroute to 40.40.40.204 (40.40.40.204), 64 hops max, 40 byte packets
 1  10.10.10.215 (10.10.10.215)  0 ms  0 ms  0 ms
 2  40.40.40.204 (40.40.40.204)  9 ms  0 ms  0 ms
pc1:~#

Parte II: ARP

  1. Partimos del escenario que ya tenías configurado en el apartado 6. Asegúrate que hay conectividad entre PC2 y PC4 a través de r5. Cierra todas las máquinas y arranca sólo PC2, PC4 y r5. Completa la siguiente tabla:
Máquina Direccion Ethernet Dirección IP
PC2
PC4
R5
  • Sol: Nos situamos en cada una de las máquinas y usamos el comando ifconfig para obtener la información. NOTA: Las direcciones físicas (ethernet) en las máquinas virtuales se asignan aleatoriamente cada vez que arrancan las máquinas, por ello a cada uno os saldrán unas direcciones diferentes
Máquina Direccion Ethernet Dirección IP
PC2 d2:94:92:a9:76:4a 20.20.20.202
PC4 0e:52:61:de :85:bb 40.40.40.204
R5/eth0 6e:19:19:7e:31:29 40.40.40.215
R5/eth1 52:1c:b9:32:6e:7e 10.10.10.215
R5/eth2 5a:61:50:05:7a:3a 20.20.20.215
R5/eth3 ea:b4:47:97:ea:76 30.30.30.215
  1. Partiendo de estado inicial, antes de haber ejecutado ningún comando ping, comprueba el estado de las cachés de arp. Saca una captura de la terminal de cada máquina (pc2, pc4 y r5) con el comando que has usado y el resultado
  • Sol: Para comprobar la caché usamos el comando arp. Nada más arrancar las máquinas, puesto que no ha habido ninguna comunicación entre las máquinas, todas las cachés arp estará vacías, y así al ejecutar el comando arp no obtendremos nada:
pc2:~# arp
pc2:~#
pc4:~# arp
pc4:~#
r5:~# arp
r5:~#
  1. Arranca tcpdump para capturar el tráfico en pc4 y en r5 (en su interfaz eth2). Realiza un único ping desde pc2 a pc4. Guarda las capturas en los ficheros cap-pc4-xxx.cap y cap-r5-xxx.cap donde xxx son tus iniciales (iguales que las que usaste en los ejercicios del bloque II). Toma una caputara de pantalla del terminal en pc4 y r5 donde se vea el comando tcpdump lanzado
  • Sol: Realizamos la primera captura en pc4. Desde pc2 lanzamos un único ping (con el argumento -c 1) y finalizamos la captura en pc4:
pc4:~# tcpdump -i eth0 -s 0 -w /hosthome/cap-pc4-agm.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
4 packets captured
4 packets received by filter
0 packets dropped by kernel
pc4:~#

Repetimos con la segunda captura, pero ahora desde r5 (eth2):

r5:~# tcpdump -i eth2 -s 0 -w /hosthome/cap-r5-agm.cap
tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
4 packets captured
4 packets received by filter
0 packets dropped by kernel
r5:~#
  1. Comprueba de nuevo el estado de las cachés de ARP y saca las capturas de la terminal de cada máquina (pc2, pc4 y r5). Compáralas con lo obtenido en 8 y explica qué ha ocurrido
  • Sol: Ahora consultamos las cachés ARP ejecutando nuevamente el comando arp en cada máquina. Al haberse realizado una comunicación entre pc2 y pc4, pc4 tiene almacenada la dirección física para conectarse a r5. R5 también conoce las direcciones físicas de Pc4 y Pc2, y lo pc4 conoce la dirección física de conexión a r5. Por tanto, las cachés ARP ahora no están vacías, como al principio:
pc2:~# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
20.20.20.215             ether   5A:61:50:05:7A:3A   C                     eth0
pc2:~#

PC2 tiene almacenada en su caché la dirección física de r5/eth2

pc4:~# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
40.40.40.215             ether   6E:19:19:7E:31:29   C                     eth0
pc4:~#

PC4 tiene almacenada en su caché la dirección física de r5/eth0

r5:~# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
20.20.20.202             ether   D2:94:92:A9:76:4A   C                     eth2
40.40.40.204             ether   0E:52:61:DE:85:BB   C                     eth0
r5:~#

R5 tiene almacenada en su caché las direcciones físicas de PC2 y PC4

  1. Abre las dos capturas en wireshark, toma un pantallazo de cada una y adjúntalos como respuesta a este apartado
  • Sol: Las capturas son las siguientes:

  1. Explica cada una de las tramas que aparecen en la captura tomada en r5, indicando el protocolo, quién la envía, quien la recibe y el propósito

(TODO)

Clone this wiki locally