ARP,RARP,DHCP Archivo

Anuncio
ARP (Address Resolution Protocol).
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 (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 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.
El mensaje ARP va como carga útil de la trama.
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, como sería el caso si se
usaran tablas completadas manualmente por el administrador de la red (IP,MAC): sería
necesario cambiar la correspondencia entre número IP y dirección MAC en todas las máquinas
de la red, cada vez que se cambie tanto una tarjeta de red como una dirección IP;
trasformándose en una tarea pesada y propensa a error, sobre todo si la red es grande.
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.
Formato del paquete ARP.
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.
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.
PLEN: longitud de la dirección de protocolo (de capa 3) - permite usar ARP en distintos tipos
de redes.
SenderHA: 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.
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.
Analizaremos los casos de transferencia de paquetes dentro de una misma LAN y entre dos
LANs distintas.
Dos redes LAN y el backbone de una organización.
Comunicación entre máquinas de una misma LAN.
1
La máquina 1 con dirección IP1 desea enviar un paquete a la máquina 3 con dirección IP3 :
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 con la pregunta
"tQuién tiene la dirección IP IP3?". Además incluye la dirección MAC e IP origen en el
contenido de ARP.
3.
El paquete 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 la respuesta a la pregunta, "IP3 tiene dirección MAC E3". Dado que la
correspondencia (IP1, E1) de la máquina 1 venía en el paquete 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 dispone ahora de la dirección MAC de la
máquina 3 (E3), y puede intercambiar paquetes 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.
Algunas optimizaciones mejoran la eficiencia del proceso:
Dado que el paquete 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.
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é. El tiempo de validez existe 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 ("tQuié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.
1 Las
direcciones IP las supondremos conocidas (pueden ser el resultado de una consulta al
DNS).
ARP gratuito: cuando una máquina se prende, envía un paquete 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 arrancaría hasta que el administrador resuelva la colisión asegurando la inexistencia
del mismo número IP en 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
2
campo "Tipo" en capa MAC tiene el valor 0x0806 , 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.
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 FI, con destino al enrutador de la red local B,
interfaz F2.
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.
4. La máquina 8 responde a la máquina 1 dirigiendo su paquete 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.
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 interrogar 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] orieth1
d3.ls.iie.edu.uy (172.16.0.12) at 00:E0:06:EC:20:2E[ether] orieth1
? (172.16.0.253) at52:54:4C:19:16:A2[ether] orieth1
gw-380.firig.edu.uy (164.73.38.1) at 00:D0:95:91:36:2C [ether] ori eth0
...
La salida de este comando muestra los datos almacenados en una entrada ARP: dirección IP,
tipo de hardware (Ethernet en este caso), la dirección de hardware (dirección de capa MAC: en
este caso una dirección Ethernet de 48 bits) y el nombre de la interfaz (eth0 o ethi en este
caso).
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. Como carece de disco, ninguna de estas direcciones están 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 El, ¿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 El 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.
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".
Descargar