ARP (Address Resolution Protocol)

Host. Protocolos de red. Generación paquete. Petición. Recepción

  • Enviado por: Nearvi
  • Idioma: castellano
  • País: España España
  • 5 páginas

publicidad
cursos destacados
Cómo Programar para Emprendedores - jQuery
Cómo Programar para Emprendedores - jQuery
Los sitios web y apps de HTML5 deben ser dinámicos, interactivos y entregarle una buena experiencia al...
Ver más información

Cómo Programar para Emprendedores - JavaScript
Cómo Programar para Emprendedores - JavaScript
¿Eres un emprendedor y sufres de alguno de los siguientes...
Ver más información

publicidad

PRÁCTICA 02:

ARP

• Significado de las siglas:

ARP : Protocolo de resolución de Direcciones (Address Resolution Protocol).

• Historia del protocolo:

! RFC-826

! November 1982

! David C. Plummer (MIT)

• Para qué sirve:

En una sola red física, los hosts individuales se conocen en la red a través de su dirección física. Los protocolos de alto nivel direccionan a los hosts de destino con una dirección simbólica (en este caso la dirección IP). Cuando tal protocolo quiere enviar un datagrama a la dirección IP de destino w.x.y.z, el manejador de dispositivo no la entiende.

En consecuencia, se suministra un módulo (ARP) que traducirá la dirección IP a las dirección física del host de destino. Utiliza una tabla (llamada a veces caché ARP) para realizar esta traducción.

Cuando la dirección no se encuentra en la caché ARP, se envía un broadcast en la red, con un formato especial llamado petición ARP. Si una de las máquinas en la red reconoce su propia dirección IP en la petición, devolverá una respuesta ARP al host que la solicitó. La respuesta contendrá la dirección física del hardware así como información de encaminamiento (si el paquete ha atravesado puentes durante su trayecto) tanto esta dirección como la ruta se almacenan en la caché del host solicitante. Todos los posteriores datagramas enviados a esta dirección IP se podrán asociar a la dirección física correspondiente, que será la que utilice el manejador de dispositivo para mandar el datagrama a la red.

• Descripción del funcionamiento teórico del ARP:

Generación del paquete ARP

Si una aplicación desea enviar datos a una determinado dirección IP de destino, el mecanismo de encaminamiento IP determina primero la dirección IP del siguiente salto del paquete (que puede ser el propio host de destino o un "router") y el dispositivo hardware al que se debería enviar. Si se trata de una red 802.3/4/5, deberá consultarse el módulo ARP para mapear el par <tipo de protocolo, dirección de destino> a una dirección física.

El módulo ARP intenta hallar la dirección en su caché. Si encuentra el par buscado, devuelve la correspondiente dirección física de 48 bits al llamador(el manejador de dispositivo). Si no lo encuentra, descarta el paquete (se asume que al ser un protocolo de alto nivel volverá a transmitirlo) y genera un broadcast de red para una solicitud ARP.

{ARP}

Figura: Paquete de petición/respuesta ARP

Donde:

Hardware address space

Especifica el tipo de hardware. Por ejemplo: Ethernet o Packet Radio Net.

Protocol address space

Especifica el tipo de protocolo

Hardware address length

Especifica la longitud(en bytes) de la dirección hardware del paquete

Protocol address length

Especifica la longitud(en bytes) de las direcciones del protocolo en el paquete.

Operation code

Especifica si se trata de una petición(1) o una solicitud(2) ARP.

Source/target hardware address

Contiene las direcciones físicas del hardware.

Source/target protocol address

Contiene las direcciones del protocolo.

Para el paquete de solicitud, la dirección hardware de destino es el único campo indefinido del paquete.

Recepción del paquete ARP

Cuando un host recibe un paquete ARP(bien un broadcast o una respuesta punto a punto), el dispositivo receptor le pasa el paquete al módulo ARP, que lo trata como se indica en la siguiente figura:
{ARP}

Figura: Recepción del paquete ARP

El host solicitante recibirá esta respuesta ARP, y seguirá el algoritmo ya comentado para tratarla. Como resultado, la tripleta <tipo de protocolo, dirección de protocolo, dirección hardware> para el host en cuestión se añadirá a la caché ARP. La próxima vez que un protocolo de nivel superior quiera enviar un paquete a ese host, el módulo de ARP encontrará la dirección hardware, a la que se enviará el paquete.

• Situación real donde entra en marcha este protocolo:

ARP se emplea en redes IEEE 802 además de en las viejas redes DIX Ethernet para mapear direcciones IP a dirección hardware. Para hacer esto, ha de estar estrechamente relacionado con el manejador de dispositivo de red. De hecho, las especificaciones de ARP en RFC 826 sólo describen su funcionalidad, no su implementación, que depende en gran medida del manejador de dispositivo para el tipo de red correspondiente, que suele estar codificado en el microcódigo del adaptador.

• Es posible modificar las tablas ARP?

Sí.

El Objeto 'neighbour' del comando ip gestiona el cache ARP. Estos son algunos ejemplos:

mrmime:~# ip neigh ls

192.168.2.5 dev eth0 lladdr 00:c0:ca:15:80:9c nud reachable

192.168.2.34 dev eth0 lladdr 00:05:1c:01:9d:c3 nud delay

192.168.2.72 dev eth0 lladdr 00:05:1c:01:6c:a9 nud reachable

192.168.2.1 dev eth0 lladdr 00:c0:ca:15:81:07 nud reachable

192.168.2.3 dev eth0 lladdr 00:01:02:ad:08:da nud stale

192.168.2.70 dev eth0 lladdr 00:40:f6:2c:27:13 nud reachable

192.168.2.21 dev eth0 lladdr 00:50:fc:42:07:b4 nud reachable

192.168.2.52 dev eth0 lladdr 00:05:1c:01:5e:1b nud delay

mrmime:~#

Puedo borrar una entrada:

mrmime:~# ip n d 192.168.2.52 dev eth0

mrmime:~# ip n l

192.168.2.5 dev eth0 lladdr 00:c0:ca:15:80:9c nud reachable

192.168.2.34 dev eth0 lladdr 00:05:1c:01:9d:c3 nud reachable

192.168.2.72 dev eth0 lladdr 00:05:1c:01:6c:a9 nud reachable

192.168.2.1 dev eth0 nud failed

192.168.2.3 dev eth0 lladdr 00:01:02:ad:08:da nud reachable

192.168.2.70 dev eth0 lladdr 00:40:f6:2c:27:13 nud reachable

192.168.2.21 dev eth0 lladdr 00:50:fc:42:07:b4 nud reachable

192.168.2.52 dev eth0 lladdr 00:05:1c:01:5e:1b nud reachable

Realmente la entrada correspondiente no desaparecerá de inmediato. Se quedara hasta que el último cliente que la usa la 'libere'

Los otros comandos para añadir o cambiar una entrada son:

ip neigh add

ip neigh change

RARP

• Significado de las siglas:

RARP: Protocolo de Resolución de Direcciones ( Reverse Address Resolution Protocol).

• Para que sirve:

Algunos hosts, como por ejemplo estaciones de trabajo sin disco, desconocen su propia dirección IP cuando arrancan. Para determinarla, emplean un mecanismo similar al ARP, pero ahora el parámetro conocido es la dirección hardware el host y el requerido su dirección IP. La diferencia básica con ARP es el hecho de que debe existir un "servidor RARP" en la red que mantenga una base de datos de mapeados de direcciones hardware a direcciones de protocolo.

• Descripción del funcionamiento teórico:

El cálculo de direcciones inversas se efectúa del mismo modo que en ARP. Se usa el mismo formato de paquete.

Una excepción es el campo "operation code" que ahora toma los siguientes valores:

3 ! para la petición RARP

4 ! para la respuesta RARP

Y, por supuesto, cabecera "física" de la trama indicará ahora que RARP es el protocolo de nivel superior (8035 hex) en vez de ARP (0806 hex) o IP (0800 hex) en el campo EtherType. El mismo concepto de RARP genera algunas diferencias:

! ARP asume sólo que cada host conoce el mapeado entre su propia dirección hardware y de protocolo. RARP requiere uno o más hosts en la red para mantener una base de datos con los mapeados entre direcciones de red direcciones de protocolo de modo que serán capaces de responder a solicitudes de los host clientes.

! Debido al tamaño que puede tomar esta base de datos, parte de las funciones del servidor suelen implementarse fuera del microcódigo del adaptador, con la opción de una pequeña caché en el microcódigo, que sólo es responsable de la recepción y transmisión de tramas RARP, estando el mapeado RARP en sí a cargo del software que se ejecuta en el servidor como un proceso normal.

! La naturaleza de esta base de datos también requiere algún software para crear y actualizar la base de datos manualmente.

• Una situación real donde entre en marcha:

La necesidad de encontrar una dirección IP dada una dirección Ethernet suele darse al iniciarse una estación de trabajo sin disco. Este protocolo permite que dicha estación de trabajo difunda su dirección Ethernet y pregunte cual es su dirección IP. El servidor RARP ve esta solicitud, busca la dirección de Ethernet en sus archivos de configuración y envía de regreso la dirección IP correspondiente.

1