Una dirección MAC (abreviatura de dirección de control de acceso al medio o dirección de control de acceso al medio ) es un identificador único asignado a un controlador de interfaz de red (NIC) para su uso como dirección de red en las comunicaciones dentro de un segmento de red . Este uso es común en la mayoría de las tecnologías de red IEEE 802 , incluidas Ethernet , Wi-Fi y Bluetooth . Dentro del modelo de red de interconexión de sistemas abiertos (OSI) , las direcciones MAC se utilizan en la subcapa de protocolo de control de acceso al medio de la capa de enlace de datos . Como se representa típicamente, las direcciones MAC se reconocen como seis grupos de dos dígitos hexadecimales , separados por guiones, dos puntos o sin separador.
Las direcciones MAC son asignadas principalmente por los fabricantes de dispositivos y, por lo tanto, a menudo se las denomina dirección grabada , o dirección de hardware Ethernet , dirección de hardware o dirección física . Cada dirección se puede almacenar en el hardware de la interfaz, como su memoria de solo lectura , o mediante un mecanismo de firmware . Sin embargo, muchas interfaces de red admiten el cambio de sus direcciones MAC. La dirección generalmente incluye el identificador único organizativo (OUI) de un fabricante. Las direcciones MAC se forman de acuerdo con los principios de dos espacios de numeración basados en identificadores únicos extendidos (EUI) administrados por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE): EUI-48 , que reemplaza el término obsoleto MAC-48 , y EUI-64 .
Los nodos de red con múltiples interfaces de red, como enrutadores y conmutadores multicapa , deben tener una dirección MAC única para cada interfaz de red en la misma red. Sin embargo, dos interfaces de red conectadas a dos redes diferentes pueden compartir la misma dirección MAC.
La dirección MAC IEEE 802 proviene originalmente del esquema de direccionamiento Ethernet de Xerox Network Systems . [1] Este espacio de direcciones de 48 bits contiene potencialmente 248 (más de 281 billones) de direcciones MAC posibles. El IEEE administra la asignación de direcciones MAC, originalmente conocidas como MAC-48 y a las que ahora se hace referencia como identificadores EUI-48. El IEEE tiene un objetivo de vida útil de 100 años (hasta 2080) para las aplicaciones que utilizan el espacio EUI-48 y restringe las aplicaciones en consecuencia. El IEEE fomenta la adopción del más abundante EUI-64 para aplicaciones que no sean Ethernet. [2]
Las distinciones entre los identificadores EUI-48 y MAC-48 se encuentran únicamente en el nombre y la aplicación. MAC-48 se utilizaba para abordar interfaces de hardware dentro de aplicaciones de redes basadas en 802 existentes; EUI-48 se utiliza ahora para redes basadas en 802 y también se utiliza para identificar otros dispositivos y software, por ejemplo, Bluetooth . [3] [4] El IEEE ahora considera que MAC-48 es un término obsoleto. [5] EUI-48 se utiliza ahora en todos los casos. Además, el sistema de numeración EUI-64 originalmente abarcaba tanto los identificadores MAC-48 como EUI-48 mediante un mecanismo de traducción simple. [3] [a] Estas traducciones han quedado obsoletas desde entonces. [3]
El bloque de direcciones individuales (IAB) es un registro inactivo que ha sido reemplazado por el MA-S ( bloque de direcciones MAC, pequeño ), anteriormente llamado OUI-36 , y no tiene superposiciones en direcciones con el producto de registro IAB [6] a partir del 1 de enero de 2014. El IAB utiliza un OUI del registro MA-L ( bloque de direcciones MAC, grande ), anteriormente llamado registro OUI . El término OUI todavía se usa, [6] pero la Autoridad de Registro IEEE no los administra. Un OUI se concatena con 12 bits adicionales proporcionados por IEEE (para un total de 36 bits), dejando solo 12 bits para que la organización propietaria del IAB los asigne a sus (hasta 4096) dispositivos individuales. Un IAB es ideal para organizaciones que no requieren más de 4096 números únicos de 48 bits (EUI-48). A diferencia de un OUI, que permite al cesionario asignar valores en varios espacios numéricos diferentes (por ejemplo, EUI-48, EUI-64 y los diversos espacios numéricos de identificadores dependientes del contexto, como SNAP o EDID ), el bloque de direcciones individuales solo se puede utilizar para asignar identificadores EUI-48. Todos los demás usos potenciales basados en el OUI desde el que se asignan los IAB están reservados y siguen siendo propiedad de la Autoridad de Registro IEEE. Entre 2007 y septiembre de 2012, se utilizó el valor OUI 00:50:C2 para las asignaciones de IAB. Después de septiembre de 2012, se utilizó el valor 40:D8:55. Los propietarios de un IAB ya asignado pueden seguir utilizando la asignación. [7]
El registro MA-S incluye, para cada solicitante de registro, un número único de 36 bits utilizado en algunas normas y un bloque de identificadores EUI-48 y EUI-64 (mientras que el solicitante de registro de un IAB no puede asignar un EUI-64). MA-S no incluye la asignación de un OUI.
Además, el MA-M ( bloque de dirección MAC, medio ) proporciona 2 identificadores EUI-48 de 20 bits y 2 identificadores EUI-64 de 36 bits , siendo los primeros 28 bits asignados por IEEE. Los primeros 24 bits del bloque MA-M asignado son un OUI asignado a IEEE que no se reasignará, por lo que el MA-M no incluye la asignación de un OUI.
Las direcciones pueden ser direcciones administradas universalmente (UAA) o direcciones administradas localmente (LAA). Una dirección administrada universalmente es asignada de forma única a un dispositivo por su fabricante. Los primeros tres octetos (en orden de transmisión) identifican la organización que emitió el identificador y se conocen como identificador único organizacional (OUI). [3] El resto de la dirección (tres octetos para EUI-48 o cinco para EUI-64) son asignados por esa organización de casi cualquier manera que desee, sujeta a la restricción de unicidad. Una dirección administrada localmente es asignada a un dispositivo por software o un administrador de red, anulando la dirección grabada para dispositivos físicos.
Las direcciones administradas localmente se distinguen de las direcciones administradas universalmente al establecer (asignar el valor de 1 a) el segundo bit menos significativo del primer octeto de la dirección. Este bit también se conoce como bit U/L , abreviatura de Universal/Local , que identifica cómo se administra la dirección. [8] [ fuente autopublicada? ] [9] : 20 Si el bit es 0, la dirección se administra universalmente, por lo que este bit es 0 en todas las UAA. Si es 1, la dirección se administra localmente. En la dirección de ejemplo 06-00-00-00-00-00 el primer octeto es 06 (hexadecimal), cuya forma binaria es 000001 1 0, donde el segundo bit menos significativo es 1. Por lo tanto, es una dirección administrada localmente. [10] Aunque muchos hipervisores administran direcciones MAC dinámicas dentro de su propio OUI, a menudo es útil crear una MAC única completa dentro del rango LAA. [11]
En virtualización , los hipervisores como QEMU y Xen tienen sus propias OUI. Cada nueva máquina virtual se inicia con una dirección MAC definida asignando los últimos tres bytes para que sean únicos en la red local. Si bien se trata de una administración local de direcciones MAC, no es una LAA en el sentido de IEEE.
Un ejemplo histórico de esta situación híbrida es el protocolo DECnet , en el que la dirección MAC universal (OUI AA-00-04, Digital Equipment Corporation) se administra localmente. El software DECnet asigna los últimos tres bytes de la dirección MAC completa, que es AA-00-04-00-XX-YY, donde XX-YY refleja la dirección de red DECnet xx.yy del host. Esto elimina la necesidad de que DECnet tenga un protocolo de resolución de direcciones , ya que la dirección MAC de cualquier host DECnet se puede determinar a partir de su dirección DECnet.
El bit menos significativo del primer octeto de una dirección se conoce como bit I/G o individual/grupo . [8] [¿ fuente autopublicada? ] [9] : 20 Cuando este bit es 0 (cero), la trama está destinada a alcanzar solo una interfaz de red receptora . [12] Este tipo de transmisión se llama unicast . Una trama unicast se transmite a todos los nodos dentro del dominio de colisión . En un entorno cableado moderno (es decir, con conmutadores , no concentradores simples ), el dominio de colisión generalmente es la longitud del cableado Ethernet entre dos interfaces de red. En un entorno inalámbrico, el dominio de colisión son todos los receptores que pueden detectar una señal inalámbrica dada. Si un conmutador no sabe qué puerto conduce a una dirección MAC dada, el conmutador reenviará una trama unicast a todos sus puertos (excepto el puerto de origen), una acción conocida como inundación unicast . [13] [¿ fuente autopublicada? ] Solo el nodo con la dirección MAC de hardware coincidente aceptará (normalmente) la trama; Las interfaces de red con direcciones MAC no coincidentes ignoran la trama a menos que estén en modo promiscuo .
Si el bit menos significativo del primer octeto se establece en 1 (es decir, el segundo dígito hexadecimal es impar), la trama se enviará solo una vez; sin embargo, los controladores de interfaz de red elegirán aceptarla o ignorarla en función de criterios distintos a la coincidencia de sus direcciones MAC individuales: por ejemplo, en función de una lista configurable de direcciones MAC de multidifusión aceptadas. Esto se denomina direccionamiento de multidifusión .
El IEEE ha incorporado varios tipos de direcciones especiales para permitir que se direccione más de una tarjeta de interfaz de red a la vez:
Todos estos son ejemplos de direcciones de grupo , a diferencia de las direcciones individuales ; el bit menos significativo del primer octeto de una dirección MAC distingue las direcciones individuales de las direcciones de grupo. Ese bit se establece en 0 en las direcciones individuales y en 1 en las direcciones de grupo. Las direcciones de grupo, al igual que las direcciones individuales, pueden administrarse de forma universal o local.
Los bits U/L e I/G se manejan de forma independiente y hay instancias de las cuatro posibilidades. [10] La multidifusión IPv6 utiliza direcciones MAC de multidifusión administradas localmente en el rango 3 3 -33-XX-XX-XX-XX (con ambos bits configurados). [14] : §2.3.1
Dadas las ubicaciones de los bits U/L e I/G, se pueden discernir en un solo dígito en la notación de dirección MAC común como se muestra en la siguiente tabla:
Bajo/bajo Yo/G | Administrado universalmente | Administrado localmente |
---|---|---|
Unicast (individual) | X 0 -XX-XX-XX-XX-XX X 4 -XX-XX-XX-XX-XX X 8 -XX-XX-XX-XX-XX X C -XX-XX-XX-XX-XX | X 2 -XX-XX-XX-XX-XX X 6 -XX-XX-XX-XX-XX X A -XX-XX-XX-XX-XX X E -XX-XX-XX-XX-XX |
Multidifusión (grupo) | X 1 -XX-XX-XX-XX-XX X 5 -XX-XX-XX-XX-XX X 9 -XX-XX-XX-XX-XX X D -XX-XX-XX-XX-XX | X 3 -XX-XX-XX-XX-XX X 7 -XX-XX-XX-XX-XX X B -XX-XX-XX-XX-XX X F -XX-XX-XX-XX-XX |
El estándar IEEE 802c [15] divide además el bloque de direcciones MAC administrado localmente en cuatro cuadrantes. Esta partición adicional se denomina Plan de direcciones locales estructurado (SLAP) y su uso es opcional.
Dirección MAC | Nombre del cuadrante | Identificador | Uso |
---|---|---|---|
X A -XX-XX-XX-XX-XX | Local extendido | ELI | Asignado por IEEE, pero utiliza un identificador de empresa (CID) único de 3 octetos en lugar de un OUI. |
X E -XX-XX-XX-XX-XX | Norma asignada | EFS | Para usar en la próxima especificación IEEE P802.1CQ, que se asignará dinámicamente mediante el protocolo de registro y reclamo de direcciones de bloque (BARC). |
X2 - XX-XX-XX-XX-XX | Asignado administrativamente | AAI | Puede asignarse de forma aleatoria o arbitraria a los dispositivos. |
X 6 -XX-XX-XX-XX-XX | Reservado | Reservado | Reservado para uso futuro, pero puede usarse de manera similar a AAI hasta que una especificación IEEE utilice este espacio. |
Las siguientes tecnologías de red utilizan el formato de identificador EUI-48:
Todos los dispositivos que se conectan a una red IEEE 802 (como Ethernet y Wi-Fi) tienen una dirección EUI-48. Los dispositivos de consumo en red comunes, como PC, teléfonos inteligentes y tabletas, utilizan direcciones EUI-48.
Los identificadores EUI-64 se utilizan en:
En las redes de difusión, como Ethernet, se espera que la dirección MAC identifique de forma única cada nodo de ese segmento y permita marcar las tramas para hosts específicos. Por lo tanto, constituye la base de la mayor parte de las redes de capa de enlace ( capa 2 de OSI ) de las que dependen los protocolos de capa superior para producir redes complejas y funcionales.
Muchas interfaces de red permiten cambiar su dirección MAC. En la mayoría de los sistemas tipo Unix , se puede utilizar la utilidad de comandos ifconfig para eliminar y agregar alias de direcciones de enlace. Por ejemplo, la directiva ifconfig activa se puede utilizar en NetBSD para especificar cuál de las direcciones adjuntas se debe activar. [18] Por lo tanto, varios scripts y utilidades de configuración permiten la aleatorización de la dirección MAC en el momento del arranque o antes de establecer una conexión de red.
El cambio de direcciones MAC es necesario en la virtualización de redes . En la suplantación de direcciones MAC , esto se practica para explotar las vulnerabilidades de seguridad de un sistema informático. Algunos sistemas operativos modernos, como Apple iOS y Android, especialmente en dispositivos móviles, están diseñados para aleatorizar la asignación de una dirección MAC a la interfaz de red cuando se buscan puntos de acceso inalámbricos para evitar los sistemas de seguimiento. [19] [20]
En redes de Protocolo Internet (IP), la dirección MAC de una interfaz correspondiente a una dirección IP puede consultarse con el Protocolo de Resolución de Direcciones (ARP) para IPv4 y el Protocolo de Descubrimiento de Vecinos (NDP) para IPv6, relacionando direcciones de capa 3 OSI con direcciones de capa 2.
Según Edward Snowden , la Agencia de Seguridad Nacional de los Estados Unidos tiene un sistema que rastrea los movimientos de dispositivos móviles en una ciudad mediante el monitoreo de direcciones MAC. [21] Para evitar esta práctica, Apple ha comenzado a usar direcciones MAC aleatorias en dispositivos iOS mientras escanean redes. [19] Otros proveedores siguieron rápidamente el ejemplo. La aleatorización de direcciones MAC durante el escaneo se agregó en Android a partir de la versión 6.0, [20] Windows 10, [22] y el kernel 3.18 de Linux. [23] Las implementaciones reales de la técnica de aleatorización de direcciones MAC varían en gran medida en diferentes dispositivos. [24] Además, varias fallas y deficiencias en estas implementaciones pueden permitir que un atacante rastree un dispositivo incluso si se cambia su dirección MAC, por ejemplo, otros elementos de sus solicitudes de sonda, [25] [26] o su tiempo. [27] [24] Si no se utilizan direcciones MAC aleatorias, los investigadores han confirmado que es posible vincular una identidad real a una dirección MAC inalámbrica particular. [28]
Las direcciones MAC aleatorias se pueden identificar mediante el bit "administrado localmente" descrito anteriormente. [29]
Al utilizar puntos de acceso inalámbricos en modo SSID oculto ( encubrimiento de red ), un dispositivo inalámbrico móvil no sólo puede revelar su propia dirección MAC cuando viaja, sino incluso las direcciones MAC asociadas a los SSID a los que el dispositivo ya se ha conectado, si están configurados para enviarlas como parte de los paquetes de solicitud de sondeo. Los modos alternativos para evitar esto incluyen configurar los puntos de acceso para que estén en modo de difusión de baliza o en modo de respuesta de sondeo con SSID. En estos modos, las solicitudes de sondeo pueden ser innecesarias o enviarse en modo de difusión sin revelar la identidad de redes conocidas previamente. [30]
El formato estándar ( IEEE 802 ) para imprimir direcciones EUI-48 en forma sencilla es de seis grupos de dos dígitos hexadecimales , separados por guiones ( - ) en orden de transmisión (por ejemplo, 01-23-45-67-89-AB ). Este formato también se usa comúnmente para EUI-64 (por ejemplo, 01-23-45-67-89-AB-CD-EF ). [3] Otras convenciones incluyen seis grupos de dos dígitos hexadecimales separados por dos puntos (:) (por ejemplo, 01:23:45:67:89:AB ), y tres grupos de cuatro dígitos hexadecimales separados por puntos (.) (por ejemplo, 0123.4567.89AB ); nuevamente en orden de transmisión. [31]
La notación estándar, también llamada formato canónico, para direcciones MAC se escribe en orden de transmisión con el bit menos significativo de cada byte transmitido primero, y se utiliza en la salida de los comandos , y , por ifconfig
ejemplo ip address
.ipconfig
Sin embargo, dado que IEEE 802.3 (Ethernet) e IEEE 802.4 (Token Bus) envían los bytes (octetos) por el cable, de izquierda a derecha, con el bit menos significativo en cada byte primero, mientras que IEEE 802.5 (Token Ring) e IEEE 802.6 (FDDI) envían los bytes por el cable con el bit más significativo primero, puede surgir confusión cuando una dirección en el último escenario se representa con bits invertidos respecto de la representación canónica. Por ejemplo, una dirección en forma canónica 12-34-56-78-9A-BC se transmitiría por el cable como bits 01001000 00101100 01101010 00011110 01011001 00111101
en el orden de transmisión estándar (bit menos significativo primero). Pero para las redes Token Ring, se transmitiría como bits 00010010 00110100 01010110 01111000 10011010 10111100
en primer orden de bit más significativo. Esto último podría mostrarse incorrectamente como 48-2C-6A-1E-59-3D . Esto se conoce como orden de bits invertido , forma no canónica , formato MSB , formato IBM o formato Token Ring . [32]
La administración universal de direcciones MAC de LAN comenzó cuando Xerox Corporation administró identificadores de bloque (ID de bloque) para direcciones Ethernet.
Para mejorar la privacidad del usuario final, varios proveedores de sistemas operativos (Apple iOS 14, Android 10 y Windows 10) están habilitando el uso de la dirección MAC administrada localmente (LAA), también conocida como dirección MAC aleatoria para el funcionamiento de WIFI. Cuando el punto final inalámbrico se asocia con una dirección MAC aleatoria, la dirección MAC del punto final cambia con el tiempo.
Puede ingresar la dirección MAC en los siguientes formatos para representar direcciones MAC-48 en formato legible para humanos: seis grupos de dos dígitos hexadecimales, separados por guiones (-) en orden de transmisión, [...] seis grupos de dos separados por dos puntos (:), [...] tres grupos de cuatro dígitos hexadecimales separados por puntos (.)...