Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark Universidad Rey Juan Carlos Curso 2007/2008 Resumen Los primeros cuatro apartados de la práctica consisten en replicar las configuraciones realizadas en la práctica 0, pero utilizando el fichero /etc/network/interfaces para poder conservar configuraciones de red aun cuando apagues y rearranques una máquina. En el resto de secciones se hará uso de las aplicaciones tcpdump y wireshark para capturar y analizar tráfico generado en una red NetGUI. Introducción Arranca NetGUI y crea una red como la de la figura 1: en donde pc1, pc2 y pc3 son 3 ordenadores, y r1 es un router. Asegúrate de que la interfaz eth0 de r1 es la que está en la subred de pc1 y pc2, y la interfaz eth1 de r1 es la que está en la subred de pc3. Para ello, enlaza antes r1 con el hub de la red de pc1 y pc2, y luego con el hub de la red de pc3. Para conectar varios dispositivos a un mismo segmento de red necesitarás utilizar hubs. Un hub para conectar pc1, pc2 y r1 y otro hub para conectar pc3 y r1. Solución: Dibujar el mismo diagrama que en la práctica 0. 1. Inicio de una red por primera vez 1. Arranca los ordenadores y el router y comprueba la configuración de las interfaces de red en cada uno de ellos. 1
pc1 pc2 r1 pc3 Figura 1: Diagrama de red Solución: Igual que en la práctica 0. 2. Las máquinas no tienen configuradas sus interfaces de red por lo que ninguna aplicación podrá intercambiar mensajes con otras maquinas. Sólo podrá cada máquina consigo misma a través de la dirección 127.0.0.1. La dirección IP 127.0.0.1 está asignada a la interfaz de loopback lo. La interfaz de loopback es virtual: los datagramas que se envían a través de esta interfaz vuelven a la misma máquina sin llegar a salir a la red. Solución: Igual que en la práctica 0. 3. Comprueba que la máquina pc1 responde a los ping que se envían desde pc1 destinados a la dirección 127.0.0.1. Solución: Igual que en la práctica 0. 4. Comprueba que las tablas de encaminamiento están vacías en todas las máquinas. Solución: Igual que en la práctica 0. 2. Configuración de las direcciones IP mediante el fichero /etc/network/interfaces 1. Utilizando el fichero /etc/network/interfaces, asigna las siguientes direcciones IP a las interfaces de red de las máquinas y del router: 2
pc1: 10.0.0.2/24 pc2: 10.0.0.3/24 r1, interfaz eth0: 10.0.0.1/24 r1, interfaz eth1: 11.0.0.1/24 pc3: 11.0.0.2/24 Solución: En la figura 2 se muestra la asignación de direcciones IP realizada a través del fichero /etc/network/interfaces, véase diapositiva 2 del fichero wireshark.pdf. Figura 2: Diagrama de red 2. Aplica la configuración del fichero /etc/network/interfaces en cada máquina: /etc/init.d/networking restart. 3. Comprueba cómo se han modificado las tablas de encaminamiento en las máquinas y en el router tras la asignación de las direcciones IP. 3
Solución: Con el comando route se comprueba que las tablas de encaminamiento se han modificado en las máquinas/routers teniendo en cuenta las rutas a las subredes a las que pertenecen las direcciones IP configuradas en sus interfaces. 4. A la vista de los resultados del punto anterior, trata de razonar si funcionarán los ping entre las máquinas o entre las máquinas y el router. Compruébalo con el comando adecuado. Solución: Con el comando route se comprueba que funcionan los ping entre máquinas/router que pertenecen a la misma subred, ya que las tablas de encaminamiento sólo tienen rutas a las subredes a las que pertenece una máquina/router. 5. Trata de razonar cuál será la caché de ARP en todas las máquinas y en el router. Compruébalo con el comando adecuado. Solución: La caché de ARP en las máquinas/router mostrará las asociaciones entre dirección IP y dirección Ethernet aprendidas. El comando arp permite ver la caché de ARP. Por cada ping destinado a una IP diferente dentro de la misma subred se habrá generado una nueva entrada. 3. Configuración de rutas mediante el fichero /etc/network/interfaces 1. Utilizando el fichero /etc/network/interfaces, modifica las tablas de encaminamiento necesarias para que los ping funcionen entre todas las máquinas y entre las máquinas y el router. Compruébalo con el comando adecuado. Solución: Es necesario añadir una ruta en pc1 y pc2 para llegar a la red 11.0.0.0/24 y una ruta en pc3 para llegar a la red 10.0.0.0/24. Se pueden utilizar rutas por defecto o rutas a subredes. Véase diapositiva 4 del fichero wireshark.pdf. 2. Aplica la configuración del fichero /etc/network/interfaces en cada máquina: /etc/init.d/networking restart 4
3. Trata de razonar cuál será la caché de ARP en todas las máquinas y en el router. Compruébalo con el comando adecuado. Solución: La caché de ARP en las máquinas mostrará las asociaciones entre dirección IP y dirección Ethernet aprendidas. Por cada ping destinado a una IP diferente, dentro de la subred donde se encuentra la máquina, se habrá generado una nueva entrada. Si se realiza un ping a otra IP de una subred diferente, fuera de la subred donde se encuentra la máquina, la caché de ARP mostrará la asociación entre la dirección IP y dirección Ethernet del siguiente salto que la máquina tiene configurada para llegar a la red destinataria. La caché de ARP se muestra con el comando arp. 4. Comprueba con el comando adecuado cuáles son los router o máquinas que se atraviesan cuando se comunican pc1 y pc2 y cuando se comunican pc1 y pc3. Solución: Utilizar el comando traceroute con la dirección IP del destino que se quiere alcanzar. 5. Si anteriormente has utilizado rutas por defecto, elimínalas y usa rutas para subredes. Si anteriormente has utilizado rutas para subredes, elimínalas y usa rutas por defecto. Comprueba que sigue funcionando los ping entre todas las máquinas y entre las máquinas y el router. Solución: Véase diapositiva 4 del fichero wireshark.pdf para modificar las rutas del fichero /etc/network/interfaces. 4. Guardar/cargar un diagrama de red 1. La configuración realizada mediante el fichero /etc/network/interfaces quedará almacenada de forma persistente cuando pares cada una de las máquinas. Si paramos y arrancamos de nuevo las máquinas, dicha configuración se conserva. Al arrancar una máquina se carga automáticamente la configuración especificada en /etc/network/interfaces, sin que sea preciso llamar a /etc/init.d/networking restart. 2. Para las máquinas y el router y guarda el diagrama de la red. 3. Salte de la aplicación NetGUI y vuelve a arrancarla. 5
4. Carga la configuración que guardaste previamente. 5. Arranca la red y comprueba que dicha configuración es correcta y puedes hacer ping entre todas las máquinas y entre las máquinas y el router. 5. Introducción al uso de tcpdump y Wireshark Utilizando las herramientas tcpdump y wireshark, responde a las siguientes preguntas. Es importante que realices los experimentos necesarios en en el orden en el que se muestran las preguntas. Para responder adecuadamente deberás decidir en qué momento y en qué subredes tienes que arrancar tcpdump. 1. Haz un ping de pc1 a pc2 para que envíe 3 paquetes ICMP: a) Con qué TTL llegan los mensajes ICMP a pc2? Solución: 64 b) Qué valor tienen los campos Type y Code de los mensajes ICMP que llegan a pc2? Solución: Type=8, Code=0 c) Qué valor tienen los campos Type y Code de los mensajes ICMP que llegan a pc1? Solución: Type=0, Code=0 d) Qué valor numérico hexadecimal tiene el campo protocol de los datagramas IP en los que viajan los mensajes ICMP? Solución: 0x01 e) Qué valor numérico hexadecimal tiene el campo de tipo de protocolo de las tramas Ethernet en las que viajan los mensajes ICMP? Solución: 0x0800 f ) En qué subred/subredes has tenido que capturar el tráfico con tcpdump para responder a las preguntas de este apartado? Solución: 10.0.0./24 2. Haz un ping de pc1 a pc3 para que envíe 3 paquetes ICMP: 6
a) Con qué TTL llegan los mensajes ICMP a pc3? Solución: 63 b) En qué subred/subredes has tenido que capturar el tráfico con tcpdump para responder a las preguntas de este apartado? Solución: 11.0.0./24 3. Ejecuta ahora en r1 el siguiente mandato: ifconfig eth1 down. Haz después un ping de pc1 a pc3 para que envíe 3 paquetes ICMP: Se reciben mensajes ICMP en pc1? En caso afirmativo, describe los campos type y code y el significado de dichos mensajes ICMP, e indica también el valor del campo TTL del datagrama IP en el que llegan dichos mensajes ICMP. Razona el comportamiento observado. Solución: Se reciben mensajes ICMP Type 3, Code 0 (Destination unreachable, Network unreachable. TTL:64 Los ICMP request llegan a r1. En r1, al haber bajado su interfaz eth1, no hay ruta hacia pc3. Por ello r1 envía un nuevo mensaje de ICMP hacia pc1 informando de la situación de error. Fíjate en que como parte de los mensajes ICMP aparece un trozo del datagrama IP que provocó el envío del mensaje ICMP: cabecera IP del datagrama IP y parte del campo de datos. 4. Ejecuta en r1 el siguiente mandato: /etc/init.d/networking restart. Haz un traceroute de pc1 a pc2. a) Qué puerto UDP destino utiliza traceroute? Solución: 33435 b) Qué valor de TTL tienen los datagramas IP en los que llegan los datagramas UDP a pc2? Solución: 1 c) Qué valor de TTL tienen los datagramas IP en los que llegan los mensajes ICMP a pc1? Solución: 64 d) Qué valor numérico hexadecimal tiene el campo protocolo de los datagramas IP en los que viajan los mensajes UDP que llegan a pc2? Solución: 0x11 7
e) Qué valor numérico tiene el campo de tipo de las tramas Ethernet que llevan los mensajes UDP que llegan a pc2? Solución: 0x0800 f ) Qué valores tienen los campos tipo y código de los mensajes ICMP que llegan a pc1? Solución: Llegan 2 tipos de ICMP: tipo: 3, código 3: Destination unreachable, port unreachable tipo:11, código 0: Time to live exceeded : g) Qué valor numérico tiene el campo de tipo de las tramas Ethernet que llevan los mensajes ICMP que llegan a pc1? Solución: 0x0800 h) En qué subred/subredes has tenido que capturar el tráfico con tcpdump para responder a las preguntas de este apartado? Solución: 10.0.0.0/24 5. Haz un traceroute de pc3 a pc1. a) Qué valor de TTL tienen los datagramas IP en los que llegan los datagramas UDP a pc1? Solución: 1 b) Qué valor de TTL tienen los datagramas IP en los que llegan los mensajes ICMP a pc3? Solución: 63 los de Port unreachable, y 64 los de TTL exceeded c) En qué subred/subredes has tenido que capturar el tráfico con tcpdump para responder a las preguntas de este apartado? Solución: En 10.0.0.0/24 y 11.0.0.0/24 (para responder a la última pregunta) 6. En este apartado vas a arrancar el servidor HTTP Apache en una máquina, y el cliente web lynx en otra, pidiéndole al servidor una página web. Arranca en pc3 el servidor de web apache: /etc/init.d/apache start. Arranca en pc1 el cliente Lynx con el siguiente mandato: lynx http://11.0.0.2/k. Este recurso no existe en el servidor web, por lo que responderá con un mensaje de error. Comprueba la salida de lynx muestra la página web del servidor Apache. Responde a las siguientes preguntas: 8
a) Qué puertos TCP origen y destino tienen los segmentos TCP que recibe pc3 cuando pc1 le pide la página web? Solución: puerto origen XX, destino 80. El puerto origen puede variar, ya que TCP en pc1 puede elegir un puerto cualquiera libre. b) Qué puertos TCP origen y destino tienen los segmentos TCP que recibe pc1 procedentes de pc3? Solución: origen 80, destino XX. c) Cuál es valor numérico en hexadecimal del campo Protocolo del datagrama IP en el que van los segmentos TCP? Solución: 0x06 d) Cuántos segmentos TCP de datos envía el cliente al servidor? Solución: 1 e) Cuántos segmentos TCP de datos envía el servidor al cliente? Solución: 1 f ) Qué extremo cierra antes la conexión? Solución: El servidor 6. Descubrimiento de red a partir de ficheros de capturas Utilizando wireshark se han realizado capturas en 2 de las máquinas de una red. Como resultado se han obtenido 4 ficheros: r2.eth0.cap 1, r2.eth1.cap 2 y r2.eth2.cap 3 corresponden respectivamente a las capturas de las interfaces eth0, eth1 y eth2 de la máquina r2. r1.eth0.cap 4 corresponde a la captura de la interfaz eth0 de la máquina r1. No se especifica si las máquinas r1 y r2 tienen otras interfaces de red. Analizando los 4 ficheros responde a las siguientes preguntas: 1. Identifica las máquinas de la red que puedas. Indica las direcciones Ethernet e IP de todas sus interfaces de red. 1./r2.eth0.cap 2./r2.eth1.cap 3./r2.eth2.cap 4./r1.eth0.cap Solución: Veáse la figura 3: 9
2. Indica qué mandatos se han ejecutado, en qué maquinas, y en qué orden. Solución: En 212.12.3.2 ping 212.12.1.2 En 212.12.4.2 ping 212.12.2.2 3. Trata de reproducir en NetGUI una red similar a la utilizada para realizar las capturas. Nota: Los 4 ficheros contienen capturas realizadas durante el mismo intervalo de tiempo. No deben relacionarse las marcas de tiempo de un fichero con las de los demás. 10
fe:fd:d4:0c:04:02 212.12.4.2 hub fe:fd:d4:0c:03:02 212.12.3.2 hub eth2 fe:fd:d4:0c:04:01 212.12.4.1 eth1 fe:fd:d4:0c:03:01 212.12.3.1 r2 r1 212.12.1.3 eth0 fe:fd:d4:0c:01:03 fe:fd:d4:0c:02:01 212.12.2.1 eth0 fe:fd:d4:0c:01:01 212.12.1.1 hub hub 212.12.1.2 fe:fd:d4:0c:01:02 212.12.2.2 fe:fd:d4:0c:02:02 Figura 3: Diagrama de red del análisis de capturas 11