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?
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.
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, więc przekazywanie pakietów nie byłoby możliwe. Dlatego adresy MAC nie są używane do przesyłania pakietów.
Nie sądzę, żeby to miejsce było bez żadnego powodu. Moje pytanie brzmi: dokąd dokładnie wchodzi adres MAC podczas transferu pakietów?
Gdzie rzeczywiście? Jaka jest konkretna funkcja adresu MAC?
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 własnym adresem MAC adaptera. 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 działają adresy IP i adresy MAC?
IP to protokół używany na warstwie powyżej ethernetu. Innym protokołem na przykład będzie 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 zostać osiągnięty bezpośrednio, w przeciwnym razie pakiet musi zostać przesł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 jest protokołem powyżej ethernetu, jak IP lub IPX. Kiedy urządzenie chce poznać adres MAC dla danego adresu IP, wysyła pakiet do adresu 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 zbuforowany, 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 napodobnie 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 widziałeś, że router właśnie robi 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 routingu, 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 unikalny i identyfikuje urządzenia) z poprawnym hasłem.
- Serwery DHCP używają adresu MAC do identyfikowania urządzeń i przydzielania 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.