¿Por qué no se pueden usar las direcciones MAC en lugar de IPv4 | 6 para redes? [cerrado]

184

Estoy leyendo sobre TCP / IP y otros protocolos y tecnologías relacionados. Las direcciones MAC se describen como (razonablemente :) únicas y con un gran espacio de posibilidades (varios cientos de billones), a la vez que se asignan a todas las interfaces de red. ¿Cuáles son las razones históricas y técnicas por las que se usan las direcciones IPv4 o IPv6 en lugar de las direcciones MAC para la comunicación entre redes?

¿Me estoy perdiendo algo fundamental o es solo una razón tonta (por ejemplo, construir sobre la tecnología heredada)?

Félix Saparelli
fuente
55
Corrección pedante: razonablemente única; Las tarjetas con direcciones MAC HW idénticas se han visto en la naturaleza: este es un problema de red "divertido" para depurar.
Piskvor
99
Personalmente, presencié un controlador defectuoso que en realidad asignó la misma dirección MAC a diferentes tarjetas de red en diferentes máquinas (que tenían direcciones HW únicas antes de instalar ese controlador). Bueno, eso fue doloroso .
Massimo
3
Massimo, he visto exactamente lo mismo. Eso no es raro que un controlador haga eso en el desarrollo y que los programadores se olviden de activar ese componente cuando comience la producción. @Felix, también es común que los fabricantes reutilicen los MAC con el tiempo y en diferentes partes del mundo. Por ejemplo, una tarjeta vendida en 2005 en los EE. UU. Podría tener el mismo MAC que una vendida en China en 2013.
Robert Kaucher
30
Dirigir un paquete con una dirección MAC sería como dirigir una carta con un número de seguro social.
Mikey
14
¿Cómo saber dónde está una dirección MAC específica en este momento? ¿Por adelantado, sin necesidad de que se notifique a todos los nodos de Internet cuando se muda a otra red?
Thorbjørn Ravn Andersen

Respuestas:

345

La dirección MAC puede ser única, pero no hay nada especial en el número que indique dónde está. MAC 00-00-00-00-00-00podría estar al otro lado del planeta 00-00-00-00-00-01.

IP es un esquema de numeración arbitrario impuesto de manera jerárquica en un grupo de computadoras para distinguirlas lógicamente como un grupo (eso es una subred). El envío de mensajes entre esos grupos se realiza mediante tablas de enrutamiento, divididas en varios niveles para que no tengamos que hacer un seguimiento de cada subred. Por ejemplo, 17.x.x.xestá dentro de la red de Apple. A partir de ahí, Apple sabrá dónde se encuentran cada una de sus miles de subredes y cómo llegar a ellas (nadie más necesita saber esta información, solo necesitan saber que 17.todo va a Apple).

También es bastante fácil relacionar esto con otro par de sistemas. Tiene un número de identificación emitido por el estado, ¿por qué necesitaría una dirección postal si ese número de identificación ya es exclusivo para usted? Necesita la dirección de correo porque es un sistema arbitrario que describe dónde debe ir el destino único para las comunicaciones con usted.

Chris S
fuente
23
Esta es una respuesta genial. Hubiera agregado que las direcciones MAC se utilizan en última instancia en las comunicaciones IP una vez que las computadoras determinan que están en la misma subred; Es por eso que la intoxicación por ARP funciona como un ataque. Lo mismo con una puerta de enlace predeterminada, la computadora direcciona los paquetes destinados a otra subred a la dirección MAC devuelta por la búsqueda ARP para la IP de la puerta de enlace predeterminada. El direccionamiento de capa 3 / IP es utilizado principalmente por enrutadores y solo lo utiliza el host para determinar si el destino está en la misma subred.
Sean C.
77
@SeanC, las direcciones MAC se utilizan en última instancia en las comunicaciones IP a través de protocolos de línea basados ​​en 802.1 (Ethernet, WiFi, Token Ring, etc.). Pero no a través de protocolos ATM, como PoSDH e IPoATM.
Chris S
25
Además, puede mantener la misma dirección IP cuando su tarjeta de red (o computadora completa) necesita ser reemplazada. Imagine lo molesto que sería sin la abstracción de IP.
OrangeDog
3
@ChrisS Tengo un amigo que, como administrador del sistema, recibió un lote de tarjetas de un solo proveedor y las tarjetas solo tenían una dirección MAC en toda la paleta. El vendedor dijo que las tarjetas no se mezclaron correctamente en la distribución minorista, por lo que hubo duplicados, ya que el pedido fue una caída directa de la fábrica. Antes de que las tarjetas se distribuyeran al por menor, se suponía que se mezclarían para distribuir a los engañados. Por lo tanto, para un proveedor determinado, los destinatarios de MAC no son únicos, y mucho menos entre los proveedores.
44
Hay una variedad de razones históricas para la ocurrencia duplicada de direcciones MAC, incluidos los errores de firmware del proveedor .
Mike Pennington
73

Porque las tablas de enrutamiento se volverían imposiblemente grandes.

Las direcciones IP se asignan jerárquicamente, por lo que un enrutador puede agrupar rutas por prefijos de dirección. El número de sistemas autónomos presentes en la red ahora es lo suficientemente razonable como para caber en el hardware actual.

Por otro lado, la distribución de las direcciones MAC en la red es aleatoria y no tiene ninguna relación con la topología. La agrupación de rutas sería imposible, cada enrutador necesitaría hacer un seguimiento de las rutas para cada dispositivo que transmite el tráfico a través de él. Eso es lo que hacen los switches de capa 2, y eso no escala mucho más allá de un cierto número de hosts.

b0fh
fuente
¿Puedes dar más detalles sobre esto? ¿Por qué lo harían ellos? ¿Por qué ese no es el caso con IPv *?
Félix Saparelli
2
No hay ninguna razón intrínseca de que las tablas de enrutadores que usan una dirección con formato MAC sean "imposiblemente grandes" en comparación con los formatos IPv4 / 6. El problema es que la asignación de direcciones IP está vinculada con una jerarquía que hace posible el enrutamiento WAN. Los fabricantes asignan las direcciones MAC para los dispositivos Ethernet (y se pueden cambiar en el software), y a medida que el dispositivo de hardware se mueve, realizar esas revisiones ad hoc a las tablas de enrutamiento WAN sería una tarea "imposiblemente grande".
hardmath
34

El mundo no funciona exclusivamente en Ethernet (al menos históricamente). La capa IP es independiente de la capa de hardware debajo de ella.

Los nodos PPP no tienen direcciones Mac. Tampoco arcnet, token ring, fddi, hppi. Es posible que esos otros estándares no sean tan relevantes hoy en día, pero Ethernet puede ser reemplazado por otras tecnologías en el futuro y sería transparente para la capa IP.

Hay una discusión más larga sobre cómo seguimos inventando nuevos protocolos de hardware y llamándolos ethernet, pero estoy divagando ...

Jeff Sacksteder
fuente
55
Token Ring tiene direcciones MAC.
Chris S
¿Quiere decir que tampoco pueden cambiar a ipv6 porque el nodo PPP no tiene una dirección v6? (O al menos no tenía uno hace 5-10 años). Hasta donde puedo decir, eso nunca detuvo el despliegue de ipv6 hoy. Esto tampoco hace una diferencia para MAC.
Dorus
66
@ Dorus: Tu comentario no tiene sentido. Los nodos PPP pueden tener direcciones IPv4 e IPv6, precisamente porque las compilaciones de IP en los protocolos subyacentes, como Ethernet o PPP. Sin embargo, los nodos PPP no tienen una dirección MAC (porque el estándar PPP no los tiene).
sleske
Tres años después (y un poco más informado), me encantaría leer esa "discusión más larga sobre cómo seguimos inventando nuevos protocolos de hardware y llamándolos ethernet". ; P
Félix Saparelli
Este es un buen comienzo - standards.ieee.org/events/ethernet/history.html
Jeff Sacksteder
30

Además del enrutamiento jerárquico de IP, tenerlos separados de las direcciones MAC le permite cambiar su tarjeta de red o computadora completa mientras conserva la misma dirección IP (y, por lo tanto, la topología de red lógica).

Esta abstracción permite una red mucho más flexible y mantenible.

OrangeDog
fuente
22

Eche un vistazo al modelo OSI : http://en.wikipedia.org/wiki/OSI_model

Esto explica por qué no tiene sentido hacer un enrutamiento, un concepto de capa 3, decisiones basadas en un mecanismo físico de capa 2.

Las redes modernas se dividen en muchas capas diferentes para lograr su comunicación de extremo a extremo. Su tarjeta de red (a la que se dirige la dirección mac [dirección física]) solo debe ser responsable de comunicarse con sus pares en su red física.

La comunicación que puede realizar con su dirección MAC se limitará a otros dispositivos que residen en contacto físico con su máquina. En Internet, por ejemplo, no está físicamente conectado a cada máquina. Es por eso que utilizamos el mecanismo TCP / IP (una capa 3, dirección lógica) cuando necesitamos comunicarnos con una máquina a la que no estamos físicamente conectados.

barancw
fuente
66
+1 por mencionar el modelo OSI.
Massimo
7

b0fh es correcto, pero también porque las direcciones MAC no siempre son únicas.

Ver por ejemplo en escenarios de virtualización. Aquí varios hosts pueden servir máquinas virtuales con las mismas direcciones MAC.

Frederik Nielsen
fuente
4

Las tablas de enrutamiento para las direcciones MAC necesitarían casi todos los dispositivos con una dirección MAC en la lista. El enrutamiento a Internet para IP es una sola entrada 0.0.0.0/0. Para las clases de redes se dividen en 10.0.0.0/8 172.16.0.0/16 y 192.168.0.0/24. Muchos de estos se pueden agregar como 172.16.0.0/12 y 192.168.0.0/16 reduciendo aún más el tamaño de la tabla de enrutamiento.

Las rutas se buscan en orden inverso al número de un bit en su máscara. Esto hace que el enrutamiento a 192.168.100.0/24 funcione cuando hay una ruta para 192.168.0.0/16 y otra para 0.0.0.0/0 (ruta predeterminada).

EDITAR: Originalmente, el rango de IP se dividió en varias clases; A, B y C son los más significativos. La clase A constituía la primera mitad del rango de direcciones, el rango B el siguiente trimestre y el rango C los siguientes ocho del rango. Estas clases tenían máscaras de 8, 16 y 24 bits respectivamente. Más tarde, se abandonó el uso estricto de estas máscaras y la asignación de direcciones se realizó en una variedad de tamaños.

El tamaño de la asignación siempre es una potencia de 2 y se reservan las direcciones más bajas y más altas en cada asignación. Cada asignación también tendrá una dirección para un enrutador. Esta es a menudo la dirección no reservada más alta o más baja. La asignación práctica más pequeña es una dirección / 30.

IPv6 utiliza la misma forma de asignación con un / 64, la asignación más pequeña que puede aparecer en Internet. Típicamente, y al ISP se le asignará una asignación mucho mayor, que es todo lo que los enrutadores de Internet necesitarían saber. Las asignaciones esperadas se especifican en los RFC. El ISP necesitaría saber cómo enrutar su propia subred y qué direcciones enrutar a qué enrutadores de interconexión. Esto es significativamente más simple que saber cómo enrutar cada dirección mac.

BillThor
fuente
77
Ya no hay clases en redes y no han estado desde 1994. = [
Chris S
Las búsquedas de @ChrisS IPv4 PTR todavía se realizan por clase, aunque es posible la delegación. Las agregaciones aún se aplican con o sin clases, y las agregaciones B y C aún se aplican incluso antes de las redes sin clases.
BillThor
2
Las búsquedas de PTR son realizadas por Octet, no hay clases. Ver RFC 1517 a 1520.
Chris S
2
@ChrisS Entre las personas con las que trabajo, las clases se usan para referirse al número de octetos en la máscara de red A = 1, B = 2 y C = 3. No los asociamos con sus rangos históricos, y dividiremos la clase A 10.0.0.0 en fragmentos B y C. Las clases viven en la tradición, si no su significado original.
BillThor
2

Creo que el punto principal que intentan transmitir es que las direcciones MAC están determinadas por los proveedores, por lo que no existe un esquema de direccionamiento coherente que se pueda cumplir en una subred local debido a la gran variedad de fabricantes que hacen interfaces.

Las direcciones MAC se usan cuando la dirección de destino está en la subred local (192.168.0.x, por ejemplo). Cuando el tráfico no coincide con la subred local, la computadora se refiere a la tabla de enrutamiento. En general, la tabla de enrutamiento le indicará a cualquier tráfico que no coincida con la subred local (0.0.0.0) que se dirija a la puerta de enlace local, en cuyo punto cualquier afiliación a las direcciones MAC se elimina por completo. La única forma en que las direcciones MAC podrían usarse globalmente sería tener una subred plana, enorme y plana, que sería totalmente inviable.

Alex Berry
fuente
2

La dirección MAC puede ser la misma en diferentes adaptadores de Ethernet en la misma máquina. SUN tenía una dirección MAC única para cada máquina. Entonces, las tarjetas de ethernet para las computadoras SUN no tenían una dirección MAC única, la máquina sí.

Entonces, cuando conectó la máquina a dos redes diferentes, tenía la misma dirección MAC en ambas redes.

Anders
fuente
2

Las direcciones MAC son las direcciones de la capa de enlace (2n) en el modelo ISO / OSI y el modelo TCP / IP . Significa que las direcciones MAC se usan para conectar nodos dentro de una red local (punto a punto). Las direcciones IP son las direcciones de la capa de red (tercera) dentro de Internet (de extremo a extremo).

Ambas direcciones se usan solo en su capa y no están destinadas a usarse fuera de ella.

desconectarse
fuente
1

La dirección MAC de una dirección IP de destino solo es útil, para la entrega de paquetes, dentro de un único dominio de difusión local.

mr_eclair
fuente
1

La gente aquí declaró que el problema de usar direcciones MAC en lugar de direcciones IPv4 es el enrutamiento, porque las tablas de enrutamiento crecerían mucho, sin embargo, eso supone enrutadores IPv4. Es posible tener pequeñas tablas de enrutamiento, y si le interesa cómo, busque enrutamiento de espacio de nombres plano. Uno de los documentos que describe esa técnica es este: http://www.cs.uiuc.edu/~caesar/papers/rofl.pdf

Nikola Knezevic
fuente
2
ROFL propone que cada enrutador dentro de AS realice un seguimiento de cada host dentro de ese AS ... Y use hashes criptográficos para los identificadores de host ... Entonces, no solo habrá millones de entradas en las tablas de enrutamiento y requisitos de transferencia / mantenimiento monstruosos, pero se requieren algoritmos criptográficos para interpretar la tabla. El autor está fuera de su mente. IP puede tener deficiencias, pero al menos no hay suposiciones locas en el diseño básico.
Chris S
En ROFL, solo los enrutadores de primer salto necesitan mantener el conjunto de nodos conectados, no todos los nodos en el AS. La sección 2 menciona el almacenamiento en caché, pero eso es una optimización. El cifrado solo es necesario cuando los nodos se unen al enrutador, no para la interpretación de la tabla de enrutamiento. El enrutamiento se realiza en un DHT, que es mucho más resistente que el enrutamiento jerárquico.
Nikola Knezevic
1

Recuerdo que las direcciones MAC son realmente direcciones Ethernet. Las direcciones de Ethernet se dividen en dos partes: una parte del proveedor, que identifica al vendedor de la tarjeta ethernet y una parte de la dirección asignada por el proveedor. Depende del vendedor hacerlos únicos, o no.

Por lo tanto, el espacio de direcciones MAC de 48 bits no se usa de manera eficiente ni, como se mencionó varias veces anteriormente, jerárquicamente.

La dirección está diseñada para tener direcciones únicas en una red de red CSMA local.

Al menos, lo mejor que recuerdo.

Las direcciones IP están diseñadas para escalar de manera mucho más general y para resolver un problema diferente.

Mike Howard
fuente
Se requiere que las direcciones MAC sean únicas; no siempre sucede como otros han señalado, pero es un requisito. Los fabricantes pueden obtener más de una identificación de proveedor. Hay alrededor de 4 millones de ID de proveedores posibles (en el espacio de direcciones MAC48, también hay un espacio de direcciones MAC64 próximo) y se han asignado menos de una décima parte. Dentro de cada Id. De proveedor hay 16 millones de Id. De dispositivo, lleva incluso un tiempo que se agoten los proveedores incluso grandes.
Chris S