Do czego dokładnie wykorzystywany jest adres MAC?
Każdy element sprzętu w sieci lokalnej ma adres MAC oprócz adresu IP przydzielonego mu przez lokalny router lub serwer. Czym dokładnie jest ten adres MAC dla?
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupowania witryn 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 Internecie wiedzą, w którym kierunku przesłać pakiet. W przypadku adresów MAC nie ma żadnej hierarchii, a zatem przekazywanie pakietów nie byłoby możliwe. Dlatego adresy MAC nie są używane do przesyłania pakietów.
Nie sądzę, że siedzi tam bez powodu. Tak więc moje pytanie brzmi: gdzie dokładnie ma miejsce adres MAC podczas transferu pakietów?
Gdzie rzeczywiście? Jaka jest konkretna funkcja adresu MAC?
Odpowiedź
Pomocnik SuperUser Werner Henze oferuje wgląd w funkcję adresu MAC:
Do czego służą adresy MAC?
Adresy MAC są niskopoziomowymi podstawami, które sprawiają, że twoja sieć Ethernet działa.
Każda karta sieciowa ma unikalny adres MAC. Pakiety wysyłane w sieci Ethernet zawsze pochodzą z adresu MAC i wysyłane na adres MAC. Jeśli karta sieciowa odbiera pakiet, porównuje docelowy adres MAC pakietu z jego własnym adresem MAC. 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 broadcast i adresuje każdą kartę sieciową w sieci.
Jak działają adresy IP i adresy MAC?
IP to protokół używany na warstwie powyżej ethernetu. Innym protokołem może być na przykład IPX.
Gdy komputer chce wysłać pakiet do jakiegoś adresu IP x.x.x.x, pierwsze sprawdzenie polega na tym, że adres docelowy znajduje się w tej samej sieci IP, co sam komputer. Jeśli x.x.x.x znajduje się w tej samej sieci, to docelowy adres IP może być osiągnięty bezpośrednio, w przeciwnym razie pakiet musi zostać wysłany do skonfigurowanego routera.
Do tej pory sprawy wyglądały na coraz gorsze, 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 skok, albo końcowy miejsce docelowe lub router).
Ponieważ ethernet używa adresów MAC, nadawca musi uzyskać adres MAC następnego skoku. Istnieje specjalny protokół ARP (protokół rozwiązywania adresów), który jest do tego używany. Gdy nadawca uzyska adres MAC następnego skoku, zapisuje ten docelowy adres MAC w pakiecie i wysyła pakiet.
Jak działa ARP?
Sam ARP to protokół powyżej sieci Ethernet, taki jak IP lub IPX. Kiedy urządzenie chce poznać adres MAC dla danego adresu IP, wysyła pakiet na adres MAC transmisji pytając "Kto ma adres IP yyyy?" Wszystkie urządzenia odbierają ten pakiet, ale tylko ten z adresem IP rrrr odpowie z pakietem "To ja". Urządzenie pytające otrzymuje odpowiedź i teraz wie, że źródłowy adres MAC jest właściwym adresem MAC do użycia. Oczywiście wynik zostanie zapisany w pamięci podręcznej, więc urządzenie nie musi każdorazowo rozpoznawać adresu MAC.
Routing
Prawie zapomniałem wspomnieć: nie ma routingu opartego na adresach MAC. Niski poziom adresu ethernetowego i MAC może dotrzeć tylko do każdego urządzenia na podobnie sieć (przewodowa lub bezprzewodowa). Jeśli masz dwie sieci z routerem pomiędzy nie możesz mieć urządzenia w sieci A, wyślij 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 (również przez router).
Routing odbywa się na poziomie IP. Po prostu widać, że router wykonuje tylko to, co opisałem powyżej w sekcji "Jak działają adresy IP i adresy MAC?". Router odbierze 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 skonfigurowany ruter górny i wyśle pakiet do tego routera.
Oczywiście możesz skonfigurować wiele routerów. Router domowy będzie miał skonfigurowany tylko jeden router, ale w sieci szkieletowej duże routery mają duże tablice rutowania, dzięki czemu znają najlepsze sposoby na wszystkie pakiety.
Inne przypadki użycia adresów MAC
- Przełączniki sieciowe przechowują listę adresów MAC widocznych na każdym porcie i tylko pakiety przekazywane do portów, które muszą zobaczyć pakiet.
- Bezprzewodowe punkty dostępowe często używają adresów MAC do kontroli dostępu. Pozwalają one na dostęp tylko do znanych urządzeń (adres MAC jest niepowtarzalny i identyfikuje urządzenia) z poprawnym hasłem.
- Serwery DHCP używają adresu MAC do identyfikowania urządzeń i nadawania urządzeniom stałych adresów IP.
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.