WYKŁAD IV
Dr inż. Sławomir Przyłucki
spg@spg51.net
MATERIAŁY: ftp://ftp.spg51.net
User: tsst
Passwd: tsst2011
Idea ruchu multicastowego, adresy klasy D
Protokoły pomocnicze IGMP, ICMP
Protokół IPv6, budowa nagłówka
Struktura adresów
Adresacja global, site, local
Adresacja multicastowa i anycastowa
Adres multicastingowy nie identyfikuje ani konkretnej maszyny, ani
też konkretnej podsieci i nie ma bezpośredniego związku z adresami
IP innych klas identyfikujących dany komputer.
Uwaga: adres 224.0.0.0.0 jest zabroniony
adres 224.0.0.1 określa grupę wszystkich maszyn korzystających
z multicastingu w Internecie (ang. all host group).
R 1
R 2
A
B
C
D
E
F
G
D a t a g r a m m u l t i c a s t i n g o w y
A d r e s I P = 1 1 1 0 + g r u p a m u l t i c a s t i n g u
TRANSMISJA
TRANSMISJA
MULTICASTINGOWA
MULTICASTINGOWA
Pula adresów IP dla multicastingu: 224.0.0.0 do 239.255.255.255
1110
adres grupy multicast
Zestaw hostów nasłuchujących nadejścia datagramu, wysyłanego
pod danym adresem grupy multicast, nazywany jest grupą hostów.
Grupa hostów może obejmować wiele sieci.
Członkowie tej grupy są przydzielani dynamicznie – host może
przyłączyć się do grupy i ją opuścić, kiedy zechce. Nie ma żadnych
ograniczeń liczby hostów w grupie, a hosty nie musza wysyłać
komunikatów do grupy, aby do niej należeć.
Niektóre grupy adresów multicast zatwierdzone są jako dobrze znane
adresy i są nazywane stałymi grupami hostów. Obowiązuje przy tym
zasada, że stały jest adres grupy multicast a nie jej członkowie, którzy
mogą się dynamicznie zmieniać.
ADRESY KLASY D
ADRESY KLASY D
Protokół ICMP (ang. Internet Control Message Protocol) umożliwia
ruterom wysyłanie do innych węzłów komunikatów o błędach i
komunikatów
kontrolnych
–
zapewnia
komunikację
między
oprogramowaniem IP na jednej maszynie a oprogramowaniem IP na innej.
Podobnie jak ruch innego rodzaju, komunikaty ICMP podróżują w
intersieciach w częściach datagramów IP przeznaczonych na dane.
Datagram IP
20 bajtów
Nagłówek IP
Komunikat ICMP
UWAGA: Gdy datagram powoduje błąd, ICMP może jedynie powiadomić
pierwotnego nadawcę o przyczynie. Nadawca musi otrzymaną informację
przekazać danemu programowi użytkownika albo podjąć inne działanie
mające na celu uporanie się z tym problemem.
PROTOKÓŁ ICMP
PROTOKÓŁ ICMP
Komunikaty protokołu ICMP są przesyłane wewnątrz datagramów IP.
Każdy komunikat ma własny format. Jednak wszystkie rozpoczynają
się takimi samymi polami:
Bajty.
1
2
3
4
Typ
Kod
Suma kontrolna
pole typ
- określa jeden z 15 typów komunikatu
pole kod
- opisuje kod błędu
pole suma kontrolna
- zawiera 16-bitowe uzupełnienie słów komunikatu
ICMP.
Dalsze pola zależą od typu komunikatu ICMP.
typ, kod oraz suma kontrolna
PROTOKÓŁ ICMP - cd
PROTOKÓŁ ICMP - cd
Uwaga: komunikaty o błędach ICMP nie są nigdy generowane jako
odpowiedzi na datagram, którego adres źródłowy jest zerowy, jest
adresem loopback, adresem typu brodcast lub multicast lub wysłany pod
adres typu broadcast lub multicast.
KOMUNIKATY ICMP
KOMUNIKATY ICMP
KOMUNIKATY ICMP - cd
KOMUNIKATY ICMP - cd
Nazwa ping jest skrótem od Packet InterNet Groper.
Program ping wysyłający zapytanie o echo nazywany jest klientem, a host,
który jest pingowany, określany jest mianem serwera. Większość
implementacji TCP/IP obsługuje serwer Ping bezpośrednio na poziomie
jądra - serwer nie jest uruchamianym procesem.
UWAGA: Podobnie jak w przypadku innych komunikatów ICMP
zawierających zapytanie, serwer musi odpowiedzieć wykorzystując pola
identyfikator i numer sekwencyjny. Ponadto wszystkie opcjonalne dane
wysłane przez klienta muszą być umieszczone w odpowiedzi. Numer
sekwencyjny rozpoczyna się od 0 i jest zwiększany za każdym razem,
kiedy wysyłane jest kolejne zapytanie o echo. Polecenie ping wyświetla
numer sekwencyjny każdego z powracających pakietów, pozwalając na
stwierdzenie braku pakietów, przemieszania się pakietów lub ich
powielania.
PROGRAM PING
PROGRAM PING
ping ftp.task.gda.pl
Badanie korweta.task.gda.pl [153.19.253.204] z użyciem 32 bajtów danych:
Odpowiedź z 153.19.253.204: bajtów=32 czas=70ms TTL=251
Upłynął limit czasu żądania.
Odpowiedź z 153.19.253.204: bajtów=32 czas=110ms TTL=251
Upłynął limit czasu żądania.
ping kik.pcz.czest.pl
Badanie kik.pcz.czest.pl [195.164.175.66] z użyciem 32 bajtów danych:
Odpowiedź z 195.164.175.66: bajtów=32 czas=1033ms TTL=53
Odpowiedź z 195.164.175.66: bajtów=32 czas=1222ms TTL=53
Odpowiedź z 195.164.175.66: bajtów=32 czas=480ms TTL=53
Odpowiedź z 195.164.175.66: bajtów=32 czas=170ms TTL=53
Statystyka badania dla 195.164.175.66:
Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 (0% utraconych),
Szacunkowy czas błądzenia pakietów w milisekundach:
Minimum = 170ms, Maksimum = 1222ms, Średnia = 726ms
SUKCES
NIEPOWODZENIE
PROGRAM PING - cd
PROGRAM PING - cd
Program ping daje możliwość obejrzenia opcji zapisu trasy IP (ang.
record route — RR).
Wykonanie polecenie ping -R powoduje, że każdy ruter, który obsługuje
datagram, dodaje do pola opcji swój adres IP. Kiedy datagram osiągnie
punkt docelowy, lista adresów IP powinna zostać przekopiowana do
wysyłanej odpowiedzi ICMP. Wszystkie rutery, obsługujące datagram
odpowiedzi, również dodają swoje adresy do tej listy. Kiedy ping odbierze
odpowiedź, wyświetla listę adresów IP.
OPCJA ZAPISU TRASY
OPCJA ZAPISU TRASY
Program Traceroute wykorzystuje pola ICMP i TTL w nagłówku
IP.
Pole TTL (czas życia) jest polem 8-bitowym, które wysyłający
otwiera, nadając mu pewną wartość. Zalecaną wartością
początkową jest 64.
Każdy ruter, który obsługuje datagram na jego trasie w sieci,
musi zmniejszyć tę wartość TTL o liczbę sekund, zazwyczaj
jeden, w czasie których ruter przetrzymuje datagram. Ponieważ
większość ruterów przetrzymuje datagram przez mniej niż jedną
sekundę, pole TTL, zmniejszane za każdym razem o jeden, staje
się dość dokładnym licznikiem przeskoków.
PROGRAM TRACEROUTE
PROGRAM TRACEROUTE
t
racert pingwin.icm.edu.pl
Śledzenie trasy do pingwin.icm.edu.pl [193.219.28.245]
1 <10 ms <10 ms <10 ms defgate.matinf.pcz.czest.pl [195.164.172.65]
2 <10 ms <10 ms <10 ms access.pcz.czest.pl [195.164.172.34]
3 1242 ms 811 ms 631 ms Katowice-gw2-a3.nask.pl [193.59.205.25]
4 1232 ms 701 ms 1052 ms Katowice-gw-s1-4.nask.pl [194.92.0.113]
5 * 2323 ms 1362 ms Warszawa-gw-hssi5-1.nask.pl [193.59.202.50]
6 1192 ms 1141 ms * NIX-r1-atm0-0-5.nask.pl [195.187.0.250]
7 691 ms 281 ms 440 ms nask-icm.icm.edu.pl [148.81.175.250]
8 221 ms 1141 ms 1552 ms pingwin.icm.edu.pl [193.219.28.245]
Śledzenie zakończone.
PROGRAM TRACEROUTE - cd
PROGRAM TRACEROUTE - cd
W normalnych warunkach żaden system nie powinien otrzymać
datagramu z TTL równym 0. Zamiast obsługiwać takie datagramy, host
zwraca je temu hostowi, który był źródłem komunikatu ICMP „time
exceeded".
IPv4 VERSUS IPv6
IP Service
IP Service
IPv4 Solution
IPv4 Solution
IPv6 Solution
IPv6 Solution
Mobile IP with Direct
Routing
Mobile IP
with Direct
Routing
DHCP
DHCP
Mobile IP
Mobile IP
IGMP/PIM/Multicast
BGP
IGMP/PIM/Multicast
BGP
IP Multicast
IP Multicast
MLD/PIM/Multicast
BGP,Scope Identifier
MLD/PIM/Multicast
BGP,
Scope Identifier
Mobility
Mobility
Autoconfiguration
Autoconfiguration
Serverless,
Reconfiguration, DHCP
Serverless,
Reconfiguration
, DHCP
32-bit, Network
Address Translation
32-bit, Network
Address Translation
128-bit, Multiple
Scopes
128-bit, Multiple
Scopes
Addressing Range
Addressing Range
Quality-of-Service
Quality-of-Service
Differentiated Service,
Integrated Service
Differentiated Service,
Integrated Service
Differentiated Service,
Integrated Service
Differentiated Service,
Integrated Service
Security
Security
IPSec Mandated, works
End-to-End
IPSec Mandated,
works
End-to-End
IPSec
IPSec
Pomimo zwiększenia rozmiaru IP w wersji 6, co musiało spowodować
zwiększenie rozmiaru nagłówka, jego format stał się zdecydowanie prostszy.
Podstawowy nagłówek IPv6 ma stały rozmiar równy 40 oktetów, a w
stosunku do nagłówka IPv4 6 z 12 pól zostało usuniętych, pozostałe zostały
poddane modyfikacji a kilka pół dodano całkowicie nowych.
IPv4 VERSUS IPv6
NAGŁÓWEK IPv6
Version Number:
Jest to 4 bitowe pole (znaczenie podobne jak w IPv4).
Traffic Class:
Jest to 8 bitow pole podobne znaczeniem do pola ToS (ang,
type of service ). Traffic Class nadaje pakietowi klasę ruchu, która może być
wykorzystywana przez modele QoS (np. Differentiated Services).
NAGŁÓWEK IPv6 - cd
Flow Label:
Jest to nowe w stosunku do IPv4, 20 bitowe pole. Pole to
pozwala na przypisanie pakietu do określonego strumienia w celu wyróżnienia
go w warstwie 3. Dzięki temu możliwe jest specyficzne przetwarzanie pakietu
przez routery na ścieżce przesyłu.
Payload Length:
Znaczenie tego pola jest podobne do pola Całkowita
Długość (ang.
Total Length) w polu IPv4, pole Payload Length wskazuje
całkowitą długość danych w pakiecie.
NAGŁÓWEK IPv6 - cd
Next Header:
Znaczenie tego pola jest podne do pola Protokół (ang. Protocol
field) w nagłówku IPv4. Wartość tego pola wskazuje typ informacji dołączony za
podstawowym nagłówkiem IPv6. Może to być wartość wskazująca na pakiet
warstwy transportowej, np. TCP lub UDP lub na tzw. Nagłówek Rozszerzony
(ang. Extension Header)
Hop Limit:
Znaczenie ego pola jest podobne do pola Czas Życia (ang. Time to
Live) w nagłówku IPv4. Wartośc pola określa maksymalną liczbę hop-ów na trasie
datagramu IPv6.
NAGŁÓWEK IPv6 - cd
Source Address:
128 bitowy adres IPv6 nadawcy.
Destination Address:
128 bitowy adres Ipv6 odbiorcy.
Należy pamiętać, że w nagłówku IPv6 nie występuje pole Checksum
dzięki czemu modyfikacja nagłówka nie powoduje konieczności
przeliczania pól kontrolnych.
ZMIANY W ADRESACJI IP
zwiększenie wielkości pola adresu IP z 32 do 128 bitów
; dzięki temu
otrzymuje się możliwość polepszenia ''hierarchii adresowej'', zwiększenia
liczby adresów dla węzłów sieci i uproszczenie auto-konfiguracji adresów.
IPv4
32 bity = 4,294,967,296 możliwych do zaadresowania urządzeń
IPv6
128 bity: 4 razy większy rozmiar bitowy
= 3.4 x 10
38
możliwych do zaadresowania urządzeń
= 340,282,366,920,938,463,463,374,607,431,768,211,456
∼ 5 x 10
28
adresów dla kazdej osoby na ziemi
ADRESACJA IPv6
Adres multicast
identyfikuje grupę interfejsów tak, że pakiet
wysłany na adres multicastowy trafi do wszystkich członków grupy.
Adresy IPv6 są liczbami 128-bitowymi i stanowią identyfikatory dla
poszczególnych interfejsów lub zestawów interfejsów.
Adresy są przydzielane do interfejsów, a nie do węzłów sieci.
Istnieją trzy typy adresów IPv6:
unicast, anycast , multicast.
Adres unicast
identyfikuje pojedynczy interfejs.
Adres anycast
identyfikuje grupę interfejsów tak, że pakiet wysłany na
adres anycastowy trafi do jednego z interfejsów z grupy.
W IPv6 nie ma adresów broadcastowych.
FORMAT ADRESÓW IPv6
Preferowana forma
x:x:x:x:x:x:x:x, gdzie ''x'' jest jedną z ośmiu liczb 16-
bitowych zapisanych w postaci szesnastkowej, np.
FEDC:BA98:7654:3201:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:417A
O rodzaju adresu decyduje początkowy układ bitów , tzw.
Format Prefic FP
uzupełniony o prefiks sieciowy :
TEKSTOWA INTERPRETACJA
ADRESÓW IPv6
Skrócona forma
- dla uproszczenia zapisywania adresów
zawierających długie łańcuchy zer wprowadzono skrót: ''::'', oznaczający
pojawienie się kilku, następujących po sobie 16-bitowych zer. Znak ''::''
może wystąpić tylko raz w zapisie adresu,np.
1080:0:0:0:8:800:200C:417A adres unicastowy
FF01:0:0:0:0:0:0:43 adres multicastowy
0:0:0:0:0:0:0:1 adres loopback
0:0:0:0:0:0:0:0 adres “nieokreślony
można zapisać jako:
1080::8:800:200C:417A
FF01::43
::1
::
Zapis adresu w formacie URL:
PODSTAWOWY SCHEMAT ADRESU
UNICAST IPv6
Przestrzeń adresowa IPv6 jest alokowana przez 5 RIRs:
AfriNIC, APNIC, ARIN, LACNIC, RIPE NCC
ISP otrzymuje przestrzeń adresową od właściwego RIRa
Lokalni operatorzy sieciowi (ang. Enterprises) otrzymują przestrzeń
adresową IPv6 od właściwego ISP
•
Dla tuneli 6to4 zarezetwowano pule 2002::/16
PODSTAWOWY SCHEMAT ADRESU
UNICAST IPv6 - cd
Proces przyznawania adresów IPv6 wygląda następująco:
Organizacja IANA wydzieliła przestrzeń 2000::/3 dla poczatkowego
wykorzystania w ruchu unicast
RIR posiada pule /12 i wydziela z niej pule z prefiksem /32 prefix (lub
większym) dla poszczególnych IPv6 ISP
Każdy z ISP może zalokować pule prefiksów /48 dla swoich końcowych
odbiorców
INTERFACE ID
Najmłodsze 64 bity adresu unicastowego mogą być określone na
kilka poniższych sposobów:
auto-konfiguracja na podstawie 64-bitowego EUI-64 (poprzez rozwinięcie
adresu MAC)
auto-generacja na podstawie generatora liczb losowych
przypisanie poprzez DHCP
konfiguracja ręczna (administratora sieci)
INTERFACE ID – TWORZENIE EUI-64
Adres EUI-64 jest tworzony poprzez wstawienie FFFE oraz operacje
OR z bitem okeślającym unikalność adresu MAC
KLASY ADRESÓW: UNICAST GLOBAL
Res –
Wielkość segmentu wynosi 8 bitów. Bity zarezerwowane dla
przyszłego poszerzania wielkości TLA ID lub NLA ID.
TLA ID – Top-Level Aggregation Identifier.
Wielkość segmentu wynosi
13 bitów. TLA ID identyfikuje najwyższy poziom w hierarchii routowania.
ID typu TLA administrowane są przez IANA, są zarezerwowane dla
największych dostawców Internetu.
KLASY ADRESÓW: UNICAST GLOBAL - cd
NLA ID – Next-Level Aggregation Identifier.
Wielkość segmentu wynosi
24 bity. NLA ID używany jest do identyfikowania adresów klienckich.
SLA ID – Site-Level Aggregation Identifier.
Wielkość segmentu wynosi
16 bitów. SLA ID używany jest przez indywidualne sieci klienckie w celu
identyfikacji podsieci w ich obrębie.
KLASY ADRESÓW: UNICAST LINK LOCAL
Adres link-local jest elementem struktury Neighbor Discovery i zawsze
konfiguruje się automatycznie, nawet w przypadku braku wszelkich
innych adresów emisji pojedynczej.
Adresy link-local zawsze zaczynają sie od FE80.
Router IPv6 nigdy nie przekazuje ruchu link-local poza łącze.
KLASY ADRESÓW: UNICAST SITE LOCAL
Adres globalny oraz adres site-local posiadają identyczną strukturę za
pierwszymi 48 bitami adresu. W adresach globalnych SLA ID identyfikuje
podsieci w obrębie danej organizacji. W przypadku adresów site-local ID
podsieci (Subnet ID) pełni tą samą funkcję. Z tego powodu możliwe jest
utworzenie podsieciowej infrastruktury używanej zarówno przez adresy
site-local jak i globalne.
Adresy site-local nie są osiagalne z innych sieci i nie są routowane do
Internetu.
Adresy site-local są odpowiednikami prywatnych adresów IPv4
ADRESY MULTICASTOWE
Znaczniki (ang. Flags):
Wskazują
znaczniki
ustawione
w
adresie
grupowym. Wielkość tego segmentu
wynosi 4 bity. Zgodnie z RFC 2373,
jedynym zdefiniowanym znacznikiem
jest Transient (T). Ustawiony na 0,
znacznik T sygnalizuje iż adres
grupowy jest na stałe przypisanym
(dobrze znany) adresem grupowym
ustalonym przez IANA. Ustawiony na 1,
wskazuje
tymczasowość
przydzielonego adresu grupowego.
ADRESY MULTICASTOWE - cd
W celu identyfikacji węzłów dla zakresów node-local i link-local,
zdefiniowano następujące adresy:
FF01::1 (wszystkie węzły z zakresu node-local)
FF02::1 (wszystkie węzły z zakresu link-local)
W celu identyfikacji wszystkich routerów dla zakresów node-local, link-
local, oraz site-local zdefiniowano następujące adresy:
FF01::2 (wszystkie routery z zakresu node-local)
FF02::2 (wszystkie routery z zakresu link-local)
FF05::2 (wszystkie routery z zakresu site-local)
ADRESY ANYCASTOWE
Adres emisji dowolnej (ang. anycast)
przypisany jest do wielu
interfejsów. Pakiety zaadresowane na adres emisji dowolnej są
przesyłane przez infrastrukturę routującą do najbliższego interfejsu
do którego jest przypisany adres emisji dowolnej.
ADRESY IPv6 - PODSUMOWANIE
Host IPv6 jest przypisany jest do następujących adresów emisji
pojedynczej:
Adres link-local dla każdego interfejsu,
Adres site-local oraz jeden bądź wiele adresów global,
Adresy zwrotne (::1)
Oprócz tego, każdy z hostów nasłuchuje na następujących adresach
multiemisji (opisanych powyżej):
Adres multiemisji wszystkich węzłów z zakresu node-local (FF01::1),
Adres multiemisji wszystkich węzłów z zakresu link-local (FF02::1),
Adres węzła wywoływanego (ang. solicited-node) dla każdego adresu
emisji pojedynczej i każdego interfejsu,
Adres multiemisji dla grup, do których przystąpiono.