Teoria sieci komputerowych Wybrane protokoły sieciowe ARP, ICMP, DNS, DHCP, HTTP Rafał Wojciechowski
Protokół ARP Protokół ICMP Protokół ARP ARP ARP(ang. Address Resolution Protocol)- protokół komunikacyjny przekształcania adresów logicznych IP(ustalanych autorytarnie przez administratora) na fizyczne, 48-bitowe adresy fizyczne MAC w obrębie jednego segmentu sieci lokalnej. Specyfikacja w RFC 826
Protokół ARP Protokół ICMP Protokół ARP Adresacja fizyczna wykorzystywana jest w obrębie jednego segmentu sieci lokalnej i zachodzi w warstwie łącza danych Mechanizm pozyskiwania adresu MAC na podstawie adresu IP hosta, z którym ma zachodzić komunikacja protokół ARP Powiązania między adresami logicznymi a fizycznymi przechowywane są w tablicy ARP. Jeśli wpis dotyczący konkretnego hosta nie występuje, konieczne jest odpytanie go o adres fizyczny
Protokół ARP Protokół ICMP Nagłówek warstwy drugiej oraz trzeciej
Protokół ARP Protokół ICMP Funkcjonowanie ARP
Protokół ARP Protokół ICMP Format komunikatu ARP
Protokół ARP Protokół ICMP ARP Request
Protokół ARP Protokół ICMP ARP Reply
Protokół ARP Protokół ICMP Zarządzanie ARP Tablica ARP: arp-a arp-s[adres logiczny IP][Adres fizyczny MAC]
Protokół ARP Protokół ICMP Maninthemiddle
Protokół ARP Protokół ICMP Maninthemiddle Atakujący echo 1 >/proc/sys/net/ipv4/ip_forward arpspoof-t[adres bramy][adres ofiary]\ -i[nazwa interfejsu] arpspoof-t[adres ofiary][adres bramy]\ -i[nazwa interfejsu] dsniff-c
Protokół ARP Protokół ICMP ARP spoofing
Protokół ARP Protokół ICMP Protokół ICMP Protokół IP stanowi zawodną metodę przesyłania danych przez sieć( best-effort delivery) i nie posiada żadnych procedur zapewniających dostarczenie danych w sytuacji problemów z komunikacją sieciową oraz mechanizmów powiadamiania nadawcy o zaistnieniu w/w sytuacji
Protokół ARP Protokół ICMP Protokół ICMP Problem: Jeśli awarii ulegnie urządzenie pośredniczące lub jeśli urządzenie docelowe zostanie odłączone od sieci, dane nie zostaną dostarczone i nadawca nie zostanie powiadomiony o zaistniałej sytuacji Rozwiązanie: Wprowadzenie protokołu zapewniającego mechanizmy powiadomień strony nadawczej o zaistniałym problemie w dostarczeniu
Protokół ARP Protokół ICMP Protokół ICMP Problem: Jeśli awarii ulegnie urządzenie pośredniczące lub jeśli urządzenie docelowe zostanie odłączone od sieci, dane nie zostaną dostarczone i nadawca nie zostanie powiadomiony o zaistniałej sytuacji Rozwiązanie: Wprowadzenie protokołu zapewniającego mechanizmy powiadomień strony nadawczej o zaistniałym problemie w dostarczeniu
Protokół ARP Protokół ICMP Protokół ICMP ICMP ICMP(ang. Internet Control Message Protocol)- protokół zgłaszania błędów zaprojektowany dla protokołu IP. ICMP nie rozwiązuje problemów związanych z zawodnością protokołu IP niezawodność zapewniają protokoły wyższych warstw. Specyfikacja wrfc792
Protokół ARP Protokół ICMP Funkcjonowanie ICMP Stan dostarczenia pakietu zgłaszany jest jedynie do urządzenia źródłowego, brak powiadomień dla stacji pośrednich Komunikaty ICMP są poddawane enkapsulacji w datagramach wtakisamsposóbjakinnedaneprzesyłaneprzezprotokółip KomunikatyICMPsąpodatnenabłędyzwiązanez dostarczaniem błędy związane z przesyłaniem komunikatów ICMP nie generują własnych komunikatów ICMP
Protokół ARP Protokół ICMP Funkcjonowanie ICMP Możliwe jest, że błąd dostarczenia datagramu nigdy nie zostanie zgłoszony systemowi wysyłającemu dane Sytuacje niedostarczenia danych mogą być powodowane błędną konfiguracją sieci, awarią sprzętu na odcinku sieci bądź brakiem funkcjonalności ze strony węzłów(zapętlenia routingu, zbyt mała liczba hopów RIP) konieczność dokładnej weryfikacji konfiguracji sprzętowej, sieci oraz stosu protokołów TCP/IP
Protokół ARP Protokół ICMP Badanie dostępności wybranej sieci
Protokół ARP Protokół ICMP Badanie dostępności wybranej sieci
Protokół ARP Protokół ICMP Struktura komunikatu ICMP
Protokół ARP Protokół ICMP Komunikaty sterujące zestawu protokołów TCP/IP Protokół IP nie ma wbudowanego sposobu przesyłania komunikatów informacyjnych i sterujących do hostów Protokół ICMP jest istotnym składnikiem zestawu protokołów TCP/IP, wszystkie implementacje protokołu IP muszą obsługiwać protokół ICMP Komunikaty kontrolne są wykorzystywane do informowania hostów o zdarzeniach w sieci(zatłoczenie sieci, istnienie bardziej odpowiedniego routera)
Protokół ARP Protokół ICMP Rodzaje komunikatów ICMP Kod Znaczenie komunikatu 0 Odpowiedź na żądanie echa 3 Adresat niedostępny 4 Tłumienie źródła 5 Żądanie przekierowania 8 Żądanie echa 9 Rozgłaszanie routera 11 Przekroczenie czasu 13 Żądanie znacznika czasowego 15 Żądanie przesłania informacji 16 Odpowiedź na żądanie przesł. informacji
Protokół ARP Protokół ICMP Wybrane komunikaty sterujące Bramy domyślne wysyłają komunikaty ICMP żądania przekierowania tylko wtedy, gdy: interfejs,przezktórypakiettrafiadoroutera,jesttymsamym, z którego pakiet wychodzi adressieciipnadawcyjesttakisamjakadressieciip następnego przeskoku routowanego pakietu trasadatagramuniejestokreślonaprzeznadawcę trasapoprzekierowaniuniejestkolejnymprzekierowaniem ICMP lub trasą domyślną routerjestskonfigurowanydowysyłaniażądańprzekierowania (domyślnie routery Cisco wysyłają żądania przekierowania ip redirects)
Protokół ARP Protokół ICMP Wybrane komunikaty sterujące Żądanie przekierowania
Protokół ARP Protokół ICMP Wybrane komunikaty sterujące Żądanie znacznika czasowego synchronizacja zegarów i oszacowanie czasu tranzytu Żądanie przesłania informacji pierwotnie do celów określania przez hosta jego numeru sieciowego, obecnie jego rolę przejęły protokoły dedykowane DHCP, RARP, BOOTP Żądanie maski adresowej Wykrywanie routera procedura podejmowana w przypadku nieznajomości domyślnej bramy polegająca na przeskanowaniu sieci po adresach grupowych Tłumienie źródła regulacja przepływu informacji w sieci, żądanie zmniejszenia szybkości nadawania danych
System nazw domenowych DNS DNS(ang. Domain Name System)- system serwerów oraz protokół komunikacyjny zapewniający zamianę adresów domenowych na adresy IP. Specyfikacja w RFC 819, 882, 883, 1032-1035,1101,1123,1183,1706,1876,1886,1912,1995, 1996,2136,...
Protokoły translacji adresów domenowych DNS tłumaczenieadresdomenowy-ip RDNS(ang.ReverseDNS) tłumaczenieip-adres domenowy
System nazw domenowych Podstawą systemu DNS jest ogólnoświatowa sieć serwerów przechowujących informacje na temat adresów domen KażdyzwpisówwbaziedanychodwzorowańDNS zawierający nazwę oraz odpowiadający jej adres IP udostępniany jest w sposób automatyczny ftp://ftp.rs.internic.net/domain/named.root- lista 13 głównych serwerów odpowiedzialnych za obsługę domen najwyższego poziomu
Struktura serwerów DNS Rozproszona baza danych adresów IP i nazw o strukturze hierarchicznej Serwery DNS przechowują dane tylko wybranych domen. Każda domena ma co najmniej 2 obsługujące ją serwery DNS Serwery DNS przechowują przez pewien czas odpowiedzi z innych serwerów(ang. caching) Każdykomputermożemiećwieleróżnychnazw redundancja- zwiększenie niezawodności ProtokółDNS-UDP,port53
Działanie DNS
Działanie DNS
Działanie DNS
Działanie DNS
Działanie DNS
Działanie DNS
Działanie DNS
DNS Query
DNS Response
Domeny i strefy
Poddomeny Strefa rozpoczyna się jako baza danych dla jednej nazwy domeny DNS. Jeśli poniżej domeny użytej do utworzenia strefysądodaneinnedomeny,mogąonebyćczęściątejsamej strefy lub mogą należeć do innej strefy. Po dodaniu poddomeny może ona być: zarządzanaidołączonajakoczęśćpierwotnychrekordówstrefy delegowanadoinnejstrefyutworzonejwceluobsługi poddomeny
Serwery DNS Podstawowy- zarządza strefą, jest dla niej autorytatywny Pomocniczy- przechowuje kopię strefy, okresowo aktualizowaną
Najważniejsze typy rekordów DNS Rekord A, rekord adresu(ang. address record)- przypisuje do nazwy domeny DNS 32bitowy adres IPv4 Rekord AAAA, rekord adresu IPv6(ang. IPv6 address record) -mapujenazwędomenydnsnajej128bitowyadresipv6 Rekord CNAME, rekord nazwy kanonicznej(ang. canonical name record)- ustanawia alias nazwy domeny. Wszystkie wpisy DNS oraz poddomeny są poprawne także dla aliasu Rekord MX, rekord wymiany poczty(ang. mail exchange record)- mapuje nazwę domeny DNS na nazwę serwera poczty
Najważniejsze typy rekordów DNS Rekord PTR, rekord wskaźnika(ang. pointer record)- tworzy powiązanie pomiędzy adresem IP i nazwą hosta w strefach wyszukiwania wstecznego(ang. reverse DNS lookup) RekordNS,rekordserweranazw(ang.nameserverrecord)- mapuje nazwę domenową na listę serwerów DNS dla tej domeny. Każdy serwer DNS, zarówno podstawowy, jak i pomocniczy, powinien zostać zadeklarowany przy pomocy tego rekordu Rekord SOA, rekord adresu startowego uwierzytelnienia(ang. start of authority record)- ustala serwer DNS dostarczający autorytatywne informacje o domenie internetowej
Najważniejsze typy rekordów DNS Rekord SRV, rekord usługi(ang. service record)- pozwala na zawarcie dodatkowych informacji dotyczących lokalizacji danej usługi, którą udostępnia serwer wskazywany przez adres DNS TXT-rekordtenpozwaladołączyćdowolnytekstdorekordu DNS
Instytucje administrujące DNS na świecie ICANN-IANA- nadzór ogólny nad nazewnictwem i strukturą domen najwyższego poziomu VeriSign Global Registry Services-.net,.org,.com RządUSA-.mili.gov NeuLevel-.biz AfiliasLimited-.info GlobalNameRegistry-.name Rządy poszczególnych krajów: rejestracja i nadzór nad domenami krajowymi
Klient DNS, konfiguracja Konfiguracja adresu serwera DNS: Menu Start-> Ustawienia-> Polaczenia sieciowe i telefoniczne
Klient DNS, konfiguracja Błąd adresu serwera DNS: Menu Start-> Ustawienia-> Polaczenia sieciowe...
Klient DNS, konfiguracja Struktura pliku/etc/resolv.conf: domain kis.p.lodz.pl nameserver 212.191.89.129 nameserver 194.204.152.34 nameserver 194.204.159.1
Narzędzia DNS nslookup host dig NetCrunch...
Narzędzia DNS, nslookup Uruchomienie środowiska interaktywnego: nslookup Informacje o hoście/ domenie: [Host Domena] Odpytanie o konkretnego hosta/ domenę(konkretnego serwera nazw) [Host Domena][Serwer] Ustawienie opcji set[opcja]
Narzędzia DNS, nslookup Ustawienie domyślnej nazwy domeny set domain=[domena] Ustawienie serwera głównego set root=[serwer] Ustawienie typu kwerendy setquerytype=[a ANY CNAME MX NS PTR SOA SRV] Ustawienie klasy zapytania set class=[in ANY]
Narzędzia DNS, nslookup Ustawienie domyślnego serwera używając bieżącego serwera domyślnego server[serwer] Ustawienie domyślnego serwera używając serwera początkowego lserver[serwer] Ustawienie bieżącego serwera domyślnego jako głównego root Wyświetlenie adresów w domenie(kanonicznych nazw i aliasów -a,wszystkierekordy -d,...) ls[-a -d -ttyp][domena][>plik]
Narzędzia DNS, nslookup Odpowiedź nieautorytatywna:
Narzędzia DNS, nslookup Lista adresów hostów zarejestrowanych w domenie kis.p.lodz.pl:
Narzędzia DNS, nslookup Dodatkowe informacje dotyczące hostów w domenie:
Dynamiczna konfiguracja sieci DHCP DHCP(ang. Dynamic Host Configuration Protocol)- protokół dynamicznej konfiguracji hosta działający w trybie klient- serwer, umożliwiający klientom DHCP w sieciach IP na uzyskiwanie informacji o konfiguracji sieci z serwera DHCP. Specyfikacja w RFC 2131, 2132, 4242
Konfiguracja sieci AdresIP Maska podsieci Adres domyślnej bramy Adres serwera DNS Adres serwera WINS...
Dynamiczna konfiguracja sieci Konfiguracja przypisywana jest hostom na określony czas, po upływie którego klient winien odpytać ponownie serwer DHCP o ustawienia sieci Przydziały są blokowane na czas dzierżawy
Zwolnienie DHCP(DHCP Release) Poszukiwanie serwera DHCP(DHCP Discover) OfertaDHCP(DHCPOffer) Żądanie DHCP(DHCP Request) Informacja DHCP(DHCP Inform) Potwierdzenie DHCP(DHCP Acknowledge)
Sesja DHCP
DHCP Release
DHCP Discover
DHCP Request
Mechanizmy przydzielania adresów IP Alokacja automatyczna protokół DHCP przypisuje klientowi stały adres IP Alokacja dynamiczna protokół DHCP dzierżawi klientowi adres IP z puli zdefiniowanych adresów na określony czas Alokacja ręczna adres IP dla klienta jest przydzielany przez administratora, protokół DHCP przesyła adres do klienta
Serwer DHCP, przykładowy plik konfiguracyjny dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.128{ range 192.168.1.10 192.168.1.100; default-lease-time 7200; option domain-name"home.pl"; option domain-name-servers 194.204.152.34; option routers 192.168.1.1; option subnet-mask 255.255.255.128; option broadcast-address 192.168.1.127; } hostrafal{ hardware ethernet 52:54:05:E1:EE:97; fixed-address 192.168.1.3; }
Serwer DHCP, przykład zaawansowanej konfiguracji subnet 10.0.0.0 netmask 255.255.255.0{ option routers 10.0.0.254;... # Pula dla nieznajomych pool{ option domain-name-servers 194.204.152.34; max-lease-time 300; range 10.0.0.200 10.0.0.253; allow unknown-clients; }
Serwer DHCP, przykład zaawansowanej konfiguracji... } # Pula dla znajomych pool{ option domain-name-servers 194.204.159.1; max-lease-time 28800; range 10.0.0.5 10.0.0.199; deny unknown-clients; }
Klient DHCP, konfiguracja Automatyczna konfiguracja hosta: Menu Start-> Ustawienia-> Polaczenia sieciowe i telefoniczne
Klient DHCP, konfiguracja Weryfikacja ustawień sieci: MenuStart->Uruchom->cmd->ipconfig/all Zwolnienie konfiguracji klienta DHCP Menu Start-> Uruchom-> cmd-> ipconfig/release Odnowienie konfiguracji klienta: MenuStart->Uruchom->cmd->ipconfig/renew
Klient DHCP, konfiguracja Uruchomienie klienta DHCP: dhcpcd[urzadzenie] Zwolnienie konfiguracji klienta DHCP dhcpcd-k[urzadzenie] Odnowienie konfiguracji klienta: dhcpcd-n[urzadzenie]
DoSDHCP... Wyczerpanie puli adresów formac_1in0123456789abcdef do formac_2in0123456789abcdef do ifconfig eth0 down ifconfigeth0hwether\ 00:00:00:00:00:${mac_1}${mac_2} up dhcpcd-n eth0...
HTTP HTTP(ang. Hypertext Transfer Protocol)- protokół opracowany przez IETF oraz WWWC umożliwiający wymianę informacji poprzez ogólnoświatową sieć WWW. Oryginalnie, protokół być wykorzystywany do pobierania stron HTML. Specyfikacja w RFC 2616
HTTP jest protokołem opartym na dialogu żądanie/odpowiedź przeprowadzanym pomiędzy klientami a serwerami Klient(aplikacja kliencka, agent- przeglądarka WWW lub inne narzędzie) generuje żądanie pobrania zasobów udostępnianych przez docelowy serwer(w postaci stron WWW,obrazów,plików,...) Pomiędzy klientem a serwerem może występować szereg urządzeń pośrednich- bram, serweró proxy, tuneli,...
Właściwy dialog między serwerem a klientem poprzedza zestawienie połączenia TCP(potrójny uścisk ręki) na porcie 80(domyślny port HTTP) Serwer HTTP nasłuchuje na porcie 80 żądań klientów, po otrzymaniu komunikatu żądania generuje odpowiedź(status + specyficzna informacja) Zasoby udostępniane poprzez HTTP są identyfikowane poprzez identyfikatory URI(Uniform Resource Identifiers) bądź URL(Uniform Resource Locator)
Struktura dokumentu HTML <HTML> <HEAD>... </HEAD> <BODY>... </BODY> </HTML>
Żądania HTTP HEAD- żądanie nagłówka(bez sekcji BODY ) GET- żądanie pobrania określonego zasobu POST- żądanie akceptacji przetwarzanych danych(np. formularzy) PUT- transfer określonego zasobu DELETE TRACE- podgląd otrzymanego żądania(możliwość przejrzenia informacji dołączanych do żądań) OPTIONS CONNECT
Odpowiedzi statusowe HTTP 1xx- informacje(otrzymano żądanie, kontynuacja procesu) 2xx- operacja wykonana pomyślnie(zrozumiana bądź zaakceptowana) 3xx- przekierowanie(klient musi podjąć dodatkową akcję w celu zakończenia żądania) 4xx-błądklienta(złaskładnia,...) 5xx- błąd serwera(błąd wykonania zapytania)...
HTTP GET
HTTP Document Found
Wersje HTTP 0.9(wycofana)- wsparcie jedynie dla żądania GET HTTP/1.0- pierwsza oficjalna wersja protokołu, częściowo jeszcze w użyciu. Specyfikacja zezwalała na nawiązywanie stałych połączeń(podtrzymywanie połączeń, więcej niż jedno żądanie/odpowiedź podczas połączenia). Protokół nie współpracował dobrze z serwerami PROXY HTTP/1.1- obecna wersja protokołu. Wsparcie dla stałych połączeń(keep-alive) i łączenia żądań(wysyłanie wielu żądań równolegle) celem przyspieszenia pracy systemu, poprawna praca z PROXY
Cechy szczególne i dodatki HTTP HTTP jest protokołem bezstanowym- brak przechowywania informacji o poprzednich transakcjach z klientem popularyzacja ciasteczek(cookies) Możliwe jest również wprowadzenie szyfrowania SSL/TLS do protokołu HTTP HTTPs(specyfikacja w RFC 2817)
Aplikacje klienckie, przeglądarki WWW
Aplikacje klienckie, połączenia na port 80 Pobranie zasobu index.html zgodnie z protokołem HTTP 1.1 telnet www.kis.p.lodz.pl 80 GET/index.html HTTP/1.1 Pobranie nazwy serwera z nagłówka strony głównej echo GET/HTTP/1.0 nc-vwww.kis.p.lodz.pl80\ grep Server
Koniec Dziękujęzauwagę...