-
Notifications
You must be signed in to change notification settings - Fork 4
Ejercicios de evaluación. Curso 2019 2020. Bloque III
- Ejercicios de evaluación y sus soluciones correspondientes al bloque III de prácticas: Enrutamiento IP, ARP, UDP y TCP
- Bloque-III-Practica.pdf
- Escenario para Netgui: escenario-test.zip
Descomprime el escenario disponible en el fichero escenario-test.zip y ábrelo con Netgui. Arranca todas las máquinas
- 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:~#
- 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
- 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
- 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
- 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:~#
- 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 |
- 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:~#
- 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:~#
- 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
- 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:
- 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)
- Inicio
- Manuel de Supervivencia Linux
- Primeros pasos con la herramienta Netgui
- La máquina aislada
- Ethernet: Conectando dos máquinas
- Ethernet: Varias máquinas en red
- Práctica-1: Ethernet
- Práctica-2: Direcciones IP
- Práctica-3: Protocolos IP e ICMP
- Práctica-4: Enrutamiento IP, ARP, UDP y TCP
- Práctica-5: TCP. DNS