Każdy element sprzętu w sieci lokalnej oprócz adresu IP przypisanego mu przez lokalny router lub serwer ma adres MAC. Do czego dokładnie służy ten adres MAC?
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.
Pytanie
Czytnik SuperUser Vishnu Vivek jest ciekawy adresów MAC i ich funkcji:
Rozumiem, że adresy IP są hierarchiczne, więc routery w całym Internecie wiedzą, w którym kierunku przekazać pakiet. W przypadku adresów MAC nie ma hierarchii, a zatem przekazywanie pakietów nie byłoby możliwe. Tak więc adresy MAC nie są używane do przesyłania pakietów.
Myślę, że nie siedzi tam bez powodu. Więc moje pytanie brzmi, gdzie dokładnie adres MAC wchodzi w grę podczas przesyłania pakietu?
Gdzie rzeczywiście? Jaka jest konkretna funkcja adresu MAC?
Odpowiedź
Współautor SuperUser Werner Henze oferuje pewien wgląd w funkcję adresu MAC:
Do czego służą adresy MAC?
Adresy MAC to podstawy niskiego poziomu, które sprawiają, że sieć oparta na sieci Ethernet działa.
Każda karta sieciowa ma unikalny adres MAC. Pakiety wysyłane w sieci Ethernet zawsze pochodzą z adresu MAC i są wysyłane na adres MAC. Jeśli karta sieciowa odbiera pakiet, porównuje docelowy adres MAC pakietu z własnym adresem MAC karty. Jeśli adresy są zgodne, pakiet jest przetwarzany, w przeciwnym razie jest odrzucany.
Istnieją specjalne adresy MAC, na przykład ff: ff: ff: ff: ff: ff, który jest adresem rozgłoszeniowym i adresuje każdą kartę sieciową w sieci.
Jak współdziałają adresy IP i adresy MAC?
IP to protokół używany na warstwie powyżej sieci Ethernet. Na przykład innym protokołem byłby IPX.
Kiedy komputer chce wysłać pakiet pod jakiś adres IP x.x.x.x, najpierw sprawdza się, czy adres docelowy znajduje się w tej samej sieci IP, co sam komputer. Jeśli x.x.x.x znajduje się w tej samej sieci, docelowy adres IP można osiągnąć bezpośrednio, w przeciwnym razie pakiet musi zostać wysłany do skonfigurowanego routera.
Do tej pory wydaje się, że sytuacja się pogorszyła, ponieważ teraz mamy dwa adresy IP: jeden to adres docelowy oryginalnego pakietu IP, drugi to adres IP urządzenia, do którego powinniśmy wysłać pakiet (następny przeskok, albo końcowy miejsce docelowe lub router).
Ponieważ Ethernet używa adresów MAC, nadawca musi uzyskać adres MAC następnego przeskoku. W tym celu używany jest specjalny protokół ARP (protokół rozpoznawania adresów). Gdy nadawca uzyska adres MAC następnego przeskoku, zapisuje docelowy adres MAC w pakiecie i wysyła pakiet.
Jak działa ARP?
Sam ARP jest protokołem powyżej sieci Ethernet, takim jak IP lub IPX. Gdy urządzenie chce poznać adres MAC dla danego adresu IP, wysyła pakiet na rozgłoszeniowy adres MAC z pytaniem „Kto ma adres IP y.y.y.y?” Wszystkie urządzenia odbierają ten pakiet, ale tylko to z adresem IP y.y.y.y odpowie pakietem „To ja”. Urządzenie pytające otrzymuje odpowiedź i wie, że źródłowy adres MAC jest właściwym adresem MAC. Oczywiście wynik zostanie zapisany w pamięci podręcznej, więc urządzenie nie musi za każdym razem rozpoznawać adresu MAC.
Wytyczanie
Prawie zapomniałem wspomnieć: nie ma routingu opartego na adresach MAC. Adresy sieci Ethernet i MAC niskiego poziomu mogą dotrzeć tylko do każdego urządzenia w sieci podobnie sieć (przewodowa lub bezprzewodowa). Jeśli masz dwie sieci z routerem pomiędzy, nie możesz mieć urządzenia w sieci A, wysłać pakiet na adres MAC urządzenia w sieci B. Żadne urządzenie w sieci A nie ma adresu MAC urządzenia w sieci B, więc pakiet do tego adresu MAC zostanie odrzucony przez wszystkie urządzenia w sieci A (także przez router).
Routing odbywa się na poziomie IP. Po prostu widziałem, że router robi to, co opisałem powyżej w sekcji „Jak współdziałają adresy IP i adresy MAC?”. Router będzie odbierał pakiety dla własnego adresu MAC, ale dla innego adresu IP. Następnie sprawdzi, czy może bezpośrednio dotrzeć do docelowego adresu IP. Jeśli tak, wysyła pakiet do celu. W przeciwnym razie sam router ma również skonfigurowany router upstream i wyśle pakiet do tego routera.
Oczywiście możesz skonfigurować wiele routerów. Twój domowy router będzie miał skonfigurowany tylko jeden router wysyłający, ale w sieci szkieletowej duże routery mają duże tablice routingu, więc znają najlepsze sposoby dla wszystkich pakietów.
Inne przypadki użycia adresów MAC
- Przełączniki sieciowe przechowują listę adresów MAC widocznych na każdym porcie i przekazują pakiety tylko do portów, które muszą zobaczyć pakiet.
- Bezprzewodowe punkty dostępowe często używają adresów MAC do kontroli dostępu. Umożliwiają dostęp tylko znanym urządzeniom (adres MAC jest unikalny i identyfikuje urządzenia) z poprawnym hasłem.
- Serwery DHCP używają adresu MAC do identyfikacji urządzeń i przydzielają niektórym urządzeniom stałe adresy IP.