850 likes | 1.07k Views
Základy TCP/IP. Motivace, historie, model Principy adresování, DNS Tok dat, topologie, routing Základní protokoly, aplikace E-mail, FTP, BSD příkazy. Libor Forst. Literatura. D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991
E N D
Základy TCP/IP • Motivace, historie, model • Principy adresování, DNS • Tok dat, topologie, routing • Základní protokoly, aplikace • E-mail, FTP, BSD příkazy Libor Forst
Literatura • D. E. Comer, D. L. Stevens: Internetworking With TCP/IP; Prentice Hall International 1991 • C. Hunt: TCP/IP Network Administration; O'Reilly & Associates 1992 • P. Šmrha, V. Rudolf: Internetworking pomocí TCP/IP;Kopp 1994 • P. Satrapa, J. A. Randus: LINUX - Internet server; Neokortex 1996; ISBN 80-902230-0-1 • L. Dostálek, A. Kabelová:Velký průvodce protokoly TCP/IP a systémem DNS;Computer Press 2002 • Request For Comment (RFC)
Vznik počítačových sítí izolované výpočetní systémy terminály point-to-point propojení robustní kompaktní aplikace lokální síť rozlehlá síť emulace terminálu + klient-server aplikace
Počítačové sítě • Lokální sítě (Local Area Network) • zvyšování produktivity díky sdílení prostředků • menší vzdálenost, vyšší rychlost • příklady: Novell, napojení bezdiskových stanic, databázové n. tiskové servery • Rozlehlé sítě (Wide Area Network) • konektivita, komunikace • velké vzdálenosti, nižší výkon • příklady: Internet, Bitnet
Historie Internetu • 1969 - Defense Advanced Research Project Agency zřizuje projekt "packet switching network" • pol. 70. let - ARPANET, point-to-point, pevné linky • 1980 - Internet, propojení sítí, ARPANET páteří • 1983 - zavedení TCP/IP v ARPANETu • pol. 80. - TCP/IP součástí BSD UNIXu • současnost - boom Internetu
Vývoj Internetu v číslech 5 000 000 000 Počet obyvatel Země 500 000 000 50 000 000 Počet počítačů v Internetu Počet uživatelů Internetu 5 000 000 500 000 50 000 5 000 Zdroj: MIDS, Austin TX, based on historical data 500 2001 82 84 86 88 90 92 94 96 98
Typy síťových propojení Sběrnice (např. 10base2) Point-to-point přímé Point-to-point přes modemy Hvězda (např. 10baseT, ATM) Point-to-point bezdrátové (např. laser, radioreléové, WiFi) Kruh (např. FDDI, Token-ring)
Typy síťových rozhraní Loopback - „tento počítač“, žádné fyzické zařízení PPP - sériové propojení point-to-point Ethernet - společná sběrnice: současný přístup, řešení kolizí (CSMA/CD) Token ring - předávání volného-obsazeného tokenu po kruhu FDDI - jednoduchý nebo dvojitý kruh (překlene přerušení vlákna) ATM - systém přepínačů a virtuálních cest pro tok dat, hlasu,... Výpis nakonfigurovaných rozhraní: netstat -i
OSI model Pořadí Vrstva Úkol 7 aplikační komunikace mezi programy 6 prezentační datové konverze 5 relační navázání relace mezi počítači 4 transportní korektnost přenosu informace 3 síťová dosažení cílového počítače 2 linková přenos dat po navázaném spojení 1 fyzická interpretace elektrického signálu protokol rozhraní
TCP/IP model OSI Vrstva Protokoly v TCP/IP (příklady) 7 aplikační FTP NFS 6 XDR 5 RPC 4 transportní TCP UDP ICMP 3 internet IP ARP 2 network interface Ethernet, FDDI, ATM, SLIP, X.25 1 hardware -
Spojované/nespojované služby • spojované (connection-oriented) služby • obdoba telefonního spojení • zaručeno doručení datagramů ve správném pořadí (stream) • aplikace je jednodušší, ale nemůže řídit komunikaci • TCP je komplikované • nespojované (connectionless) služby • obdoba poštovního spojení • není zaručeno pořadí ani doručení datagramů • kontrolu musí provádět aplikace • aplikace může lépe řídit komunikaci • UDP je jednodušší
TCP okna 00 10 20 30 40 50 00 00 00 10 10 00 10 20 20 ACK 10 10 20 30 30 10 20 30 40 40
Zahájení a ukončení spojení • Navázání TCP spojení SYN Seq# c Ack#0 SYN, ACK Seq# s Ack# c+1 ACK Seq# c+1 Ack# s+1 • Jednostranné uzavření spojení FIN, ACK Seq# x Ack# y ACK Seq# y Ack# x+1
Typy adresování • HW (linková vrstva) • SW(síťová vrstva) • Lidé (aplikační vrstva) • MAC (ethernetová) adresa (např.: 8:0:20:ae:6:1f) • dána výrobcem • nerespektuje topologii • IP adresa (např.: 194.50.16.71) • přidělována podle topologie • určuje jednoznačně síť a v jejím rámci počítač • Doménová adresa (např.: whois.cuni.cz) • přidělována podle organizační struktury • snazší zapamatování
Konverze adres • doménové adresy • IP adresy • MAC adresy • name resolver • řízení statické (/etc/hosts) nebo dynamické (DNS, NIS) • konfigurační soubor /etc/resolv.conf • ARP/RARP • ARP tabulka (cache) • broadcastová výzva/odpověď
Třídy IP adres Třída Tvar adresy Začátek adresy Počet sítí strojů 1.byte 2.byte 3.byte 4.byte A B C D E 1-126 128-191 192-223 224-239 240-255 • 126 • 16 k • 2 M • 16 M • 64 k • 254 0 net host 10 net host 110 net host multicast experimental 1110 net 1111
Speciální adresy • loopback • 127.0.0.1 • adresa loopback rozhraní • privátní adresy • 10.0.0.0, 172.16.0.0-31, 192.168.*.0 • nepřidělované, k použití pro lokální sítě • nesmí opustit síť • network broadcast • <adresa sítě>.<samé jedničky> • „všem v dané síti“ • normálně se doručí do cílové sítě • limited broadcast • 255.255.255.255 • „všem v této síti“ • nesmí opustit síť
Subnetting • Subnetting dovoluje rozšířit síťovou část adresy: pomocí specifikace tzv síťové masky (netmask), v tomto případě 255.255.255.192: • Nedoporučuje se používat subnet "all-zeros" a "all-ones", takže v tomto případě máme pouze 1022 x 62 adres. • V definici je přípustná nespojitá maska, ale většinou se neimplementuje. • V současnosti se často ignorují třídy (classless) a místo masky uvádí jen počet bitů (např. 193.84.56.71/26). net subnet host 11111111 11111111 11111111 11 000000
Supernetting • router agreguje směrovací informace (192.168.4.0/23) • single homed server • veškerý provoz ze sítě ...4.0jde přes router • dual homed neroutující server • je zapotřebí různé DNS prosítě ...4.0 a ...5.0 192.168.4 192.168.5
IPv6 • IPv6 adresy jsou dlouhé 128 bitů (16 bytů). Zápis: fec0::1:800:5a12:3456 • Rozeznáváme adresy • unicastové - slouží k adresaci jediného rozhraní, kromě globálních adres existují ještě site-local adresy (jsou platné pouze v rámci organizace) a link-local adresy (platné v rámci lokálního propojení – sítě) • multicastové - slouží k adresaci skupiny rozhraní (IPv6 převzal a mírně modifikoval IGMP) • anycastové - formálně se jedná o unicastové adresy, které jsou přiděleny více rozhraním (strojům) • Další vlastnosti: • autokonfigurace, Duplicate Address Detection, Router Discovery, Neighbor Discovery Protocol (místo ARP), Path MTU Discovery, tunelování IPv4
Doménový systém server pro domény cuni.cz a ruk.cuni.cz sk edu cz cesnet cuni ns ruk mff whois vutbr dec59 net de nordu server pro doménu cz fzi nic fixlink server pro root doménu
Vyřizování DNS dotazu a.root-servers.net . ns.cesnet.cz cz cz: NS=192... nerekurzivní www.mff.cuni.cz www.mff.cuni.cz cuni.cz: NS=195... ns.fzi.de fzi.de www.mff.cuni.cz ns.cuni.cz cuni.cz, mff.cuni.cz rekurzivní IP=193... www.mff.cuni.cz IP=193... fixlink.fzi.de
Tok dat v TCP/IP stream message Aplikace Data Transport packet TCP/UDP header Data ... IP datagram IP header packet Interface frame Interface header datagram CRC
Multiplexing, demultiplexing Aplikace Aplikace rozhodování podle čísla portu ICMP UDP TCP rozhodování podle IP protokolu ARP IP IPX rozhodování podle typu (délky) Ethernet rámce Ethernet
Socket, port • Port ...16bitové číslo identifikující jeden konec spojení - aplikaci, proces, který má zpracovávat příchozí pakety • destination-port musí být znám, typicky je to některý z tzv. well-known services (viz/etc/services) • source-port navazovatele (>1024) spojení přiděluje lokální systém • Socket ...jeden konec komunikačního kanálu mezi klientem a servrem … označení (adresa) jednoho konce kanálu <IPadresa,port> • Výpis otevřených socketů:netstat [-an]
Aplikační protokoly TCP/IP • 21/TCP: FTP - File Transfer Protocol (přenos souborů) • 22/TCP: SSH - SecureShell (přenos souborů) • 23/TCP: telnet - Telecommunication network (interaktivní přístup ke vzdáleným počítačům) • 25/TCP: SMTP - Simple Mail Transfer Protocol (přenos elektronické pošty) • 53/TCP,UDP: DNS – Domain NameSystem (překlad jmen na IP adresy a naopak) • 67,68/UDP: DHCP - DynamicHost Configuration Protocol (vzdálená konfigurace) • 80,443/TCP: HTTP - HyperText Transfer Protocol (přenos stránek informačního systému W W W) • 119/TCP: NNTP - Network NewsTransfer Protocol (přenos zpráv v systému UseNet, NetNews)
Struktura ethernetového rámce Ethernet v2: Destination MAC address Source MAC address Type Data CRC IP 0x0800 ARP 0x0806 RARP 0x8035 IPX 0x8137 IEEE 802.3 Destination MAC address Source MAC address Len Data CRC <= 1500
Struktura IP datagramu Version HeaderLength Service Type (priorita) Total Length Identification (pořadové číslo) Flags Fragment Offset Time-to-live Protocol(/etc/protocols) Header Checksum Source IP Address Destination IP Address Options Padding Data
Struktura TCP paketu Source Port Destination Port Sequence Number Acknowledgement Number DataOffset (rsvd) Flags (SYN,URG,ACK,...) Window Checksum Urgent Pointer Options Padding Data
Spojování segmentů sítě Vrstva Síťové zařízení Vrstva aplikační gateway (brána) aplikační transportní transportní síťová router (směrovač) síťová linková bridge, switch linková fyzická repeater, HUB fyzická
Porovnání HUB vs.switch S • HUB • S 10 Mbit/s S • Switch • S 10 Mbit/s S S S • Switch, více serverů • S > 10 Mbit/s S • Switch s uplinkem • S up to 100 Mbit/s
Příklad topologie sítě Lokální síť Klient 1 Klient 2 Klient 3 Ethernet segment Repeater Klient 4 Klient 5 Server 1 Provoz Bridge Klient 6 Klient 7 Server 2 Router Lokální síť WAN Klient 8 Klient 9
Principy firewallu IP filtr NAT vnější adresy vnitřní adresy Proxy-server klient - server klient - server
Address Resolution Protocol • konverze MAC (Ethernetových) a síťových (IP) adres • ARP tabulka (cache) je v paměti na každé stanici • neznámé adresy se zjišťují broadcastovou výzvou: Ethernet=1 IP=0x0800 ARPreq=1 Sender MAC Sender IP FF:FF:FF:FF:FF:FF Target IP • unicastová odpověď (odpovídající si nejprve musí sám upravit svoji ARP tabulku) • výpis ARP tabulky: arp -a • ARP je omezeno na lokální síť, mezi sítěmi je v činnosti OSI 3
Proxy ARP klient posíláARPrequest s IP adresou host ‚router pozná, že ARP nebude zodpovězen, proto posíláARPreply s MAC adresou routeru ƒMAC routeru přiřazena k IP hosta v ARP na klientovi „klient posílá data na hosta s MAC adresou routeru klient host proxy ARP router
Protokol ICMP • Internet Control Message Protocol, slouží pro řídící informace nad IP protokolem • Echo Request, Reply ... testování dosažitelnosti počítače příkazem ping • Source Quench ... žádost o snížení rychlosti toku datagramů • Destination Unreachable... počítač (služba) nedostupný • Redirect ... výzva ke změně cesty • Time Exceeded ... vypršel Time-to-live (chyba v routování) • Parameter Problem ... chyba v záhlaví datagramu • Timestamp Request, Reply ... odhad doby přenosu • Information Request, Reply... žádost o adresu sítě • Address Mask Request, Reply... žádost o síťovou masku
Směrování OSI 7-4 OSI 3 OSI 2 OSI 1 výchozí poč. IP: n1.h1 n2.h2 n2.h2 n2.h2 MAC12 n2.h2 n2.h2 MAC12 n2.h2 n2.h2 router 1 IP: n1.h2 n2.h2 MAC21 n2.h2 n2.h2 MAC21 n2.h2 n2.h2 router 2 IP: n2.h1 n2.h2 MAC22 n2.h2 n2.h2 cílový poč. IP: n2.h2 n2.h2 MAC22 n2.h2
Směrovací algoritmus zvol nejspeciálnější záznam (host, net, default) existuje? ne není cesta No route to host můjstroj? ano ponechat mojesíť? ano poslat (podle ARP) direct route indirect nebo default route ne poslat směrovači
Příklad směrovací tabulky Destination Gateway Mask 193.84.48.50 193.84.48.49 255.255.255.255 direct, host 194.50.16.64 194.50.16.71 255.255.255.224 direct, subnet 194.50.17.0 194.50.16.77 255.255.255.0 indirect, net default 193.84.48.50 0.0.0.0 default 194.50.17.0 193.84.48.48 194.50.16.64 49 50 77 71
Principy směrování • směrování by měla umět každá stanice, v UNIXu je přímo součástí jádra • směrovací tabulky obsahují záznamy: cíl, maska, gateway(dřívější členění cílů: host, net, default) • cíle jsou řazeny od speciálních k obecnějším • typy záznamů: • direct (přímo připojená síť, “gateway” je vlastní adresa) • indirect, default • vznik záznamu: • implicitní (automaticky po zadání příkazu ifconfig) • explicitní (zadán příkazem route) • dynamický (v průběhu práce od partnerů v síti)
Statické řízení směrovacích tabulek Cesty se nastavují při startu pomocí příkazů route • nesnadné zálohování spojení (cykly) • problémy se subnettingem • nutná inicializace, nepružné při změnách • méně citlivé na problémy v síti • dostupné i ve zcela heterogenním prostředí vhodné pro jednodušší, stabilní sítě route add delete flush | -f [[-]host] host [[-]net] net [[-netmask] mask] default | 0 { }{ } { } [gw] router interface [-interface] [metric]
Redirekce původní obsah tabulky: nový obsah tabulky: default 5.0.0.8 UG 6.0.0.0 5.0.0.6 UGD default 5.0.0.8 UG 1. první datagram pro6.0.0.1 4. další datagramy pro 6.0.0.1 síť 5.0.0.0 3.ICMP redirect 6 8 síť 6.0.0.0 síť 8.0.0.0 2. redirekcedatagramu
Dynamické řízení směrovacích tabulek Uzly sítě si navzájem vyměňují informace směrovacími protokoly • jednoduché změny konfigurace • směrovací tabulky se udržují automaticky • na jednoduchých sítích občas zdrojem zbytečných problémů • starší varianta: • daemon routed {-g | -q } • používá protokol RIP • modernější řešení: • daemon gated, konfigurační soubor /etc/gated.conf • používá protokol RIP nebo OSPF • pro externí routery (propojují autonomní systémy) se užívají protokoly EGP a BGP
Diagnostika směrování • Výpis směrovacích tabulek: netstat -r[n] Destination Gateway Flags Ipkts ... Colls Interface 194.50.16.0 this U 15943 ... 0 tu0 127.0.0.1 loopback UH lo0 default gw UG tu0 193.84.57.0 gate UGD tu0 • Kontrola cesty: traceroute 1 gw.thisdomain (194.50.16.222) 2 ms 1 ms 1 ms 2 gw.otherdomain (193.84.48.49) 12 ms 15 ms 15 ms
Konfigurace TCP/IP UNIX • IP adresa: ifconfig interfaceIP_adr[netmaskmaska] • defaultní router: route add default router • doména a nameserver: /etc/resolv.conf Windows 95 • start dialogu: Control Panel Network TCP/IP domain jméno_domény nameserver IP_adresa_nameserveru
Protokol BOOTP/DHCP FF.FF... MAC 255... 0.0.0.0 BOOTPS BOOTPS request MAC • BOOTP server přiděluje IP podle MAC adresy v tabulce (/etc/bootptab) a odpovídá broadcastem nebo unicastem (musí si doplnit arp tabulku) • podle RFC 1084 odpověď obsahuje IP adresu, síťovou masku, jméno, gateway, nameserver... • routery standardně BOOTP nepropouštějí (limited broadcast), spojení se servrem zajišťuje BOOTP forwardování • postupné rozšiřování vedlo ke vzniku nového protokolu DHCP: dynamické přidělování adres (šetří IP, ale je méně bezpečné), časové omezení pronájmu, interakce mezi klientem a servery,...
Automatická konfigurace BOOTPS request: Ethernetová adresa klienta limited broadcast unicast klient server router s BOOTP forwardingem BOOTPC reply: IP adresa, maska, router... broadcast, unicast
Model TCP aplikace Klient Server socket socket bind bind listen connect accept write read read write close close
Model UDP aplikace Klient Server socket socket bind bind connect connect write sendto sendmsg read readfrom readmsg write sendto sendmsg read readfrom readmsg close close
Start síťových daemonů • přímý start • ve startovacích scriptech • intenzivně využívané, speciální služby, se složitou inicializací • nepřímý start (on demand) • provádí daemon inetd • konfigurace v /etc/inetd.conf: • překonfigurování: kill -HUP PID • server komunikuje přes filedeskriptory 0/1 bootps dgram udp wait root /etc/bootpd bootpd tftp dgram udp wait nobody /etc/tftpd tftpd /tftpboot whois stream tcp nowait nobody /etc/whoisd whoisd