Tajemnice protokołu IPv6
Jacek Światowiak
Jacek.Swiatowiak@lan-net.pl
Tajemnice protokołu IPv6
Cześć 4
Protokół Neighbor Discovery
(podziór protokołu ICMPv6)
Tajemnice protokołu IPv6
Jacek Światowiak
Kilka słów o mnie:
MCSE+M, MCSE+S
MCTS: Forefront Client and Server, ISA 2006
MCTS: SQL 2005
MCTS: Vista, Windows 7
MCTS: Business Desktop Deployment, BDD
MCTS: Office Communications Server 2007
MCTS: SBS 2008, EBS 2008
MCTS: Exchange 2007, 2010
MCTS: Windows Server Virtualization,
MCTS: Windows Server 2008 R2, Desktop Virtualization
MCITP: Windows Server 2008, Server Administrator
MCITP: Windows Server 2008, Enterprise Administrator
MCITP: SQL 2005, Database Administrator
MCITP: Exchange Server 2007, Enterprise Messaging Administrator
MCITP: Exchange Server 2010, Enterprise Messaging Administrator
MCITP: Windows Server 2008 R2, Virtualization Administrator 2008 R2
MCITP: Windows 7, Enterprise Desktop Administrator
MSA: Office Communications Server 2007
– U.C.Voice
MVP: Forefront
od października 2010
Strefa eksperta ATE
2008 - 2010
2/58
Tajemnice protokołu IPv6
Jacek Światowiak
Rok 2001 !!!!!!!!!!!!!!
3/58
Tajemnice protokołu IPv6
Jacek Światowiak
Inżynieria Internetu Przyszłości
Projekt jest współfinansowany ze środków Unii Europejskiej poprzez Europejski
Fundusz Rozwoju Regionalnego w ramach Programu Operacyjnego
Innowacyjna Gospodarka na lata 2007-2013:
• Priorytet 1 - Badania i rozwój nowoczesnych technologii.
• Działanie 1.1 - Wsparcie badań naukowych dla budowy gospodarki opartej na wiedzy.
• Poddziałanie 1.1.2 - Strategiczne programy badań naukowych i prac rozwojowych.
Numer projektu: POIG.01.01.02-00-045/09-00.
Czas realizacji: 01.01.2010 - 31.12.2012.
http://www.iip.net.pl
4/58
Tajemnice protokołu IPv6
Jacek Światowiak
Inżynieria Internetu Przyszłości
Projekt dotyczy opracowania i przetestowania infrastruktury i usług dla nowych generacji sieci
Internet, tj. Internetu IPv6 i Internetu Przyszłości (ang. Future Internet). Oczekuje się, iż nowe
generacje Internetu (jeden z głównych priorytetów badawczych w ramach Programów
Ramowych Unii Europejskiej) przyczynią się istotnie do rozwoju cywilizacyjnego w Europie
powodując, że z ich możliwości będą korzystały wszystkie lub prawie wszystkie obszary
ludzkiej aktywności.
Celem projektu w ramach Internetu IPv6 jest opracowanie metodyki dla ewolucyjnego
zastąpienia w sieci krajowej obecnej wersji IP (IPv4) przez protokół IPv6 oraz
zaproponowanie nowych rozwiązań sieciowych i usług wynikających z IPv6.
Celem
projektu w ramach Internetu Przyszłości jest opracowanie i przetestowanie propozycji
nowej architektury opartej na wirtualizacji zasobów wraz z nowymi mechanizmami i
algorytmami dotyczącymi istotnych aspektów działania sieci. Projekt stawia sobie również za
cel stworzenie środowiska krajowej sieci testowej dla Internetu IPv6 i Internetu Przyszłości,
pozwalającego na prowadzenie działalności badawczo-rozwojowej opartej na weryfikacji
eksperymentalnej.
5/58
Tajemnice protokołu IPv6
Jacek Światowiak
Inżynieria Internetu Przyszłości
Projekt jest realizowany przez konsorcjum, w którego skład wchodzą wiodące
uczelnie techniczne, instytuty Polskiej Akademii Nauk i instytuty branżowe.
Politechnika Warszawska
Instytut Łączności - Państwowy Instytut Badawczy
Politechnika Wrocławska
Politechnika Poznańska
Poznańskie Centrum Superkomputerowo-Sieciowe (Instytut Chemii
Bioorganicznej PAN)
Instytut Informatyki Teoretycznej i Stosowanej Polskiej Akademii Nauk
Politechnika Śląska
Politechnika Gdańska
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie
6/58
Tajemnice protokołu IPv6
Jacek Światowiak
Sesje
Zagadnienia adresacji
– odbyła się 11 listopada 2011
Datagram IPv6
– odbyła się 25 listopada 2011 r.
Protokół ICMPv6 – odbyła się 1 grudnia 2011
Protokół Neighbor Discovery – 15 grudnia 2011
Zagadnienia automatycznej adresacji
Technologie migracji
Tunelowanie 6to4
Tunelowanie ISATAP
Tunelowanie TEREDO
Zagadnienia dodatkowe
7/58
Tajemnice protokołu IPv6
Jacek Światowiak
Poprzednia sesja
Wstęp
Podprotokoły ICMPv6
Typy komunikatów ICMPv6
Nagłówek protokołu ICMPv6
Komunikaty błędów protokołu ICMPv6
Komunikaty informacyjne ICMPv6
Komunikat błędu ICMPv6 - Miejsce docelowe nieosiągalne - Destination
Unreachable
Komunikat błędu ICMPv6 - Datagram za duży - Packet Too Big
Komunikat błędu ICMPv6 - Przekroczenie czasu - Time Exceeded
Komunikat błędu ICMPv6 - Problem z parametrem - Parameter Problem
Komunikaty informacyjne ICMPv6 - Echo Request oraz Echo Reply
Część praktyczna – manualne zarządzanie adresami IPv6 oraz
routingiem statycznym.
8/58
Tajemnice protokołu IPv6
Jacek Światowiak
Agenda
Wstęp
Mechanimzmy Neighbor Discovery
Komunikaty Neighbor Discovery
Format komunikatów protokołu Neighbor Discovery
Opcje protokołu Neighbor Discovery
Opcja Source/Target Link-Layer Address
Opcja Prefix Information
Opcja Redirected Header
Opcja MTU
Opcja Router Information
Komunikat Router Solicitation
Komunikat Router Advertisement
Komunikat Neighbor Solicitation
Komunikat Neighbor Advertisement
Komunikat Redirect
Przykład procesu odkrywania routera i prefiksu
Przykład procesu rozwiązywania adresów
Przykład praktyczny – konfiguracja DNS oraz
mechanimzy rozwiązywania nazw
9/58
Tajemnice protokołu IPv6
Jacek Światowiak
Wstęp
Węzły (hosty i routery) używają protokołu rozpoznawania sąsiedztwa -
Neighbor
Discovery
do określania adresów warstwy łącza danych dla sąsiadów
podłączonych do tego samego łącza.
Hosty
używają tego protokołu do znajdowania sąsiednich routerów, które zgodzą
się przesyłać ich datagramy.
Protokół jest używany przez węzły do śledzenia stanu dostępności swoich
sąsiadów i do wykrywania zmian adresów warstwy łącza danych.
Protokół Neighbor Discovery – zdefiniowany jest w RFC 4861 – wrzesień 2007
Oraz uaktualnienie w RFC 5942 - IPv6 Subnet Model: The Relationship between
Links and Subnet Prefixes
– lipiec 2010
10/58
Tajemnice protokołu IPv6
Jacek Światowiak
Mechanizmy Neighbor Discovery
Rozpoznawania routerów (ang. Router Discovery) – umożliwiający hostowi lokalizowanie
routerów, które dołączone są do tego samego łącza co host.
Rozpoznawania prefiksu (ang. Prefix Discovery)
– umożliwiający hostowi znalezienie
zbioru prefiksów adresów określających, które węzły docelowe dołączone są to tego samego
łącza, co host (węzły używają prefiksów do rozróżniania węzłów docelowych dostępnych
bezpośrednio poprzez łącze od tych, które są dostępne poprzez router).
Rozpoznawania parametrów (ang. Parameter Discovery) – umożliwiający węzłowi
otrzymanie informacji o parametrach łącza, takich jak MTU dla łącza lub parametrów sieci
Internet, takich jak wartość ograniczająca liczbę przeskoków umieszczaną w wysyłanych
datagramach.
Automatycznej konfiguracji adresów (ang. Address Autoconfiguration) – umożliwiający
węzłowi automatyczne konfigurowanie adresów dla jego interfejsów.
Odwzorowania adresów (ang. Address Resolution) – umożliwiający węzłowi określanie
adresu warstwy łącza danych węzłów docelowych, które dołączone są tego samego łącza
(tj. sąsiadów), jeśli dany jest tylko ich adres IP.
11/58
Tajemnice protokołu IPv6
Jacek Światowiak
Mechanimzmy Neighbor Discovery
Określania węzła następnego przeskoku (ang. Next-hop Determination) – odwzorowujący
docelowe adresy IP w adresy IP węzłów sąsiednich, do których należy skierować ruch
wysyłany na dany adres docelowy. Węzłem następnego przeskoku może być router lub sam
węzeł docelowy.
Wykrywania braku dostępu do sąsiadów (ang. Neighbor Unreachability Detection) –
umożliwiający węzłowi stwierdzenie braku dostępu do sąsiada. Jeśli sąsiadem jest router,
wtedy węzeł może użyć domyślnego routera alternatywnego.
Wykrywania duplikatów adresów (ang. Duplicate Address Detection) – umożliwiający
węzłowi określenie czy adres, którego chciałby dla siebie użyć, nie jest już używany przez
inny węzeł.
Przekierowania (ang. Redirect)
– umożliwiający routerowi informowanie hosta o tym, że
istnieje inny węzeł pośredni, który oferuje lepsze przesyłanie datagramów wysyłanych na
określony adres docelowy.
12/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikaty Neighbor Discovery
Router Solicitation
– gdy interfejs przestaje być dostępny, host może wysłać tę wiadomość, która jest
żądaniem niezwłocznego wygenerowania wiadomości – Router Advertisement (host nie musi czekać na
wiadomość Router Advertisement, która w „normalnych warunkach” wysyłana jest okresowo).
Router Advertisement
– routery ogłaszają swoją obecność informując o łączach, do których są
podłączone oraz o innych parametrach. Wiadomości ogłoszeniowe wysyłane są okresowo lub w
odpowiedzi na wiadomość Router Solicitation. Wiadomość Router Advertisement zawiera informację o
prefiksach, które są używane przez węzły do określania, czy router znajduje się na tym samym łączu, a
także do konfiguracji adresów; zawiera także sugerowaną wartość ograniczającą liczbę przeskoków.
Neighbor Solicitation
– wiadomość wysyłana w celu określenia adresu warstwy łącza danych dla węzła
sąsiedniego lub do sprawdzenia, czy węzeł sąsiedni jest wciąż dostępny za pomocą adresu warstwy łącza
danych, przechowywanego w pamięci podręcznej. Wiadomość ta używana jest także przez mechanizm
wykrywania duplikatów adresów.
Neighbor Advertisement
– odpowiedź na wiadomość Neighbor Solicitation. Węzeł może także wysłać
wiadomość Neighbor Advertisement, która nie jest odpowiedzią informującą o zmianie adresu warstwy
łącza danych.
Redirect
– wiadomość używana przez routery do informowania hostów o tym, że istnieje inny węzeł
pośredni, który oferuje lepsze przesyłanie datagramów wysyłanych na określony adres docelowy.
13/58
Tajemnice protokołu IPv6
Jacek Światowiak
Format komunikatów protokołu
Neighbor Discovery
Każdy nagłówek komunikatu protokołu Neighbor Discovery (ND) zawiera 8-bitowe
pola Typ i Kod, 16-
bitową sumę kontrolną ICMPv6, kilka specjalnych pól oraz kilka
zdefiniowanych wartości pole Opcje. Kolejne wersje protokołu mogą definiować
nowe wartości pola opcji. Odbiorca musi „po cichu” ignorować opcje, które nie są
przez niego zaimplementowane, i kontynuować dalsze przetwarzanie komunikatu.
Komunikaty protokołu ND są wysyłane, jako komunikaty ICMP o typach 133 do
137.
Typ Informacja
133
Zapytanie Routera - Router Solicitation
134
Odpowiedź Routera - Router Advertisement
135
Zapytanie Sąsiada – Neighbor Solicitation
136
Odpowiedź Sąsiada – Neighbor Advertisement
137
Przekierowanie - Redirect
Tabela 1
. Komunikaty protokołu Neighbor Discovery
14/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcje protokołu Neighbor
Discovery
Komunikaty protokołu Neighbor Discovery mogą zawierać zero lub więcej opcji.
Część z nich może wystąpić wielokrotnie w tym samym komunikacie. Wszystkie
opcje mają ustalony format przedstawiony na rysunku poniżej. Opcje kodowane
są w formacie TLV - Type-Length-Value.
Typ
Opcja
RFC
1
Source Link-Layer Address – Adres warstwy łącza danych źródła
4861
2
Target Link-Link Address – Adres warstwy łącza danych celu
4861
3
Prefix information – Informacja o prefiksie
4861
4
Redirected Header – Przekierowanie nagłówka
4861
5
MTU – Wartość MTU
4861
7
Advertisement Interval (Mobile IPv6) – nie jest tu omawiana
3775
8
Home Agent Information (mobile IPv6) – nie jest tu omawiana
3775
24
Route Information
4191
Podstawowe opcje protokołu Neighbor Discovery
zdefiniowane są w dokumencie RFC 4861.
15/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Source/Target
Link-Layer Address
Opcja
adres warstwy łącza danych źródła
zawiera adres warstwy łącza danych
nadawcy komunikatu. Jest wykorzystywana w komunikatach Neighbor Solicitation,
Router Solicitation i Router Advertisement.
Opcja
adres warstwy łącza danych celu
zawiera adres warstwy łącza danych
odbiorcy komunikatu. Wykorzystywana jest w komunikatach Neighbor
Advertisement i Redirect.
Obie opcje powinny być „po cichu” ignorowane w
komunikatach innego typu.
Obie opcje mają ten sam format przedstawiony na rysunku. Opcja Source Link-
Layer Address nie jest dołączana, kiedy adres źródłowy komunikatu ND jest
nieokreślony (::).
16/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Source/Target
Link-Layer Address
Pole
Przeznaczenia pola oraz wartość pola
Typ
8-bitowy identyfikator typu opcji. Aktualnie zdefiniowane opcje
przedstawia tabela poniżej
Długość
Długość opcji (zawiera pola Typ i Długość) w 8-oktetowych
jednostkach. (przykładowo długość dla IEEE 802 = 1)
Link-Layer
Address
Adres warstwy łącza danych (o zmiennej długości – z
uwzględnieniem kolejności i wielkości poszczególnych pól).
Tabela 2.
Znaczenie pól opcji Source/Target Link-Layer Address
Tabela 3.
Opcje komunikatów
Typ Specyfikacja
1
Source Link-Layer Address – Adres warstwy łącza danych źródła
2
Target Link-Layer Address - Adres warstwy łącza danych celu
17/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Source/Target
Link-Layer Address
Przykład. Wykorzystanie opcji Source Link-Layer Address
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 32
- Icmpv6: Neighbor Solicitation, Target = FE80:0:0:0:260:97FF:FEAA:BBCC
MessageType: Neighbor Solicitation, 135(0x87)
- NeighborSolicitation:
Code: 0 (0x0)
Checksum: 3893 (0xF35)
Reserved: 0 (0x0)
TargetAddress: FE80:0:0:0:260:97FF:FEAA:BBCC
-
SourceLinkLayerAddress
:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-10-5A-BB-110-C4
18/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Prefix Information
Opcja
Prefix Information
dostarcza hostom informacji o prefiksach typu „on-
link” oraz prefiksów przeznaczonych do autokonfiguracji. Opcja występuje tylko
w komunikacie Router Advertisement
i dlatego powinna być „po cichu”
ignorowana w komunikatach innego typu. Opcja może wielokrotnie
występować w komunikacie Router Advertisement.
On-link
– oznacza adres przypisany do interfejsu na
określonym łączu. Węzeł może być on-link, gdy: jego prefiks
jest zgodny z
prefiksem łącza;
Off-link
– oznacza sytuację przeciwną do on-link.
19/58
Tajemnice protokołu IPv6
Jacek Światowiak
Pole
Przeznaczenia pola oraz wartość pola
Typ
Pole 8-bitowe – Ma wartość 3
Długość
Pole 8-bitowe – Ma wartość 4
Prefix Length
8-bitowa liczba bez znaku. Określa ilość bitów prefiksu. Wartość z przedziału 0 do 128;
L
1-bitowa flaga (On-Link flag ). Ustawiona oznacza, że prefiks może zostać użyty do określenia adresu
łącza typu on-link. Gdy nie jest ustawiona, nie można zakładać żadnych właściwości prefiksu.
A
1-bitowa flaga autonomicznej konfiguracji adresów (Autonomous flag). Ustawiona oznacza, iż prefiks
może zostać użyty do autonomicznej konfiguracji adresów.
R
1-bitowa flaga wykorzystywana w mobile IPv6 (Router Adress Flag). Zdefiniowana w RFC 3775.
S
1-bitowa flaga związana z uaktualnianiem prefiksów zdefiniowanych dla danej lokalizacji. Więcej
informacji w drafcie “Site Prefixes in Neighbor Discovery.”
Zarezerwowane 1
4-bitowe pole. Pole obecnie niewykorzystywane.
Valid Lifetime
32-bitowe pole – czas życia prefiksu determinującego adresy łącza typu on-link, w stosunku do czasu
wysłania datagramu. Wartość 0xffffffff reprezentuje nieskończoność. Opcja wykorzystywana do
automatycznej konfiguracji adresów.
Preferred Lifetime
32-bitowe pole – czas życia determinującego adresy łącza generowane poprzez automatyczną
konfiguracje adresów, w stosunku do czasu wysłania datagramu. Wartość 0xFFFFFFFF reprezentuje
nieskończoność.
Zarezerwowane 2
24-bitowe pole. Pole obecnie niewykorzystywane.
Site Prefix Length
8-bitowe pole wskazujące na długość prefiksu dla określonej lokalizacji. Więcej informacji w drafcie “Site
Prefixes in Neighbor Discovery.”
Prefix
Adres IP lub prefiks adresu IP. Pole (długość prefiksu) zawiera liczbę bitów prefiksu. Pozostałe bity w
prefiksie powinny zostać wyzerowane przez nadawcę i ignorowane przez odbiorcę. Router nie powinien
wysyłać tej opcji dla prefiksów dla łącza lokalnego, jednocześnie host powinien ignorować takie opcje.
Opcja Prefix Information
20/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Prefix Information
Przykład. Wykorzystanie opcji Prefix Information
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 96
- Icmpv6: Router Advertisement
MessageType: Router Advertisement
, 134(0x86)
+ RouterAdvertisement:
- SourceLinkLayerAddress:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-B0-D0-11-22-55
+ MTU:
+ PrefixInformation:
-
PrefixInformation:
Type: Prefix Information, 3(0x3)
Length: 4, in unit of 8 octets
PrefixLength: 64 (0x40)
- Flags: 192 (0xC0)
L: (1.......) On-Link determination allowed
A: (.1......) Autonomous address-configuration
R: (..0.....) Not router Address
S: (...0....) Not a site prefix
P: (....0...) Not a router prefix
Rsv: (.....000)
ValidLifetime: 4294967295 (0xFFFFFFFF)
PreferredLifetime: 4294967295 (0xFFFFFFFF)
Reserved: 0 (0x0)
Prefix: FD46:1A5D:2FDE:2:0:0:0:0
21/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Redirected Header
Opcja wykorzystywana jest w komunikatach przekierowujących i zawiera cały
datagram lub jego część podlegająca przekierowaniu. Opcja ta musi być
ignorowana przez inne komunikaty protokołu Neighbor Discovery.
Pole
Przeznaczenia pola oraz wartość pola
Typ
Pole 8-bitowe – Ma wartość 4
Długość
Długość opcji w jednostkach 8-bajtowych
Zarezerwowa
ne
Pole niewykorzystywane, musi być inicjowane przez nadawcę
zerami a ignorowane przez odbiorcę.
Naglówek IP
+ DANE
Okrojony oryginalny datagram IP zapewniający nieprzekroczenie
wartości 1280 bajtów przez komunikat.
22/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Redirected Header
Przykład. Wykorzystanie opcji Redirect Header
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 128
- Icmpv6: Redirect, Target = FE80:0:0:0:2B0:D0FF:FE12:3456
MessageType: Redirect
, 137(0x89)
- Redirect:
Code: 0 (0x0)
Checksum: 31003 (0x791B)
Reserved: 0 (0x0)
TargetAddress: FE80:0:0:0:2B0:D0FF:FE12:3456
DestAddress: 2001:DB8:0:0:0:0:0:10
-
RedirectedHeader
:
Type: Redirected Header, 4(0x4)
Length: 11, in unit of 8 octets
Reserved: 0 (0x0)
- InvokingPacket: Next Protocol = ICMPv6, Payload Length = 40
- Versions: IPv6, Internet Protocol, DSCP 0
Version: (0110............................) IPv6, Internet Protocol,6(0x6)
DSCP: (....000000......................) Differentiated services codepoint 0
ECT: (..........0.....................) ECN-Capable Transport not set
CE: (...........0....................) ECN-CE not set
FlowLabe: (............00000000000000000000) 0
PayloadLength: 40 (0x28)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 128 (0x80)
SourceAddress: FE80:0:0:0:260:8FF:FEAA:BBCC
DestinationAddress: 3000:0:0:0:0:0:0:10
OriginalIPPayload: Binary Large Object (40 Bytes
23/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja MTU
Opcja wykorzystywana jest przez komunikat Router Advertisement w celu
zapewnienia tej samej wartości MTU na danym łączu (funkcjonalność Path
MTU).
Opcja ta musi być „po cichu” ignorowana przez inne komunikaty protokołu
Neighbor Discovery.
Pole
Przeznaczenia pola oraz wartość pola
Typ
Pole 8-bitowe – Ma wartość 5
Długość
Pole 8-bitowe – Ma wartość 1
Zarezerwowa
ne
16-bitowe niewykorzystywane pole – musi być inicjowane przez
nadawcę zerami a ignorowane przez odbiorcę.
MTU
32-bitowa liczba bez znaku. Zawiera zalecane MTU dla danego
łącza.
24/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja MTU
Przykład. Wykorzystanie opcji MTU
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 96
- Icmpv6:
Router Advertisement
MessageType: Router Advertisement, 134(0x86)
+ RouterAdvertisement:
- SourceLinkLayerAddress:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-B0-D0-AA-11-22
-
MTU
:
Type: MTU, 5(0x5)
Length: 1, in unit of 8 octets
Reserved: 0 (0x0)
MTU: 1500 (0x5DC)
+ PrefixInformation:
+ PrefixInformation:
25/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Router Information
Opcja wykorzystywana jest przez komunikat Router Advertisement w celu
poinformowania hosta odbiorczego aby ten dodał do swojej lokalnej tabeli
routingu dodatkowe wpisy.
Więcej informacji znajduje się w RFC 4191.
Komputery wykorzystujące systemu Windows Server 2008 (2008 R2), Windows Seven, Windows Vista,
Windows XP oraz Windows Server 2003 działające jako routery IPv6 w przypadku braku zdefiniowanego
routera
domyślnego, który jest w sieci lokalnej rozgłaszany; będą wysyłać opcje Route Information
wewnątrz komunikatu Router Advertisements w celu informowania hostów o podsieciach do których są
podłączone.
Opcja wykorzystywana jest w celu zapewniani lepszego i szybszego wyboru
trasy [router] przez host źródłowy.
26/58
Tajemnice protokołu IPv6
Jacek Światowiak
Opcja Router Information
Pole
Przeznaczenia pola oraz wartość pola
Typ
Pole 8-bitowe – Ma wartość 24
Długość
Pole 8-bitowe. Zależne od długości pola Prefix Length. Jeżeli długość prefiksu równa się zero –
pole ma wartość 1. Jeżeli prefiks zawiera się pomiędzy 1 a 65, długość pola Prefix Length ma
64-bity zaś pole Długość ma wartość = 2. Jeżeli prefiks jest dłuższy niż 64 wówczas pole
Prefiks ma 128 bitów, zaś ople Długość ma wartość 3.
Prefix Length
Pole 8-bitowe. Określa długość prefiksu w zakresie od 0 do 128 bitów
Zarezerwowane 1
3-bitowe niewykorzystywane pole – musi być inicjowane przez nadawcę zerami a ignorowane
przez odbiorcę.
Preference
2-bitowe pole. Wskazuje na preferencje przy wyborze danej trasy przez hosta źródłowego. W
przypadku wielu tras prowadzących do tej samej lokalizacji możliwe są następujące
kombinacje. 01 (High – preferencja wysoka ), 00 (Medium – preferencja średnia), 11 (Low –
preferencja niska).
Zarezerwowane 2
3-bitowe niewykorzystywane pole – musi być inicjowane przez nadawcę zerami a ignorowane
przez odbiorcę.
Route Lifetime
32-bitowe pole. Określa czas ważności danej trasy w sekundach. Wartość 0xFFFFFFFF
reprezentuje nieskończoność.
Prefix
Określa prefiks dla danej trasy. Pole może mieć wartość 0, 64 lub 128 bitów zależną od pola
Prefix Length. Długość prefiksu określa ile starszych bitów wykorzystywanych jest do
podejmowania decyzji o trasie. Wszystkie pozostałe bity muszą być ustawione na wartość zero.
27/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Router Solicitation
Host wysyła komunikat Router Solicitation, w celu określenia dostępnych routerów
na łączu. Komunikat jest żądaniem szybkiego wygenerowania przez router
komunikatu Router Advertisement,
aby nie czekać na periodyczne rozgłaszanie
informacji przez routery.
Pole
Przeznaczenia pola oraz wartość pola
Typ
8-bitowe pole. Ma wartość 133
Kod
8-bitowe pole. Ma wartość 0
Suma kontrolna
Suma kontrolna ICMPv6.
Zarezerwowane
Pole niewykorzystywane, musi być inicjowane przez nadawcę
zerami, a ignorowane przez odbiorcę.
Tabela . Znaczenie pól nagłówka ICMPv6
Tabela.
Dostępne opcje dla komunikatu Router Solicitation
Typ
Specyfikacja
Source Link-
Layer Address
Adres źródłowy warstwy łącza danych nadawcy komunikatu. Opcja ta nie może
być dołączana, jeżeli adres źródłowy jest nieokreślony.
28/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Router Solicitation
Przykład. Wykorzystanie komunikatu Router Solicitation
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 16
- Icmpv6:
Router Solicitation
MessageType: Router Solicitation, 133(0x85)
- RouterSolicitation:
Code: 0 (0x0)
Checksum: 19232 (0x4B20)
Reserved: 0 (0x0)
- SourceLinkLayerAddress:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-B0-D0-11-22-33
29/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Router Advertisement
Router wysyła komunikat Router Advertisement w określonych chwilach czasu
lub w odpowiedzi na komunikat Router Solicitation
. Komunikat wysyłany jest w
celu przekazania parametrów łącza, jak prefiksy, czy wartość MTU.
Tabela.
Dostępne opcje dla komunikatu Router Advertisement
Typ
Specyfikacja
Source Link-Layer
Address
Adres źródłowy warstwy łącza danych nadawcy komunikatu. Opcja ta nie może być dołączana,
jeżeli adres źródłowy jest nieokreślony. Routery mogą pominąć tą opcję w celu umożliwienia
dzielenia danych wchodzących pomiędzy wiele interfejsów sieciowych.
MTU
Wartość używana tylko w przypadku łączy o zmiennej wartości MTU.
Prefix Information
Zawiera prefiksy, które są używane na danym łączu lub/i do autokonfiguracji adresów. Routery
wyszczególniają wszystkie prefiksy na danym łączu (za wyjątkiem prefiksu lokalnego łącza),
dlatego hosty o wielu łączach (ang. multihomed hosts) mają pełną informację o prefiksach na
poszczególnych łączach, do których są podłączone.
30/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Router Advertisement
Pole
Przeznaczenia pola oraz wartość pola
Typ
8-bitowe pole. Ma wartość 134
Kod
8-bitowe pole. Ma wartość 0
Suma kontrolna
Suma kontrolna ICMPv6
Cur Hop Limit
8-bitowa liczba bez znaku. Oznacza bieżący limit liczby etapów. Wartość domyślna, która powinna być w
polu Limit skoków nagłówka wychodzącego datagramu IP. Wartość 0 oznacza wartość nieokreśloną przez
router.
M
1-bitowa flaga (Managed Address Configuration). Wartość 1 oznacza, iż wybrana została zarządzalna
autokonfiguracja adresów (w trybie statefull).
O
1-bitowa flaga (Other Statefull Configuration). Wartość 1 oznacza, iż host musi wykorzystać opcje
rozgłaszane przez ten komunikat w celu konfiguracji innych parametrów niż adres.
H
1-bitowa flaga (Home Agent). Wykorzystywane przez mobile IPv6. Więcej informacji w RFC 3775
Default Router
Preference (DRP)
Elementy zdefiniowane w RFC 4191. Wybór preferencji danego routera. 01 (High – preferencja wysoka ), 00
(Medium – preferencja średnia), 11 (Low – preferencja niska).
Zarezerwowane
3-bitowe pole. Niewykorzystywane, musi być inicjowane przez nadawcę zerami a ignorowane przez odbiorcę.
Router Lifetime
16-bitowa liczba bez znaku określa czas życia routera domyślnego w sekundach. Maksymalna wartość
odpowiada 18,2 godzinom. Wartość 0 oznacza, że router nie jest routerem domyślnym i nie powinien pojawić
się na liście routerów domyślnych, nie tyczy się to informacji w pozostałych polach czy opcjach. Opcje, które
wymagają limitów czasowych posiadają odpowiednie własne pola.
Reachable Time
32-bitowa liczba bez znaku określa (w milisekundach) okres czasu, przez jaki zakłada się, że sąsiad jest
osiągalny. Jest on liczony od chwili otrzymania potwierdzenia osiągalności. Parametr ten jest używany prze
algorytm detekcji nieosiągalności sąsiadów. Wartość zero oznacza wartość nieokreśloną przez dany router.
Retrans Timer
32-bitowa liczba bez znaku określa (w milisekundach) odstęp czasu pomiędzy retransmisjami komunikatu
Neighbor Solicitation. Wartość zero oznacza wartość nieokreśloną przez dany router.
Tabela . Znaczenie pól nagłówka
31/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Router Advertisement
Przykład. Wykorzystanie komunikatu Router Adventisement
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 96
- Icmpv6:
Router Advertisement
MessageType: Router Advertisement, 134(0x86)
- RouterAdvertisement:
Code: 0 (0x0)
Checksum: 8095 (0x1F9F)
CurHopLimit: 0 (0x0)
- RouterAdvertisementFlag:
M: (0.......) Not managed address configuration
O: (.0......) Not other stateful configuration
A: (..0.....) Not a Mobile IP Home Agent
RouterPreference: (...00...) Medium,0(0x0)
Reserved: (.....000)
RouterLifetime: 0 (0x0)
ReachableTime: 0 (0x0)
RetransTimer: 0 (0x0)
+ SourceLinkLayerAddress:
+ MTU:
+ PrefixInformation:
+ PrefixInformation:
32/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Neighbor Solicitation
Węzły przesyłają komunikaty Neighbor Solicitation jako prośbę o adres
warstwy łącza danych adresata, dostarczając jednocześnie adresatowi swój
adres warstwy łącza danych. Komunikaty te wysyłane są na adres multicastowy,
gdy węzeł nie posiada adresu warstwy łącza danych adresata, lub na adres
unicastowy, gdy chce zbadać dostępność adresata.
Pole
Przeznaczenia pola oraz wartość pola
Typ
8-bitowe pole. Ma wartość 135
Kod
8-bitowe pole. Ma wartość 0
Suma kontrolna
Suma kontrolna ICMPv6.
Zarezerwowane
Pole niewykorzystywane, musi być inicjowane przez nadawcę zerami a
ignorowane przez odbiorcę.
Znaczenie pól nagłówka ICMPv6
33/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Neighbor Solicitation
Tabela.
Dostępne opcje dla komunikatu Neighbor Solicitation
Typ
Specyfikacja
Source Link-
Layer Address
Adres źródłowy warstwy łącza danych nadawcy komunikatu. Opcja
ta nie może być dołączana, jeżeli adres źródłowy jest nieokreślony.
Dla poszukiwania adresów multicastowych opcja ta jest wymagana,
ale można ją zastosować także do poszukiwania adresów
unicastowych.
Przykład. Wykorzystanie komunikatu
Neighbor Solicitation
Frame:
- Ethernet: Etype = IPv6
+ DestinationAddress: 3333FF 112233
+ SourceAddress: 00105A BB120A2
EthernetType: IPv6, 34525(0x86dd)
- Ipv6: Next Protocol = ICMPv6, Payload Length = 32
+ Versions: IPv6, Internet Protocol, DSCP 0
PayloadLength: 32 (0x20)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 255 (0xFF)
SourceAddress: FE80:0:0:0:210:5AFF:FEAA:20A2
DestinationAddress: FF02:0:0:0:0:1:FF11:2233
- Icmpv6:
Neighbor Solicitation
, Target = FE80:0:0:0:260:97FF:FE11:2233
MessageType: Neighbor Solicitation, 135(0x87)
- NeighborSolicitation:
Code: 0 (0x0)
Checksum: 3893 (0xF35)
Reserved: 0 (0x0)
TargetAddress: FE80:0:0:0:260:97FF:FE11:2233
-
SourceLinkLayerAddress
:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-10-5A-BB-12-A2
34/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Neighbor Advertisement
Węzeł wysyła komunikat Neighbor Advertisement w odpowiedzi na komunikat
Neighbor Solicitation
, aby szybko propagować informację o sąsiadach.
Tabela.
Dostępne opcje dla komunikatu Neighbor Advertisement
Typ
Specyfikacja
Target Link-
layer
Adres warstwy łącza danych celu, tj. twórcy rozgłoszenia lub adres
odpowiedzi.
35/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Neighbor Advertisement
Tabela.
Znaczenie pól ICMPv6
Pole
Przeznaczenia pola oraz wartość pola
Typ
8-bitowe pole. Ma wartość 136
Kod
8-bitowe pole. Ma wartość 0
Suma kontrolna
Suma kontrolna ICMPv6.
R
1-bitowa flaga routera (ang. Router flag). Ustawiona wskazuje, że nadawca jest routerem. Bit R
używany jest przez algorytm detekcji nieosiągalności sąsiada do identyfikacji routera, który zmienił
swoją funkcję na hosta.
S
1-bitowa flaga wymuszenia (ang. Solicited flag). Ustawiona oznacza, że odpowiedź, ogłoszenie
zostało przesłane w odpowiedzi na komunikat Neighbor Solicitation. Bit S używany jest do
potwierdzenia osiągalności dla algorytmu detekcji nieosiągalności sąsiada. Nie może być ustawiona w
rozgłoszeniach multicastowych i w rozgłoszeniach unicastowych niewymuszonych.
O
1-bitowa flaga unieważnienia (ang. Override flag). Ustawiona wskazuje, że rozgłoszenie powinno
unieważnić pozycje w pamięci Neighbor cache i zaktualizować znajdujące się tam adresy warstwy
łącza danych. Jeżeli flaga O nie jest ustawiona, adresy warstwy łącza danych nie zostaną
zaktualizowane; są jednak aktualizowane pozycje w Neighbor Cache, dla których nieznany jest adres
warstwy łącza danych. Flaga nie powinna być ustawiana w rozgłoszeniach wymuszonych dla adresów
anycastowych i wymuszonych rozgłoszeniach Proxy.
Zarezerwowane
29-bitowe pole. Niewykorzystywane, musi być inicjowane przez nadawcę zerami a ignorowane przez
odbiorcę.
Target Address
Dla rozgłoszeń wymuszonych pole Adres docelowy z komunikatu Neighbor Solicitation, który wywołał
komunikat. Dla rozgłoszeń niewymuszonych: jest to adres warstwy łącza danych, który się zmienił.
Adres docelowy nie może być adresem multicastowym.
36/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Neighbor Advertisement
Przykład. Wykorzystanie komunikatu Neighbor Advertisement
Frame:
+ Ethernet: Etype = IPv6
- Ipv6: Next Protocol = ICMPv6, Payload Length = 32
+ Versions: IPv6, Internet Protocol, DSCP 0
PayloadLength: 32 (0x20)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 255 (0xFF)
SourceAddress: FE80:0:0:0:260:97FF:FEAA:BBCC
DestinationAddress: FE80:0:0:0:210:5AFF:FEAA:20A2
- Icmpv6:
Neighbor Advertisement
, Target = FE80:0:0:0:260:97FF:FEAA:BBCC
MessageType: Neighbor Advertisement, 136(0x88)
- NeighborAdvertisement:
Code: 0 (0x0)
Checksum: 35244 (0x89AC)
- NeighborAdvertisementFlag: 1610612736 (0x60000000)
R: (0...............................) Not router
S: (.1..............................) Solicited
O: (..1.............................) Override
Rsv: (...00000000000000000000000000000)
TargetAddress: FE80:0:0:0:260:97FF:FEAA:BBCC
+ TargetLinkLayerAddress:
37/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Redirect
Routery wysyłają komunikaty typu Redirect, żeby informować hosty o lepszym
węźle pierwszego skoku (ang. First-hop) znajdującym się na ścieżce do adresata.
Host może zostać przekierowany do lepszego routera lub może zostać
poinformowany, że adresat jest sąsiadem (przez ustawianie adresu docelowego
(ang. Target Address
) ICMP równego przekierowanemu adresowi przeznaczenia
(ang. Destination Address)).
38/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Redirect
Pole
Przeznaczenia pola oraz wartość pola
Typ
8-bitowe pole. Ma wartość 136
Kod
8-bitowe pole. Ma wartość 0
Suma kontrolna
Suma kontrolna ICMPv6.
Zarezerwowane
Pole niewykorzystywane – musi być inicjowane przez nadawcę zerami a ignorowane przez odbiorcę.
Target Address
Docelowy adres IP lepszego węzła pierwszego kroku, dla komunikatów ICMP. Gdy cel jest aktualnym
końcowym punktem komunikacyjnym, tj. punktem docelowym jest sąsiad, pole Przekierowany adres
przeznaczenia zawiera taką samą wartość jak pole Adres docelowy. W innym przypadku cel jest
routerem pierwszego kroku i Adres docelowy musi jednoznacznie go identyfikować, tj. być adresem
typu link-local.
Przekierowany
Adres
przeznaczenia
Adres IP przeznaczenia (ang. Destination), które jest przekierowywane do celu.
Tabela . Znaczenie pól ICMPv6
Tabela.
Dostępne opcje komunikatu Redirect
Typ
Specyfikacja
Target Link-layer
Address
Adres warstwy łącza danych celu.
Redirect Header
Jak najwięcej danych datagramu IP, który wywołał komunikat Redirect, ale nie więcej niż 1280
bajtów.
39/58
Tajemnice protokołu IPv6
Jacek Światowiak
Komunikat Redirect
Przykład. Wykorzystanie komunikatu Redirect
Frame:
+ Ethernet: Etype = IPv6
+ Ipv6: Next Protocol = ICMPv6, Payload Length = 128
- Icmpv6:
Redirect, Target
= FE80:0:0:0:2B0:D0FF:FEAA:BBCC
MessageType: Redirect, 137(0x89)
- Redirect:
Code: 0 (0x0)
Checksum: 31003 (0x791B)
Reserved: 0 (0x0)
TargetAddress: FE80:0:0:0:2B0:D0FF:FEAA:BBCC
DestAddress: 2001:DB8:0:0:0:0:0:10
- RedirectedHeader:
Type: Redirected Header, 4(0x4)
Length: 11, in unit of 8 octets
Reserved: 0 (0x0)
+ InvokingPacket: Next Protocol = ICMPv6, Payload Length = 40
40/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu odkrywania routera i
prefiksu
Host A ma Ethernetowy adres MAC 00-B0-D0-E9-41-43
Router 1 ma Ethernetowy adres MAC 00-10-FF-D6-58-C0
i odpowiadający mu adres lokalny łącza
FE80::210:FFFF:FED6:58C0.
Aby wysłać pakiet do celu będącego w stanie off-link host A musi dokonać odkrycia obecności routera.
Host A wysyła multicastowy komunikat Router Solicitation na adres FF02::2 jak pokazuje to rysunek.
41/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu odkrywania routera i
prefiksu
Przykład. Przechwycona komunikacja multicastowego komunikatu Router Solicitation
Frame:
- Ethernet: Etype = IPv6
+ DestinationAddress: 333300 000002
+ SourceAddress: 00B0D0 E94143
EthernetType: IPv6, 34525(0x86dd)
- Ipv6: Next Protocol = ICMPv6, Payload Length = 8
+ Versions: IPv6, Internet Protocol, DSCP 0
PayloadLength: 8 (0x8)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 255 (0xFF)
+ SourceAddress: 0:0:0:0:0:0:0:0
DestinationAddress: FF02:0:0:0:0:0:0:2
- Icmpv6:
Router Solicitation
MessageType: Router Solicitation, 133(0x85)
- RouterSolicitation:
Code: 0 (0x0)
Checksum: 31672 (0x7BB8)
Reserved: 0 (0x0)
FF02::2 - link-local scope all-routers multicast address
–
multicastowy lokalny adres łącza wszystkich routerów
42/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu odkrywania routera i
prefiksu
Router 1 mając zarejestrowany multicastowy adres skrócony 33-33-00-00-00-02
powiązany z adresem MAC interfejsu sieciowego, odbierze i przetworzy
komunikat Router Solicitation
. Router 1 odpowie, więc multicastowym
komunikatem Router Advertisement, zgodnie z rysunkiem.
43/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu odkrywania routera i
prefiksu
Przykład. Przechwycona komunikacja multicastowego komunikatu Router Advertisement
Frame:
- Ethernet: Etype = IPv6
+ DestinationAddress: 333300 000001
+ SourceAddress: 0010FF D658C0
EthernetType: IPv6, 34525(0x86dd)
- Ipv6: Next Protocol = ICMPv6, Payload Length = 88
+ Versions: IPv6, Internet Protocol, DSCP 28
PayloadLength: 88 (0x58)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 255 (0xFF)
SourceAddress: FE80:0:0:0:210:FFFF:FED6:58C0
DestinationAddress: FF02:0:0:0:0:0:0:1
- Icmpv6:
Router Advertisement
MessageType: Router Advertisement, 134(0x86)
- RouterAdvertisement:
Code: 0 (0x0)
Checksum: 24725 (0x6095)
CurHopLimit: 64 (0x40)
- RouterAdvertisementFlag:
M: (0.......) Not managed address configuration
O: (.0......) Not other stateful configuration
A: (..0.....) Not a Mobile IP Home Agent
RouterPreference: (...00...) Medium,0(0x0)
Reserved: (.....000)
RouterLifetime: 1800 (0x708)
ReachableTime: 0 (0x0)
RetransTimer: 0 (0x0)
- SourceLinkLayerAddress:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-10-FF-D6-58-C0
FF02::1 link-local scope all-nodes
multicast address
–
multicastowy lokalny
adres łącza
wszystkich
węzłów
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu odkrywania routera i
prefiksu cd…
-
PrefixInformation
:
Type: Prefix Information, 3(0x3)
Length: 4, in unit of 8 octets
PrefixLength: 64 (0x40)
- Flags: 192 (0xC0)
L: (1.......) On-Link determination allowed
A: (.1......) Autonomous address-configuration
R: (..0.....) Not router Address
S: (...0....) Not a site prefix
P: (....0...) Not a router prefix
Rsv: (.....000)
ValidLifetime: 2592000 (0x278D00)
PreferredLifetime: 604800 (0x93A80)
Reserved: 0 (0x0)
Prefix:
2001:DB8:0:F282:0:0:0:0
-
PrefixInformation
:
Type: Prefix Information, 3(0x3)
Length: 4, in unit of 8 octets
PrefixLength: 64 (0x40)
- Flags: 192 (0xC0)
L: (1.......) On-Link determination allowed
A: (.1......) Autonomous address-configuration
R: (..0.....) Not router Address
S: (...0....) Not a site prefix
P: (....0...) Not a router prefix
Rsv: (.....000)
ValidLifetime: 2592000 (0x278D00)
PreferredLifetime: 604800 (0x93A80)
Reserved: 0 (0x0)
Prefix:
FD5A:29F1:D005:F282:0:0:0:0
Należy zwrócić uwagę, iż w komunikacie Router Advertisement
rozgłaszane są dwa prefiksy 2001:DB8:0:F282::/64 oraz
FD5A:29F1:D005:F282::/64. Zarówno dla prefiksu globalnego jak i
unikalnego lokalnego wykorzystywany jest ten sam identyfikator
podsieci (F282).
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu
rozwiązywania adresów
Host A ma adres MAC 00-10-5A-AA-20-A2
i odpowiadający mu adres lokalny łącza
FE80::210:5AFF:FEAA:20A21
Host B ma adres MAC 00-60-97-02-6E-A5
i odpowiadający mu adres lokalny łącza
FE80::260:97FF:FE02:6EA5
Aby wysłać pakiet do hosta B, host A musi wykonać procedurę rozstrzygania
adresu, aby poznać adres warstwy łącza danych hosta B. Bazując na adresie IPv6
hosta B, host A wysyła komunikat Neighbor Solicitation na multicastowy adres
skrócony węzła B: FF02::1:FF02:6EA5 zgodnie z rysunkiem.
46/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu
rozwiązywania adresów
Przykład. Przechwycony multicastowy komunikat Neighbor Solicitation
Frame:
- Ethernet: Etype = IPv6
+ DestinationAddress: 3333FF 026EA5
+ SourceAddress: 00105A AA20A2
EthernetType: IPv6, 34525(0x86dd)
- Ipv6: Next Protocol = ICMPv6, Payload Length = 32
+ Versions: IPv6, Internet Protocol, DSCP 0
PayloadLength: 32 (0x20)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 255 (0xFF)
SourceAddress: FE80:0:0:0:210:5AFF:FEAA:20A2
DestinationAddress: FF02:0:0:0:0:1:FF02:6EA5
- Icmpv6:
Neighbor Solicitation
, Target = FE80:0:0:0:260:97FF:FE02:6EA5
MessageType: Neighbor Solicitation, 135(0x87)
- NeighborSolicitation:
Code: 0 (0x0)
Checksum: 3893 (0xF35)
Reserved: 0 (0x0)
TargetAddress: FE80:0:0:0:260:97FF:FE02:6EA5
- SourceLinkLayerAddress:
Type: Source Link-Layer Address, 1(0x1)
Length: 1, in unit of 8 octets
Address: 00-10-5A-AA-20-A2
47/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu
rozwiązywania adresów
Host B, mając zarejestrowany multicastowy adres skrócony 33-33-FF-02-6E-A5
powiązany z adresem MAC interfejsu sieciowego, odbierze i przetworzy
komunikat Neighbor Solicitation
. Host B odpowie, więc unicastowym
komunikatem Neighbor Advertisement, zgodnie z rysunkiem.
48/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu
rozwiązywania adresów
Przykład. Przechwycony unicastowy komunikat Neighbor Advertisement
Frame:
- Ethernet: Etype = IPv6
+ DestinationAddress: 00105A AA20A2
+ SourceAddress: 00105A 026EA5
EthernetType: IPv6, 34525(0x86dd)
- Ipv6: Next Protocol = ICMPv6, Payload Length = 32
+ Versions: IPv6, Internet Protocol, DSCP 0
PayloadLength: 32 (0x20)
NextProtocol: ICMPv6, 58(0x3a)
HopLimit: 255 (0xFF)
SourceAddress: FE80:0:0:0:260:97FF:FE02:6EA5
DestinationAddress: FE80:0:0:0:210:5AFF:FEAA:20A2
- Icmpv6:
Neighbor Advertisement
, Target = FE80:0:0:0:260:97FF:FE02:6EA5
MessageType: Neighbor Advertisement, 136(0x88)
- NeighborAdvertisement:
Code: 0 (0x0)
Checksum: 35244 (0x89AC)
- NeighborAdvertisementFlag: 1610612736 (0x60000000)
R: (0...............................) Not router
S: (.1..............................) Solicited
O: (..1.............................) Override
Rsv: (...00000000000000000000000000000)
TargetAddress: FE80:0:0:0:260:97FF:FE02:6EA5
- TargetLinkLayerAddress:
Type: Target Link-Layer Address, 2(0x2)
Length: 1, in unit of 8 octets
Address: 00-60-97-02-6E-A5
49/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu przekierowania
Host A wysyła pakiet do będącego w stanie off-link węzła o adresie
FEC0::2:2AA:FF:FE99:9999
(nie pokazany na rysunku), wykorzystując router 1
jako domyślny router. Jednak zakładamy, że router 2 byłby lepszym rozwiązaniem.
50/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu przekierowania
Router 1 odbierze datagram od hosta A i „zauważy”, że jest on jego sąsiadem.
Dodatkowo host A oraz adres pierwszego skoku są również na tym samym łączu.
Na podstawie tabeli routingu router 1, przekieruje unicastowy pakiet do routera 2,
jak to pokazano na rysunku.
51/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład procesu przekierowania
Aby poinformować host A, że prawidłową trasą do adresu
FEC0::2:2AA:FF:FE99:9999
, jest trasa przez router 2, router 1 wyśle komunikat
Redirect
do hosta A informujący go o tym.
52/58
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład praktyczny
Rozwiązywanie nazw
DNS
– Domain Name System (RFC
LLMNR
– Link Local Multicast Name
Resolution
Przykład
53/58
Tajemnice protokołu IPv6
Jacek Światowiak
Dokumenty na których się opieramy:
Podstawy protokołu DNS zostały opisane w 1982 roku w dokumencie –
RFC 819 przez Jona Postela i Zaw-Sing Su. Dokumenty z 1983 r.
– RFC
882 i RFC 883
były oficjalną specyfikacją DNS aż do roku 1989. Nowa,
aktualna specyfikacja DNS jest zawarta w RFC 1034 i RFC 1035.
Link-Local Multicast Name Resolution (LLMNR) - RFC 4795
– styczeń
2007
Przykład
54/58
Tajemnice protokołu IPv6
Jacek Światowiak
Zmiana zapytań do serwerów DNS po IPv6 – przeglądarki
internetowe
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servic
es\Dnscache\Parameters
Dodać DWORD
AddrConfigControl = 0
Dla Firefox
about:config
network.dns.disableIPv6
– ustawićna false
Przykład
55/58
Tajemnice protokołu IPv6
Jacek Światowiak
IPv6 a interfejsy
– klucz typu DWORD
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
\DisabledComponents
Przykład
56/58
Ustawiony bit
Objaśnienie
Bit 0
Ustawienie wartości 1 – wyłącza wszystkie interfejsy tunelowe IPv6 (ISATAP, 6to4, oraz Teredo
Bit 1
Ustawienie wartości 1 – wyłącza wszystkie interfejsy tunelowe IPv6 6to4
Bit 2
Ustawienie wartości 1 – wyłącza wszystkie interfejsy tunelowe IPv6 ISATAP
Bit 3
Ustawienie wartości 1 – wyłącza wszystkie interfejsy tunelowe IPv6 Teredo
Bit 4
Ustawienie wartości 1 – wyłącza obsługę IPv6 na wszystkie interfejsach nie tunelowych, czyli interfejsach
LAN oraz PPP.
Bit 5
Ustawienie wartości 1 – Włącza preferencję protokołu IPv4 przed IPv6
Wartość klucza DisabledComponents
Objaśnienie
0x1
Wyłącza wszystkie interfejsy tunelowe
0x2
Wyłącza 6to4
0x4
Wyłącza ISATAP
0x8
Wyłącza Teredo
0xA
Wyłącza Teredo i 6to4
0x10
Wyłącza IPv6 w sieciach LAN i interfejsach PPP
0x11
Wyłącza IPv6 w sieciach LAN, interfejsach PPP oraz tunelach
0x20
Włącza preferencję protokołu IPv4 przed IPv6
0xFF
Wyłącza całkowicie obsługę IPv6, co skutkuje obsługą wyłącznie IPv4.
Tajemnice protokołu IPv6
Jacek Światowiak
Przykład
57/58
Dodamy serwer DNS na SRV1 dla domeny test.local oraz domen odwrotnych dla
podsieci: 192.168.1.X, 192.168.2.X, 192.168.3.X
oraz prefiksów IPv6 2001:db8:1::,2:: i 3::
Tajemnice protokołu IPv6
Jacek Światowiak
Dziękuję za uwagę…
W następnej części: mechanizmy autokonfiguracji