Bloque V: El nivel de enlace
ARP
Índice
• Bloque V: El nivel de enlace
– Tema 15: ARP
• Introducción
• Mensaje ARP
• ARP: Ejemplo
• Ejemplo resumen
• Referencias
– Capítulo 5 de “Redes de Computadores: Un enfoque
descendente basdado en Internet”. James F. Kurose, Keith
W. Ross. Addison Wesley, 2ª edición. 2003.
– Capítulos 4 y 5 de “TCP/IP Illustrated, Volume 1: The
Protocols”, W. Richard Stevens, Addison Wesley, 1994.
RC Bloque V Tema 16 2
Introducción
• En Internet, cada host tiene una dirección lógica IP.
• En las redes físicas, cada host tiene una dirección “hardware” (p.e. Ethernet).
• Para transmitir un datagrama a un destino de la misma subred física, el
datagrama debe encapsularse en un paquete que contenga la dirección
hardware del destino.
• ¿Cómo se convierte/mapea una dirección lógica en una dirección hardware?
• ¿Cómo se convierte una dirección IP de 32 bits en una dirección Ethernet de 48
bits?
• ARP (y RARP) proporcionan la correspondencia entre direcciones IP y
direcciones hardware (nivel de enlace):
– ARP: Address Resolution Protocol (RFC 826)
– RARP: Reverse Address Resolution Protocol (RFC 903)
• ARP proporciona correspondencia dinámica (no concierne al usuario ni al
administrador de la red) entre direcciones IP y direcciones hardware usadas por
distintas tecnologías de red.
– Obtiene la dirección Ethernet asociada a una dirección IP.
• RARP permite obtener una dirección IP asociada a una dirección Ethernet,
utilizando un servidor RARP (sustituido por DHCP).
IP
RED
ARP
Ethernet
ENLACE
RC Bloque V Tema 16 3
Mensaje ARP
• Formato del paquete ARP y RARP para Ethernet:
Tamaño dirección HW
Tamaño dirección protocolo
Dir. destino Dir. origen Tipo Tipo Tipo Dir. origen Dir. origen Dir. destino Dir.
Op.
Ethernet Ethernet trma HW proto Ethernet IP Ethernet destino IP
6 6 2 2 2 1 1 2 6 4 6 4
Cabecera Ethernet Paquete ARP/RARP
• Tipo trama: ARP (0x0806) y RARP (0x8035)
• Tipo de HW: Ethernet (0x0001)
• Tipo de protocolo: IP (0x0800)
• Tamaño de direcciones: Ethernet (6 bytes), IP (4 bytes)
• Op.: Especifica el tipo de operación a realizar
– ARP request (1) / ARP reply (2)
– RARP request (3) / RARP reply (4)
• Direcciones Ethernet e IP de origen y destino.
– La dirección Ethernet de origen está duplicada en el frame Ethernet, porque
ya aparece en la cabecera Ethernet.
– La dirección Ethernet de destino también se duplicará en las respuestas (en
las peticiones se usa la dirección de broadcast).
RC Bloque V Tema 16 4
ARP: Ejemplo
• ARP permite a una fuente encontrar la dirección hardware de un
destino que se encuentre en la misma subred física.
• Recibe como entrada la dirección IP del destino y devuelve su
dirección hardware.
• Opera en redes que tienen capacidad de difusión (broadcast)
• nogal% ftp pino
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 5
ARP: Ejemplo
[Link] cliente de ftp llama al resolver
para convertir el nombre de la
pino [Link] maquina (pino) en una dirección
IP.
resolver FTP
(1)
TCP
ARP IP
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 6
ARP: Ejemplo
2. El cliente ftp pide a la capa TCP
que establezca una conexión con
la dirección IP [Link] al
(1) puerto 21
resolver FTP
(2)
TCP
ARP IP
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 7
ARP: Ejemplo
3. TCP solicita al nivel IP el envío de
un datagrama a la dirección IP
[Link]
(1)
resolver FTP
(2)
TCP
(3)
ARP IP
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 8
ARP: Ejemplo
4. Enrutamiento IP: decide si se
envía a una máquina
(directamente conectada) o a un
(1)
router (para alcanzar al destino)
resolver FTP [Link] directamente
(2) conectada
TCP
(3)
ARP IP (4)
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 9
ARP: Ejemplo
5. Es necesario convertir la dirección
IP ([Link]) en una dirección
Ethernet ARP
(1)
resolver FTP
(2)
TCP
(3)
(5) ARP IP (4)
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 10
ARP: Ejemplo
6. Envío del ARP Request a todas las
máquinas de la red local (broadcast)
(1)
resolver FTP
(2)
TCP
(3)
(5) ARP IP (4)
(6)
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
IP: [Link]
Eth.: [Link]
RC Bloque V Tema 16 11
ARP: Ejemplo
7. La capa ARP de heras recibe el
(1) broadcast y reconoce su IP. Contesta
resolver FTP con un "ARP reply" que contiene su
(2) dirección Ethernet.
TCP
(3)
(5) ARP IP (4)
(6)
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
Driver Ethernet IP: [Link]
Eth.: [Link]
IP ARP (7)
TCP
RC Bloque V Tema 16 12
ARP: Ejemplo
8. indurain recibe el "ARP reply" y ya puede
(1) enviar el datagrama IP que originó el
resolver FTP "ARP request".
(2)
TCP
(3)
(5) ARP IP (4)
(6) (8)
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
Driver Ethernet IP: [Link]
Eth.: [Link]
IP ARP (7)
TCP
RC Bloque V Tema 16 13
ARP: Ejemplo
(1)
9. Se envía el datagrama IP a heras
resolver FTP
(2)
TCP
(3)
(5) ARP IP (4)
(6) (8)
Driver Ethernet
nogal (cliente FTP) castaño
IP: [Link] IP: [Link]
Eth.: [Link] Eth.: [Link]
pino (servidor FTP)
Driver Ethernet IP: [Link]
Eth.: [Link]
IP ARP (7)
TCP
RC Bloque V Tema 16 14
ARP: Ejemplo
• ARP Request (nogal broadcast)
[Link] [Link] 080 000 080 [Link] 210.53. 210.53.
6 4 1 ??
[Link] 09:8d 6 1 0 09:8d 23.10 23.32
Destino Origen Eth. origen IP origen Eth. destino IP dest.
Cabecera Ethernet Paquete ARP/RARP
• ARP Reply (pino nogal)
[Link] [Link] 080 000 080 [Link] 210.53. [Link] 210.53.
:3a:8a 6 4 2 :3a:8a
09:8d 6 1 0 23.32 09:8d 23.10
Destino Origen Eth. origen IP origen Eth. destino IP dest.
Cabecera Ethernet Paquete ARP/RARP
RC Bloque V Tema 16 15
ARP
• Cache ARP:
– El broadcast de los ARP Request es costoso ya que todos los receptores
tienen que procesar este paquete Cache ARP
– Mantiene la conversiones recientes entre direcciones de red y direcciones
hardware.
– En un mensaje ARP Request, si la IP del emisor ya está en la cache Se
actualiza con la dirección HW del emisor.
– El tiempo normal de vida es de 20 minutos (desde que se creó la entrada).
– Comando: arp [a –d –s]
• ARP gratuito:
– ARP request generada por una máquina para preguntar por la dirección
HW que se corresponde con su propia dirección IP.
– Normalmente utilizado para configurar la interfaz de red en el proceso de
arranque.
– Tiene dos efectos adicionales:
• Si otra máquina contesta al ARP quiere decir que hay otra máquina
con la misma IP ERROR!.
• Actualización de las cachés ARP de todas las máquinas que reciben el
ARP request. Útil cuando se ha cambiado la interfaz de red en una
máquina, para informar de la nueva dirección HW.
RC Bloque V Tema 16 16
Ejemplo resumen
• Indicar todas las tramas que genera el comando
traceroute.
– La máquina origen y RA acaban de reiniciarse.
traceroute [Link]
[Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link]
[Link]
[Link] [Link]
[Link] [Link]
RC Bloque V Tema 16 17
Ejemplo resumen
[Link] [Link] [Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
ARP Request
ARP Reply [Link] [Link] ARP ¿Quién es [Link]?
Destino Origen
[Link] [Link] ARP [Link] es [Link]
Destino Origen
RC Bloque V Tema 16 18
Ejemplo resumen
[Link] [Link] [Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
UDP
ICMP
...:12:53 ...:b1:89 IP [Link] [Link] 1 UDP – Puerto 38292
Destino Origen Origen Destino TTL
...:b1:89 ...:12:53 IP [Link] [Link] 32 ICMP Tiempo excedido
Destino Origen Origen Destino TTL
RC Bloque V Tema 16 19
Ejemplo resumen
[Link] [Link] [Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
ARP Request
UDP
ARP Reply
[Link] [Link] ARP ¿Quién es [Link]?
Destino Origen
[Link] [Link] ARP [Link] es [Link]
Destino Origen
...:12:53 ...:b1:89 IP [Link] [Link] 2 UDP – Puerto 38292
Destino Origen Origen Destino TTL
RC Bloque V Tema 16 20
Ejemplo resumen
[Link] [Link] [Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
UDP
ICMP ICMP
...:0a:6e ...:ba:8c IP [Link] [Link] 1 UDP – Puerto 38292
Destino Origen Origen Destino TTL
...:ba:8c ...:0a:6e IP [Link] [Link] 32 ICMP Tiempo excedido
Destino Origen Origen Destino TTL
...:b1:89 ...:12:53 IP [Link] [Link] 31 ICMP Tiempo excedido
Destino Origen Origen Destino TTL
RC Bloque V Tema 16 21
Ejemplo resumen
[Link] [Link] [Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
UDP UDP UDP
...:e5:81 ...:8a:9f IP [Link] [Link] 1 UDP – Puerto 38292
Destino Origen Origen Destino TTL
...:0a:6e ...:ba:8c IP [Link] [Link] 2 UDP – Puerto 38292
Destino Origen Origen Destino TTL
...:12:53 ...:b1:89 IP [Link] [Link] 3 UDP – Puerto 38292
Destino Origen Origen Destino TTL
RC Bloque V Tema 16 22
Ejemplo resumen
[Link] [Link] [Link]
[Link] RA [Link] RB [Link]
[Link] [Link]
[Link] [Link]
[Link]
[Link]
ICMP ICMP ICMP
...:8a:9f ...:e5:81 IP [Link] [Link] 32 ICMP Puerto inalcanzable
Destino Origen Origen Destino TTL
...:ba:8c ...:0a:6e IP [Link] [Link] 31 ICMP Puerto inalcanzable
Destino Origen Origen Destino TTL
...:b1:89 ...:12:53 IP [Link] [Link] 30 ICMP Puerto inalcanzable
Destino Origen Origen Destino TTL
RC Bloque V Tema 16 23
Ejemplo resumen
Cabecera Ethernet Cabecera IP
Mensaje
Origen Destino Tipo Origen Destino TTL Prot.
ARP Request: ¿Quién es
...:b1:89 [Link]...:ff ARP
[Link]?
..:12:53 ...:b1:89 ARP ARP Reply: [Link] es ...:12:53
...:b1:89 ..:12:53 IP [Link] [Link] 1 UDP
..:12:53 ...:b1:89 IP [Link] [Link] 32 ICMP ICMP Tiempo excedido
...:b1:89 ..:12:53 IP [Link] [Link] 2 UDP
...:ba:8c [Link]...:ff ARP ARP Request: ¿Quién es [Link]?
..:0a:6e ...:ba:8c ARP ARP Reply: [Link] es ...:0a:6e
...:ba:8c ..:0a:6e IP [Link] [Link] 1 UDP
..:0a:6e ...:ba:8c IP [Link] [Link] 32 ICMP ICMP Tiempo excedido
..:12:53 ...:b1:89 IP [Link] [Link] 31 ICMP ICMP Tiempo excedido
RC Bloque V Tema 16 24
Ejemplo resumen
Cabecera Ethernet Cabecera IP
Mensaje
Origen Destino Tipo Origen Destino TTL Prot.
...:b1:89 ..:12:53 IP [Link] [Link] 3 UDP
...:ba:8c ..:0a:6e IP [Link] [Link] 2 UDP
...:8a:9f ..:e5:81 IP [Link] [Link] 1 UDP
..:e5:81 ...:8a:9f IP [Link] [Link] 32 ICMP ICMP Puerto inalcanzable
..:0a:6e ...:ba:8c IP [Link] [Link] 31 ICMP ICMP Puerto inalcanzable
..:12:53 ...:b1:89 IP [Link] [Link] 30 ICMP ICMP Puerto inalcanzable
RC Bloque V Tema 16 25