Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

Podobne dokumenty
Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Sieci Komputerowe. Protokół ICMP - Internet Control Message Protocol Protokół ICMP version 6. dr Zbigniew Lipiński

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Warstwa sieciowa. mgr inż. Krzysztof Szałajko

Sieci komputerowe - administracja

Laboratorium 6.7.2: Śledzenie pakietów ICMP

MODEL OSI A INTERNET

ZiMSK. Routing statyczny, ICMP 1

Określanie konfiguracji TCP/IP

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Instrukcja 5 - Zastosowania protokołu ICMP

Przesyłania danych przez protokół TCP/IP

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Protokoły sieciowe - TCP/IP

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Sieci komputerowe - Protokoły wspierające IPv4

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

ARP Address Resolution Protocol (RFC 826)

Internet Control Messaging Protocol

Adresy w sieciach komputerowych

Architektura INTERNET

ADRESY PRYWATNE W IPv4

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

TCP/IP formaty ramek, datagramów, pakietów...

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

polega na opakowaniu danych - w każdej warstwie modelu OSI, kolejno idąc z góry na dół - w konieczne nagłówki/stopki odpowiednich protokołów

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Protokoły wspomagające. Mikołaj Leszczuk

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

1 Moduł Diagnostyki Sieci

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Dlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Porównanie protokołów IPv4 i IPv6

Vladimir vovcia Mitiouchev icmp blind attacks Oparto o draft-gont-tcpm-icmp-attacks-04 (Fernando Gont)

Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe.

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

TCP/IP (Transmission Control Protocol / Internet Protocol) komunikacji otwartej stosem protokołów

Protokół ICMP. Autor: Grzegorz Burgiel 4FDS

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Sieci komputerowe Warstwa transportowa

Rodzina protokołów TCP/IP

Laboratorium - Wykorzystanie programu Wireskark do badania ramek Ethernetowych

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe

Stos TCP/IP Warstwa Internetu. Sieci komputerowe Wykład 4

Podstawy działania sieci komputerowych

dostępu do okręslonej usługi odbywa się na podstawie tego adresu dostaniemu inie uprawniony dostep

Konfiguracja sieci, podstawy protokołów IP, TCP, UDP, rodzaje transmisji w sieciach teleinformatycznych

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Sieci komputerowe - adresacja internetowa

Akademia Górniczo-Hutnicza im. Stanisława Staszica

Laboratorium 6.7.1: Ping i Traceroute

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Bazy Danych i Usługi Sieciowe

Omówienie TCP/IP. Historia

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Połączenie sieci w intersieci ( internet ) Intersieci oparte o IP Internet

Plan wykładu. Wyznaczanie tras. Podsieci liczba urządzeń w klasie C. Funkcje warstwy sieciowej

Charakterystyka grupy protokołów TCP/IP

Narzędzia diagnostyczne protokołów TCP/IP

Bezpieczeństwo w M875

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

Router programowy z firewallem oparty o iptables

Protokoły sterujące i warstwy aplikacji. Protokół kontrolny ICMP Internet Control Message Protocol Protokoły inicjowania i konfiguracji hostów

ZiMSK NAT, PAT, ACL 1

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Programowanie sieciowe

1. Informacje ogólne: 2. Standardy TCP/IP. 2.1 Adresowanie IPv4

PORADNIKI. Routery i Sieci

Warstwa sieciowa rutowanie

Laboratorium Sieci Komputerowych - 2

WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU BIAŁYSTOK, ul. Ciepła 40 filia w EŁKU, ul. Grunwaldzka

Sieci komputerowe W4. Warstwa sieciowa Modelu OSI

Laboratorium - Przeglądanie tablic routingu hosta

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Warstwa sieciowa w Internecie

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Sieci komputerowe. Router. Router

Sieci Komputerowe. Protokół IPv4 - Internet Protocol ver.4 Protokół IP ver.6. dr Zbigniew Lipiński

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6...

OSI Network Layer. Network Fundamentals Chapter 5. ITE PC v4.0 Chapter Cisco Systems, Inc. All rights reserved.

Sieci komputerowe Warstwa sieci i warstwa transportowa

Adresowanie grupowe. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 25 kwietnia 2006

Transkrypt:

Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

Czym jest ICMP? Protokół ICMP jest protokołem działającym w warstwie sieciowej i stanowi integralną część protokołu internetowego IP, a raczej jest z nim ściśle związany. ICMP jest opakowywany w datagram protokołu IP, choć został zaprojektowany jako odrębny protokół. Zadaniem ICMP jest sygnalizowanie zaistniałych błędów podczas dostarczania datagramów IP w komunikacji host-to-host. ICMP został zdefiniowany w RFC-792 (IPv4) Łukasz Trzciałkowski 2

Kiedy wysyłany jest komunikat ICMP? Komunikaty protokołu ICMP są zwykle przesyłane automatycznie w następujących sytuacjach: Datagram IP nie dociera do miejsca docelowego. Nie można przesyłać dalej datagramów za pomocą routera IP (bramy) przy bieżącej szybkości transmisji. Router IP przekierowuje hosta wysyłającego dane na lepszą trasę wiodącą do miejsca docelowego. Łukasz Trzciałkowski 3

Budowa komunikatu ICMP Nagłówki ICMP nie mają jednolitej struktury, ich zawartość zależy od dwu 8-bitowych pól: typ komunikatu kod komunikatu danego typu Na podstawie pierwszych 8-bajtów pakietu obliczana jest jeszcze 16-bitowa suma kontrolna. 0 8 16 32 TYP Dane KOD SUMA KONTROLNA Łukasz Trzciałkowski 4

Typy komunikatów ICMP (typ) PYTANIE / ODPOWIEDŹ Echo request/reply (8/0) Timestamp request/reply (13/14) Information request/reply (15/16) Address mask request/reply (17/18) Router solicitation/advertisement (10/9) BŁĘDY Destination Unreachable (3) Time exceeded (11) Parameter problem (12) Source Quench (4) Redirect (5) Łukasz Trzciałkowski 5

ZAPYTANIA I ODPOWIEDZI komunikaty zapytań i odpowiedzi

Echo request/reply 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Identifier Sequence Number Data... +-+-+-+-+- Type typ komunikatu = 8 lub 0 Code podtyp komunikatu, uszczegółowienie typu = 0 Checksum suma kontrolna nagłówka Identifier identyfikator, służy do odróżniania pakietów ICMP wysyłanych do różnych hostów Sequence number numer sekwencyjny służy do odróżniania pakietów ICMP wysyłanych do tego samego hosta Data dane w zależności od typu komunikatu Łukasz Trzciałkowski 7

Echo request/reply Echo służy do stwierdzania czy dany host jest podłączony do sieci lub czy jest właczony. Komunikat musi wrócić jedynie ze zmienionym typem na 0. Treść komunikatu nie może ulec zmianie. Identyfikator może być użyty jako port TCP lub UDP w celu identyfikacji sesji. Numer Sekwencyjny może być zwiększony o jeden przy każdorazowym zapytaniu hosta o ECHO. Łukasz Trzciałkowski 8

Timestamp request/reply 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Identifier Sequence Number Originate Timestamp Receive Timestamp Transmit Timestamp Komunikat używany do sprawdzania sprawności sieci oraz badania czasu przetwarzania pakietów oraz opóźnień w ich przesyłaniu Łukasz Trzciałkowski 9

Timestamp request/reply Type typ komunikatu = 13 lub 14 Code podtyp komunikatu, uszczegółowienie typu = 0 Checksum suma kontrolna nagłówka Identifier identyfikator, służy do odróżniania pakietów ICMP wysyłanych do różnych hostów Sequence number numer sekwencyjny służy do odróżniania pakietów ICMP wysyłanych do tego samego hosta. Originate Timestamp czas wysłania komunikatu przez nadawcę Receive Timestamp czas odebrania komunikatu przez odbiorcę Transmit Timestamp czas odesłania komunikatu nadawcy Łukasz Trzciałkowski 10

Information request/reply 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Identifier Sequence Number Typ = 15 lub 16 Kod = 0 Komunikat służył stacjom bezdyskowym do otrzymywania informacji o własnym adresie IP. Mechanizm ten jest przestarzały i nie używany. Lepszym rozwiązaniem jest RARP, BOOTP, DHCP. Łukasz Trzciałkowski 11

Address Mask request/reply 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Identifier Sequence Number Address Mask Typ = 17 lub 18 Kod = 0 Komunikat służy stacjom bezdyskowym do otrzymania maski podsieci. Tak jak i w poprzednim przypadku lepszym rozwiązaniem są BOOTP i DHCP. Łukasz Trzciałkowski 12

Router Solicitation/ Advertisment Typ = 10 lub 9 Kod = 0 Komunikat Router Solicitation jest używany przy starcie komputera w celu znalezienia bramy. Routery co pewien czas ogłaszają się komunikatami Router Advertisment (broadcast) w celu powiadomienia innych o swoim istnieniu w odstepach 5-10 minutowych. Ogłoszenie ma ważność 30 i powinno być odnawiane. Łukasz Trzciałkowski 13

BŁĘDY komunikaty błędów

Destination Unreachable 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum unused Internet Header + 64 bits of Original Data Datagram Unused ignorowana i nie używana część komunikatu Internet Header + 64 bits... - nagłówk IP pakietu na który odsyłamy błąd oraz pierwsze 64 bity nagłówka wyższego protokołu, jeśli protokół wyższej warstwy używa portów, zakładamy, że numery portów będą ujęte w tych danych. Dane te służą do określenia procesu któremu należy przekazać błąd. Typ = 3 Kod = 1 15 Łukasz Trzciałkowski 15

Destination Unreachable (KODY) 0 - net unreachable (sieć nieosiągalna) 1 - host unreachable (host nieosiągalny) 2 - protocol unreachable (protokół nieosiągalny) 3 - port unreachable (port nieosiągalny) 4 - fragmentation needed and DF set (w odpowiedzi na pofragmentowany pakiet z ustawioną flagą don't fragment, sytuacja taka może się zdażyć jeśli pakiet trafi na sieć z mniejszym MTU, wtedy połowa pola unused zawiera MTU) 5 - source route failed (problem z rutingiem w routerze) Łukasz Trzciałkowski 16

Destination Unreachable (KODY) 6 destination network unknown (nieużywany, zamieniony na kod 0) 7 destination host unknown 8 source host isolated (odpowiedź na pakiety których router nie ma forwardować) 9 communication with destination network is administratively prohibited 10 - communication with destination host is administratively prohibited 11 network unreachable for type of service 12 - host unreachable for type of service 13 communication administratively prohibited 14 host precedence violation 15 precedence cutoff in effect Łukasz Trzciałkowski 17

Time Exceeded 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum unused Internet Header + 64 bits of Original Data Datagram Unused ignorowana i nie używana część komunikatu Internet Header + 64 bits... - nagłówk IP pakietu na który odsyłamy błąd oraz pierwsze 64 bity nagłówka wyższego protokołu, jeśli protokół wyższej warstwy używa portów, zakładamy, że numery portów będą ujęte w tych danych. Dane te służą do określenia procesu któremu należy przekazać błąd. Typ = 11 Kod = 0 lub 1 Łukasz Trzciałkowski 18

Time Exceeded (KODY) 0 - time to live exceeded in transit - komunikat zwracany w sytuacji gdy pole TTL w datagramie osiągnie wartość 0 (pakiet ginie) 1 - fragment reassembly time exceeded - komunikat zwracany, gdy adresat nie jest w stanie złożyć ponownie pofragmentowanego pakietu (brak jakiejś części), nie jest wysyłany gdy brakuje części pierwszej (numer 0) Łukasz Trzciałkowski 19

Parameter Problem Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Pointer unused Internet Header + 64 bits of Original Data Datagram Pointer identyfikuje oktet którego dotyczy błąd Jeśli wystąpił problem z nagłówkiem datagramu, który uniemożliwi poprawne przetworzenie go. Następuje odrzucenie datagramu i poinformowanie o tym host źródłowy. Typ = 12 Kod = 0 Łukasz Trzciałkowski 20

Source Quench 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum unused Internet Header + 64 bits of Original Data Datagram Komunikaty (tłumienia źródła) służą do zarządzania pasmem. Router generuje Source Quench gdy bufor kolejki jest przepełniony lub dany host za szybko przysyła pakiety. W takim przypadku serwer odrzuca nadmiar pakietów i informuje hosta aby zwolnił. Typ = 4 Kod = 0 Łukasz Trzciałkowski 21

Redirect Łukasz Trzciałkowski 22

Redirect opis do diagramu Brama wysyła wiadomość przekierowującą (redirect) w następujących sytuacjach: Brama G1 otrzymuje datagram od hosta znajdującego się w tej samej sieci i sprawdza tablicę routingu w celu odnalezienia następnej bramy. Jeśli host i brama G2 są w tej samej sieci, wtedy brama G1 wysyła REDIRECT do hosta aby udał się do bramy G2 jako najkrótszej drogi do celu. Łukasz Trzciałkowski 23

Redirect 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Gateway Internet Address Internet Header + 64 bits of Original Data Datagram TYP: 5 KODY: 0 = Redirect datagrams for the Network. 1 = Redirect datagrams for the Host. 2 = Redirect datagrams for the Type of Service and Network. 3 = Redirect datagrams for the Type of Service and Host. Łukasz Trzciałkowski 24

Kiedy ICMP nie zasygnalizuje? Błąd dotyczy ICMP Błąd jest w pakiecie wysyłanym na broadcast Adresatem nie jest pojedynczy host Adres jest zerowy lub loopback Błąd w ramce wysyłanej na ethernetowy adres rozgłoszeniowy Łukasz Trzciałkowski 25

Uwagi Zasypania lokalnej sieci (lokalnego hosta) dużą ilością komunikatów ICMP nie powinno mieć miejsca Uniemożliwić komputerom spoza sieci lokalnej aby mogły sprawdzać czy lokalne hosty są osiągalne (ping) Ogólnie: Należy stosować filtrowanie ICMP Icmp_echo_ignore_all Icmp_echo_ignore_broadcast Icmp_ratelimit Icmp_ignore_bogus_error_responses Accept_redirect Ping -R / hping / traceroute Łukasz Trzciałkowski 26