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::/96
tam, gdzie NNNN jest unikalny dla maszyny wirtualnej, a maszyna wirtualna może alokować PREFIX:0:NNNN:XXXX:YYYY
wedł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/24
Staje się 2001:db8:abcd:234::/64
), albo binarnie ( 10.0.234.0/24
staje 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 n
bitó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::/10
bloku. 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::/10
jest 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.