Ethernet MAC adresser


I föregående avsnitt om Ethernet-ramstandarder såg vi hur varje ram byggs upp med en header och en trailer som innehåller styrinformation. Två av de viktigaste fälten i headern är avsändarens MAC-adress (source MAC) och destinationens MAC-adress, eftersom de används för att styra ramens leverans på Datalänkskiktet.

I detta avsnitt fördjupar vi oss i MAC-adresser – deras struktur, hur de standardiseras av IEEE, och hur de används i praktiken för unicast-, broadcast- och multicast-kommunikation. Vi tittar också på hur MAC-adresser kopplas ihop med IP-adresser genom ARP och Neighbor Discovery.

Ethernet MAC-adress

En Ethernet MAC-adress är en 48-bitars adress (6 byte), uttryckt med 12 hexadecimala siffror. Den används på Datalänkskiktet för att unikt identifiera source- och destinations enheter i ett lokalt nätverk. Eftersom varje byte kan representeras av två hexadecimala tecken, skrivs en MAC-adress ofta i sex grupper och därför kan vi också säga att MAC-adresser består av 6 byte.

Exempel: 00-60-2F-3A-07-BC eller 00:60:2F:3A:07:BC eller 0060.2F3A.07BC alltså olika representationer eller beteckningar. Här nedan en Windows beteckning på MAC-adresser.

Alla MAC-adresser måste vara unika. IEEE säkerställer detta genom att varje tillverkare får ett OUI (Organizationally Unique Identifier) – de första 24 bitarna av adressen. Tillverkaren ansvarar sedan för att ge varje produkt en unik avslutande del (24 bitar).

Exempel: Cisco har tilldelats OUI 00-60-2F. En MAC-adress för ett Cisco-kort kan därför vara 00-60-2F-3A-07-BC, där sista delen (3A-07-BC) är tillverkarens unika värde.

Burned-In Address (BIA) och modifierade MAC-adresser

MAC-adresser kallas ofta för burned-in addresses (BIA) eftersom de skrivs permanent i nätverkskortets ROM-minne. När datorn startar kopieras adressen till RAM, där den också kan ändras tillfälligt via mjukvara.

Detta kan vara användbart i vissa situationer, men gör också att MAC-adress filtrering inte är ett säkert skydd. Dubbel-adressering kan även förekomma, t.ex. vid fel i tillverkning eller i virtualiserade miljöer.

MAC-adressens funktion i ramhantering

När en enhet skickar en Ethernet-ram innehåller headern alltid:

  • Source MAC Address – avsändarens adress (måste vara unicast).
  • Destination MAC Address – mottagarens adress, som avgör hur ramen ska behandlas.

När en mottagare tar emot en ram jämförs Destination MAC i ramen med dess egen, och om de matchar accepteras ramen och skickas vidare uppåt i OSI-modellen, annars kasseras den. Undantag är om ramen är adresserad som en broadcast (FF-FF-FF-FF-FF-FF) eller till en multicast-grupp som mottagen tillhör. I dessa fall tas ramen emot.

Olika typer av MAC-adresser

I Ethernet används olika typer av MAC-adresser:

  • Unicast – En unik adress för en enda mottagare. Det vill säga En MAC och dess IP
  • Broadcast – En adress till alla enheter i samma LAN. Till exempel en DHCP-klient sänder ett broadcast för att hitta en DHCP-server.
  • Multicast – En adress till en grupp av mottagare.

ARP och Neighbor Discovery

För att IP-trafik ska kunna levereras inom ett LAN måste IP-adresser bindas till motsvarande MAC-adresser, vilket sker genom ARP (IPv4) eller Neighbor Discovery (IPv6).

Exempel:

  • Anta att en klient med IP-adressen 192.168.1.10 vill skicka data till servern 192.168.1.20 på samma LAN. Klienten känner bara till serverns IP-adress, men inte dess MAC-adress.
  • Klienten skickar en ARP Request som en broadcast (FF:FF:FF:FF:FF:FF) till alla i nätverket med frågan:
    ”Vem har IP 192.168.1.20? Svara med din MAC-adress.”
  • Servern med IP-adressen 192.168.1.20 svarar med en ARP Reply som en unicast direkt till klienten, t.ex.:
    ”192.168.1.20 har MAC-adress 00:25:96:AB:CD:EF.”
  • Nu kan klienten binda ihop serverns IP-adress med dess MAC-adress och lagra informationen i sin ARP-cache, så framtida ramar kan skickas direkt utan ny förfrågan.

Sammanfattning

  • MAC-adresser är 48 bitar långa, unika och definieras av IEEE.
  • De används i Ethernet-ramar för att identifiera avsändare och mottagare på lager 2.
  • Unicast, broadcast och multicast skiljs åt via MAC-adressens struktur.
  • ARP (IPv4) och ND (IPv6) binder ihop nätverksadresser till MAC-adresser.
  • Broadcast och multicast används för olika kommunikationssätt.