Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Unix a Internet 2. Úvod do TCP/IP

Podobné prezentace


Prezentace na téma: "Unix a Internet 2. Úvod do TCP/IP"— Transkript prezentace:

1 Unix a Internet 2. Úvod do TCP/IP
Obsah: Internet, TCP/IP stack linková a síťová vrstva IP, maska, broadcast ICMP, UDP, TCP, porty © Milan Keršláger

2 Vznik Internetu původně idea decentralizované sítě
vývoj sponzorován agenturou DARPA Agentura pro výzkum pokročilých obranných projektů spadá pod Ministerstvo obrany USA 1969 – zprovozněna síť se 4 uzly → ARPANET 1973 – idea TCP/IP připojena Havaj, Norsko, Londýn 1980 – experimentální provoz TCP/IP IPv4 popisuje RFC 760 1983 – oddělen MILNET, vyvinuto DNS

3 Co je Internet mnoho samostatných počítačových sítí
všechny navzájem propojeny propojena jsou síťová rozhraní typicky síťové karty (též WiFi, sériové porty apod.) existence redundantních spojů zvyšuje robustnost sítě, odolnost vůči výpadkům používá se rodina protokolů TCP/IP umožňuje vzájemnou komunikaci prvků v síti typicky počítače (resp. jejich síťová rozhraní) ale i služební prvky sítě (router, switch), webkamery, ...

4 TCP/IP a OS 1983 – 4.2BSD unixový systém z univerzitního prostředí
snaha o připojení k Internetu komerční unixové systémy následují implementace v operačním systému uvnitř jádra, tzv. TCP/IP stack skrze knihovny poskytuje API, tzv. Internet socket datagram socket stream sockets raw sockets

5 Systém vrstev rozložení řešení síťové problematiky
vznikne několik vrstev každá vrstva řeší dílčí problém síťové komunikace vrstvy lze snadno nahradit (zaměnit) např. vyměnit síťovku, ovladač a vše ostatní může zůstat (tj. knihovní funkce pro TCCP/IP i aplikace) SSL je jen další vsunutá mezivrstva bez vlivu na TCP i aplikaci vrstvy podle ISO/OSI „úřední“ nařízení, složité, neujalo se vrstvy podle TCP/IP jednodušší, existuje funkční implementace

6 Vrstvy v ISO/OSI a v TCP/IP
Aplikační Prezentační Relační Transportní Síťová Linková (spojová) Fyzická Vrstva přístupu k síti OSI TCP/IP Orientováno na přepravu (hardware) orientované (software) Aplikačně

7 Linková vrstva nejčastěji Ethernet
ethernetový rámec (rozumí mu síťová karta) hlavička + data (délka 64 až 1518 oktetů) P DST SRC FT data CRC P Preamble ( ) 8 oktetů DST Destination Address 6 oktetů SRC Source Address 6 oktetů FT Frame Type* 2 oktety data Frame Data oktetů CRC Cyclic Redundancy Check 4 oktety

8 Ethernetový rámec jediné, čemu rozumí ethernetová karta
linková vrstva modelu ISO/OSI, formát podle: IEEE 802.2, IEEE 802.3, Ethernet SNAP Ethernet II – průmyslový standard, běžně používán hlavička + přepravovaná data 14 + (48 až 1500) + 4 oktety protokoly vyšších vrstev v datové části síťová karta zachytává vše pokud je určeno pro ni, vyvolá přerušení → ovladač pozná se podle cílové MAC adresy, případně linkový broadcast jinak ignoruje (výjimkou je promiskuitní režim)

9 Internet Protokol – IP základ rodiny TCP/IP, základem IP adresa
datagramová služba, doručení bez záruk hlavička + data (min. délka 60 oktetů) dnes IPv4 jedinečná adresa 32 bitů (4 oktety) zápis desítkově po oktetech, odděleno tečkou nastupuje IPv6 adresa 128 bitů (16 oktetů) → každý atom ve vesmíru zápis hexadecimálně, oddělení dvojtečkami 2001:718:1c01:16::aa

10 IPv4 adresa 4 oktety, tj. 32 bitů
oktety proto, že je vyjádřen přesně počet bitů zápis je dekadicky po oktetech, odděleno tečkami např.: celosvětově přiděluje IANA, vyčerpáno 2011 lokálně vyčerpáno APNIC (2011) RIPE (2012), LACNIC (2014), ARIN (2014), AFRINIC kvůli snadnějšímu zapamatování DNS (1983) oddělovačem je tečka ( doménová jména, stromová struktura, jeden kořen

11 Světové RIR (zdroj: wikipedia.org)

12 Rezervované IP adresy určeno pro speciální účely (IANA: RFC 3330)
typicky filtrováno na firewallu („martian packet“) neví se, kam je doručit (nebo kam odeslat odpověď) privátní sítě: /8, /8, /12, /16 další použití /8 (loopback), /32 (broadcast) /8 (rezervováno), /4 (rezervováno) /16 (autokonfigurace), /4 (multicast)

13 IP datagram

14 Hlavička IP datagramu (1)
version verze protokolu → zde je to verze 4 tos Type Of Service total length celková délka flags příznaky

15 Hlavička IP datagramu (2)
fragmentation offset začáteční adresa fragmentu (v původních datech) TTL Time To Live → router snižuje o 1, pak zahození počáteční hodnota je doporučena 64 protocol typ přenášených dat v datové části (číslo protokolu) header checksum kontrolní součet hlavičky

16 Přeprava IP datagramu datagram cestuje po síti samostatně
→ datagramová služba předávají si ho routery (směrovače) na routeru je sníženo TTL v hlavičce nese pouze IP adresu odesílatele a cíle když dorazí do cíle, víme kam odpovědět na úrovni IP se neřeší záruka (že dojde k cíli) v některých případech se posílá chybová ICMP zpráva, např. TTL exceeded (čas života datagramu vypršel)

17 Fragmentace IP datagramu
k fragmentaci dojde při překročení MTU přijatý datagram je větší, než je možné odeslat typická velikost MTU je 1500 bajtů (Ethernet) k fragmentaci dochází při tunelování IP datagramů dovnitř IP datagramu vložíme původní IP datagram datagram je rozdělen na menší části hlavička se replikuje → přenosu fragmentů → vyšší režie první a další fragmenty → příznak „more fragments“ k tomu informace o offsetu (vzdálenost od počátku) fragmenty skládá až cílový počítač protože jednotlivé fragmenty mohou jít různými cestami úspěšné útoky na chybnou defragmentaci (MS Windows) některé routery proto fragmenty blokují (hotmail.com)

18 Manipulace s TCPMSS cílem je vyhnutí se fragmentaci
typicky před vstupem datagramů do tunelu o tunelu nemusí mít odesílatel potuchy přinutíme odesílatele, aby použil menší datagramy tzv. MSS Clamping (pro ADSL, PPPoE, PptP, cable) funkční, ale riziko potíží (datagram modifikován cestou) Automatické nastavení menších datagramů: $ iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu Ruční nastavení menších datagramů (zde 1234 bajtů): $ iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1234

19 Maska sítě bitové vyjádření IP podsítě
podsíťě jsou navzájem odděleny routery jedničky označují část IP adresy s číslem sítě nuly vyjadřují část IP adresy s číslem počítače zápis jako IP adresa nebo počet jedniček zleva např: nebo též zápis IP.IP.IP.IP/24 číslo sítě = IP adresa AND maska sítě přidává se jako vlastnost: síťového rozhraní záznamu ve směrovací tabulce například: IP , maska

20 Číslo sítě a počítače v IP adrese
/ maska je chápána jako binární zápis číslo sítě je tam, kde jsou v masce zleva samé 1 v masce na místě nul je číslo počítače zde tedy je v adrese : je číslo sítě v podsíti (odděluje je router) musí být číslo sítě stejné .1 je číslo počítače správce rozliší počítače (od .1 do .254) → číslo sítě → síťový broadcast

21 IP broadcast 255.255.255.255 lokální broadcast (pro danou podsíť)
odesláno na MAC adresu FF:FF:FF:FF:FF:FF nepřekročí hranici podsítě, tj. neprojde routerem IP adresa se samými 1 na místě čísla počítače síťový broadcast (pro danou podsíť) může cestovat na velkou vzdálenost odesílatel typicky netuší, jaká je maska v cíli ale může to vyzkoušet → broadcast storm typicky filtrováno na routerech (s firewallem)

22 Dělení na podsítě podsíť → část IP sítě
celá podsíť používá stejnou masku všechny IP adresy v podsíti patří do stejné podsítě tj. IP AND maska je pro všechny IP v podsíti stejné pro podsíť stačí ve směrovací tabulce 1 záznam → zjednodušení směrovacích tabulek

23 CIDR Classless Inter-Domain Routing (1993) variabilní délka masky
k IP adrese musí být uvedena vždy MASKA CIDR umožňuje libovolnou masku dříve maska vyplývala z třídy IP adres CIDR umožňuje jemnější dělení sítě

24 ICMP Internet Control Message Protocol
povinná součást implementace TCP/IP služební protokol zapouzdřeno v IP datagramu oznamuje stavy sítě, chyby, k testování, ... nese v sobě typ a kód (dvě čísla) ping: výzva 8,0 a odpověď 0,0 ICMPv4 a ICMPv6

25 ping ověřování spojení mezi uzly v síti výzva: Žiješ? odpověď: ANO!
měří se latence (zpoždění) příchodu odezvy záleží též na délce datagramu (prakticky max 1500 B) $ ping seznam.cz PING seznam.cz ( ) 56(84) bytes of data. 64 bytes from ( ): icmp_req=1 ttl=251 time=8.38 ms 64 bytes from ( ): icmp_req=2 ttl=251 time=24.9 ms 64 bytes from ( ): icmp_req=3 ttl=251 time=5.12 ms 64 bytes from ( ): icmp_req=4 ttl=251 time=81.3 ms 64 bytes from ( ): icmp_req=5 ttl=251 time=10.5 ms ^C --- seznam.cz ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 5.126/26.065/81.324/ ms

26 traceroute zobrazení cesty v síti
využívá položky TTL v hlavičce IP datagramu každý router snižuje TTL o 1 program vyšle datagram s TTL=1 první router sníží na nulu a pošle zpět ICMP zprávu program vypíše IP adresu prvního routeru program vyšle datagram s TTL=2 ...celý cyklus se opakuje, dokud není dosaženo cíle

27 UDP User Datagram Protocol datagramová služba
systém otázka-odpověď (malá režie) zapouzdřeno v IP datagramu bez záruky (neřeší ztrátu apod.) musí si ohlídat sama aplikace (typicky časovačem) nedojde-li odpověď do limitu, zeptám se znovu nedojde-li víckrát, ohlásím chybu použito pro DNS, VoIP, NFS v LAN atp. ve VoIP znamená ztráta datagramu díky rozložení informace do více datagramů snížení kvality, při větších ztrátách pak výpadek

28 Síťový port jednoznačná identifikace aplikace v počítači
IP adresa rozlišuje jen počítač (síťové rozhraní) používá se pro UDP i pro TCP port je číslo z rozsahu 1 – (2 bajty) nula se nepoužívá každá komunikace má odlišnou čtveřici hodnot zdrojová IP + zdrojový port, cílová IP + cílový port alespoň 1 hodnota se v různých komunikacích liší nedojde tím k promíchání dat

29 Well known ports dobře známé porty definuje IANA
stačí vědět, jakou službu chceme (cílový port) služby mají přiřazen „standardní port“, kde naslouchají tj. není nutné si pamatovat číslo portu, uvést port na cílovém počítači je nutné jen když je služba správcem umístěna na nestandardním portu, např: příklady standardních portů: HTTP: 80, HTTPS: 443 SSH: 22, telnet: 23, DNS: 53, SMTP: 25 POP3: 110, POP3S: 995, IMAP: 143, IMAPS: 993 FTP: 21 (řídící spojení), 20 (data), ...

30 Práce s porty aplikace (resp. proces) chce komunikovat
aplikace se připojí na port (otevře si port) port přiděluje jádro OS (TCP/IP stack) → bind() je to výhradní operace → jiný program ho již nezíská aplikace zahájí komunikaci (max. jednu) v hlavičce UDP (TCP) datagramu je uvedeno: zdrojová IP, zdrojový port, cílová IP, cílový port čtveřice jednoznačně identifikuje spojení chce-li další komunikaci, otevře si další (volný) port ve čtveřici se změní alespoň zdrojový port, zbytek může stejný odpověď prohodí zdrojovou a cílovou dvojici nedojde k promíchání dat ani odpovědi z různých spojení cílem je určitý proces a jeho spojení na základě zmíněné čtveřice

31 TCP Transmition Control Protocol přenos dat „se zárukou“
TCP řeší ztrátu, duplicitu a zachování pořadí zmíněné záruky vyžadují extra režii v datové komunikaci proud bitů bez struktury duplexní spojení data lze přenášet zároveň oběma směry stavový protokol obě strany si pamatují stav, v jakém se nacházejí vhodný pro přenos dat (obrázky, dokumenty) protokoly FTP, SMTP, HTTP, ...

32 Příznaky v TCP segmentu
několik bitů v hlavičce s různým významem: SYN žádost o otevření spojení ACK potvrzení (příjmu) FIN žádost o ukončení (half-close) RST okamžité zrušení spojení ...

33 Navázání TCP spojení trojcestný handashake
A iniciuje spojení zasláním datagramu B se SYN B odpoví ACK + SYN, pak již jen ACK typický útok: SYN flood (zahlcení SYN datagramy) A B SYN seg=x SYN seg=y ACK=x+1 ACK=y+1

34 Ukončení TCP spojení poloviční uzavření (half-close)
jedna strana dá najevo, že si přeje ukončit spojení (FIN), ale dále přijímá protějšek dokončí přenos a pak také pošle FIN například webový klient požádá o data a pošle FIN webový server odešle požadovaná data a pak také FIN okamžité ukončení jedna strana pošle RST obě strany okamžitě skončí možnost útoku na TCP RST (viz dále)

35 Stavy TCP protokolu

36 IPv6 Internet Protocol version 6 1992 IETF IPng (RFC 1550)
1998 IPv6 (RFC 2460) hlavně zvětšení adresního prostoru IPv4 adresa má 32 bitů (232= 4 miliardy) IANA nemá od regionální správci (RIPE, ARIN, …) a provideři zatím IPv4 mají IPv6 adresa má 128 bitů (2128 = 3,4×1038) počet atomů ve známém vesmíru je až 10100 počet stavů paměti s 1 GiB RAM je 21GB= ×8= zavedení dalších pokročilých vlastností

37 IPv4 a IPv6 naprosto odlišné protokoly nejsou vzájemně kompatibilní
mohou ale koexistovat předpokládá se dlouhodobá koexistence jde o nahrazení síťové vrstvy nemá vliv na vyšší (aplikační) vrstvy HTTP, FTP, SMTP, POP3, IMAP zůstává je však potřeba upravit (rozšířit) aplikace není to tak jednoduché může se projevit mnoho chyb v implementaci hlavní (opensource) aplikace již přizpůsobeny též chyby v nastavení počítačů nebo záznamů v DNS

38 IPv6 adresa 128bitová délka 64bitový síťový prefix
64bitová část pro adresu počítače může být odvozena od MAC adresy zápis jako 8 skupin 4 hexadecimálních čísel oddělovačem je dvojtečka nuly vynechány zápisem dvou dvojteček (::) slouží pro zkracování zápisu IPv6 adresy maximálně 1× v adrese (kvůli jednoznačnosti)

39 Zkracování IPv6 adresy níže zapsány stejné IPv6 adresy
2001:0db8:0000:0000:0000:0000:1428:57ab 2001:0db8:0000:0000:0000::1428:57ab 2001:0db8:0:0:0:0:1428:57ab 2001:0db8:0:0::1428:57ab 2001:0db8::1428:57ab 2001:db8::1428:57ab

40 Speciální adresy ::1/128 localhost (v IPv4 je to 127.0.0.1)
adresa interního rozhraní fe80::/10 místní linka (v IPv4 je to /16) dosah jen na připojené podsíti ff00::/8 multicast adresy 2001:db8::/32 prefix používaný v příkladech

41 Použití IPv6 adres v URL zápis IPv6 v hranatých závorkách
v URL číslo portu až za závorkou

42 IPv6 datagram hlavička (40 oktetů, tj. 320 bitů) tělo (zbytek)
verze (4 bity) – tj. verze 6 dopravní třída (8 bitů) pojmenování toku (20 bitů) pro správu QoS délka těla (16 bitů) tj. max. 64 KiB, jumbogramy zde mají nulu následující hlavička (8 bitů) zdrojová a cílová adresa (každá 128 bitů) tělo (zbytek)

43 Autokonfigurace automatické přidělení IPv6 adresy použití ICMPv6
když není v síti nakonfigurováno DHCPv6 reaguje router, stanice se s ním dohodne cílem je přidělení funkční IPv6 adresy DHCPv6 obdobně jako pro IPv4 default gw → v RFC od 2014

44 Bezpečnost IPsec používá se pro VPN
Virtual Private Network (virtuální privátní sítě) řeší šifrování a autentizaci využívá asymetrickou kryptografii (s veřejným klíčem) povinná součást IPv6 na síťové vrstvě (šifrují se jednotlivé IP datagramy) v IPv4 jako volitelná součást IPsec byl do IPv4 zpětně implementován (backport)

45 Fragmentace není dovolena na cestě nelze datagram fragmentovat
obě strany si zjistí maximální velikost datagramu omezení může být někde na cestě povinnou součástí IPv6 je MTU discovery na začátku spojení zjistíme, jaká je maximální velikost datagramu obě strany nepošlou větší datagram, než je na kompletní cestě datagramu možné fragmentovat tedy může jen odesílatel → tj. přesněji odesílatel rovnou data naseká na příslušně malé fragmenty (dílky, resp. datagramy)

46 Jumbogramy datagramy až 4 GiB snaha o snížení režie a latence
latence je prodleva režie jsou hlavičky + čas na jejich zpracování standardní datagramy 64 KiB přesně na hlavičku pokud cesta dovoluje, lze použít jumbogram na cestě nelze datagram fragmentovat fragmentace je dovolena jen u vysílajícího

47 Kontrolní součet odstraněn kontrolní součet hlavičky
průchod přes router snižuje TTL Time To Live router musí v IPv4 přepočítat kontrolní součet v IPv6 není MTU součástí kontrolního součtu chyba bude odhalena na linkové vrstvě např. Ethernetový rámec má CRC na datovou část zvýší se tím průchodnost routerů snížením nároků na CPU routeru

48 Mobilita mobilní IPv6 (MIPv6)
zařízení si zachová svoji „domácí“ IPv6 adresu aktivní prvky dohodnou směrování odstraňuje tak potřebu vytvoření tunelu zachová se tím výkon jako běžné IPv6 tj. není nutné datagram dopravit nejprve do domácí sítě a odtud pak teprve do cíle zatím není implementováno komplikace s bezpečností, výjimky ze směrování

49 DNS pro IPv6 AAAA záznamy rozšíření současného DNS
paralelně k A záznamům (pro IPv4) $ dig seznam.cz ns ;; ANSWER SECTION: ns.seznam.cz IN A ns.seznam.cz IN AAAA 2a02:598:1::1077 ms.seznam.cz IN A ms.seznam.cz IN AAAA 2a02:598:2::1077


Stáhnout ppt "Unix a Internet 2. Úvod do TCP/IP"

Podobné prezentace


Reklamy Google