Jak działa podsieć IPv6 i czym różni się od podsieci IPv4?


116

To jest pytanie kanoniczne dotyczące podsieci IPv6.

Związane z:

Wiem dużo o podsieciach IPv4 i przygotowując się do (wdrożenia | pracy) sieci IPv6 muszę wiedzieć, ile tej wiedzy można przenieść i czego jeszcze muszę się nauczyć. IPv6 wydaje się na pierwszy rzut oka znacznie bardziej skomplikowany niż IPv4. Więc chciałbym wiedzieć:

  • IPv6 ma 128 bitów, więc dlaczego / 64 jest najmniejszą zalecaną podsiecią dla hostów? Powiązane z tym:
    • Dlaczego zaleca się używać / 127 do połączeń punkt-punkt między routerami i dlaczego było to zalecane w przeszłości? Czy powinienem zmienić istniejące łącza routera na use / 127?
    • Dlaczego maszyny wirtualne byłyby wyposażone w adresy o wartości mniejszej niż / 64?
    • Czy są inne sytuacje, w których użyłbym podsieci mniejszej niż / 64?
  • Czy mogę mapować bezpośrednio z podsieci IPv4 na podsieci IPv6? Na przykład, czy IPv4 / 24 odpowiada bezpośrednio IPv6 / 56 lub / 120?
  • Moje interfejsy mają kilka adresów IPv6. Czy podsieć musi być taka sama dla nich wszystkich?
  • Dlaczego czasami widzę% zamiast adresu / w adresie IPv6 i co to oznacza?
  • Czy marnuję zbyt wiele podsieci? Czy nie będziemy po prostu znowu kończyć?
  • Pod jakimi innymi ważnymi względami podsieci IPv6 różnią się od podsieci IPv4?

Odpowiedzi:


138

Pierwszą rzeczą, o której należy wspomnieć o podsieciach IPv6, jest to, że wymagany jest inny sposób myślenia . W IPv4 zwykle myślisz o tym, ile adresów masz dostępnych i jak możesz przydzielić wystarczającą ich liczbę każdemu użytkownikowi końcowemu. W IPv6 zwykle myślisz o tym, ile masz podsieci (/ 64) i jak możesz je przydzielić użytkownikom końcowym. Prawie nigdy nie martwisz się, ile adresów IP będzie używanych w danej podsieci. Z wyjątkiem niektórych szczególnych przypadków, takich jak łącza punkt-punkt, każda podsieć ma po prostu znacznie więcej dostępnych adresów, niż kiedykolwiek będzie to wymagać, więc zamiast tego martwisz się tylko o przydzielanie podsieci, a nie hostów w nich.

Podsieci IPv6 to zwykle / 64, ponieważ jest to wymagane, aby SLAAC (autokonfiguracja adresu bezstanowego) działała. Nawet jeśli SLAAC nie jest używany, mogą istnieć inne powody, aby używać / 64. Na przykład, mogą istnieć pewne urządzenia użytkowników końcowych, które zakładają / 64, lub też routing podsieci dłuższych niż / 64 może być nieefektywny na niektórych routerach, ponieważ implementator routera zoptymalizował przypadek / 64 lub krótszych tras w celu zapisania pamięć tabeli routingu.

Dlaczego zaleca się użycie / 127 dla łączy punkt-punkt

W konkretnym przypadku łączy typu punkt-punkt zamiast / 64 zaleca się użycie parametru / 127, aby uniknąć podatności, w której pakiety adresują się do jednego z biliardów nieużywanych adresów w podsieci, powodując niepożądane żądania pozyskiwania sąsiadów i wpisy tabeli, które może utopić router. Takie błędne adresy mogą być złośliwe lub przypadkowe. Ale nawet jeśli faktycznie skonfigurujesz łącze punkt-punkt jako / 127, niektóre osoby opowiadają się za przypisaniem całego / 64, aby zachować spójność.

Dlaczego maszyny wirtualne byłyby zaopatrywane w podsieci mniejsze niż / 64?

Nie wiem dokładnie, dlaczego maszyny wirtualne byłyby zaopatrywane w podsieci mniejsze niż / 64. Być może dlatego, że dostawca hostingu założył, że serwer jest jak użytkownik końcowy i wymagał tylko pojedynczej podsieci (/ 64), nie przewidując, że serwer faktycznie będzie kolekcją maszyn wirtualnych wymagających wewnętrznej topologii routingu? Można to zrobić również po prostu w celu ułatwienia zapamiętywania planu adresowania: host dostaje PREFIX::/64, a następnie każda maszyna wirtualna dostaje się PREFIX:0:NNNN::/96tam, gdzie NNNN jest unikalny dla maszyny wirtualnej, a maszyna wirtualna może alokować PREFIX:0:NNNN:XXXX:YYYYwedług własnego uznania.

Czy mogę mapować bezpośrednio z podsieci IPv4 na podsieci IPv6? Na przykład, czy IPv4 / 24 odpowiada bezpośrednio IPv6 / 56 lub / 120?

Z niskiego poziomu, w jaki sposób działa adresowanie i routing, długość prefiksu ma to samo znaczenie w IPv6 i IPv4. Na tym poziomie można dokonać analogii, na przykład: „IPv4 / 16 wykorzystuje połowę bitów na adres sieciowy i połowę bitów na adres hosta, czyli jak / 64 w IPv6”. Ale to porównanie nie jest trafne. W IPv6 pojawiły się silne konwencje, które sprawiają, że podziały wielkości sieci przypominają nieco stary świat klasowych sieci w IPv4. Oczywiście, IPv6 nie przywrócił adresowania klasowego, w którym kilka najbardziej znaczących bitów adresu wymusza określoną maskę sieci, ale to, co ma IPv6 , to pewne [standardowe / konwencjonalne] rozmiary sieci:

  • / 64 : podstawowy rozmiar pojedynczej podsieci: LAN, WAN, blok adresów dla wirtualnych hostów internetowych itp. ... Nigdy nie oczekuje się, że „normalne” podsieci będą mniejsze (dłuższy prefiks) niż / 64. Żadne podsieci nigdy nie będą większe (krótszy prefiks) niż / 64, ponieważ adresy hostów o wartości / 64 to znacznie więcej, niż możemy sobie wyobrazić.
  • / 56 : blok 256 podstawowych podsieci. Chociaż obecne zasady zezwalają dostawcom usług internetowych na rozdawanie bloków wielkości aż / 48 każdemu użytkownikowi końcowemu i nadal uważają wykorzystanie adresu za uzasadnione, niektórzy dostawcy usług internetowych mogą (i już tak robią) zdecydować się na przydzielenie numeru / 56 klientom klasy konsumenckiej jako kompromis między alokacją partii podsieci dla nich a gospodarką adresową.
  • / 48 : blok 65536 podstawowych podsieci i zalecany rozmiar bloku, który powinna otrzymać każda strona końcowa klienta ISP.
  • / 32 : domyślny rozmiar bloku, który otrzyma większość dostawców usług internetowych za każdym razem, gdy zażądają więcej adresów z regionalnego rejestru adresów.

W sieciach usługodawców i przedsiębiorstwach można zobaczyć o wiele więcej długości prefiksów niż te 4. Patrząc na tabele routingu routerów w tych sieciach, IPv4 i IPv6 mają wiele wspólnego, w tym większość sposobu, w jaki działa routing: trasy dla dłuższych prefiksów zastępują trasy dla krótszych prefiksów, więc można agregować (skracać) i wiercić w dół (twórz dłuższe) trasy. Podobnie jak w IPv4, trasy mogą być agregowane lub podsumowywane do większych bloków z krótszymi prefiksami, aby zminimalizować rozmiar tabel routingu.

Inną kwestią mapowania między IPv4 i IPv6 byłoby, jak zharmonizować przypisania IPv4 i IPv6 na maszynach z dwoma stosami, aby plany adresowania były łatwe do zrozumienia. Do tego, z pewnością są powszechnie stosowane w tym celu konwencje: osadzić „numer podsieci” IPv4 w części prefiksu IPv6, albo z BCD (np. 10.0.234.0/24Staje się 2001:db8:abcd:234::/64), albo binarnie ( 10.0.234.0/24staje się 2001:db8:abcd:ea::/64).

Moje interfejsy mają kilka adresów IPv6. Czy podsieć musi być taka sama dla nich wszystkich?

Absolutnie nie! Oczekuje się, że hosty IPv6 będą mogły być hostowane w wielu domach, mając jednocześnie kilka adresów IP pochodzących z różnych podsieci, podobnie jak IPv4. Jeśli są one automatycznie konfigurowane za pomocą SLAAC, wówczas różne podsieci mogły pochodzić z reklam routera z różnych routerów.

Dlaczego czasami widzę% zamiast adresu / w adresie IPv6 i co to oznacza?

Nie zobaczysz jednego zamiast drugiego. Mają różne znaczenia. Ukośnik oznacza przedrostek (podsieć), co oznacza blok adresów, które zaczynają się od tych samych nbitów. Adres bez ukośnika jest adresem hosta. Możesz pomyśleć o takim adresie jako o domniemanym „/ 128” na końcu, co oznacza, że ​​określono wszystkie 128 bitów.

Znak procentu towarzyszy adresowi lokalnemu łącza. W IPv6 każdy interfejs ma adres lokalny dla łącza oprócz wszelkich innych adresów IP, jakie może mieć. Chodzi o to, że adresy lokalne dla linków są zawsze, bez wyjątku, w fe80::/10bloku. Ale jeśli spróbujemy porozmawiać z peerem za pomocą lokalnego adresu linku, a lokalny host ma wiele interfejsów, skąd mamy wiedzieć, którego interfejsu użyć do rozmowy z tym peerem? Zwykle tabela routingu mówi nam, którego interfejsu należy użyć dla określonego prefiksu, ale tutaj powie nam, że fe80::/10jest dostępny za pośrednictwem każdego interfejsu.

Odpowiedź jest taka, że ​​musimy powiedzieć, którego interfejsu użyć przy użyciu składni address%interface. Na przykład fe80::1234:5678:8765:4321%eth0.

Czy marnuję zbyt wiele podsieci? Czy nie będziemy po prostu znowu kończyć?

Nikt nie wie. Kto może powiedzieć przyszłość?

Ale zastanów się nad tym. W IPv6 liczba dostępnych podsieci jest kwadratem liczby dostępnych pojedynczych adresów w IPv4. To naprawdę sporo. Nie, mam na myśli naprawdę dużo!

Ale nadal: automatycznie rozdajemy / 32 każdemu dostawcy usług internetowych, który o to poprosi, rozdajemy / 48 każdemu klientowi ISP. Być może przesadzamy i ostatecznie roztrwonimy IPv6. Ale istnieje przepis na to: Tylko jedna ósma przestrzeni IPv6 został udostępniony do użytku tej pory: 2000::/3. Chodzi o to, że jeśli zrobimy okropny bałagan pierwszego ósmego i musimy drastycznie zrewidować liberalne zasady alokacji, będziemy próbować jeszcze 7 razy, zanim będziemy mieli kłopoty.

I wreszcie: IPv6 nie musi trwać wiecznie. Być może będzie miał dłuższą żywotność niż IPv4 (imponująca żywotność już się nie skończyła), ale jak każda technologia kiedyś przestanie mieć znaczenie. Musimy to zrobić tylko do tego czasu.


13
Bardzo dobre wytłumaczenie! Zwłaszcza o innym sposobie myślenia. Jeśli spojrzysz na liczby, zobaczysz, że w 2000 r. Jest 536 870 912/32 (małych dostawców usług internetowych) :: / 3. Przy światowej populacji wynoszącej 7 miliardów, to jest jeden dostawca usług internetowych na 13 osób, a każdy taki dostawca usług internetowych może mieć 65 536 klientów z / 48 dla każdego. Nie musisz się już martwić marnowaniem adresów :-)
Sander Steffann,

Tak, to bardzo dobre wytłumaczenie.
Fergus

2
Dobre wyjaśnienie konkretnych szczegółów 2000 :: / 3.
Koos van den Hout

5
Ładne wyjaśnienie. +1 od ostatniego komentarza. Mam nadzieję, że wszyscy już to widzieli: xkcd.com/865
Nico

@SanderSteffann A jeśli stanie się to problemem, rozsądnie byłoby, gdyby dostawcy usług internetowych przypisali nowe / 64 do użytkowników domowych zamiast / 48s., A dla małych ISP żądali bloków, powiedzmy 4096, na raz (/ 52 bloków ). Obecny schemat został zaprojektowany tak, aby pozostawić miejsce na ekspansję na każdej warstwie.
immibis

45

IPv6 ma 128 bitów, więc dlaczego / 64 jest najmniejszą zalecaną podsiecią dla hostów?

Przede wszystkim trochę ASCII z RFC do ustalenia terminologii:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+

Globalny prefiks routingu zazwyczaj określa ogólną sieć, do której należy adres. Zazwyczaj jest to 48 bitów. Identyfikator interfejsu identyfikuje dany interfejs sieciowy. Zwykle ma 64 bity. Pozostałe 16 bitów to identyfikator podsieci.

OK, z wyjaśnieniem:

Zgodnie z RFC 4291 - Architektura adresowania IP w wersji 6 :

Wszystkie adresy Global Unicast inne niż te, które zaczynają się od binarnego 000, mają 64-bitowe pole ID interfejsu.

I RFC 5375 - IPv6 Uwagi dotyczące przypisania adresu Unicast :

Ważną częścią planu adresowania IPv4 jest decydowanie o długości każdego prefiksu podsieci. W przeciwieństwie do IPv4, architektura adresowania IPv6 [RFC4291] określa, że ​​wszystkie podsieci korzystające z unikatowych adresów globalnych i ULA mają zawsze tę samą długość prefiksu wynoszącą 64 bity.

Dlatego ignorując wyjątek z prefiksem 000, identyfikator interfejsu zawsze ma dokładnie 64 bity. Jest to kolejny sposób stwierdzenia, że wszystkie lokalne sieci rozgłoszeniowe są zawsze 64-bitowe . Jeśli masz adres IPv6, jego maska ​​sieci ma zawsze 64 bity. Nigdy więcej, nigdy mniej. Jeśli przydzielono ci przestrzeń adresową większą niż ta (maska ​​sieci krótsza niż 64-bity), wówczas zakłada się, że będziesz dzielił tę przestrzeń adresową na sieci 64-bitowe i samodzielnie zajmowałbyś się routingiem. Jeśli dostałeś mniejszą sieć (dłuższa maska ​​sieci), to ktoś spieprzył.

Dlaczego dokładnie 64-bitowe?

Z reguły adresy IPv6 są konfigurowane automatycznie, a nie przypisywane. Router zareklamuje, który prefiks sieci jest dostępny (prefiks routingu + identyfikator podsieci: pierwsze 64-bity), a komputer wypełni ostatnie 64-bity za pomocą własnego unikalnego identyfikatora. Jak twój komputer ma unikalny identyfikator? Istnieje kilka możliwości, najczęstszym jest użycie adresu MAC interfejsu. Podzielisz MAC na pół (połowa dostawcy / pół szeregowa), przerzucisz uniwersalny-lokalny bit po stronie dostawcy i ponownie połączysz je ze sobą FF:FEna środku. Tak się 00:30:48:01:23:45staje 0230:48ff:fe01:2345. Teraz umieść reklamowany 64-bitowy prefiks sieci po jego lewej stronie, a otrzymasz swój adres IP.

Ważną kwestią jest to, że jeśli zastosujesz się do tego schematu, kolizje adresów IP nie będą miały miejsca. Ponieważ każde urządzenie w danej sieci rozgłoszeniowej POTRZEBUJE do pracy unikalnego adresu MAC, powiązanie identyfikatora interfejsu z adresem MAC oznacza, że ​​dopóki ruch rozgłoszeniowy nie koliduje, adresy IPv6 również nie będą. Używanie 64-bitów (zamiast 48 dedykowanych adresom MAC) daje nieco więcej swobody niż tylko adresy podane w tym schemacie (jest kilka innych).

Czy są inne sytuacje, w których użyłbym podsieci mniejszej niż / 64?

Nie. Nie, chyba że jesteś zepsuty. Cóż, możesz mieć uzasadnienie na podstawie lokalnych wymagań dotyczących konfigurowania routingu ręcznego w istniejącej sieci. Ale pamiętaj, że robiąc to, prawdopodobnie robisz bałagan:

Z wersji RFC 5375 - Przypisywanie adresu pojedynczego adresu IPv6 :

Użycie długości prefiksu podsieci innej niż a / 64 spowoduje uszkodzenie wielu funkcji IPv6, w tym Neighbor Discovery (ND), Secure Neighbor Discovery (SEND) [RFC3971], rozszerzenia prywatności [RFC4941], części Mobile IPv6 [RFC4866], niezależny od protokołu Multicast - tryb rzadki (PIM-SM) z Embedded-RP [RFC3956] oraz Site Multihoming przez IPv6 Intermediation (SHIM6) [SHIM6], między innymi. Wiele innych obecnie opracowywanych lub proponowanych funkcji opiera się również na prefiksach podsieci / 64.

....

Jednak niektórzy administratorzy sieci używali prefiksów dłuższych niż / 64 dla łączy łączących routery, zwykle tylko dwa routery na łączu punkt-punkt. W przypadku łączy, w których wszystkie adresy są przypisywane przez konfigurację ręczną, a wszystkie węzły w łączu są routerami (nie hostami końcowymi), które są znane w sieci, administratorzy nie potrzebują żadnych funkcji IPv6, które polegają na prefiksach podsieci / 64, to może pracować. Używanie przedrostków podsieci dłuższych niż / 64 nie jest zalecane do ogólnego użytku, a używanie ich do łączy zawierających hosty końcowe byłoby szczególnie złym pomysłem, ponieważ trudno jest przewidzieć, jakie funkcje IPv6 będą używane przez hosty w przyszłości.

Dlaczego zaleca się używać / 127 do połączeń punkt-punkt między routerami i dlaczego było to zalecane w przeszłości?

Możesz chcieć nadpisać tekst RFC 3627 - Użycie długości prefiksu / 127 między routerami jest uważane za szkodliwe . Następnie spójrz na kolejny RFC 6164 - Korzystanie ze 127-bitowych prefiksów IPv6 na łączach między routerami .

Sprzeciw wobec używania prefiksów dłuższych niż / 64 na routerach ma związek z automatyczną konfiguracją routera, która może zawieść w rzadkich przypadkach. Sprzeciw wobec używania prefiksów krótszych niż / 127 (tylko dla 2 hostów) wiąże się z szeregiem potencjalnych problemów związanych z odmową usługi związanych z wysyłaniem pakietów na nieroutowane adresy. Ponieważ rzeczywiste problemy z odmową usługi są gorsze niż teoretyczne niepowodzenia automatycznej konfiguracji, / 127 jest nowym faworytem.

Czy powinienem zmienić istniejące łącza routera na use / 127?

Jeśli kontrolujesz router IPv6, zalecam przeczytanie dwóch RFC (są one krótkie!) I sam zdecyduję.

Czy mogę mapować bezpośrednio z podsieci IPv4 na podsieci IPv6?

Na przykład, czy IPv4 / 24 odpowiada bezpośrednio IPv6 / 56 lub / 120?

Aktualnie tak. Pamiętasz ten prefiks 000, który celowo zignorowaliśmy wcześniej? Oto zastosowanie:

W systemach z dwoma stosami (z aktywnymi stosami IPv4 i IPv6) możesz reprezentować IPv4 za pomocą mechaniki IPv6. Nazywają to „ adresami IPv6 odwzorowanymi na IPv4 ”. Wzorzec składa się z samych zer, po których FFFFnastępuje 32-bitowy adres IPv4.

Tak więc 192.168.100.21staje się ::FFFF:C0A8:6415- lub prościej: ::FFFF:192.168.100.21. Ponieważ ten prawy bit reprezentuje adres IPv4, tradycyjnie jest zapisywany przy użyciu kropkowo-dziesiętnej postaci.

Ponieważ jest to rzeczywisty adres IPv4, nadal używa nagłówków IPv4 itp., Co oznacza, że ​​stos IPv4 musi być obecny, trasy IPv4 muszą być ustawione i tak dalej. Zaletą jest to, że możesz reprezentować zarówno adresy IPv4, jak i IPv6 przy użyciu struktury pojedynczego adresu, co może uprościć tworzenie aplikacji. Jeśli chodzi o sieć, nie robi to różnicy.


20
  1. IPv6 ma 128 bitów, więc dlaczego / 64 jest najmniejszą zalecaną podsiecią dla hostów?

    Ten rozmiar prefiksu był pierwotnie zalecany w starszej wersji RFC - od tego czasu wprowadzono powtórkę do tej zasady, w której rozważa się problem Neighbor Discovery Attacks, a użycie / 126 stanowi prawidłowe ograniczenie - niemniej, jeśli konfigurujesz łącza PtP za pomocą jedynym celem routingu ruchu, alternatywną opcją jest po prostu trzymanie się systemu / 64 i zapora ogniowa w tej podsieci. Jeszcze lepiej, przydziel sobie pulę, z której narysujesz / 64 podsieci, i miej całą tę pulę jako miejsce docelowe na czarnej liście na krawędzi (i wszędzie tam, gdzie mogłaby pochodzić wrogość)

  2. Dlaczego zaleca się używać / 127 do połączeń punkt-punkt między routerami i dlaczego było to zalecane w przeszłości? Czy powinienem zmienić istniejące łącza routera na use / 127?

    / 127 nie jest zalecany między routerami i nigdy nie był - adres Anycast wszystkich routerów jest adresem zerowym podsieci; oznacza to, że / 127 jest technicznie poprawny tylko między dwoma komputerami, z których jeden NIE działa jako router. / 126 jest oczywiście w porządku.

    W każdym razie nie zalecałbym zmiany istniejących łączy / 64, chyba że twój sprzęt jest podatny na atak powodziowy pamięci podręcznej Neighbor Discovery - i nawet w takim przypadku najpierw ustal, czy rzeczywiście będziesz używać tego / 64 do połączenia z Internetem , jeśli odpowiedź brzmi „nie”, wystarczy zaporę ogniową.

  3. Dlaczego maszyny wirtualne byłyby zaopatrywane w podsieci mniejsze niż / 64?

    To łamie SLAAC i RA, chyba że naprawdę, naprawdę wiesz, co robisz, jest mało prawdopodobne, abyś miał jakiś dobry powód, aby to zrobić - być może twój podrzędny dostarczył ci tylko jeden / 64, ale jeśli tak jest, musisz iść wróć do nich i poproś o więcej, jeśli będą chcieli za to zapłacić, zacznij szukać nowego dostawcy, a także być może wyślij im niechlujne e-maile z linkami do odpowiednich RFC.

  4. Czy są inne sytuacje, w których użyłbym podsieci mniejszej niż / 64?

    Szczerze? prawdopodobnie nie. Jeśli wymyślę uzasadniony powód, dla którego preferowana jest mniejsza podsieć do celów innych niż zapobieganie atakom NDP, zedytuję tę sekcję.

    I odwrotnie, sytuacje, w których NIE chcesz używać podsieci mniejszych niż / 64 - szczególnie wszędzie tam, gdzie używasz środowiska ze sprzętowym sprzętem przekazującym (pomyśl markowe routery i przełączniki L3) - niektóre nie będą w stanie wykonywać sprzętowego routingu prefiksów dłuższe niż / 64, inni muszą podzielić operację na wiele porównań, dlatego powinieneś przynajmniej starać się, aby / 64 był najdłuższym prefiksem w twoim szkielecie (OSPF / ISIS / EIGRP / etc.).

  5. Czy mogę mapować bezpośrednio z podsieci IPv4 na podsieci IPv6? Na przykład, czy IPv4 / 24 odpowiada bezpośrednio IPv6 / 56 lub / 120?

    Oficjalnie :: ffff: xxxx jest formatem adresu IPv4 odwzorowanego na IPv6 - istnieje oczywiście również szereg mechanizmów przejścia, mianowicie 6to4 i jego krewny, 6. miejsce, które mapują adres IPv4 na globalny adres IPv6 dla celów zapewniania dostępu IPv6 przez IPv4 poprzez utworzenie prefiksu IPv6, który pochodzi z adresu IPv4, który jest przenoszony.

  6. Moje interfejsy mają kilka adresów IPv6. Czy podsieć musi być taka sama dla nich wszystkich?

    Nie, używanie różnych adresów i rozmiarów podsieci w tym samym interfejsie nie powinno stanowić problemu. Jeśli tak, implementacja jest wadliwa. Oczywiście lepszym pytaniem jest, dlaczego miałbyś to robić?

  7. Dlaczego czasami widzę% zamiast adresu / w adresie IPv6 i co to oznacza?

    Jest to separator, ogólnie stosowany do adresów lokalnych dla łącza (fe80 :: / 12) - ponieważ ten sam adres dla lokalnego łącza może legalnie istnieć na wielu interfejsach, ogranicznik% służy do określenia, który interfejs jest przeznaczony. Linux ogólnie określa, że ​​określanie interfejsu jest obowiązkowe podczas wykonywania operacji z wykorzystaniem łącza lokalnego. Windows Vista / 2008 i nowsze są nieco mądrzejsze i nie będą narzekać, chyba że lokalny link nie jest unikalny.

  8. Czy marnuję zbyt wiele podsieci? Czy nie będziemy po prostu znowu kończyć?

    Nie. To martwy koń, którego zbyt wiele razy chłostano WAAAAAAAAAY - obecny globalny internet IPv6 to 2000 :: / 3 - istnieje kilka innych prefiksów, które IANA mogłaby zacząć używać, gdyby w jakiś sposób każdy RIR na naszej planecie wyczerpał ich zapasy adresowe. Więc nie, nie zabraknie nam miejsca, a nawet jeśli to zrobimy, wystarczy przesunąć długopis, aby wyświetlić nowy prefiks, a nie zmianę techniczną. Jedyne, co to pytanie naprawdę podkreśla, to niezdolność ludzkiego umysłu do pełnego zrozumienia, jak absurdalnie duża jest przestrzeń adresowa.

  9. Pod jakimi innymi ważnymi względami podsieci IPv6 różnią się od podsieci IPv4?

    Oprócz dbania o to, ile miejsca zajmujesz, pamiętaj, że nie ma adresu rozgłoszeniowego i że adres „podsieć zero” jest teraz adresem anycast wszystkich routerów (który jest zasadniczo adresem, który istnieje domyślnie na wszystkich skonfigurowanych węzłach) do przekazywania pakietów IPv6) - ma to użyteczny efekt uboczny polegający na tym, że możesz użyć adresu z zerami jako domyślnej trasy w sieci (nie, nie spowoduje to duplikacji pakietów, jest DOWOLNYM, nie MULTIcast) - pamiętaj o tym chociaż host może przełączać się między routerami co kilka sekund, więc nie jest to właściwe dla stanowej konfiguracji zapory ogniowej, jeśli śledzenie połączenia nie jest zsynchronizowane między nimi.

    Poza tym, inną zasadniczą różnicą jest to, że IPv6 dba o zduplikowane adresy i martwych sąsiadów (NUD) - dlatego, w przeciwieństwie do IPv4, host odmówi użycia adresu, jeśli może stwierdzić, że inny węzeł łącza już go używa . Z drugiej strony NUD jest przydatny, jeśli konfigurujesz trasy statyczne - możesz faktycznie zdefiniować wiele oddzielnych tras do prefiksu o różnych metrykach i będą one faktycznie działać, w przeciwieństwie do IPv4, w którym zostanie użyta najniższa trasa metryki, niezależnie od tego, czy następna -hop jest martwy lub żywy (chociaż może nie być to prawdą w przypadku niektórych implementacji IPv4, które używają ARP do sprawdzania poprawności tras, takich jak Cisco i inni główni dostawcy routerów)

    TLDR; IPv6 wykrywa zduplikowane adresy i nieosiągalnych sąsiadów. Adres zerowy to anycast wszystkich routerów i nie ma czegoś takiego jak rozgłaszanie, wszystkie to zwykły adres.



3

Dla tych, którzy zastanawiają się, skąd w specyfikacji wynika wymóg / 64 dla SLAAC, oto kilka dodatkowych odniesień:

Z autokonfiguracji adresu bezstanowego IPv6 (RFC 4862) :

Jeśli suma długości prefiksu i długości identyfikatora interfejsu nie jest równa 128 bitom, MUSI zostać zignorowana opcja Informacje o prefiksie. [...]

Administrator systemu jest odpowiedzialny za zapewnienie, aby długości prefiksów zawartych w ogłoszeniach dotyczących routera były zgodne z długością identyfikatorów interfejsów dla tego typu łącza.

I od architektury adresowania IP w wersji 6 (RFC 4291) :

W przypadku wszystkich adresów emisji pojedynczej, z wyjątkiem tych, które rozpoczynają się od wartości binarnej 000, identyfikatory interfejsów muszą mieć długość 64 bitów i być skonstruowane w zmodyfikowanym formacie EUI-64.

Dlatego, ponieważ identyfikator interfejsu musi mieć długość 64 bitów, a suma długości prefiksu i długości identyfikatora interfejsu musi wynosić 128, jedyna możliwa długość prefiksu przy użyciu SLAAC to 64 bity.


2

IPv6 ma 128 bitów, więc dlaczego / 64 jest najmniejszą zalecaną podsiecią dla hostów?

Ponieważ zwolennikom IPv6 spodobał się pomysł bezstanowej automatycznej konfiguracji.

Jeśli wybierzesz inny rozmiar podsieci, automatyczna konfiguracja bezstanowa ulegnie awarii. Inne drobne rzeczy też mogą się zepsuć, przeczytaj rfc7421, aby uzyskać więcej informacji.

Osobiście uważam, że bezpaństwowa autokonfiguracja jest głupim pomysłem. Prowadzi to do nieczytelnych adresów i zasadniczo nie daje żadnej kontroli nad adresowaniem poza przypisaniem bloku do podsieci.

Oczywiście, jeśli chodzi o konwencje, jeśli postępujesz zgodnie z nimi i coś pójdzie nie tak, możesz wskazać konwencję, jeśli odmówisz ich przestrzegania, a coś pójdzie nie tak, to twoja wina.

Dlaczego zaleca się użycie / 127 do połączeń punkt-punkt między routerami,

Korzystanie z podsieci o małej liczbie dostępnych adresów pozwala uniknąć ataków wyczerpania na wykrywanie sąsiadów.

Oczywiście to rozumowanie dotyczy nie tylko łączy punkt-punkt. Myślę, że było to politycznie możliwe, aby zrobić to zalecenie dla łączy routera typu punkt-punkt, ale nie było politycznie możliwe, aby uczynić to dla innych łączy.

Dlaczego maszyny wirtualne byłyby wyposażone w adresy o wartości mniejszej niż / 64?

Musimy tutaj dokonać rozróżnienia. Istnieją dwa sposoby, aby dostawca hostingu mógł przypisać adresy do maszyny (fizycznej lub wirtualnej).

Mogą przypisać im adresy „on-link”, pod którymi maszyna ma odpowiadać na żądania wykrywania sąsiadów. Niektórzy dostawcy hostingu zdecydowali się nadać każdej maszynie a / 64, która ma zalety w zakresie mobilności adresów, inni nadają każdej sieci VLAN a / 64, a następnie podają poszczególne bloki maszyn tej, która wykorzystuje mniej adresów i może oznaczać, że ruch lokalny pozostaje lokalny, a nie lokalny przekazywanie do routera.

Lub mogą traktować maszynę jako router i przypisać jej routowany blok. W takim przypadku potrzebowałoby wystarczającej liczby adresów, aby adresować wszystkie swoje wewnętrzne podsieci. Jeśli zastosujesz się do konwencji „wszystkie podsieci muszą być / 64”, oznacza to przydzielenie co najmniej a / 64 i ewentualnie więcej. Ma to sens w przypadku komputerów, które mają „sieci wewnątrz maszyny”, na przykład hosta kontenera.

Czy mogę mapować bezpośrednio z podsieci IPv4 na podsieci IPv6? Na przykład, czy IPv4 / 24 odpowiada bezpośrednio IPv6 / 56 lub / 120?

Każde takie mapowanie należy do lokalnych zasad.

Moje interfejsy mają kilka adresów IPv6. Czy podsieć musi być taka sama dla nich wszystkich?

Nie

Dlaczego czasami widzę% zamiast adresu / w adresie IPv6 i co to oznacza?

% to identyfikator interfejsu. Jest używany w połączeniu z adresami lokalnymi dla łącza. Jest to konieczne, ponieważ maszyna może mieć wiele interfejsów, a sieci podłączone do tych interfejsów mogą mieć nakładające się adresy lokalne łącza.

Czy marnuję zbyt wiele podsieci? Czy nie będziemy po prostu znowu kończyć?

Nie martwiłbym się tym zbytnio.

Mimo dziwnej decyzji projektantów IPv6, aby użyć 128-bitowej przestrzeni adresowej, a następnie wyrzucić prawie połowę jej na bezstanową automatyczną konfigurację, IPv6 wciąż ma znacznie więcej miejsca niż IPv4.

A jeśli dojdzie do kryzysu, cofnięcie tej dziwnej decyzji zajmie niewiele więcej niż pociągnięcie pióra.

Znacznie większym problemem związanym ze skalowalnością IPv6 jest rozmiar tablicy routingu. NAT IPv6 jest zdecydowanie odradzany. Prowadzenie dużej sieci na adresach przydzielonych przez dostawcę prowadzi do znacznego ryzyka zablokowania dostawcy.

Uważam więc, że wraz ze wzrostem penetracji IPv6 do sieci korporacyjnych dojdzie do eksplozji popytu na niezależną od dostawcy przestrzeń IPv6.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.