Czytam o TCP / IP i innych powiązanych protokołach i technologiach. Adresy MAC są opisywane jako (racjonalnie :) unikalne i jako posiadające dużą przestrzeń (kilkaset bilionów), a jednocześnie przypisywane do wszystkich interfejsów sieciowych. Jakie są historyczne i techniczne powody, dla których adresy IPv4 lub IPv6 są używane zamiast adresów MAC do komunikacji w sieci?
Czy brakuje mi czegoś fundamentalnego, czy to tylko głupiutki powód (np. Bazowanie na starszej technologii)?
networking
mac-address
ipv4
Félix Saparelli
źródło
źródło
Odpowiedzi:
Adres MAC może być unikalny, ale nie ma nic specjalnego w liczbie, która wskazywałaby, gdzie on jest. MAC
00-00-00-00-00-00
może znajdować się po drugiej stronie planety00-00-00-00-00-01
.IP to arbitralny schemat numeracji narzucony w hierarchiczny sposób grupie komputerów w celu logicznego rozróżnienia ich jako grupy (taka jest podsieć). Wysyłanie wiadomości między tymi grupami odbywa się za pomocą tabel routingu, które są podzielone na wiele poziomów, dzięki czemu nie musimy śledzić każdej podsieci. Na przykład
17.x.x.x
znajduje się w sieci Apple. Stamtąd Apple będzie wiedział, gdzie znajduje się każdy z jego tysięcy podsieci i jak się do nich dostać (nikt inny nie musi znać tych informacji, wystarczy wiedzieć, że 17. wszystko idzie do Apple).Bardzo łatwo jest też powiązać to z inną parą systemów. Masz numer wydany przez państwo, dlaczego miałbyś potrzebować adresu do korespondencji, jeśli ten numer identyfikacyjny jest już unikalny dla Ciebie? Potrzebujesz adresu do korespondencji, ponieważ jest to dowolny system, który opisuje, gdzie powinien się znaleźć unikalny cel komunikacji.
źródło
Ponieważ tabele routingu stałyby się niemożliwie duże.
Adresy IP są przydzielane hierarchicznie, więc router może grupować trasy według prefiksów adresów. Liczba autonomicznych systemów obecnych w sieci jest na tyle rozsądna, że zmieści się w dzisiejszym sprzęcie.
Z drugiej strony dystrybucja adresów MAC w sieci jest losowa i całkowicie niezwiązana z topologią. Grupowanie tras byłoby niemożliwe, każdy router musiałby śledzić trasy dla każdego urządzenia, które przekazuje ruch przez nie. Tak właśnie działają przełączniki warstwy 2, które nie skalują się znacznie poza pewną liczbę hostów.
źródło
Świat nie działa wyłącznie w sieci Ethernet (przynajmniej historycznie). Warstwa IP jest niezależna od warstwy sprzętowej pod nią.
Węzły PPP nie mają adresów Mac. Nie używaj też arcnet, token ring, fddi, hppi. Te inne standardy mogą dziś nie być tak aktualne, ale sieć Ethernet może zostać w przyszłości zastąpiona innymi technologiami i byłoby przezroczyste dla warstwy IP.
Trwa dłuższa dyskusja na temat tego, w jaki sposób wynajdujemy nowe protokoły sprzętowe i nazywamy je ethernetami, ale ja dygresuję ...
źródło
Oprócz hierarchicznego routingu IP oddzielenie ich od adresów MAC pozwala zmienić kartę sieciową lub cały komputer, zachowując ten sam adres IP (a zatem logiczną topologię sieci).
Ta abstrakcja pozwala na znacznie bardziej elastyczną i łatwą w utrzymaniu sieć.
źródło
Spójrz na model OSI : http://en.wikipedia.org/wiki/OSI_model
To wyjaśnia, dlaczego nie ma sensu tworzyć routingu, koncepcji warstwy 3, decyzji opartych na fizycznym mechanizmie warstwy 2.
Nowoczesne sieci są podzielone na wiele różnych warstw, aby osiągnąć całkowitą komunikację. Twoja karta sieciowa (adres adres MAC [adres fizyczny]) musi być odpowiedzialna tylko za komunikację z peerami w jej sieci fizycznej.
Komunikacja, którą możesz wykonywać z Twoim adresem MAC, będzie ograniczona do innych urządzeń, które znajdują się w fizycznym kontakcie z twoim komputerem. Na przykład w Internecie nie jesteś fizycznie podłączony do każdej maszyny. Dlatego korzystamy z mechanizmu TCP / IP (warstwa 3, adres logiczny), gdy potrzebujemy komunikować się z maszyną, z którą nie jesteśmy fizycznie połączeni.
źródło
b0fh ma rację - ale także dlatego, że adresy MAC nie zawsze są unikalne.
Zobacz na przykład w scenariuszach wirtualizacji. Tutaj wiele hostów może obsługiwać maszyny wirtualne o tych samych adresach MAC.
źródło
Tabele routingu dla adresów MAC wymagałyby prawie każdego urządzenia z podanym adresem MAC. Routing do Internetu dla adresu IP to pojedynczy wpis 0.0.0.0/0. W przypadku klas sieci dzielą się na 10.0.0.0/8 172.16.0.0/16 i 192.168.0.0/24. Wiele z nich można agregować, np. 172.16.0.0/12 i 192.168.0.0/16, co dodatkowo zmniejsza rozmiar tablicy routingu.
Trasy są przeszukiwane w odwrotnej kolejności do liczby jeden bitów w ich masce. To sprawia, że routing do 192.168.100.0/24 działa, gdy istnieje trasa dla 192.168.0.0/16 i inna dla 0.0.0.0/0 (trasa domyślna).
EDYCJA: Początkowo zakres IP został podzielony na kilka klas; Najistotniejsze są A, B i C. Klasa A stanowiła pierwszą połowę zakresu adresów, zakres B następną ćwiartkę, a zakres C następną osiem przedziału. Klasy te miały maski odpowiednio 8, 16 i 24 bitów. Później porzucono ścisłe stosowanie tych masek i przydzielono adresy w różnych rozmiarach.
Wielkość przydziału jest zawsze potęgą 2, a najniższy i najwyższy adres w każdym przydziale jest zarezerwowany. Każdy przydział będzie miał również adres routera. Jest to często najniższy lub najwyższy niezarezerwowany adres. Najmniejszy praktyczny przydział to adres / 30.
IPv6 używa tej samej formy alokacji z / 64 najmniejszą alokacją, która może pojawić się w Internecie. Zazwyczaj ISP otrzyma znacznie większy przydział, o którym muszą wiedzieć wszystkie routery internetowe. Oczekiwane przydziały są określone w RFC. Dostawca usług internetowych musiałby wiedzieć, jak trasować własną podsieć i jakie adresy kierować do których routerów się łączy. Jest to znacznie prostsze niż umiejętność kierowania każdego adresu mac.
źródło
Myślę, że główną kwestią, na którą próbują się zwrócić, jest to, że adresy MAC są określane przez dostawców, więc nie ma spójnego schematu adresowania, który można by zastosować w lokalnej podsieci ze względu na ogromną różnorodność producentów tworzących interfejsy.
Adresy MAC są używane, gdy adres docelowy znajduje się w lokalnej podsieci (na przykład 192.168.0.x). Gdy ruch nie jest zgodny z lokalną podsiecią, komputer odwołuje się do tabeli routingu. Zasadniczo tabela routingu informuje każdy ruch, który nie pasuje do lokalnej podsieci (0.0.0.0), aby skierował się do lokalnej bramy, w którym to momencie wszelkie powiązania z adresami MAC są całkowicie usuwane. Jedynym sposobem globalnego wykorzystania adresów MAC byłoby posiadanie jednej, dużej, płaskiej podsieci, co byłoby całkowicie niewykonalne.
źródło
Adres MAC może być taki sam na różnych adapterach Ethernet na tym samym komputerze. SUN miał jeden unikatowy adres MAC dla każdej maszyny. Tak więc karty Ethernet dla komputerów SUN nie miały żadnego unikalnego adresu MAC, tak było.
Kiedy więc podłączyłeś urządzenie do dwóch różnych sieci, miało ten sam adres MAC w obu sieciach.
źródło
Adresy MAC to adresy warstwy łącza (2n) w modelu ISO / OSI i modelu TCP / IP . Oznacza to, że adresy MAC służą do łączenia węzłów w sieci lokalnej (punkt-punkt). Adresy IP to adresy warstwy sieci (3.) w Internecie (end-to-end).
Oba adresy są używane tylko w swojej warstwie i nie są przeznaczone do użycia poza nim.
źródło
Adres MAC docelowego adresu IP jest użyteczny tylko do dostarczania pakietów w ramach jednej lokalnej domeny rozgłoszeniowej.
źródło
Ludzie stwierdzili tutaj, że problemem jest używanie adresów MAC zamiast adresów IPv4, ponieważ są to duże tabele routingu, które zakładają routery IPv4. Możliwe są małe tabele routingu, a jeśli jesteś zainteresowany, poszukaj routingu w przestrzeni nazw Flat. Jednym z artykułów opisujących tę technikę jest ta: http://www.cs.uiuc.edu/~caesar/papers/rofl.pdf
źródło
Przypominam sobie, że adresy MAC to tak naprawdę adresy Ethernet. Adresy Ethernet są podzielone na dwie części: część dostawcy - która identyfikuje sprzedawcę karty ethernetowej i część adresu przypisaną przez dostawcę. To od dostawcy zależy, czy będą wyjątkowe - czy nie.
Zatem 48-bitowa przestrzeń adresowa MAC nie jest efektywnie wykorzystywana ani - jak wspomniano kilka razy powyżej - hierarchicznie.
Adres ma mieć unikalne adresy w lokalnej sieci CSMA.
Przynajmniej o ile dobrze pamiętam.
Adresy IP są zaprojektowane tak, aby skalować znacznie bardziej ogólnie i rozwiązać inny problem.
źródło