Práctica 1. ”Introducción a la Programación sobre Ethernet”

Anuncio
Práctica 1. ”Introducción a la Programación sobre Ethernet”
Objetivo
Familiarización con el entorno de programación basado en Linux/windows y la librería
LINPAL/NEPAL. Acceso a las características de las tarjetas de comunicaciones.
Especificación
En esta práctica se pretende tener un primer contacto con el entorno de programación
del laboratorio. Para ello se pide desarrollar un programa (nepal_info.c) que interactúe
con la librería LINPAL/NEPAL con objeto de detectar el número de tarjetas de interfaz
disponibles en su puesto de trabajo, mostrando toda la información posible sobre dichas
tarjetas de interfaz, incluidas las estadísticas de las mismas.
Parte Opcional
Desarrollar un programa (nepal_stats.c) que permita seleccionar una de las tarjetas de
interfaz disponibles y muestre las estadísticas detalladas de dicha tarjeta en un intervalo
de tiempo seleccionable (Valor por defecto 15 segundos).
Resultado
El resultado de esta práctica consistirá en el código del programa (nepal_info.c), así
como una breve memoria explicativa que incluya al menos la estructura del programa y
las estructuras de datos utilizadas. En caso de entregar la parte opcional deberá entregar
el código del programa nepal_stats.c, así como el pseudocódigo del mismo y las
estructuras de datos más representativas.
Práctica 2. “Mecanismo de Auto-Aprendizaje de Direcciones”
Objetivos
El objetivo es codificar el mecanismo de autoaprendizaje utilizado por los bridges para
construir su tabla de encaminamiento.
Especificación
En la presente práctica se desarrollará un programa denominado bridge que deberá ir
almacenando las direcciones MAC aprendidas por la interfaz de red.
El programa denominado bridge, no admitirá parámetros de entrada y deberá ofrecer a
los usuarios una interfaz textual de comandos que permita las siguientes instrucciones:
1
2
3
show, para mostrar la tabla de direcciones MAC aprendidas a través de la red.
stats, para mostrar las estadísticas de tráfico de la interfaz.
fin, para terminar el programa.
Resultado
El resultado de esta práctica consistirá en el código del programa bridge.c, así como una
breve memoria explicativa que incluya al menos la estructura del programa y las
estructuras de datos utilizadas.
Práctica 3. “Protocolo de Resolución de Direcciones. ARP”
Objetivo
Implementación de protocolos de resolución de direcciones físicas a partir de
direcciones de nivel de red.
Especificación
Una subred como Ethernet opera a nivel de enlace de datos y emplea su propio esquema
de direccionamiento -direcciones IEEE de 48 bits- que los protocolos o las aplicaciones
de nivel superior como el nivel de red deben respetar. Por otro lado, los protocolos de
las capas superiores al nivel de enlace, pueden definir una estructura distinta para su
espacio de direcciones, con un tamaño y una organización que respondan a principios de
diseño diferentes. El protocolo de nivel de red IP (Internet Protocol) transmite y recibe
datagramas con direcciones de longitud igual a 32 bits sobre cualquier tipo de subred.
En el caso de que la subred sea Ethernet, el protocolo IP necesita conocer dada una
dirección IP destino perteneciente a un sistema de su misma subred, la dirección
Ethernet correspondiente. Para ello se utiliza el protocolo denominado Address
Resolution Protocol o ARP [RFC826] [Stevens94]. En la Figura 1 se representa el
formato de trama del protocolo ARP. En dicha figura se muestra la asignación de
algunos campos en el caso del protocolo de red IP y el protocolo de enlace Ethernet.
Para evitar tener que generar mensajes ARP por cada uno de los datagramas
transmitidos, cada ordenador mantiene una tabla con las correspondencias entre
direcciones IP y direcciones MAC que ha aprendido. Las entradas en la tabla dejan de
tener validez después de un plazo de 5 minutos.
En esta práctica se pide diseñar, desarrollar y comprobar un programa arp que genere y
responda mensajes del protocolo ARP. El programa deberá mantener una tabla de 10
posiciones donde almacenar los valores de la correspondencia (dir_IP, dir_MAC) en la
que cada entrada sólo será válida durante los 5 minutos siguientes a la recepción de cada
respuesta. En caso de no recibir respuesta a una petición después de 2 segundos, el
programa transmitirá de nuevo la misma petición hasta un máximo de 5 intentos. El
programa también deberá ofrecer a los usuarios una interfaz textual de comandos que
permita las siguientes instrucciones:
1. arp <dirección_IP>, para hallar la dirección MAC correspondiente a la
dirección IP <dirección_IP>.
2. arp –a, para mostrar por pantalla el contenido de la tabla de direcciones
3. fin, para terminar el programa
0x01 ARP Request
0x0806 (ARP)
0x0001
0x0800
0x06
0x02 ARP Reply
0x03 RARP Request
0x04 RARP Reply
0x04
Destinat. MAC
address
Source MAC
address
Protocol
Type
6
6
2
Cabecera Ethernet
Hard.
type
Prot.
type
Hard.
size
2
2
1
Prot.
size
operation
MAC origen
1
2
6
Protocolo ARP
IP origen
4
MAC destino
IP destino
6
4
Bytes
Figura 1: Formato de encapsulación Ethernet-ARP.
Resultados
El resultado de esta práctica consistirá en el código del programa arp.c así como una
breve memoria explicativa que incluya la estructura del programa (pseudocódigo o
diagrama de flujo) así como las estructuras de datos utilizadas.
PROYECTO 1.- Desarrollo de un entorno autoconfigurado
Objetivo
Desarrollar un entorno de autoconfiguración de parámetros de red de equipos de una
subred.
Especificaciones
La presente práctica pretende crear un entorno en donde no sea necesario configurar
manualmente los parámetros de red (dirección ip, mascara de red,…) de los equipos de
una subred.
Ese entorno será cliente servidor, es decir habrá un servidor que, a petición de los
clientes, les ofrecerá los parámetros de configuración (leídos de un archivo).
Se seguirá el protocolo estándar de configuración de equipos (hosts).
Deberá implementar la funcionalidad del servidor y de los clientes.
Escenario de pruebas
Nota.- en la memoria del diseño de la práctica los alumnos deberán completar el
escenario de pruebas expuesto.
1. Usará la red del laboratorio. En un PC del laboratorio correrá su servidor de
configuración. Otros PC del laboratorio serán los clientes.
Servidor de configuración
Clientes
Red del laboratorio
Práctica Previa.
Para que el grupo se familiarice con la programación en LINPAL/NEPAL y le
sea más fácil afrontar el proyecto deberá desarrollar una práctica previa más sencilla. La
asociada a este proyecto consiste en el envió y recepción de tramas. Haga un programa
que envíe un texto inferior a 1500-14 bytes y otro que lo reciba y lo muestre por
pantalla.
PROYECTO 5.- Control de Disponibilidad de Equipos
Objetivo
El objetivo del proyecto es desarrollar un sistema para averiguar la disponibilidad de
diferentes equipos conectados en red.
Especificaciones
En la presente práctica hay que desarrollar un software de comunicaciones que verifique
la disponibilidad de determinados equipos, que pueden estar situados tanto dentro de
nuestra red como fuera. En el caso de equipos de otra red, habrá que averiguar el
número de routers intermedios que se atraviesan hasta llegar al equipo remoto.
Las especificaciones mínimas que el programa debe cumplir son las siguientes:
• El programa debe ser autoconfigurable, es decir, debe ser capaz de obtener los
parámetros de configuración de red al arrancar (dirección IP, máscara de red,
router por defecto, servidor dns, ...).
• El programa leerá de un archivo de configuración los nombres de los equipos
cuya disponibilidad hay que vigilar.
• El programa debe hacer una comprobación de que los equipos estén activos cada
minuto, y debe mostrar por pantalla la lista de los equipos y si están funcionando
correctamente o no. En el caso de que alguno de los equipos se encuentre fuera
de nuestra subred, el programa debe mostrar por pantalla el número de routers
intermedios que hay entre nuestra red y la red del equipo remoto.
• La sintaxis de llamada al programa será la siguiente:
Disp_control -f <nombre_fichero>
Escenario de Pruebas
Nota.- en la memoria del diseño de la práctica los alumnos deberán completar el
escenario de pruebas expuesto.
El escenario de pruebas más sencillo es aquel en el que los equipos del archivo
de configuración se encuentran en nuestra misma subred y todos están disponibles. En
otros escenarios se pueden desconectar algunos de estos equipos y comprobar si nuestro
programa reacciona bien.
Otro escenario consiste en probar el programa con un conjunto de equipos
ubicados fuera de nuestra subred.
Equipos a verificar
Red IP
:
Equipo verificador
Práctica Previa.
Para que el grupo se familiarice con la programación en LINPAL/NEPAL y le
sea más fácil afrontar el proyecto deberá desarrollar una práctica previa más sencilla. La
asociada a este proyecto consiste en la implementación del protocolo ARP.
PROYECTO 6.- Protocolo de Transferencia de Ficheros
Objetivo
El objetivo de esta práctica es desarrollar un protocolo de transferencia de ficheros que
soporte mecanismos de parada y espera, rechazo simple y rechazo selectivo y tenga la
posibilidad de simular errores de transmisión.
Especificaciones
La presente práctica pretende desarrollar un protocolo para la transferencia ficheros
entre distintas máquinas a través de una red Ethernet.
Los requisitos mínimos de este proyecto son los siguientes:
• Debe diseñarse un protocolo para transferir ficheros entre un cliente y un
servidor. Este diseño debe contemplar las opciones necesarias para soportar
mecanismos de parada y espera, rechazo simple y rechazo selectivo.
• Deben implementarse dos programas: un servidor de ficheros, y un cliente que
se comunique con el anterior y que reciba los ficheros solicitados. La
implementación del servidor y del cliente debe permitir utilizar al menos los
mecanismos de parada y espera y rechazo simple.
• El tipo de mecanismo a utilizar para transferir el fichero se seleccionará en el
cliente así como el resto de parámetros necesarios (tamaño de trama, tamaño de
ventana,...).
• La sintaxis de llamada al cliente debe contener estas dos opciones, además de las
que considere necesarias para definir el resto de parámetros:
-f <nombre_fichero>. Indicará el nombre del fichero que se desea obtener
del servidor.
-s <dirección_MAC_servidor>. Indicará la dirección ethernet del servidor de
ficheros.
• La implementación del servidor y del cliente deben permitir la simulación de
errores de transmisión. Por ejemplo, se propone que tanto el cliente como el
servidor tiren algunas tramas periódicamente, o que las tramas sean eliminadas
según una determinada probabilidad seleccionable por el usuario.
Escenario de Pruebas
Nota.- en la memoria del diseño de la práctica los alumnos deberán completar el
escenario de pruebas expuesto.
Para realizar las pruebas serán necesarios dos ordenadores para poder ejecutar el
cliente y el servidor simultáneamente. Los ordenadores estarán conectados a través
de la red ethernet del laboratorio.
Las pruebas consistirán al menos en comprobar que los dos equipos intercambian
ficheros de cualquier tipo y tamaño, incluso cuando se producen errores en la
transmisión de las tramas.
Emisor / receptor de ficheros
Emisor / receptor de ficheros
Red Del laboratorio
Práctica Previa.
Para que el grupo se familiarice con la programación en LINPAL y le sea más
fácil afrontar el proyecto deberá desarrollar una práctica previa más sencilla. La
asociada a este proyecto consiste en el envió y recepción de tramas. Haga un programa
que envíe un texto inferior a 1500-14 bytes y otro que lo reciba y lo muestre por
pantalla.
PROYECTO 7.-Desarrollo de un bridge transparente
Objetivo
En esta práctica se pretende desarrollar un Bridge transparente con funcionalidad
completa, que incluya tanto funciones básicas como mecanismo de autoaprendizaje y el
protocolo BPDU para eliminación de bucles (algoritmo de spanning tree).
Especificación
La presente práctica debe implementar un mecanismo de transmisión y recepción de
BPDUs así como un algoritmo de spanning tree para la determinación del estado del
bridge en cada uno de los puertos: activo, bloqueado. Adicionalmente a este algoritmo,
el software debe implementar las funcionalidades básicas y mecanismo de
autroaprendizaje. El sistema a desarrollar debe ser capaz de eliminar bucles como los
representados en la figura y debe poder parametrizar tanto la selección del identificador
del bridge como el tiempo de refresco de transmisión de BPDUs. Ambos valores deben
tener un valor por defecto, si bien dichos valores deben poder ser fijados mediante línea
de comandos o bien en tiempo de configuración del programa. El bridge deberá mostrar
información de que estado mantiene en cada puerto además de realizar las funciones de
interconexión necesarias.
Escenario de Pruebas
Nota.- en la memoria del diseño de la práctica los alumnos deberán completar el
escenario de pruebas expuesto.
El escenario de pruebas más sencillo es el que está compuesto por tres subredes, tal
como se muestra en la figura.
Una de las redes será la del laboratorio, las otras dos las creará usted usando hubs, o en
su defecto, uniendo directamente los equipos con un cable cruzado.
Se probará:
Asociando a A id1 a B id2 y a C id3:
Que el enlace entre C y B se corta. El enlace entre A y C y el enlace A y B se
mantienen.
Un PC de la red A-B puede transmitir a otro de la red C-B.
Práctica Previa.
Para que el grupo se familiarice con la programación en NEPAL y le sea más
fácil afrontar el proyecto deberá desarrollar una práctica previa más sencilla. La
asociada a este proyecto consiste en la implementación de un mecanismo de
autoaprendizaje de direcciones.
PROYECTO 8.- Simulación de ISP
Objetivo
Uno de los problemas de la extensa utilización del protocolo IP, es la cada vez menor
disponibilidad de direcciones globales. Una posible solución a este inconveniente, es el
empleo de direcciones privadas.
Supongamos que un ISP da servicio a la red de una organización. Las máquinas de la
red corporativa, utilizarán direcciones privadas. El objetivo de esta práctica es la
implementación de un sistema que permita el acceso de las máquinas de la organización
a cualquier máquina en internet.
Especificaciones
Las especificaciones mínimas del sistema diseñado serán las siguientes:
• El equipo del proveedor de servicios permitirá que ordenadores en la red de la
organización puedan comunicarse con máquinas en internet, realizando la
correspondiente traducción de direcciones.
• El sistema debe soportar el uso de los protocolos TCP, UDP e ICMP.
• Además, al ISP le resultará interesante procesar la información sobre la
utilización de su equipo, tanto por razones de mantenimiento como por
cuestiones de tarificación.
Escenario de pruebas
Nota.- en la memoria del diseño de la práctica los alumnos deberán completar el
escenario de pruebas expuesto.
En la figura siguiente se muestra un posible escenario de pruebas, donde aparece
el equipamiento del ISP que permitirá la comunicación
10.0.0.0
Internet
Máscara de subred 255.255.255.0
Red de la organización
Equipamiento ISP
Práctica Previa.
Para que el grupo se familiarice con la programación en NEPAL y le sea más
fácil afrontar el proyecto deberá desarrollar una práctica previa más sencilla. La
asociada a este proyecto consiste en la implementación del protocolo ARP.
Descargar