Varje maskinvara i ditt lokala nätverk har en MAC-adress utöver den IP-adress som den lokala routern eller servern har tilldelat den. Vad är exakt den MAC-adressen för?
Dagens Fråga & Svar-session kommer till oss med tillstånd av SuperUser - en underavdelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.
Frågan
SuperUser-läsaren Vishnu Vivek är nyfiken på MAC-adresser och deras funktion:
Jag förstår att IP-adresser är hierarkiska, så att routrar över hela internet vet vilken riktning de ska vidarebefordra ett paket. Med MAC-adresser finns det ingen hierarki och paketvidarebefordran skulle därför inte vara möjlig. Så MAC-adresser används inte för paketöverföring.
Jag tror inte att det sitter där utan anledning. Så min fråga är, var exakt spelar en MAC-adress in under en paketöverföring?
Var verkligen? Vad är MAC-adressens specifika funktion?
Svaret
SuperUser-bidragsgivare Werner Henze erbjuder viss inblick i MAC-adressens funktion:
Vad används MAC-adresser för?
MAC-adresser är lågnivågrunderna som får ditt Ethernet-baserade nätverk att fungera.
Nätverkskort har var och en en unik MAC-adress. Paket som skickas på Ethernet kommer alltid från en MAC-adress och skickas till en MAC-adress. Om ett nätverkskort får ett paket jämförs det paketets destinations-MAC-adress med adapterens egen MAC-adress. Om adresserna matchar bearbetas paketet, annars kastas det bort.
Det finns speciella MAC-adresser, en till exempel är ff: ff: ff: ff: ff: ff, som är sändningsadressen och adresserar alla nätverkskort i nätverket.
Hur fungerar IP-adresser och MAC-adresser tillsammans?
IP är ett protokoll som används i ett lager ovanför Ethernet. Ett annat protokoll till exempel skulle vara IPX.
När din dator vill skicka ett paket till någon IP-adress x.x.x.x, är den första kontrollen om måladressen finns i samma IP-nätverk som själva datorn. Om x.x.x.x finns i samma nätverk kan destinations-IP nås direkt, annars måste paketet skickas till den konfigurerade routern.
Hittills verkar saker och ting ha blivit värre, för nu har vi två IP-adresser: en är det ursprungliga IP-paketets måladress, det andra är IP-adressen för den enhet som vi ska skicka paketet till (nästa hopp, antingen den sista destination eller routern).
Eftersom Ethernet använder MAC-adresser måste avsändaren hämta MAC-adressen för nästa hopp. Det finns ett speciellt protokoll ARP (adressupplösningsprotokoll) som används för det. När avsändaren har hämtat MAC-adressen för nästa hopp skriver han den inriktade MAC-adressen i paketet och skickar paketet.
Hur fungerar ARP?
ARP i sig är ett protokoll ovan Ethernet, som IP eller IPX. När en enhet vill veta MAC-adressen för en given IP-adress skickar den ett paket till den utsända MAC-adressen och frågar "Vem har IP-adressen y.y.y.y?" Alla enheter får det paketet, men bara den med IP-adressen yy.y.y svarar med ett paket "It's me." Den frågande enheten får svaret och vet nu att källans MAC-adress är rätt MAC-adress att använda. Naturligtvis cachas resultatet, så enheten behöver inte lösa MAC-adressen varje gång.
Routing
Jag glömde nästan att nämna: det finns ingen routing baserat på MAC-adresser. Ethernet och MAC-adresser på låg nivå kan bara nå alla enheter på samma nätverk (kabel eller trådlöst). Om du har två nätverk med en router däremellan kan du inte ha en enhet i nätverk A skicka ett paket till MAC-adressen för en enhet i nätverk B. Ingen enhet i nätverk A har MAC-adressen för enheten i nätverk B, så en paket till denna MAC-adress kommer att kasseras av alla enheter i nätverket A (även av routern).
Routing görs på IP-nivå. Enkelt sett gör routern bara det jag beskrev ovan i avsnittet ”Hur fungerar IP-adresser och MAC-adresser tillsammans?”. Routern kommer att ta emot paket för sin egen MAC-adress men för en annan IP-adress. Han kommer sedan att kontrollera om han direkt kan nå mål-IP-adressen. I så fall skickar han paketet till målet. I annat fall har routern i sig också en konfigurerad router uppströms och skickar paketet till den routern.
Naturligtvis kan du ha flera routrar konfigurerade. Din hemrouter har bara en konfigurerad router uppströms, men i internet-ryggraden har de stora routrarna stora routingtabeller så att de vet de bästa sätten för alla paket.
Andra användningsfall för MAC-adresser
- Nätverksväxlar lagrar en lista över MAC-adresser som ses i varje port och vidarebefordrar endast paket till de portar som behöver se paketet.
- Trådlösa åtkomstpunkter använder ofta MAC-adresser för åtkomstkontroll. De tillåter endast åtkomst för kända enheter (MAC-adressen är unik och identifierar enheter) med rätt lösenfras.
- DHCP-servrar använder MAC-adressen för att identifiera enheter och ge vissa enheter fasta IP-adresser.