Dlaczego nie można używać adresów MAC zamiast IPv4 | 6 do pracy w sieci? [Zamknięte]

184

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)?

Félix Saparelli
źródło
55
Korekta pedantyczna: racjonalnie wyjątkowa; karty z identycznymi adresami MAC HW zostały zauważone na wolności - jest to „zabawny” problem sieciowy do debugowania.
Piskvor
9
Osobiście byłem świadkiem wadliwego sterownika, który faktycznie przypisał ten sam adres MAC różnym kartom sieciowym na różnych komputerach (które miały unikalne adresy HW przed zainstalowaniem tego sterownika). To było bolesne .
Massimo,
3
Massimo, widziałem dokładnie to samo. Nie jest to rzadkie, że kierowca robi to w fazie projektowania, a programiści zapominają o włączeniu tego komponentu, kiedy przechodzi do produkcji. @ Felix, producenci często używają adresów MAC z czasem i w różnych częściach świata. Na przykład karta sprzedana w 2005 r. W USA może mieć taki sam MAC, jak karta sprzedana w Chinach w 2013 r.
Robert Kaucher
30
Adresowanie pakietu adresem MAC byłoby jak adresowanie litery z numerem ubezpieczenia społecznego.
Mikey,
14
Skąd możesz wiedzieć, gdzie jest teraz konkretny adres MAC? Z góry, bez konieczności powiadamiania każdego węzła w Internecie o przejściu do innej sieci?
Thorbjørn Ravn Andersen

Odpowiedzi:

345

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-00może znajdować się po drugiej stronie planety 00-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.xznajduje 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.

Chris S.
źródło
23
To świetna odpowiedź. Dodałbym, że adresy MAC są ostatecznie wykorzystywane w komunikacji IP, gdy komputery stwierdzą, że są w tej samej podsieci; dlatego zatrucie ARP działa jak atak. To samo dotyczy bramy domyślnej: komputer adresuje pakiety przeznaczone dla innej podsieci na adres MAC zwracany przez wyszukiwanie ARP dla domyślnego adresu IP bramy. Adresowanie w warstwie 3 / IP jest najczęściej używane przez routery i wykorzystywane tylko przez hosta w celu ustalenia, czy miejsce docelowe znajduje się w tej samej podsieci.
Sean C.
7
@SeanC, adresy MAC są ostatecznie wykorzystywane w komunikacji IP za pośrednictwem protokołów liniowych opartych na 802.1 (Ethernet, WiFi, Token Ring itp.). Ale nie przez protokoły ATM, takie jak PoSDH i IPoATM.
Chris S
25
Możesz także zachować ten sam adres IP, gdy karta sieciowa (lub cały komputer) wymaga wymiany. Wyobraź sobie, jak denerwujące byłoby bez abstrakcji IP.
OrangeDog
3
@ChrisS Mam przyjaciela, który jako administrator systemu otrzymał pakiet kart od jednego dostawcy, a karty miały tylko jeden adres MAC w całej palecie. Sprzedawca powiedział, że karty nie zostały poprawnie wkomponowane w dystrybucję detaliczną, tak że pojawiły się duplikaty, ponieważ zamówienie pochodziło bezpośrednio z fabryki. Zanim karty trafiły do ​​dystrybucji detalicznej, miały się wymieszać, aby rozdzielić duplikaty. Tak więc dla danego dostawcy adresaci MAC nie są unikalni, a tym bardziej dla różnych dostawców.
4
Istnieje wiele historycznych przyczyn duplikacji adresów MAC, w tym błędy oprogramowania układowego dostawcy .
Mike Pennington,
73

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.

b0fh
źródło
Czy możesz to rozwinąć? Dlaczego mieliby? Dlaczego tak nie jest w przypadku IPv *?
Félix Saparelli
2
Nie ma żadnego wewnętrznego powodu, że tabele routerów korzystające z adresu w formacie MAC byłyby „niemożliwie duże” w porównaniu do formatów IPv4 / 6. Problem polega na tym, że przydzielanie adresów IP jest powiązane z hierarchią, która umożliwia routing WAN. Adresy MAC są przypisywane do urządzeń Ethernet przez producentów (i mogą być zmieniane programowo), a gdy urządzenie sprzętowe się przemieszcza, dokonywanie ad hoc rewizji tabel routingu WAN byłoby zadaniem „niemożliwie dużym”.
hardmath
34

Ś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ę ...

Jeff Sacksteder
źródło
5
Token Ring ma adresy MAC.
Chris S
Masz na myśli, że nie mogą przełączyć się na ipv6, ponieważ węzeł PPP nie ma adresu v6? (A przynajmniej nie miał 5–10 lat temu). O ile wiem, nigdy nie przestałem dziś wdrażać ipv6. To też nie robi różnicy dla MAC.
Dorus,
6
@Dorus: Twój komentarz nie ma sensu. Węzły PPP mogą mieć zarówno adresy IPv4, jak i IPv6, dokładnie dlatego, że IP buduje się na bazowych protokołach, takich jak Ethernet lub PPP. Jednak węzły PPP nie mają adresu MAC (ponieważ standard PPP ich nie ma).
sleske
Po trzech latach (i trochę więcej wiedzy) chciałbym przeczytać tę „dłuższą dyskusję na temat tego, w jaki sposób opracowujemy nowe protokoły sprzętowe i nazywamy je ethernet”. ; P
Félix Saparelli,
To dobry początek - standard.ieee.org/events/ethernet/history.html
Jeff Sacksteder
30

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ć.

OrangeDog
źródło
22

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.

barancw
źródło
6
+1 za wzmiankę o modelu OSI.
Massimo,
7

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.

Frederik Nielsen
źródło
4

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.

BillThor
źródło
7
W sieci nie ma już żadnych zajęć i nie ma ich od 1994 r. = [
Chris S
@ChrisS IPv4 PTR są nadal wyszukiwane według klas, chociaż delegowanie jest możliwe. Agregacje nadal obowiązują z klasami lub bez, a agregacje B i C nadal obowiązują nawet przed sieciami bezklasowymi.
BillThor,
2
Wyszukiwania PTR są wykonywane przez Octet, nie ma żadnych klas. Patrz RFC 1517 do 1520.
Chris S
2
@ChrisS Wśród osób, z którymi pracuję, klasy odnoszą się do liczby oktetów w masce sieci A = 1, B = 2 i C = 3. Nie kojarzymy ich z historycznymi zakresami i podzielimy klasę A 10.0.0.0 na części B i C. Klasy żyją tradycją, jeśli nie ich pierwotnym znaczeniem.
BillThor
2

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.

Alex Berry
źródło
2

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.

Anders
źródło
2

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.

Wyloguj
źródło
1

Adres MAC docelowego adresu IP jest użyteczny tylko do dostarczania pakietów w ramach jednej lokalnej domeny rozgłoszeniowej.

mr_eclair
źródło
1

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

Nikola Knezevic
źródło
2
ROFL proponuje, aby każdy router jako AS śledził każdy host w tym AS ... I używał skrótów kryptograficznych dla identyfikatorów hostów ... Więc nie tylko będą miliony wpisów w tabelach routingu i potwornych wymaganiach dotyczących transferu / utrzymania, ale do interpretacji tabeli wymagane są algorytmy kryptograficzne. Autor oszalał. IP może mieć wady, ale przynajmniej nie ma szalonych założeń w podstawowym projekcie.
Chris S
W ROFL tylko routery pierwszego przeskoku muszą zachować zestaw połączonych węzłów, a nie wszystkich węzłów w AS. W sekcji 2 wspomniano o buforowaniu, ale jest to optymalizacja. Crypto jest konieczne tylko wtedy, gdy węzły dołączają do routera, a nie do interpretacji tabeli routingu. Routing odbywa się na DHT, który jest znacznie bardziej odporny niż routing hierarchiczny.
Nikola Knezevic
1

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.

Mike Howard
źródło
Adresy MAC muszą być unikalne - nie zawsze tak się dzieje, jak zauważyli inni, ale jest to wymóg. Producenci mogą uzyskać więcej niż jeden identyfikator dostawcy. Istnieje około 4 milionów możliwych identyfikatorów dostawców (w przestrzeni adresowej MAC48 jest też nadchodząca przestrzeń adresowa MAC64) i przypisano mniej niż jedną dziesiątą. W ramach każdego identyfikatora dostawcy znajduje się 16 milionów identyfikatorów urządzeń, a nawet dużym dostawcom zabiera trochę czasu.
Chris S