Dlaczego ipv6 określa 128-bitowy adres, skoro w adresach MAC jest tylko 48 bitów?

37

Czytam więc egzamin sieciowy i zastanawiam się, czy coś przeoczyłem. Czy istnieje potrzeba podania większej liczby adresów IP niż adresów MAC i jak w takim przypadku węzłowi z jedną kartą sieciową przypisano by wiele adresów IP?

Lorentz Vedeler
źródło
2
+1, mimo że oczywiste jest, że MAC musi być unikalny tylko dla urządzeń w obrębie jednej sieci lokalnej (podłączonej do tej samej magistrali), podczas gdy warstwa internetowa konsoliduje wszystkie sieci lokalne w jedną globalną sieć, przy czym podstawowa zasada projektowania, dzielenie podboju, dokładnie określa lokalną sieci nie zdają sobie sprawy z lokalnych adresów w innych sieciach lokalnych, aby skutecznie komunikować się za pośrednictwem globalnego schematu IP, a ponadto można podłączyć do Internetu lokalne sieci nie oparte na sieci Ethernet. Tak więc jestem zainteresowany, aby dowiedzieć się, jaka byłaby odpowiedź, gdyby IP wymagał Ethernet tylko na najniższym poziomie.
Val
1
Przejście z IPv4 na IPv6 było - i jest - tak powolne i kosztowne, że nie chcemy już nigdy stawiać czoła kolejnemu przejściu. 128 bitów ma uzasadnioną szansę na wystarczające „na zawsze”. tools.ietf.org/html/rfc1606 to świetne dowcipne podejście („Ponieważ protokół IP w wersji 9 dobiega końca, ponownie z powodu wyczerpania przestrzeni adresowej, ...”)
Beni Cherniavsky- Paskin
@ BeniCherniavsky-Paskin, przejście jest powolne, ponieważ NAT łagodzą potrzebę. Ponownie pokazuje to nam, że nie potrzebujemy lokalnej przestrzeni adresowej do pokrycia globalnej przestrzeni adresowej.
Val

Odpowiedzi:

40

Adresy MAC muszą być unikalne tylko w lokalnej domenie rozgłoszeniowej, a nie globalnie, więc ponowne użycie adresów MAC w różnych sieciach zwykle nie stanowi problemu.

Internet nie jest jedną globalną domeną rozgłoszeniową, dlatego musi być podzielony na wiele bloków adresów przypisanych do różnych dostawców usług internetowych, a każdy dostawca usług internetowych dzieli swoje bloki na mniejsze bloki dla różnych klientów / usług. Aby każdy z tych mniejszych bloków mógł zawierać wiele adresów MAC, musisz mieć przestrzeń IP znacznie większą niż przestrzeń adresów MAC.

Teun Vink
źródło
8
Również z powodu agregacji. 48 bitów to więcej niż wystarczająca liczba adresów IP (40 tys. Na osobę), ale oznaczałoby to, że każdy router musi spojrzeć na płaską tabelę powyżej 2PB, że technologia nie istnieje.
ytti
1
@ytti: Przynajmniej dopóki wszyscy nie będziemy mieć nanorobotów z obsługą ip w naszych strumieniach krwi
BlueRaja - Danny Pflughoeft
1
Prawdopodobnie mogą korzystać z linklocal, ponieważ tylko kilka z nich łączyłoby się poza lokalną siecią.
ytti
1
Na papierze powinny być unikalne na całym świecie. Jednak wiadomo, że rzeczywistość się różni.
Ricky Beam
4
To uzasadniałoby kolejne pytanie. Ale adres MAC jest tworzony z numeru OUI 24b lub 36b, który kupujesz od IEEE, co powinno być unikalne, ale w praktyce, aby zaoszczędzić 1300USD, niektórzy ludzie używają OUI innych ludzi lub niektórzy produkują NIC z nie unikalnym MAC. Chociaż adres MAC to 48b, w rzeczywistości jest to tylko 46b, ponieważ 1 bit określa, czy jest to emisji pojedynczej / multiemisji, a 1 bit, jeśli jest globalny / lokalny, jeśli bit zakresu lokalnego jest włączony, wszystkie zakłady są wyłączone dla wyjątkowości.
ytti
16

Nie wszystkie typy interfejsów sieciowych używają adresów MAC. Adresy MAC są w większości kojarzone z Ethernetem, chociaż korzysta z niego wiele innych standardów sieciowych. Jednak adres IPv6 może być nadal przypisany do interfejsu sieciowego, który nie używa adresów MAC dla warstwy 2.

Warto również zauważyć, że adres MAC można przekonwertować na część hosta IPv6 poprzez konwersję EUI-64 (najczęściej używaną do autokonfiguracji bezstanowej), wstawiając wartości szesnastkowe FFFE między skrajnymi lewymi i prawymi 24 bitami 48-bitowego adresu MAC, i siódmy bit zostaje odwrócony.

Na przykład 0c: 3a: bb: 2a: cd: 23 można przekonwertować na część hostową bezstanowego adresu IPv6 autokonfiguracji. 0c w powyższych adresach MAC, reprezentowanych jako 0000 1100 w systemie binarnym, zmienia się w 0000 1110 w systemie binarnym lub 0e w systemie szesnastkowym. Dlatego końcowa część adresu IPv6 hosta EUI-64, przekonwertowana z adresu MAC, to 0e: 3a: bb: ff: fe: 2a: cd: 23.

WaxTrax
źródło
1
Musisz także
zmienić
Zapomniałem o tej części - zredagowałem swoją odpowiedź, aby odzwierciedlić informacje. Dzięki za złapanie tego :-)
WaxTrax
Głupi skrypt, aby zrobić to automatycznie: ruby ​​-e'EUI = (ARGV [1]); k = ARGV [0] .delete (":."). Scan (/. {6} /). Join ("fffe" ) .scan (/../); k [0] = "% 02x"% (k [0] .hex ^ 0b10); p EUI + ":" + k.join.scan (/..../) .join (":") '74: 66: 30: 42: 42: 42 2001: 67c: 17a0: 0
ytti
Tłumaczenie adresu MAC na EUI-64 w celu użycia w alokacji IP wydaje się być późniejszą sprawą, oryginalny adres IPv6 przez Ethernet (RFC 2464) określał adresy MAC z prefiksem zero.
Peter Green
6

Ponadto istnieją pewne protokoły warstwy 2 z więcej niż 48 bitami w ich MAC, na przykład Fibre Channel ma 64-bitowe (lub 128-bitowe najwyraźniej według Wikipedii), podobnie jak FireWire (cóż, trochę), więc mogą zmieścić się w / 64 bez możliwości nakładania się.

LapTop006
źródło
4

SLAAC protokołu IPv6 może wygenerować tylko jeden adres na prefiks, ponieważ używa adresu MAC do wygenerowania rozsądnie unikalnego adresu. Rozszerzenia prywatności mogą generować jeden lub więcej pseudolosowych adresów, które są następnie sprawdzane pod kątem nakładania się na segmencie lokalnym. Oczywiście, lokalni administratorzy mogą przypisać tyle adresów statycznych, ile chcą - ich zadaniem jest, aby nie nakładały się na siebie.

[Przez dość unikalny rozumiem prawdopodobieństwo kolizji jest zerowe. A jeśli tak, najpierw będziesz mieć problem z warstwą 2! (dwie maszyny w tym samym segmencie z tym samym MAC)]

Ricky Beam
źródło
Rozszerzenia prywatności Afaict były późniejszą refleksją, gdy ludzie zdali sobie sprawę, że autokonfiguracja oparta na MAC była koszmarem prywatności. Ani jedna z sił napędowych w projektowaniu IPv6
Peter Green
Większość IPv6 to refleksja ... Ci, którzy nie uczą się historii, są skazani na jej powtórzenie.
Ricky Beam
2

Myślę, że zasadniczo sprowadza się to do dwóch kluczowych kwestii.

  1. Adresy internetowe nie tylko muszą być globalne, muszą być globalnie dostępne. Routing adresu każdego komputera osobno spowodowałby zbyt duże tabele routingu. Projektanci IPv6 marzyli o hierarchicznym systemie routingu *, aby tabele routingu były małe.
  2. Projektanci IPv6 chcieli bezstanowej autokonfiguracji. Automatyczna konfiguracja bezstanowa wymaga, aby część „hosta” adresu była duża, aby pomieścić istniejący adres łącza lub odpowiednio dużą liczbę losową, aby kolizje były bardzo mało prawdopodobne.

Połącz te punkty i potrzebujesz zarówno części „hosta”, jak i „sieci” adresu, aby były duże. Z pewnością więcej niż 32 bity każdy. Każdy z 64 bitów był prawdopodobnie przesadny, ale lepszy niż wyczerpanie.

* Sen tak naprawdę nie zadziałał, ponieważ Internet nie jest ustaloną hierarchią, ale nie chodzi o to, co faktycznie wydarzyło się w ciągu około 20 lat od wprowadzenia IPv6, chodzi o to, co napędzało projekt.

Peter Green
źródło