L01 - Solución PDF

Title L01 - Solución
Course Aviónica
Institution Universitat Politècnica de Catalunya
Pages 13
File Size 289.9 KB
File Type PDF
Total Downloads 73
Total Views 136

Summary

Solución practica 1...


Description

Redes IP de Área Local Inicialización del práctica Descargad de Atenea los ficheros: • L01-E01.tar.gz • L01-E02.tar.gz Si elegís la opción por defecto estos ficheros se descargan en el directorio Descargas. Si elegís otra ubicación, los siguientes pasos se tendrán que realizar en dicha ubicación. Abrid un terminal. Para ello hay varias opciones: • Pulsar la combinación de teclado Ctrl+Alt+t (Si vuestra máquina es un Mac, Cmd sustituye a Ctrl) • El segundo icono del panel superior (si ponéis el puntero del ratón sobre él lo describirá como Terminal de Root) • Desde el menú Aplicaciones > Herramientas del sistema > Terminal de root Cambiad al directorio donde habéis descargado los ficheros. Si habéis descargado en Descargas, el comando sería: cd Descargas Una vez en ese directorio tenéis que instalar los dos escenarios de la práctica ejecutando los comandos: install-scenario L01-E01.tar.gz install-scenario L01-E02.tar.gz

Escenario 1 NOTA: En este primer escenario no podréis guardar las configuraciones que hagáis ya que toda la configuración manual de direcciones IP es efímera.

O bien desde el terminal que tenéis abierto, o bien desde un terminal nuevo, si es que habéis cerrado el anterior, cambiad al directorio de trabajo del escenario:

cd /home/avionica/labs/L01/E01 Y después ejecutad:

launch-scenario Cuando el script termine, tendréis arrancado el primer escenario de la práctica. Todos los dispositivos que utilizaremos en las prácticas son contenedores Linux, unas máquinas virtuales mínimas que virtualizan un dispositivo con Linux. En este escenario todos los contenedores virtualizan dispositivos finales (hosts). Para ejecutar comandos en un contenedor primero tenemos que acoplarnos a él. Para ello, desde un terminal ejecutaremos la instrucción:

lxc-attach -n [NOMBRE_DEL_CONTENEDOR]

Así, por ejemplo, para acoplarnos al contenedor de nombre H01, lo haremos con la instrucción: lxc-attach -n H01

Abrid un terminal nuevo y acoplaros al contenedor H01. Observad que cuando estéis acoplados a un contenedor el prompt del terminal cambiará a: root@H01:/#

Visualización de la configuración de las interfaces Para ver el número y configuración de las interfaces de un dispositivo con Linux ejecutamos el comando ip link show. La salida de este comando enumera las interfaces que tiene el dispositivo, su estado, el tipo de interfaz y las direcciones de nivel 2 que tiene asociadas. En el terminal que tenéis acoplado al contenedor H01, ejecutad el comando: ip link show

Observad que H01 tiene dos interfaces. Una de ellas es la interfaz virtual de loopback (lo), una interfaz virtual destinada a ser usada en la red del rango de loopback (127.0.0.0/8) utilizada para establecer conexiones TCP/IP entre procesos de la misma máquina. En lo que a estas prácticas respecta, podemos ignorar esta interfaz. La otra interfaz es una interfaz “física”. Entendamos que aunque en estas prácticas todo es virtual, a menos que indiquemos otra cosa, las interfaces de los contenedores son “físicas” en el sentido de que corresponden a las interfaces físicas de un dispositivo real. El nombre de la interfaz que os aparece es eth0. Cada interfaz física tiene asociado un nombre que asigna el sistema operativo y mediante el cual puede distinguirlas en el caso de que haya varias. Como realmente se trata de una interfaz virtual el nombre con el que la veis es eth0 seguido de una @ y un identificador. A efectos prácticos dentro del contenedor podéis ignorar todo lo que viene tras la @ inclusive. Por lo tanto, este contenedor tiene una única interfaz física de nombre eth0. En la salida del comando observaréis que para cada interfaz muestra su tipo, su dirección MAC y la dirección de broadcast de nivel 2, en una línea tal que así: link/ether 00:16:3e:01:01:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0 Esta línea nos indica que la interfaz es de tipo Ethernet (link/ether), que su dirección MAC es la 00:16:3e:01:01:01 y la dirección broadcast de nivel 2 es ff:ff:ff:ff:ff:ff. El resto de información la podemos ignorar. Para obtener sólo la información de una interfaz en concreto, ejecutaremos el comando: ip link show [NOMBRE_DE_LA_INTERFAZ] Así, por ejemplo, para ver sólo la información de la interfaz eth0 en H01 ejecutaremos: ip link show eth0

Ejercicio 1. Abrid tres terminales más. Acoplad una al H02, otra al H03 y la última a H04 y completad la siguiente tabla:

Dispositivo

Identificador de la interfaz

Dirección MAC

H01

eth0

00:16:3e:01:01:01

H02

eth0

00:16:3e:9e:3f:54

H03

eth0

00:16:3e:a9:20:0d

H04

eth0

00:16:3e:98:7d:16

Configuración de direcciones IP El comando ip link sirve para operar sobre la configuración a nivel 2 de la interfaz. Para operar sobre la configuración a nivel IP (3), utilizaremos el comando ip address. En la terminal acoplada al contenedor H01 ejecutad el comando:

ip address show

Este comando muestra la configuración tanto de nivel 2 como de nivel 3. Observad que aparece la misma línea link/ether con la información de nivel 2. En la interfaz de loopback aparecen dos líneas que nos muestran la configuración a nivel IPv4 (inet) y a nivel IPv6 (inet6). En la interfaz eth0, sólo aparece información de nivel 2 y de IPv6, pero no de IPv4. Esto se debe a que a la interfaz de loopback siempre se le asigna una dirección IPv4 (127.0.0.1), pero al resto de interfaces se le tiene que configurar una IPv4 de algún modo. Como en este caso aún no hemos configurado IPv4 en la interfaz eth0, no aparece nada. En estas prácticas sólo trabajaremos con IPv4, así que para filtrar y que el comando sólo nos muestre la información relevante de la configuración IP ejecutaremos el comando con la opción -4. En el terminal acoplado a H01 ejecutad:

ip -4 address show

Comprobad que sólo muestra información para la interfaz de loopback, puesto que es la única que tiene configuración IPv4. Del mismo modo que con ip link, se puede filtrar para que sólo muestre la información específica de una interfaz: ip -4 address show [NOMBRE_DE_LA_INTERFAZ] Para configurar una ip lo haremos con el siguiente comando: ip address add [IP]/[M] dev [NOMBRE_DE_LA_INTERFAZ] Donde IP es la dirección IP y M la longitud de la máscara. En este escenario vamos a trabajar con la red IP 192.168.1.0/24 y asignaremos direcciones IP de este prefijo a las interfaces de los dispositivos. Ejercicio 2. Responded: • ¿Cuántas direcciones IP tiene el prefijo? 2(32-24)=28=256 • ¿Cuántas direcciones IP asignables tiene el prefijo? 256-2=254 • ¿Cuál es la dirección de red? 192.168.1.0 • ¿Cuál es la dirección de broadcast? 192.168.1.255

Ahora configuraremos una dirección IP del prefijo 192.168.1.0/24 en la interfaz eth0 del contenedor H01. Configuraremos, por ejemplo, la dirección IP 192.168.1.101. Para ello ejecutad desde el terminal acoplado al H01 el comando:

ip address add 192.168.1.101/24 dev eth0

NOTA: Cuando nos hemos equivocado al configurar una dirección IP en una interfaz y queremos borrarla, el comando sería el mismo que hemos utilizado para configurar la dirección IP pero en vez de add pondríamos del. Así, por ejemplo, si quisiéramos borrar la dirección IP que acabamos de configurar, el comando sería: ip address del 192.168.1.101/24 dev eth0

Para comprobar que, efectivamente, se ha eliminado la IP, utilizamos el comando: ip -4 addr show eth0

Ejercicio 3. Asignad las direcciones IP 192.168.1.102, 192.168.1.103 y 192.168.1.104 a las interfaces eth0 de H02, H03 y H04, respectivamente, y comprobad que habéis configurado correctamente las interfaces. A continuación tenéis una serie de comandos útiles a utilizar con ip address que podéis necesitar a lo largo de las prácticas:

ip -4 address show [interfaz]

Muestra la configuración IP de todas las interfaces del dispositivo. Si se indica [interfaz], sólo de ésta

ip address add [IP]/[M] dev [interfaz]

Asigna la dirección IP [IP] con longitud de máscara [M] a la interfaz [interfaz]

ip address del [IP]/[M] dev [interfaz]

Elimina la dirección IP [IP] con longitud de máscara [M] a la interfaz [interfaz]

ip address flush [interfaz]

Elimina todas las direcciones IP asignadas en todas las interfaces. Si se indica [interfaz] sólo en dicha interfaz.

Conectividad en la misma red IP Una red IP se caracteriza porque todos los equipos conectados a esa red pueden comunicarse directamente entre ellos sin necesidad de ningún equipo de interconexión. Todos los equipos del escenario están conectados a la misma red IP que es la que habéis configurado anteriormente. Los contenedores se conectan a través de un dispositivo virtual de Linux denominado bridge y que actúa como un switch. Todos los contenedores que tengan una interfaz virtual conectada a un mismo bridge están conectados en la misma red virtual que, a efectos prácticos, es como si estuvieran conectados a una misma red física. Como hemos comentado en la parte teórica, disponemos de la herramienta ping para comprobar la conectividad entre dispositivos IP. A continuación vamos a realizar un ping entre dos dispositivos y vamos a analizar los protocolos que se utilizan: ARP, IP e ICMP. Para ello utilizaremos un software analizador de protocolos llamado Wireshark. Para

abrir Wireshark o bien desde el panel pulsáis un icono azul con forma de aleta de tiburón, o bien desde el menú de Aplicaciones > Internet > Wireshark. De cualquiera de las dos maneras, abrid 4 instancias. En la pantalla inicial puedes escoger en qué interfaz quieres capturar el tráfico que se envía/recibe. Pensad que Wireshark se está ejecutando en la máquina virtual, no en los contenedores, aunque tiene acceso a las interfaces “físicas” de los contenedores. Estas están identificadas siguiendo la nomenclatura [NOMBRE_DE_CONTENEDOR]-[NOMBRE_INTERFAZ]. Así, si seleccionamos la interfaz H01-eth0 estaremos capturando tráfico en la interfaz eth0 del H01. Seleccionad en cada instancia de Wireshark la interfaz eth0 de un host distinto y pulsad dos veces sobre ella, o teniéndola seleccionada, pulsad sobre el botón superior con el icono de Wireshark. En ambos casos se empezará a capturar tráfico en la interfaz seleccionada. En la parte superior hay un campo de texto en el que pone Apply a display filter. Este campo nos permite filtrar qué tráfico queremos capturar. Poned en ese campo lo siguiente:

arp || ip || icmp

Con este filtro indicamos que sólo queremos ver tráfico ARP o IP o ICMP. (|| significa un OR lógico). Ahora vamos a hacer un ping desde el contenedor H01 hasta la IP 192.168.1.103 del contenedor H03. Para ello, en el terminal que tenéis acoplado a H01 ejecutad:

ping -c 1 192.168.1.103

Con esta instrucción hacemos que se envíe un único ping (-c 1) desde este host hasta la IP 192.168.1.103. El parámetro -c nos permite indicar el número de pings que queremos enviar. Si no indicamos este parámetro, se estarán enviando pings hasta que se detenga la aplicación pulsando Ctrl+C. En la instancia de Wireshark que tenéis capturando tráfico en la interfaz eth0 de H01, navegad en el menú Statistics > Flow Graph y obtendréis un diagrama del tráfico que está enviando/recibiendo esa interfaz (seleccionad Limit to display filter para que sólo muestre los paquetes ARP, IP e ICMP). Podéis guardarlo como imagen pulsando el botón Save As. Ejercicio 4. Responded:

• El primer paquete es un ARP, ¿quién lo envía?, ¿cuál es la dirección destino?, ¿qué interfaces lo reciben?, ¿qué objetivo tiene el envío de este paquete? Lo envía la interfaz con dirección MAC 00:16:3e:01:01:01 (la interfaz eth0 de H01) La dirección destino es la dirección de broadcast de nivel 2 ff:ff:ff:ff:ff:ff Lo reciben el resto de interfaces conectadas a la red Averiguar la dirección MAC de la interfaz que tiene configurada la IP 192.168.1.103 • El segundo paquete es otro ARP, ¿quién lo envía?, ¿cuál es la dirección destino?, ¿qué interfaces lo reciben?, ¿qué objetivo tiene el envío de este paquete? Lo envía la interfaz con dirección MAC 00:16:3e:a9:20:0d (la intefaz eth0 de H03) La dirección MAC de la interfaz eth0 de H01 (00:16:3e:01:01:01) Sólo la interfaz eth0 de H01 Es responder a la pregunta realizada en el primer paquete ARP, es decir, la MAC de la interfaz que tiene configurada la IP 192.168.1.103 • Los dos siguientes paquetes son los que corresponden al ICMP Request y al ICMP Reply. ¿qué dirección origen tiene cada uno de ellos?, ¿y destino? REQUEST -> MAC o: eth0 de H01; MAC d: eth0 de H03; IPo: 192.168.1.101; IPd: 192.168.1.103 REPLY -> MAC o: eth0 de H03; MAC d: eth0 de H01; IPo: 192.168.1.103; IPd: 192.168.1.101 • Por último se ven dos paquetes ARP más, ¿quién los envía, con qué destino y para qué sirve? Los envía H03 para confirmar lo que ha inferido del primer paquete ARP, es decir, que la dirección MAC de la interfaz con IP 192.168.1.0 es la 00:16:3e:01:01:01 • ¿Por qué en la interfaz eth0 del H02 sólo se ve el primer paquete? Porque todos los dispositivos están conectados a la misma red a través de un switch Reiniciad las capturas pulsando el icono verde que hay en la parte superior en todas las instancias de Wireshark, y cuando aparezca el diálogo de confirmación pulsad el botón “Continue without saving”. En el terminal que tenéis acoplado a H03 ejecutad el comando:

ip neighbor flush all

Más adelante explicaremos qué hace este comando. En el terminal que tenéis acoplado a H01 ejecutad el comando:

ip neighbor flush all && ping -c 2 192.168.1.103 e inmediatamente a continuación:

ip neighbor show Observad que aparece una única entrada marcada como REACHABLE Primero, el comando ip neighbor permite operar sobre la caché ARP de un dispositivo. En esta caché se guardan las direcciones MAC que corresponden a una determinada dirección IP y que se han aprendido por el protocolo ARP.

ip neighbor flush all

Elimina todas las entradas de la caché ARP

ip neighbor show

Muestra todas las entradas de la caché ARP

Ejercicio 5. Observando la captura de Wireshark de H01 y la salida del comando ip neighbor show, ¿por qué el segundo ping no genera un ARP request? Porque ha utilizado el valor que tiene en su caché ARP Volved a mostrar la caché ARP de H01 y repetir la operación hasta que la única entrada que aparece sea marcada con STALE. Entonces, volved a enviar un único ping en H01 a 192.168.1.103. REACHABLE es un estado de una entrada de la caché ARP que indica que el vecino es válido y aparentemente se puede llegar hasta él. STALE es un estado de una entrada de la caché ARP que indica que el vecino es válido pero ha transcurrido un determinado tiempo configurado por el sistema operativo que hace que no se pueda asegurar que se pueda llegar hasta él y se intentará verificar la entrada. Ejercicio 6. Observad los nuevos paquetes que se han capturado en la instancia de Wireshark que captura el tráfico de la interfaz eth0 de PC01 y explicad por qué este ping no ha generado ARP antes de ser enviado el ICMP y sí después.

Porque ha utilizado la caché ARP. El estado STALE le permite usar el valor almacenado en la caché, pasa entonces ha estado DELAY y cuando pase un determinado tiempo que depende de la configuración del SO (5s hemos observado) volverá a lanzar un ARP para confirmar la entrada de la caché y volverla a tener en estado REACHABLE

Finalización del escenario Aunque no es imprescindible, al acabar la práctica es recomendable seguir los siguientes pasos: 1. Abrid un terminal y cambiad al directorio de trabajo de la práctica:

cd /home/avionica/lab/P01/E01/scenario

2. Ejecutad:

stop-scenario

Escenario 2 O bien desde el terminal que tenéis abierto, o bien desde un terminal nuevo, si es que habéis cerrado el anterior, cambiad al directorio de trabajo del escenario:

cd /home/avionica/labs/L01/E02 Y después ejecutad:

launch-scenario Cuando el script termine, tendréis arrancado el segundo escenario de la práctica. En este escenario vamos a analizar el protocolo DHCP mediante el cual un host (cliente) demanda una dirección IP a un servidor DHCP. Analizaremos primero la configuración del servidor DHCP. En esta primera práctica vamos a ver la configuración más simple posible, y en prácticas posteriores iremos añadiendo más parámetros de configuración. El servidor DHCP está ejecutándose en el contenedor R01. Acoplaros a él y ejecutad el siguiente comando:

more /etc/dhcp/dhcpd.conf Este comando (more) os muestra el fichero de configuración del servidor DHCP que está en la ruta /etc/dhcp/dhcpd.conf. NOTA: Del fichero de configuración vamos a ignorar las lineas: ● authoritative ● option routers 192.168.1.1 Ejercicio 1. Indicad para que sirven cada uno de los siguientes parámetros: ● default-lease-time ● max-lease-time Tras estos dos parámetros aparece la configuración de la red de la que se van asignar direcciones IP.

Ejercicio 2. Responded: 1. ¿De que red IP se van a conceder direcciones? 2. ¿Entre qué dos direcciones IP se van a conceder direcciones? Abrid wireshark y capturad en el bridge br01. Acoplaros al host H01 y comprobad que no tiene ninguna IP configurada. Después, ejecutad el comando:

dhclient Y comprobad que ahora se le ha asignado una dirección IP. Detened la captura. Ejercicio 3. Analizad la captura y deducid el proceso de concesión y asignación de IP....


Similar Free PDFs