Instruktor: W tej
lekcji przedstawimy koncepcje związane z IPv6, czyli
protokołem internetowym w wersji 6.
Do tej pory rozmawialiśmy
tylko o IPv4, ale jednym z problemów
związanych z IPv4 jest ograniczona przestrzeń
adresowa.
Dzieje się tak, ponieważ adres
IPv4 składa się tylko z 32 bitów,
co daje nam tylko 4. 2 miliardy możliwych kombinacji adresów.
Teraz znam 4. 2 miliardy wydaje się dużą liczbą
adresów IP, ale kiedy usunęliśmy całe części rzeczy,
takie jak adresy APIPA, adresy hostów lokalnych, prywatne adresy
IP, a następnie pojawiła się ogromna ilość odpadów,
zanim jeszcze zaczęliśmy używać podsieci,
doprowadziło to do dużego problemu i
zaczęło nam brakować adresów sieciowych w IPv4.
Jest to znane jako wyczerpanie adresowe i jest to prawdziwa rzecz.
W rzeczywistości w listopadzie 2019
r. RIPE NCC, regionalny rejestr internetowy
dla Europy, Azji Zachodniej i byłego ZSRR oraz
NASA, wyczerpały
już całą pulę adresów IPv4.
Na szczęście jednak, Internet Engineering
Task Force (IETF) już wcześniej zaczęła patrzeć
w przyszłość i opracowała
IPv6 jako standard już w 1995 roku, wydając dokument
RFC, który dokumentował ich wizję IPv6, którą określili
jako IP Next Generation lub IPNG.
Teraz widać, że IPv6 jest w rzeczywistości ogromnym ulepszeniem w stosunku do IPv4 pod
względem liczby dostępnych adresów.
Zamiast 32-bitowego adresu, jak ma to miejsce w IPv4,
IPv6 będzie używać 128-bitowego adresu.
Zapewni to znacznie większą przestrzeń adresową.
W rzeczywistości daje to możliwość
uzyskania 340 miliardów adresów IP.
To wystarczająca liczba adresów
IP dla każdego mężczyzny, kobiety i dziecka na świecie.
Jest to dwa do potęgi 128.
W rzeczywistości istnieje wiele, wiele adresów IP dla każdego
mężczyzny, kobiety i dziecka na planecie, ponieważ
dostępnych jest tak wiele adresów IP.
Teraz możesz się zastanawiać,
hej, przeszliśmy z IPv4 na IPv6.
Co się stało z wersją 5?
Dlaczego przeskoczyliśmy od razu do wersji 6?
Cóż, wersja 5 została stworzona, ale nigdy nie została w pełni przyjęta jako
oficjalny protokół lub standard.
Dlatego też nigdy nie trafił do produkcji.
Zamiast tego wiele z tych koncepcji,
które zostały opracowane w ramach wersji
5, ponieważ był to protokół eksperymentalny,
zostało następnie wprowadzonych do IPv6, gdy stał
się on oficjalnym standardem.
Porozmawiajmy więc o korzyściach płynących z IPv6.
Jedną z największych korzyści
jest znacznie większa przestrzeń adresowa
dzięki 128-bitowym adresom.
Oprócz tego, IPv6 zwiększył
również wydajność naszych sieci poprzez usunięcie
typu przepływu danych rozgłoszeniowych IPv4.
Teraz IPv6 jest również bezpieczniejszy,
ponieważ w standardzie IPv6 nie ma fragmentacji
pakietów ani datagramów.
W przeciwieństwie do IPv4, który zawiera MTU
o określonym rozmiarze dla każdego pakietu, nie ma również maksymalnych
jednostek transmisji dla wykrywania w ramach każdej sesji.
W protokole IPv4, jeśli wysłałbym pakiet większy
niż maksymalny rozmiar jednostki transmisji, zostałby
on pofragmentowany i wysłany
przez sieć.
A kiedy dotrze do miejsca przeznaczenia,
zostanie ponownie złożony i odczytany.
W rzeczywistości stanowiło to zagrożenie dla bezpieczeństwa.
Wymagało to również dodatkowego przetwarzania i mogło
faktycznie spowolnić działanie sieci, ponieważ stało
się to bardzo nieefektywnym sposobem robienia rzeczy w naszych nowoczesnych
sieciach z wyższymi prędkościami
połączenia internetowego.
Tak więc w IPv6 zdecydowano się całkowicie
wyeliminować fragmentację.
Oprócz zapewnienia wszystkich tych nowych korzyści,
twórcy IPv6 byli również bardzo sprytni i zdawali
sobie sprawę, że aby IPv6 został w pełni przyjęty i zaakceptowany,
musiałby być wstecznie kompatybilny z IPv4 i umożliwiać
współistnienie zarówno IPv6, jak i IPv4 w tej samej sieci.
W końcu już pod koniec lat 90-tych IPv6 był rozwijany
i wypuszczany na rynek, a wiele sieci komputerowych
było już uruchomionych
na całym świecie.
Nie byłoby więc możliwe, abyśmy
po prostu zmienili wszystko w ciągu jednego dnia.
Pomyśl o tym jak o obecnej migracji
z pojazdów zasilanych gazem do pojazdów
elektrycznych.
Dzieje się tak przez cały 2020
rok i do 2030 roku.
Byłoby niemożliwe, gdybyśmy powiedzieli, że
1 stycznia 2025 r. nikt nie będzie już mógł korzystać
z pojazdów napędzanych gazem.
Od tego dnia wszystkie z
nich zostaną zastąpione pojazdami elektrycznymi.
Gdyby rząd próbował to zrobić,
prawdopodobnie miałby do czynienia z rewolucją,
ponieważ tak wiele osób posiada już samochody napędzane gazem i wydało
mnóstwo pieniędzy oraz zainwestowało w te samochody i infrastrukturę
do ich obsługi.
Z tego powodu nie zamierzamy po prostu zastąpić wszystkich samochodów
napędzanych gazem z dnia na dzień.
Zamiast tego nastąpi powolne przejście z zasilania
gazowego na elektryczne, które potrwa do 2030, a może 2040 roku, ponieważ
coraz więcej nowszych samochodów sprzedawanych na świecie
będzie sprzedawanych jako elektryczne i przestaną
sprzedawać pojazdy napędzane gazem.
Cóż, dokładnie to samo dzieje się z IPv6.
Tak więc IPv6 pozwala na współistnienie zarówno IPv4, jak i IPv6 w tych
samych sieciach, a sprzęt obsługujący
te sieci staje się znany jako podwójny
stos, co oznacza po prostu, że mogą
one jednocześnie uruchamiać
zarówno protokoły IPv4, jak i protokoły IPv6 na tych samych
urządzeniach sieciowych.
W przypadku urządzeń z podwójnym stosem, jeśli klient obsługuje protokół IPv6, przełącznik
routera wolałby korzystać z protokołu IPv6 i będzie komunikował
się przy użyciu tej metody.
Teraz, jeśli urządzenie nie jest w stanie obsługiwać protokołu
IPv6, odwraca się i mówi: w porządku,
będę z tobą rozmawiać przy użyciu starszego protokołu IPv4.
W ten sposób nadal mogę cię wspierać.
Inną stosowaną przez nas metodą jest tunelowanie.
W tym przypadku protokół IPv6 będzie tunelowany przez urządzenie IPv4.
Dzięki temu starsze routery IPv4
mogą nadal przenosić ruch IPv6.
IPv6 będzie zasadniczo tunelowany
jako mechanizm enkapsulacji pakietów IPv6 w nagłówkach
IPv4 i przenoszenia tych danych IPv6 przez routery IPv4
i inną infrastrukturę, która
już istnieje.
Odbywa się to poprzez utworzenie tunelu punkt-punkt
między źródłem a miejscem docelowym, a następnie
enkapsulację tych informacji.
Pozwala to odizolowanym klientom i serwerom IPv6 na komunikację bez
konieczności aktualizacji wszystkich
routerów i infrastruktury przełączników, które
nadal używają protokołu IPv4, który może istnieć między nimi.
Pewnego dnia możemy w końcu doczekać się całkowitego wycofania protokołu IPv4.
Ale jak dotąd tak się nie stało.
Osobiście nie wstrzymuję oddechu.
Z niektórych przeczytanych
przeze mnie artykułów wynika, że IPv4 pozostanie
z nami co najmniej do 2040 roku, więc jako technik sieciowy będziesz
musiał wiedzieć, jak pracować zarówno z IPv4, jak i IPv6 w
dającej się przewidzieć przyszłości.
Kolejną zaletą IPv6 jest uproszczony nagłówek.
Tak więc zamiast tych 12 pól, które mieliśmy w IPv4, mamy
tylko pięć pól w IPv6, co czyni go odchudzonym nagłówkiem,
który jest o wiele bardziej wydajny
do wysyłania przez nasze sieci.
Być może zastanawiasz
się, jak wygląda nagłówek IPv6?
Pokażę ci to, ale pamiętaj, że nie musisz
się tego uczyć na egzamin.
Zamiast tego ma to na celu pokazanie różnych
pól, które były w IPv4, który jest na górze,
w porównaniu do IPv6, który jest na dole.
Teraz widać, o ile prostsze
jest IPv6 w porównaniu do IPv4.
W porządku, wróćmy do kilku rzeczy,
które musisz zrozumieć na egzaminie.
Jak właściwie wygląda adres IPv6?
Cóż, powiedziałem już, że ma 128 bitów długości, więc
oznacza to, że miałby 128 jedynek lub zer, gdybyśmy zapisali
go binarnie, a to wydaje mi
się naprawdę złym pomysłem, więc nie będziemy
tego robić.
Teraz moglibyśmy użyć notacji dziesiętnej
z kropkami, tak jak w IPv4, ale
nadal będzie to dużo oktetów do zapisania, ponieważ
potrzebowalibyśmy 16 oktetów do reprezentowania wszystkich 128 bitów.
Aby rozwiązać ten problem, IETF
zdecydował, że zamiast tego powinniśmy
używać cyfr szesnastkowych.
Liczba szesnastkowa to base-16, którą można
pamiętać lub nie z lekcji
algebry w szkole średniej.
Teraz, w systemie szesnastkowym,
każda cyfra szesnastkowa to w rzeczywistości cztery bity.
Pozwoli nam to na reprezentowanie adresu IPv6 poprzez
połączenie czterech cyfr szesnastkowych razem, aby
utworzyć coś, co nazywamy segmentem.
Segment będzie miał 16 bitów.
Jest to reprezentowane przez te cztery cyfry szesnastkowe.
Następnie dodamy dwukropek
i będziemy dodawać segmenty,
aż dojdziemy do 128 bitów, co zajmie osiem
segmentów, z których każdy ma
cztery cyfry szesnastkowe.
Daje mi to w sumie 32 cyfry szesnastkowe,
co nadal jest dość długie.
Przy 128 bitach reprezentowanych w adresie IPv6 oznacza to, że nie
będziemy mieć więcej niż 32 cyfry szesnastkowe wewnątrz wszystkich
tych segmentów.
Dlaczego powiedziałem, że łączna długość tych ośmiu segmentów
nie może przekraczać 32 cyfr?
Dlaczego nie miałyby to być po prostu 32 cyfry
szesnastkowe, ponieważ 32 cyfry razy cztery bity
na cyfrę dałyby nam 128 bitów?
Dzieje się tak dlatego, że IPv6 pozwala nam używać
skrótu, aby móc uprościć nasze
bardzo długie adresy IPv6.
Zasady stenografii są naprawdę ważne, ponieważ
można na nich znaleźć pytania egzaminacyjne.
Jeśli więc masz cztery zera w segmencie, możesz
zamiast tego wstawić jedno zero i zrezygnować
z zer początkowych.
Załóżmy na przykład, że mam naprawdę długi
adres IPv6 2018:0000:0000:0000:0000:0000:4815:54ae.
Korzystając z prostej reguły,
mogę zastąpić wszystkie te segmenty, które mają wiele zer,
pojedynczym zerem.
To dałoby mi 2018:0:0:0:0:4815:54ae.
W porządku, to zmniejszyło moją liczbę cyfr szesnastkowych
z 32 do zaledwie 17, więc jest o połowę krótsza.
Jest coraz lepiej, ale nie zamierzam na tym poprzestać.
Jest jeszcze jedna zasada,
której mogę użyć w świecie skrótów IPv6.
Ta reguła mówi, że jeśli istnieje wiele segmentów,
w których wszystkie mają zera i
żadne inne cyfry szesnastkowe nie są tam reprezentowane,
mogę podsumować to za pomocą podwójnego dwukropka i usunąć
wszystkie te zera.
Ta reguła jest wyjątkowa,
ponieważ podwójny dwukropek można wykonać tylko
raz w adresie IPv6.
Korzystając z reguły podwójnego
dwukropka, mogę podsumować 2018:0:0:0:0:4815:54ae, usuwając wszystkie
te pięć zestawów zer i zastępując je podwójnym
dwukropkiem, uzyskując
2018::4815::54ae.
Tak więc przeszedłem z 32 cyfr szesnastkowych
do 17 cyfr szesnastkowych,
a teraz z 17 cyfr aż do 12 cyfr, znacznie
mniejszych, znacznie łatwiejszych
w pracy.
Możesz zobaczyć, jak ten skrót jest naprawdę pomocny.
Jak więc rozpoznać adres IPv6 w porównaniu
z adresem IPv4?
Pierwszym sposobem jest przyjrzenie się, czym jest IPv4.
Protokół IPv4 zawsze będzie używał notacji dziesiętnej z kropkami,
wykorzystując cztery oktety.
Z drugiej strony, IPv6 będzie używać
dwukropków między liczbami i będzie zapisywany
w systemie szesnastkowym.
W porządku, teraz jednym z pytań, które
możesz zobaczyć w dniu testu,
jest zidentyfikowanie adresu IPv6, gdy go zobaczysz.
Na przykład, możesz otrzymać pytanie typu:
Który z poniższych adresów jest adresem IPv6?
To będzie słuszne pytanie.
Otrzymasz kilka opcji, takich jak 192. 168. 1. 1, o którym wiemy,
że nim nie jest, ponieważ jest to adres IPv4.
Otrzymasz 12:34:56:78:90:AB
lub 1234::5678::90AB.
Chwileczkę, te dwie ostatnie rzeczy, które właśnie powiedziałem,
są naprawdę podobne, prawda?
Tak, ale tylko jeden z nich jest prawidłowym adresem IPv6.
Czy wiesz, który to?
Ponieważ większość studentów jest tutaj zdezorientowana.
Druga opcja nie jest w rzeczywistości adresem IPv6.
Zamiast tego jest to adres MAC.
Pamiętaj, że adresy MAC, które
są adresami fizycznymi warstwy 2,
zawsze składają się z 12 cyfr szesnastkowych oddzielonych
dwukropkami.
Zazwyczaj będą one zapisywane
jako sześć grup po dwie cyfry, a każda z nich
będzie oddzielona pojedynczym dwukropkiem.
Z drugiej strony adres IPv6 powinien być zawsze zapisywany
w segmentach po cztery cyfry każdy i zawsze
powinien mieć 16 segmentów, chyba że widzisz
podwójny dwukropek.
W tym przykładzie mamy podwójny dwukropek między
pierwszym i drugim segmentem w naszej trzeciej opcji.
Jest to więc dobry skrót, którego możemy użyć i
identyfikujemy, że był to adres IPv6, ponieważ
usunęliśmy wszystkie zera między
pierwszym a drugim segmentem w tym adresie.
Jeśli więc policzysz coś,
co wygląda jak adres IPv6 i ma 12,
dokładnie 12 cyfr szesnastkowych oddzielonych pojedynczymi
dwukropkami i nigdzie nie
widzisz podwójnego dwukropka,
jest to adres MAC, a nie adres IPv6.
W przeciwnym razie, jeśli wygląda
coś takiego i zawiera cyfry
szesnastkowe, będzie to adres IPv6 w dniu egzaminu.
Na egzaminie wystarczy być w stanie rozpoznać,
jak wygląda adres IPv6 i powinieneś być
w stanie go podsumować, usuwając zera i konsolidując
je za pomocą sztuczki z podwójnym dwukropkiem.
Jeśli potrafisz zrobić te dwie
rzeczy, w dniu egzaminu poradzisz sobie z adresowaniem IPv6.
Jeśli chodzi o adresowanie IPv6, istnieją
trzy różne typy adresów, których można używać:
adresy unicast, adresy multicast
i adresy anycast.
Jedną z interesujących rzeczy w IPv6, która
naprawdę odróżnia go od IPv4, jest to, że
możemy przypisać wiele adresów IPv6 do pojedynczego
interfejsu na kliencie.
Przypisania te mogą być mieszanką
trzech różnych typów: unicast,
multicast i anycast.
Tak więc nawet jeśli masz tylko jedną kartę sieciową
na stacji roboczej lub laptopie,
możesz mieć wiele adresów IPv6 i różnych
typów adresów IPv6 przypisanych do tej
jednej karty.
Adresy Unicast będą używane do identyfikacji
pojedynczego interfejsu.
Są one podzielone na adresy unicastowe routowane globalnie
i adresy lokalne łącza.
Adres unicastowy routowany globalnie
jest podobny do tego, co mamy jako adres publiczny w IPv4
przy użyciu adresów unicastowych klasy A, B i C.
Teraz, w IPv6, globalnie routowany adres unicastowy
zawsze zaczyna się
od pierwszego segmentu zawierającego 2000-3999.
Teraz, jeśli widzisz 2000-3999 jako pierwszy segment, oznacza
to, że jest to adres unicast routowany globalnie.
Na przykład adres IPv6
2584:0db8:8583:1234:5678:882e:0370:7334 byłby routowany globalnie jako adres unicastowy, ponieważ jego pierwszy segment zawiera
2584, który znajduje się między
2000 a 3999.
Z drugiej strony, adres lokalny łącza,
zwany również adresem do użytku lokalnego,
jest używany podobnie jak prywatny adres IP w IPv4.
Adres lokalny łącza w IPv6
może być używany tylko w sieci
lokalnej i zawsze zaczyna się od FE80 jako pierwszego segmentu
w adresie IPv6.
Teraz, za każdym razem, gdy system IPv6 zostanie uruchomiony,
faktycznie utworzy adres lokalny łącza dla każdego
interfejsu IPv6 w tym systemie, nawet jeśli adres routowalny
globalnie został już skonfigurowany
ręcznie lub uzyskany za pomocą
protokołu konfiguracyjnego, takiego jak DHCP.
Aby to zrobić, użyje czegoś znanego jako SLAAC,
bezstanowa automatyczna konfiguracja adresu lub S-L-A-A-C.
Dzięki bezstanowej autokonfiguracji
host nie musi uzyskiwać adresów ani innych
informacji konfiguracyjnych ze
scentralizowanego serwera, takiego jak DHCP.
Zamiast tego może niezależnie przypisać sobie adres
lokalny łącza, przetestować
unikalność tego adresu lokalnego łącza, przypisać
sobie adres lokalny łącza, skontaktować
się z routerem i wskazać węzłowi, jak kontynuować autokonfigurację.
Może nawet skonfigurować globalny adres unicast,
którego chce używać.
Wrócimy do tej koncepcji za kilka minut, gdy
zagłębimy się w nią nieco głębiej,
gdy zaczniemy mówić o EUI-64 i protokole wykrywania sąsiadów,
ponieważ oba te procesy są używane
z protokołem bezstanowej automatycznej
konfiguracji adresów znanym jako SLAAC.
Następnie mamy adresy multiemisji.
Obecnie adresy multicastowe są używane
do identyfikacji grupy interfejsów, dzięki
czemu pakiet może zostać wysłany na adres multicastowy, a następnie
dostarczony do wszystkich interfejsów w grupie.
W IPv6 adres multicastowy zawsze będzie zawierał FF jako dwie
pierwsze cyfry w pierwszym segmencie.
Jeśli widzisz FF na początku adresu IPv6,
pamiętaj o jego multiemisji.
Ostatnim typem adresu
jest adres anycast.
Adresy Anycast są używane do identyfikacji zestawu interfejsów, dzięki
czemu pakiet może zostać wysłany do dowolnego członka zestawu.
Adresy anycast są w rzeczywistości przydzielane
z przestrzeni adresowej unicast.
Tak więc tak naprawdę nie ma
sposobu, aby określić, czy adres IPv6 jest unicastem
czy anycastem, patrząc tylko na adres IPv6.
Teraz, gdy patrzysz na multiemisję lub link-local, masz
bardzo łatwy sposób, aby to zrobić,
ale nie masz łatwego sposobu na określenie
unicastu w porównaniu z anycastem.
W porządku, wróćmy i porozmawiajmy
trochę więcej o SLAAC, procesie automatycznej
konfiguracji adresów bezstanowych.
Jak już wspomniałem, w IPv6 istnieje
proces automatycznej konfiguracji znany jako SLAAC, którego
używamy do wykrywania bieżącej sieci,
w której znajduje się interfejs,
a następnie pozwalamy mu wybrać własny identyfikator
hosta na podstawie adresu MAC przy użyciu procesu znanego jako EUI-64.
Teraz ten proces EUI-64 lub Extended Unique Identifier pozwoli hostowi
przypisać sobie unikalny 64-bitowy
identyfikator interfejsu IPv6 o nazwie EUI-64.
Teraz ten adres w formacie EUI-64 jest uzyskiwany
przy użyciu 48-bitowego adresu MAC interfejsu.
Adres MAC jest najpierw dzielony na dwie 24-bitowe części.
Pierwsza połowa adresu MAC będzie zawierać OUI, czyli Organizational
Unique Identifier.
Druga połowa będzie zawierać konkretną
kartę interfejsu sieciowego.
Pomiędzy nimi umieścimy
16-bitową wartość szesnastkową FFFE.
W ten sposób mogę wziąć 24 bity, 16 bitów i 24 bity i
połączyć je razem, aby uzyskać 64-bitowy adres EUI.
Daje to 64 bity, które będą potrzebne do identyfikacji
interfejsu w tej sieci.
Następnie interfejs użyje automatycznego
wykrywania, aby określić sieć,
w której się znajduje i dodać część sieciową adresu IPv6,
która będzie pierwszymi 64 bitami wewnątrz naszych adresów.
Teraz umieścimy te pierwsze 64 bity
reprezentujące sieć przed 64 bitami z adresu
EUI-64, który utworzyliśmy z naszego adresu MAC, aby utworzyć
globalnie routowalny adres IPv6 unicast, którego możemy
teraz użyć.
Możesz więc zobaczyć, jak wszystko to działa razem,
używając tego adresu MAC do
utworzenia adresu routowalnego globalnie.
Teraz DHCP może być również używany w IPv6, jeśli
wolisz go używać.
Jeśli tak, będziesz musiał użyć protokołu DHCPv6.
Pozwoliłoby to na automatyczne
przypisywanie rzeczy przez DHCP z serwera DHCPv6.
Ponieważ jednak proces automatycznej konfiguracji z EUI-64 jest
już domyślnie wbudowany w protokół IPv6, nie ma potrzeby
korzystania z DHCPv6.
Ale jeśli chcesz użyć DHCPv6, możesz to zrobić, a to pozwoli ci
przypisać adresy, które
każdy interfejs otrzyma, zamiast pozwalać im
na korzystanie z protokołu
automatycznej konfiguracji SLAAC.
Jak już wspomniałem, IPv6 domyślnie wybiera swój własny
adres w oparciu o adres MAC, a następnie korzysta
z protokołu NDP lub protokołu wykrywania sąsiadów,
aby dowiedzieć się o innych adresach
warstwy 2 w sieci w oparciu o ich adresy MAC, a następnie wybiera swój własny identyfikator
hosta.
Na egzaminie nie trzeba dogłębnie znać protokołu NDP,
ale należy zrozumieć, że NDP, protokół
wykrywania sąsiadów, jest używany w IPv6 i przejmuje
wiele funkcji z reklam routerów
i wykrywania sąsiadów i obsługuje je
za Ciebie.