Instructivo Laboratorio 6

Anuncio
Redes de Datos – Laboratorio 6 – Instructivo
Laboratorio 6
Address Resolution Protocol (ARP)
Instrucciones generales
Para poder realizar exitosamente la práctica, deberá cumplir las siguientes etapas:
Previo al laboratorio
Estudiar la información contenida en este instructivo.
Se recomienda consultar las referencias sugeridas u otras de su preferencia.
Al comienzo del laboratorio se realizará un cuestionario sobre los temas tratados en este instructivo.
Se recomienda realizar los ejercicios sugeridos al final del instructivo.
Imprimir y leer el procedimiento de la práctica incluido en el Informe.
Se recomienda imprimir una página por faz.
Traer un disquete/memoria USB para guardar resultados.
Durante el laboratorio
Seguir el procedimiento indicado en el Informe y completarlo en forma grupal. El Informe deberá ser
entregado al finalizar la práctica. NO SE ACEPTA ENTREGA DE INFORMES EN OTRO MOMENTO.
Después del laboratorio
Agradecemos que nos envíe sus aportes al foro específico creado en la página web del curso.
Objetivos
Al finalizar la práctica el estudiante será capaz de:
Describir el proceso de descubrimiento de las direcciones de capa MAC mediante ARP.
Visualizar e interpretar el intercambio de mensajes ARP en una red local.
Preparación
Address Resolution Protocol (ARP)
Cuando una máquina A quiere enviar datos a la máquina B, la capa de red de la máquina A construye un
paquete con dirección IP de origen la de A y con dirección IP de destino la de B, e inserta la carga útil a
enviar a B. Después, pasa este paquete a la capa de enlace de A para su transferencia hacia B. Sin
embargo, las capas de enlace no entienden las direcciones IP; necesitan una dirección propia del medio
de transmisión en uso.
En una red Ethernet u 802.3, por ejemplo, cada tarjeta Ethernet tiene una dirección de 48 bits asignada
en fábrica, exclusiva de esa tarjeta (única), de modo que la colocación de dos tarjetas Ethernet
cualesquiera en la misma red local no produciría nunca una colisión de direcciones, ya que no habrá
nunca dos direcciones iguales (al menos si los fabricantes se ciñen a los conjuntos de direcciones que se
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 1 de 9
les han asignado). Las tarjetas Ethernet se comunican entre sí referenciando estas direcciones de 48 bits.
Se hace patente entonces la necesidad de manejar algún tipo de mapeo entre direcciones IP y
direcciones de capa de enlace, en lo posible con poco o ningún trabajo administrativo. El protocolo ARP
es capaz de manejar ese mapeo sin intervención administrativa.
ARP, Address Resolution Protocol o protocolo de resolución de direcciones (definido en la RFC 826),
resuelve el problema de direccionamiento de capa de enlace en medios de difusión: establece un mapeo
entre direcciones de capa de red (direcciones IP en TCP/IP) y direcciones de capa de enlace, cuya
naturaleza depende del medio físico que soporta la subred.
En las redes de difusión la subcapa MAC, Medium Access Control o subcapa de control de acceso al
medio, es la encargada de arbitrar el uso del medio compartido, ya sea disponiendo turnos de transmisión
o manejando colisiones; es usual denominar las direcciones usadas en medios de difusión como
direcciones de capa MAC o simplemente direcciones MAC. Las direcciones de 48 bits de las redes
Ethernet son las direcciones MAC de estas redes.
El protocolo ARP funciona por sí solo, no requiere administración. Cuando la máquina A precisa enviar un
paquete a la máquina B, el protocolo ARP es capaz de averiguar la dirección MAC de B conociendo sólo
el número IP de B; el paquete es enviado sin más trámite.
Para entender mejor esto, veamos el caso en que se usaran tablas completadas manualmente por el
administrador de la red:


Inicialmente se deberían cargar en todas las máquinas de la red una tabla guardando la
correspondencia de direcciones (IP, MAC).
Llegado el momento de cambiar la correspondencia entre número IP y dirección MAC asociadas
a una máquina (por ejemplo: cada vez que se cambie tanto una tarjeta de red como una
dirección IP), sería necesario actualizar esta información en todas las máquinas de la red,
trasformándose en una tarea pesada y propensa a error (sobre todo si la red es grande).
Formato del paquete ARP
El mensaje ARP va como carga útil de la trama.
El paquete ARP va como carga útil en la trama de capa MAC. Contiene, entre otros campos, las
direcciones IP y MAC de origen y destino; no hay otra forma de hacer llegar esta información al otro
extremo, porque las direcciones de capa MAC contenidas en los encabezados de la capa de enlace no
llegan al proceso que se encarga de procesar ARP ya que cada capa suprime su encabezado al pasar el
contenido a la capa superior.
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 2 de 9
Formato de mensaje ARP
Detalle de los campos del mensaje ARP:
Hardware Type: tipo de hardware – código del tipo de interfaz de hardware para el cual el interrogador
busca respuesta, es 1 para Ethernet.
Protocol Type: tipo de protocolo – código de tipo de dirección proporcionada por el transmisor, es 0x0800
para la dirección IP.
Operation: operación – indica el tipo de operación: 1 para solicitud ARP, 2 para respuesta ARP, 3 para
solicitud RARP, 4 para respuesta RARP.
HLEN: longitud de la dirección de hardware – permite usar ARP en distintos tipos de redes, 6 en Ethernet.
PLEN: longitud de la dirección de protocolo (de capa 3) – permite usar ARP en distintos tipos de redes, 4
en caso de IP.
Sender HA: dirección hardware del emisor.
Sender IP: dirección IP del emisor.
Target HA: dirección hardware del destinatario.
Target IP: dirección IP del destinatario.
Funcionamiento de ARP
Analizaremos los casos de transferencia de paquetes IP dentro de una misma LAN y entre dos LANs
distintas.
La figura muestra dos redes LAN pertenecientes a departamentos distintos de una organización. Ambas
redes están unidas a un backbone corporativo de fibra óptica interno a la organización, posiblemente
uniendo varios edificios separados cada uno con su LAN, o los diferentes pisos de un edificio, cada piso
con su LAN.
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 3 de 9
Dos redes LAN y el backbone de una organización.
Comunicación entre máquinas de una misma LAN.
La máquina 1 con dirección IP1 desea enviar un paquete a la máquina 3 con dirección IP3 1:
1.
Primeramente, la máquina 1 consulta su tabla de ruteo, detectando que la máquina 3 (con
dirección IP3) se encuentra directamente conectada (IP1 AND MASK = IP3 AND MASK).
2.
Utilizando el protocolo ARP (protocolo distinto de IP), la máquina 1 arma una trama con dirección
MAC origen la suya propia (MAC origen = E1), MAC destino la dirección de difusión de 802.3
(Ethernet) (MAC destino = FF:FF:FF:FF:FF:FF) y como contenido un paquete de consulta ARP
cuyo contenido podemos interpretar como la pregunta "¿Quién tiene la dirección IP IP3?".
Además incluye la dirección MAC e IP origen en el contenido del paquete ARP (E1, IP1).
3.
El paquete ARP enviado por la máquina 1 es recibido por todas las máquinas de la red LAN,
incluida la máquina 3, que reconoce su propia dirección IP en la pregunta. La máquina 3
responde enviando una trama con dirección MAC origen E3, dirección MAC destino E1, y un
paquete ARP de respuestaa la pregunta, "IP3 tiene dirección MAC E3". Dado que la
correspondencia (IP1, E1) de la máquina 1 venía en el paquete ARP recibido por la máquina 3,
esta dispone de dicha información, almacenándola.
4.
La máquina 1 recibe la respuesta, dirigida específicamente hacia ella, hacia la dirección MAC E1.
Por el contenido del paquete ARP dispone ahora de la dirección MAC de la máquina 3 (E3), y
puede intercambiar paquetes IP con ella directamente. Dispone también de la dirección IP de la
máquina 3, presente en el paquete recibido; tiene conocimiento entonces de la correspondencia
(IP3, E3).
La máquina 1 ha obtenido la dirección Ethernet de la máquina 3 (E3) sin intervención administrativa
alguna; el protocolo ARP ha logrado averiguarla interrogando en la propia red. A partir de ahí los
paquetes IP intercambiados utilizan como dirección IP de origen IP1 e IP3 como dirección de destino, a
nivel de la trama Ethernet la dirección MAC de origen es E1 y la MAC de destino E3.
Algunas optimizaciones mejoran la eficiencia del proceso:

Dado que el paquete ARP de interrogación difundido en la red contiene el mapeo (IP1,
E1) de la máquina 1 (emisora de la pregunta); la máquina 3 no necesita usar ARP para averiguar
la dirección de subcapa MAC de la máquina 1 cuando quiera responderle.
1
Las direcciones IP las supondremos conocidas (pueden ser el resultado de una consulta al DNS).
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 4 de 9

Caché de ARP: las parejas de direcciones (dirección IP, dirección MAC) se guardan en
memoria por un cierto tiempo; ulteriores consultas se realizan primero sobre este caché. Existe
un tiempo de validez de las entradas en esta tabla, previendo un cambio de tarjeta Ethernet
(implica un cambio de dirección, no hay dos tarjetas Ethernet con la misma dirección), y para
evitar mantener indefinidamente en la tabla entradas inactivas. Transcurrido ese tiempo de
validez la entrada se borra del caché y la consulta a la red, por difusión, debe repetirse.

Las entradas en la tabla se actualizan en dos instancias: cuando se recibe una difusión o
cuando se recibe una pregunta por la dirección IP propia:
o
Cuando la máquina A de dirección IPa recibe una difusión (broadcast) de ARP, si la
máquina A tiene una entrada (IPx, Ex) en su tabla de ARP, al recibir una difusión ARP
originada por IPx, actualiza su tabla de ARP con la nueva (o eventualmente la misma)
dirección Ex. Si la máquina A no tenía una entrada (IPx, Ex) y la difusión de ARP no
buscaba la IP de A ("¿Quién tiene Ipa?"), entonces se ignora y no se introduce la entrada
en la tabla.
o
Cuando la máquina A recibe una pregunta por su propia dirección IPa desde una
máquina con dirección IPy, guarda en su tabla la correspondencia (IPy, Ey) extraída de la
trama donde viene la pregunta, asumiendo la alta probabilidad de pronta comunicación
con la máquina que realizó la pregunta.

ARP gratuito: cuando una máquina se prende, envía un paquete ARP de interrogación
de su propia IP, por difusión. Nadie debería contestar, puesto que no debería haber otra máquina
con la misma dirección IP; sin embargo, si fuese contestado, la máquina anunciaría al usuario el
conflicto y no habilitaría la interfaz de red hasta que el administrador resuelva la colisión
asegurando la inexistencia del mismo número IP en dos equipos de la red. Además de esta
comprobación, como el paquete de interrogación se envió por difusión, todas las máquinas de la
LAN lo recibieron; el paquete contiene el número IP y la dirección MAC del emisor, por lo que
todas las máquinas de la red que tuvieran una entrada para esa IP en su tabla de ARP la
actualizan con la nueva dirección MAC.
Los paquetes ARP viajan dentro de la red local como carga útil de una trama Ethernet, el campo "Tipo" en
capa MAC tiene el valor 0x08062, distinto del correspondiente a IP (0x0800).
Comunicación entre máquinas de diferentes LANs.
La máquina 1 en la red local A desea comunicarse con la máquina 8 en la red local B. El esquema
corriente funciona así:
1. La máquina 1 ve la dirección IP destino de la máquina 8, IP8; por la búsqueda en su tabla de
ruteo reconoce que ese destino no pertenece a su red local, sino que el próximo salto es (en el
ejemplo) la dirección IP4, correspondiente al enrutador de conexión al backbone corporativo de la
red local A. La dirección IP4 del enrutador está en la propia red local de la máquina 1, por lo que
la dirección Ethernet E4 del enrutador se obtiene por comunicación ARP en la propia red como se
describió anteriormente.
Los paquetes IP intercambiados utilizan como dirección IP de origen IP1 e IP8 como dirección de
destino, a nivel de la trama Ethernet la dirección MAC de origen es E1 y la MAC de destino E4
perteneciente a la interfaz del enrutador en el medio de difusión compartido con la máquina 1.
2. El enrutador de la red local A recibe el paquete, verifica que la dirección IP de destino pertenece
a otra red, y lo reenvía según la información de sus tablas de ruteo, en este caso hacia el
backbone, por su interfaz F1, con destino al enrutador de la red local B, interfaz F2.
2
"0x" indica notación hexadecimal
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 5 de 9
3. El enrutador de red local B recibe el paquete en la interfaz F2, consulta su tabla de ruteo y lo
reenvía hacia la máquina 8. El enrutador de la red local B, (IP7, E5) está en la red de la máquina
8 (IP8, E6); la resolución de direcciones Ethernet por ARP es la descrita anteriormente.
El paquete IP dentro del Departamento B utiliza como dirección IP de origen IP1 e IP8 como
dirección de destino, a nivel de la trama Ethernet la dirección MAC de origen es E5 (perteneciente
a la interfaz del enrutador en el medio de difusión compartido con la máquina 8) y la MAC de
destino E8.
4. La máquina 8 responde a la máquina 1 dirigiendo su paquete IP al enrutador de la red local B,
siguiendo un camino inverso al descrito.
Las direcciones en el backbone de fibra óptica se obtienen igualmente por ARP dentro del backbone. Los
paquetes IP entre redes locales A y B viajan dentro del backbone como carga útil de una trama FDDI de
acuerdo al ejemplo.
Tener presente que las direcciones IP de origen y destino nunca se modifican durante el trayecto de la
máquina 1 a la máquina 8, pero las direcciones MAC que intervienen depende de los medios de difusión
locales a cada tramo.
Proxy ARP
Se hace necesario a veces implementar una misma red IP (un conjunto de números IP determinados por
una cierta red y máscara) sobre varias LANs físicamente diferentes. Un ejemplo es una máquina R con
dos tarjetas de red Ethernet; en una de ellas se encuentra una máquina A, en la otra una máquina B. A
quiere comunicarse con B, ambas están en la misma red IP pero en distintas LANs.
Es posible configurar la máquina R para responder directamente consultas ARP relativas a cualquiera de
las dos LANs; esta técnica se denomina proxy ARP:
1. La máquina A pide por ARP la dirección MAC de la máquina B, de la cual conoce la IP.
2. La máquina R responde con su propia dirección MAC.
3. A arma su trama con la dirección MAC de R.
4. Cuando la máquina R recibe esta trama la enruta hacia la red LAN donde está la máquina B.
Tabla de ARP
Las máquinas almacenan los mapeos (dirección IP, dirección MAC) de las máquinas que conocen. Esto
mejora mucho la eficiencia: no es necesario ejecutar el protocolo en cada comunicación. Los mapeos se
capturan reteniendo la información según se explicó el funcionamiento de ARP.
Las entradas de la tabla se borran transcurrido su tiempo de validez (típicamente 20 minutos). También
pueden ingresarse entradas específicas, o borrarse, por comandos emitidos por el supervisor.
El comando Unix arp permite conocer el contenido de la tabla ARP de la máquina local:
# arp -a
c3.ls.iie.edu.uy (172.16.0.11) at 00:03:B3:00:5B:87 [ether] on eth1
d3.ls.iie.edu.uy (172.16.0.12) at 00:E0:06:EC:20:2E [ether] on eth1
? (172.16.0.253) at 52:54:4C:19:16:A2 [ether] on eth1
gw-380.fing.edu.uy (164.73.38.1) at 00:D0:95:91:36:2C [ether] on eth0
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 6 de 9
La salida de este comando muestra los datos almacenados en una entrada ARP: dirección IP, la
dirección de hardware (dirección de capa MAC: en este caso una dirección Ethernet de 48 bits), tipo de
hardware (Ethernet en este caso) y el nombre de la interfaz (eth0 o eth1 en este caso).
Es posible borrar entradas de la tabla de arp utilizando el comando arp con la opción –d y luego la IP del
equipo. Adicionalmente el comando arp trata de averiguar los nombres asociados a las direcciones IP
incluidas en la tabla usando el DNS. Este comportamiento se puede evitar con la opción -n.
RARP
En algunas circunstancias, en particular cuando se trata de máquinas sin disco, es necesario obtener un
número IP correspondiente a una dirección MAC determinada. Este es el caso inverso de ARP; el
protocolo que lo resuelve se denomina RARP, Reverse Address Resolution Protocol (definido en la RFC
903).
Una máquina sin disco carga su sistema operativo desde una máquina remota que actúa como servidor.
Para comunicarse con esta máquina remota se necesita su dirección IP, además de la propia. Al carece
de disco, ninguna de estas direcciones se encuentran disponibles; lo único disponible es la dirección
MAC de la propia interfaz de red.
A través del protocolo RARP, por difusión, la máquina puede obtener su dirección IP, mediante una
pregunta tal como "Tengo la dirección MAC E1, ¿sabe alguien mi dirección IP?" El servidor RARP recibe
este paquete, como todos los de la red, y responde a la dirección MAC E1 de la máquina emisora.
La principal limitación de RARP es que obliga a tener un servidor RARP en cada red local, porque al igual
que ARP dirige sus mensajes a la dirección de difusión de la red, y estos mensajes no son reenviados por
los enrutadores. Además, solo informa la dirección IP de la máquina que se está iniciando pero no brinda
datos del servidor de arranque ni la máscara a utilizar, entre otras cosas.
BOOTP
BOOTP (descrito en las RFCs 951, 1048 y 1084) es un protocolo similar a RARP en su función, pero usa
mensajes UDP, que sí son reenviados por los enrutadores. Además de permitir a una máquina sin disco
obtener su propia IP, BOOTP provee información adicional como la dirección IP del servidor donde está
su imagen de memoria con sistema operativo, la dirección IP del enrutador por defecto y la máscara de
subred a usar.
DHCP
BOOTP presenta el inconveniente de requerir administración para cada nueva máquina ingresada a la
red: el mapeo (dirección MAC, dirección IP) de la nueva máquina debe ingresarse a mano. Para superar
esta limitación fue desarrollada una extensión de BOOTP llamada DHCP, Dynamic Host Configuration
Protocol o protocolo dinámico de configuración de máquinas (descrito en las RFCs 2131 y 2132).
DHCP permite tanto la asignación manual como automática de números IP. Este protocolo ha desplazado
a RARP y BOOTP en la mayoría de las instalaciones.
Se basa en un servidor DHCP capaz de asignar números IP (y otros parámetros) a máquinas que lo
soliciten. El servidor DHCP puede estar en una LAN diferente a la máquina que solicita el IP; esto lo hace
inalcanzable por difusión, haciendo necesario disponer de un agente relay DHCP en cada LAN.
El proceso de descubrimiento del número IP de una máquina requiere lo siguientes pasos:
1. La máquina A arranca y desea obtener su número IP. Para ello, emite por difusión un paquete
llamado DHCP DISCOVER.
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 7 de 9
2. Este paquete es recibido por todas las máquinas de la red LAN de A, en particular por el agente
relay DHCP.
3. El agente relay DHCP reconoce el paquete DHCP DISCOVER y lo envía al servidor DHCP en
exclusiva (unicast), posiblemente en una red remota. El único dato necesario para este envío es
el número IP del servidor DHCP.
4. El servidor DHCP responde con un mensaje OFFER conteniendo una dirección IP y otros
parámetros. El servidor obtiene un número IP de un conjunto (pool) de direcciones IP disponibles,
llevando el control de cuáles están asignadas.
5. La máquina A recibe el paquete OFFER a través del agente relay DHCP. Responde al servidor
DHCP con un paquete REQUEST en el cual acepta la oferta.
6. El servidor DHCP responde con un paquete ACK y asigna la dirección. El paquete ACK incluye
varios parámetros configurables, entre otros la duración de la asignación.
7. La máquina A dispone de su número IP; lo verifica mediante ARP: si alguien responde (el IP
recibido ya está siendo usado) la máquina A se queja al servidor emitiendo un paquete DECLINE,
recomenzando las negociaciones. Si el IP no está siendo usado (nadie responde) la máquina A
puede iniciar comunicaciones normalmente.
8. Cuando se acerca el fin del tiempo de validez del IP la máquina envía al servidor un nuevo
paquete REQUEST para renovar su asignación y continuar usando el número IP asignado.
9. Cuando la máquina A desea terminar su uso del IP envía al servidor un paquete RELEASE. El
servidor libera ese IP para asignarlo a otra solicitud.
El tiempo de validez de la dirección IP resuelve el problema de máquinas que no devuelven
correctamente sus números IP: la máquina se desconecta pero el servidor no se entera, y no puede
reasignar el número. La técnica de asignar números IP con un cierto tiempo de validez se denomina
"leasing".
Ejercicios
Estudiar los comandos de UNIX: arp, ping, traceroute.
Procedimiento
En el informe.
Conclusiones
En el informe.
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 8 de 9
Para conocer más




Tanenbaum, Andrew. "Computer networks", 4a. edición, Prentice-Hall, 2003; 3a. edición,
Prentice-Hall, 1996. Hay traducción al español de ambas ediciones.
Comer, Douglas. "Redes Globales de información con Internet y TCP/IP", 3a. edición,
Prentice-Hall, 1996. Capítulos: 5, ARP; 6, RARP; 21, BOOTP y DHCP.
Super Man Pages. Páginas "man" de unix en línea
(http://linuxcommand.org/superman_pages.php).
WireShark (Ethereal). Analizador de protocolos de red.
Página principal: http://www.wireshark.org/

Curso Básico de Unix. Un curso introductorio al sistema operativo Unix, orientado a
Linux. Intérprete de comandos, sistema de archivos, editor vi, expresiones regulares, filtros,
programación del shell.
http://iie.fing.edu.uy/~vagonbar/unixbas/index.htm .
 The Internet Lab Manual. Es una colección de instructivos para realizar prácticas de laboratorio
en redes de datos. Si bien el equipo requerido es inalcanzable, el contenido de los instructivos es
altamente aprovechable.
Página principal: http://www.cs.virginia.edu/~itlab/book/
Enlaces: http://www.cs.virginia.edu/~itlab/book/links/
Para la presente práctica son útiles los siguientes instructivos:
Introducción: http://www.cs.virginia.edu/~itlab/book/pdf/Ch_0_v4.pdf
Lab 1: Introducción al laboratorio Internet:
http://www.cs.virginia.edu/~itlab/book/pdf/lab1new_v24.pdf
Redes de Datos - Curso 2016
Página del curso: Eva Redes de Datos
Facultad de Ingeniería - UDELAR - Rocha, Uruguay.
Redes de Datos 2016 – Instructivo Laboratorio 6
Página 9 de 9
Descargar