¿Cómo se asignan las direcciones IP a las direcciones MAC?


14

He estado leyendo sobre las diferencias entre las direcciones MAC e IP, y por qué las necesitamos a ambas.

Para resumir, las direcciones MAC son identificaciones físicas únicas e inmutables para cada dispositivo, mientras que las direcciones IP son asignadas, cambiables y virtuales. Para analogizar, las direcciones MAC son como personas que tienen nombres permanentes, y las direcciones IP son donde viven actualmente.

En el mundo real, vinculamos direcciones y nombres con la ayuda de una agenda telefónica. ¿Qué mecanismo vincula las direcciones IP a las direcciones MAC y dónde se encuentra este mecanismo en la red?


55
Después de revisar sus preguntas, creo que se beneficiaría de un buen libro. Considere estudiar algo similar a TCP / IP Illustrated, vol. 1: Los protocolos de Stevens (para su información, la edición de 1993 generalmente se considera mejor que el relanzamiento de 2011, aunque la edición de 1993 solo cubre IPv4 en profundidad).
Mike Pennington

"La red ilustrada: cómo funciona TCP / IP en una red moderna" y / o la "Guía TCP / IP: una referencia exhaustiva e ilustrada de protocolos de Internet" también podría valer la pena.
Jens Link

44
@ MikePennington Gracias, esa es una buena manera de decirlo, en lugar de un "RTFM" y un -1. Lo estoy leyendo ahora en línea :)
CodyBugstein


1
Las direcciones MAC son, en realidad, ni físicas, ni inalterables, ni únicas. He visto dispositivos que aleatorizan su MAC en cada reinicio. Ciertamente, existen utilidades para casi cualquier plataforma para cambiar temporal o permanentemente el MAC de casi todas las interfaces. iOS 8 incluso aleatorizará el wifi MAC para escanear redes.
MacLemon

Respuestas:


19

El mecanismo se llama Protocolo de resolución de direcciones (ARP) . Cada ARP de dispositivo IPv4 de Ethernet para resolver direcciones MAC de Ethernet para IP de destino Las asignaciones de IP a mac se almacenan en la tabla ARP de cada dispositivo (la guía telefónica en su analogía).

Para simplificar: En la mayoría de los casos, para resolver la dirección MAC asociada con una dirección IP, envía un paquete ARP de difusión (a todos los dispositivos en la red), preguntando quién tiene esa dirección IP. El dispositivo con esa dirección IP responde al ARP (con su dirección MAC).


creo que la mayoría de las veces solo mira hacia arriba desde una tabla arp local. Solo la primera vez que tiene que hacer una transmisión
Cruncher

^ Sí, por supuesto, después de descubrir los dispositivos MAC, se almacena en una tabla ARP durante un tiempo (un par de minutos), por lo que no tiene que repetir el proceso de consulta ARP para cada paquete.
mulaz

Oh, no me di cuenta de que dejó caer la mesa después de un par de minutos. Pensé que aguantó por un tiempo. ¿Eso significa que para el veneno ARP, debe enviar respuestas ARP casi con frecuencia?
Cruncher

Sí, y el host "real" no debe enviar ningún paquete a la máquina envenenada, o la máquina almacenará el MAC 'real'.
mulaz

1
Dependiendo de lo que estés tratando de lograr.
mulaz

13

Como la pregunta fue etiquetada con IPv6, responderé por eso porque IPv6 es muy diferente de IPv4.

Para empezar, no existe ARPv6. La asignación entre la capa 2 y las direcciones IPv6 se realiza mediante el Protocolo de descubrimiento de vecinos (NDP), que se envía a través de ICMPv6. Por lo tanto, no debe ignorar ICMPv6 y filtrarlo, como es costumbre con la IP heredada. El NDP proporciona dos tipos de mensajes que son de interés aquí: Solicitud de vecinos y Publicidad de vecinos. Un nodo que quiere aprender una dirección de capa de enlace para una dirección IP en particular envía una Solicitud de vecino a la dirección de multidifusión de nodo solicitado de enlace local correspondiente : ya no hay transmisión para IPv6.

Por ejemplo, si la dirección en cuestión es 2001:db8::0011:2233:4455:6677, entonces la dirección de multidifusión de nodo solicitado correspondiente es ff02::1:ff55:6677, y la dirección de multidifusión de ethernet correspondiente es 33:33:ff:55:66:77. Todos los nodos con una dirección que termina en *55:6677pertenecen a ese grupo de multidifusión y escucharán eso, lo más probable es que solo sea el sistema de destino. La Solicitud de vecinos contiene también las direcciones IPv6 de unidifusión y la dirección MAC del sistema de solicitud.

Al recibirlo, el nodo de destino responde con su Anuncio de vecino, que se envía a la dirección de unidifusión (capa de enlace e IPv6) del nodo solicitante. Por lo tanto, el nodo solicitante aprende la dirección MAC del nodo objetivo.

Y sí, la suplantación de NDP funciona de manera similar a la suplantación de ARP. Y no, IPsec no es la respuesta.


"El ARP en sí no se puede usar, ya que se creó para direcciones de capa de red de 4 bytes (es decir, IPv4) " . Esto no es cierto. ARP utiliza campos de longitud de dirección para especificar la longitud de la dirección (hasta 255 octetos) para las direcciones de capa 2 y capa 3 (consulte RFC 826). La razón por la cual ARP no se puede usar con IPv6 es porque IPv6 no tiene transmisión.
Ron Maupin

1
ARP fue reemplazado por NDP en v6 por razones de seguridad (y luego, como todos los buenos protocolos adyacentes a v6, experimentó un importante desplazamiento de características), no porque v6 no tenga transmisión: ARP solo usa transmisión L2 y fácilmente podría haberse extendido para proporcionar v6 direcciones.
Nick Bastin

2
No sé si ARP fue reemplazado por razones de seguridad en primer lugar. Por lo que veo, había el deseo de cubrir todos los protocolos de control con ICMPv6. Como efecto secundario, sí, puede asegurar ICMPv6 mediante IPsec. Sin embargo, IPsec requiere un intercambio de claves e IKE se ejecuta sobre UDP, que requiere una dirección IP. Una tarea de NDP es negociar una dirección IP, y el intercambio manual de claves no escala, por lo que la idea de NDP + IPsec = NDP seguro no funciona de esta manera. Las alternativas como SeND no han despegado (y probablemente nunca lo harán). Al final no veo ninguna ventaja de seguridad de NDP sobre ARP.
contramode

4

La mejor respuesta es buena. En caso de que ayude, aquí hay una descripción en términos de la analogía de su directorio telefónico. Términos reales de redes entre paréntesis.

Según su nombre (dirección IP), sabe que vive en su vecindario (dominio de difusión). Primero mire en su directorio telefónico (caché ARP) para ver si ya conoce su dirección (dirección MAC). Si no están en la guía telefónica, usted sale y grita (transmisión), "¿Dónde vive Steve?" Lo suficientemente fuerte como para que todos lo escuchen (solicitud ARP). Asumiendo que Steve en realidad vive allí y que está despierto, responde, solo a usted, sin gritar: "Aquí está mi dirección" (respuesta ARP). Lo anota en su directorio telefónico para referencia futura (almacenamiento en caché ARP).


Seguro. Fue un ejercicio divertido para mí. Cosas reales como broadcast / unicast no se mapean perfectamente en la analogía (¿gritar / hablar / enviar por correo?), Así que tome un grano de sal.
Jacktose

Al editor: utilicé la dirección más adelante en la analogía, para MAC.
Jacktose

2
  1. Las direcciones MAC se pueden cambiar. En Linux, use ip o ifconfig para la mayoría de Windows. Consulte la configuración del controlador de su interfaz de red.

  2. No conviertes nada. Las direcciones MAC están en la capa 2, IP en la capa 3 del modelo OSI. Para IPv4, ARP se utiliza para averiguar qué dirección MAC (capa 2) pertenece a una determinada dirección IP (capa 3). Para IPv6 se utiliza ICMPv6 (Descubrimiento de vecinos).


Lo siento, debería haber dicho "traducir" no "convertir"
CodyBugstein

0

Protocolo de resolución de direcciones (ARP)

Dirección IP ---> ARP ---> Dirección MAC

Dirección MAC ---> RARP ---> Dirección IP

Dirección IP = Dirección lógica [32 bits]

Dirección MAC = Dirección física [48 bits]

Capa de red (IP) ----> ARP ---> Capa de enlace de datos (MAC)

Se necesita la dirección IP en la capa de red para identificar un host de origen / destino.

Se necesita la dirección MAC en la capa de enlace de datos para identificar un host de origen / destino.


Usted es incorrecto acerca de RARP (muchas personas tienen esta idea incorrecta). Esto es algo que solía ser utilizado por un host para determinar su propia dirección IP, no las direcciones IP de otros hosts. Ya no se usa.
Ron Maupin

0

La pila de red primero busca la IP de destino en su tabla de enrutamiento, a partir de esto determina dos cosas.

  1. A través de qué interfaz se debe enviar el paquete.
  2. Cuál es la dirección IP del próximo salto. Si no se especifica el siguiente salto en la tabla de enrutamiento, la IP del destino se usa como el próximo salto.

Tenga en cuenta que la dirección IP del siguiente salto es un concepto puramente local, nunca se convierte en parte de un paquete enviado por cable.

Si el paquete se va a enviar en una capa de enlace multipunto (por ejemplo, Ethernet, etc.), el sistema operativo busca el siguiente salto en su tabla arp (ipv4) o de descubrimiento de vecinos (ipv6). Si encuentra una entrada no obsoleta allí, entonces tiene la dirección MAC que necesita y puede enviar el paquete.

Si no tiene una entrada utilizable, pone en espera los paquetes destinados al próximo salto y envía una solicitud para encontrar la dirección MAC. Los mecanismos aquí difieren un poco entre v4 y v6.

En v4 se envían solicitudes arp. Esto normalmente se transmite, pero en algunos casos, si el host tiene una entrada obsoleta, puede intentar primero una solicitud de unidifusión y solo volver a emitir si eso falla. La respuesta es normalmente unicast.

En v6, las solicitudes de solicitud de vecinos se envían a una dirección de multidifusión generada a partir de la dirección del siguiente salto. El objetivo responde con un anuncio vecino de unidifusión. Los hosts también pueden enviar anuncios vecinos al grupo "multidifusión de todos los nodos" (también conocido como difusión efectiva) para actualizar las entradas en sus cachés de descubrimiento de vecinos vecinos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.