Internet Control Message Protocol (ICMP)

Slides:



Advertisements
Podobne prezentacje
Usługi sieciowe Wykład 5 DHCP- debian
Advertisements

Protokoły sieciowe.
Protokoły sieciowe.
Sieci komputerowe Protokół TCP/IP Piotr Górczyński 27/09/2002.
Sieci komputerowe Protokół TCP/IP.
Adresowanie MAC Adresowanie IP Protokół ARP
Krótkie i amatorskie wprowadzenie. Coś musiałem napisać..
ZAPORY SIECIOWE Firewall – ściana fizycznie oddzielająca silnik od pasażerów w samochodzie Sposób zabezpieczenia komputera/sieci przed osobami niepowołanymi.
Model TCP/IP – OSI.
Stream Control Transmission Protocol
Architektura Systemów Komputerowych
Pojęcia sieciowe.
SYSTEMY OPERACYJNE Adresowanie IPv6.
Jarosław Kurek WZIM SGGW
Usługi sieciowe Wykład 5 DHCP- debian Jarosław Kurek WZIM SGGW 1.
Połączenia za pomocą TCP
Autorzy: Damian Dziuba Stanisław Glezner
Monitoring Sieci Narzędzia Sieciowe.
Wrocław DHCP Autorzy: Paweł Obuchowski Paweł Szuba.
Piotr Doskocz Aleksandra Lechki Krzysztof Lewicki
Konfiguracja DHCP i dzielenie łącza
PING: Program używany do diagnozowania połączeń sieciowych.
Komunikaty sterujące zestawu protokołów TCP/IP
Rozwiązywanie problemów z routerem
IP - Routowalny protokół Idea routingu
Protokół IP w sieciach LAN
USŁUGI INTERNETOWE TCP/IP WWW FTP USENET.
Intersieci – protokoły warstwy sieciowej i transportowej TCP/IP - cd.
Protokoły sieciowe.
Protokoły komunikacyjne
POJĘCIA ZWIĄZANE Z SIECIĄ.
Protokół Komunikacyjny
MODEL WARSTWOWY PROTOKOŁY TCP/IP
Adresy komputerów w sieci
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
Realizacja prostej sieci komputerowej
Pojęcia związane z siecią
Wiadomości wstępne o sieciach komputerowych
Sieci komputerowe.
Podstawy działania wybranych usług sieciowych
Wykład III Protokoły ICMP System nazw DNS
Wykład IV Protokoły BOOTP oraz DHCP.
„Wzmacniak , bridge, brama sieciowa: różnice i zastosowanie”
Konfiguracja IP i sieci w Win XP
ADRES IP – unikatowy numer przyporządkowany urządzeniom sieci komputerowych. Adres IPv4 składa się z 32 bitów podzielonych na 4 oktety po 8 bitów każdy.
Temat 10: Komunikacja w sieci
SYSTEMY OPERACYJNE Adresowanie IP cz3.
Adresowanie w sieci komputerowej
Laboratorium systemów operacyjnych
Aplikacje TCP i UDP. Łukasz Zieliński
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Temat 13: Protokoły warstwy sieci
Systemy operacyjne i sieci komputerowe
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Systemy operacyjne i sieci komputerowe
Model OSI.
PODSTAWY SIECI KOMPUTEROWYCH - MODEL ISO/OSI. Modele warstwowe a sieci komputerowe Modele sieciowe to schematy funkcjonowania, które ułatwią zrozumienie.
Sieci komputerowe i Internet
Model warstwowy ISO-OSI
Wykład 7 i 8 Na podstawie CCNA Exploration Moduł 5 i 6 – streszczenie
Podział sieci IP na podsieci w ramach CISCO
Adresowanie IPv4. Konfiguracja protokołu TCP/IP Stan i szczegóły połączenia sieciowego.
Radar w Ethernecie Lokalizowanie hostów w sieci LAN Paweł Pokrywka
SIECI KOMPUTEROWE WYKŁAD 5. WARSTWA SIECIOWA
Model TCP/IP Wykład 6.
dr hab. inż. Andrzej Bęben, pok. 336a
Routing statyczny Sieci IP: / /24
Zapis prezentacji:

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

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

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 KOD SUMA KONTROLNA Dane… Łukasz Trzciałkowski

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

ZAPYTANIA I ODPOWIEDZI – komunikaty zapytań i odpowiedzi

Echo request/reply Type – typ komunikatu = 8 lub 0 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

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

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

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

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

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

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

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

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

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

Time Exceeded Unused – ignorowana i nie używana część komunikatu 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

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

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

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

Redirect Łukasz Trzciałkowski

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

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

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

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