Počítačové sítě
Architektura TCP/IP • V současnosti nejpoužívanější síťová architektura (primární architektura sítě Internet) • Implementace TCP/IP – User-end systémy (PC, servery, …) - implementace všech funkčních vrstev – Mezilehlé uzly (switche, routery..) - implementace spodních funkčních vrstev
• Vývoj TCP/IP – – – – – –
1973 zahájení vývoje na základě zadání DoD U.S.A. – projekt DARPA 1976 vznik protokolu Ethernet pro LAN 1983 TCP/IP zvolen za základní protokol ARPAnetu – „internet 1984 implementace TCP/IP do OS UNIX 1989 Internet 1992 WWW Počítačové sítě - architektura TCP/IP
1
Počítačové sítě
Architektura TCP/IP • Sada protokolů přiřazených do třech funkčních vrstev • „TCP/IP Protocol Family • Implementace na různých systémových platformách • Architektura TCP/IP je standard „de facto • Standardy TCP/IP – dokumenty RFC (Request for Comments), volně přístupné • Charakteristika TCP/IP – dominantní postavení, ale: – Současným požadavkům již příliš nevyhovuje – Nutnost řešit nedostatečnosti vytvářením funkčních „mezivrstev a novými protokoly
• Výhoda: nespecifikuje vlastní řešení přístupu k datovému spoji vytváří rozhraní pro různé přenosové technologie LAN a WAN Počítačové sítě - architektura TCP/IP
2
Počítačové sítě Architektura TCP/IP Architektura TCP/IP
vs.
Referenční model OSI
Počítačové sítě - architektura TCP/IP
3
Počítačové sítě Architektura TCP/IP Rozhraní IP vrstvy a vrstev přenosových
Počítačové sítě - architektura TCP/IP
4
Počítačové sítě Architektura TCP/IP
• Vrstva síťová (Internet Layer) – směrování a
přepojování datagramu, fragmentace/defragmentace datagramů - protokoly: – IP (Internet Protocol) – základní protokol sítě, vysílá datagramy, fragmentuje a znovusestavuje datagramy, služba bez spojení, současná verze IPv4 – následující IPv6 – ARP, RARP (Address Resolution Protocol, Reverse ARP) – mapování logické síťové (IP) adresy do do fyzické (MAC) adresy a naopak – ICMP (Internet Control Message Protocol) – generace řídících zpráv o chybách a nestandardních událostech při přenosu datagramu – IGMP (Internet Group Management Protocol) – správa síťových skupin – mapování skupinové MAC adresy do síťové skupinové adresy – OSPF (Open the Shortest Path First) – směrovací protokol – a další Počítačové sítě - architektura TCP/IP
5
Počítačové sítě Architektura TCP/IP
• Vrstva transportní (Transport Layer) – koncový přenos mezi dat mezi komunikujícími procesy (odpovídá transportní vrstvě OSI), protokoly: – TCP (Transmission Control Protocol) – služba se spojením – UDP (User Datagram Protocol) – služba bez spojení
Počítačové sítě - architektura TCP/IP
6
Počítačové sítě Architektura TCP/IP
• Vrstva aplikační (Application Layer) – Množina protokolů poskytujících uživatelské síťové služby a systémové síťové služby (např. směrovací protokoly), – Závislost na určitém typu transportu dat (TCP nebo UDP) nebo možnost volby – Aplikační vrstva se stále rozšiřuje o nové protokoly – Aplikační protokoly systémové • DNS (Domain Name Service) – přiřazení IP adresy k doménovému jménu • SNMP (Simple Network Management Protocol) – podpora správy sítí – Aplikační protokoly uživatelské - příklady • TELNET – virtuální terminál (vzdálený přístup k hostitelskému systému) • FTP (File Transfer Protocol) – přenos souborů mezi uzly • SMTP (Simple Mail Tranfer Protocol) – přenos elektronické pošty Počítačové sítě - architektura TCP/IP
7
Počítačové sítě IP vrstva
IPvrstva Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF
Počítačové sítě - architektura TCP/IP
8
Počítačové sítě IP vrstva
Multiplexing služby protokolu IP
Počítačové sítě - architektura TCP/IP
9
Počítačové sítě IP vrstva
IP vrstva • Adresace • Směrování • PDU • Fragmentace – Logická síťová adresa – 32 bitů (4 oktety) – zápis „dotted – decimal – 2 části – identifikátor IP sítě (IP network address) + číslo uzlu (host/node address) – příklad: 147.132.1.3 – Centrálně řízené přidělování adres – hierarchie NIC – Typy adres: třída A – N.H.H.H třída B – N.N.H.H třída C – N.N.N.H Počítačové sítě - architektura TCP/IP
10
Počítačové sítě IP vrstva • IP adresy - unikátní identifikátory uzlů v Internetu přidělené organizací IANA (Internet Assigned Numbers Authority) – http://www.iana.org – unicast – třídy A, B, C – multicast – třída D • V oblastech unicast i multicast adres má IANA vyhrazené bloky adres (RFC 3300 Special-Use IPv4 Addresses) • IP adresy privátní pro používání v intranetech (RFC 1918 – Address Allocation for Private Internets ) – třída A 10.0.0.0 – 10.255.255.255 – třída B 172.16.0.0. – 172.31.255.255 – třída C 192.168.0.0. – 192.168.255.255
Počítačové sítě - architektura TCP/IP
11
Počítačové sítě IP vrstva
Metody adresování privátních sítí – intranetů – NAT (Network Address Translation) – opakované přidělování adres
– PAT (Port Address Translation) – jedna společná adresa
Počítačové sítě - architektura TCP/IP
12
Počítačové sítě IP vrstva
• Způsob přidělování IP adres – delegování na úrovně kontinentů a státní úrovně – APNIC (Asia Pacific Network Information Centre) - Asia/ Pacific Region – ARIN (American Registry for Internet Numbers) - North America and Sub-Sahara Africa – LACNIC (Regional Latin-American and Caribbean IP Address Registry) – Latin America and some Caribbean Islands – RIPE NCC (Réseaux IP Européens) - Europe, the Middle East, Central Asia, and African countries located north of the equator
• V ČR – přidělení IP adres je spojeno s registrací domén - společnost CZ.NIC, z.s.p.o. Počítačové sítě - architektura TCP/IP
13
Počítačové sítě IP vrstva
Adresy typu A Bity
Rozsah adres: 1.0.0.0 – 126.0.0.0 Počet adres uzlů: 16 777 214
Adresy typu B Bity
Rozsah adres: 128.0.0.0 – 191.254.0.0 Počet adres uzlů: 65 534 Počítačové sítě - architektura TCP/IP
14
Počítačové sítě IP vrstva
Adresy typu C Bity Rozsah adres: 192.0.1.0 – 223.255.254.0 Počet adres uzlů: 254
Adresy typu D (identifikace síťových skupin) Bity Rozsah identifikátorů skupin: 224.0.0.0 – 239.255.255.255
Počítačové sítě - architektura TCP/IP
15
Počítačové sítě IP vrstva – rozdělení adresového prostoru Typ adresy
Rozsah adres
Poznámka
A
0.0.0.0 1.0.0.0 – 126.0.0.0 127.0.0.0
Vyhrazeno Používáno Vyhrazeno *
B
128.0.0.0 128.1.0.0 – 191.254.0.0 191.255.0.0
Vyhrazeno Používáno Vyhrazeno
C
192.0.0.0 192.0.1.0 – 223.255.254.0 223.255.255
Vyhrazeno Používáno Vyhrazeno
D E
224.0.0.0 – 239.255.255.255 240.0.0.0. – 255.255.255.254 255.255.255.255
Speciální účel Nepoužito Vyhrazeno **
Počítačové sítě - architektura TCP/IP
16
Počítačové sítě IP vrstva – rozdělení adresového prostoru * Adresa 127.0.0.0 je vyhrazena pro OS UNIX –127.0.0.1 je adresa interního síťového rozhraní – logického - (loopback) ** Adresa 255.255.255.255 je IP globální broadcast – pokrývá všechny IP uzly všech IP sítí – datagramy s touto adresou jsou na IP směrovačích filtrovány • Maska sítě – filtruje z IP adresy adresu IP sítě (nebo podsítě – viz dále) • Implicitní masky: – Třída A – 255.0.0.0 – Třída B – 255.255.0.0 – Třída C – 255.255.255.0 Počítačové sítě - architektura TCP/IP
17
Počítačové sítě IP vrstva – podsítě
IP podsítě (subsítě) • Rozdělení velké sítě na řadu menších podsítí • Velikost podsítě určuje správce • Směrovač používá masku podsítě a IP adresu cílového uzlu k určení cílové podsítě • Pro vytvoření adres podsítí se použijí horní bity z pole H (adresa uzlu) • Maska podsítě – implicitní maska sítě + bity z pole H použité pro adresování podsítí
IP broadcast • Adresa pokrývající všechny uzly dané sítě nebo podsítě Počítačové sítě - architektura TCP/IP
18
Počítačové sítě IP vrstva
Metody adresace v LAN – Hierarchie tříd A, B, C (Classfull Addressing)– masky pro určitou třídu – CIDR (Classless Inter-Domain Routing) – princip prefixů adres – Podsítě – určení podsíťové masky (subnet mask) podle počtu adresovaných zařízení v podsíti – v jedné LAN (tj. na všech rozhraní routeru) pouze jedna podsíťová maska – NAT (Network Address Translation) – překlad veřejných adres do privátních – „úspora veřejných adres – VLSM (Variable Length Subnet Mask) – v jedné LAN více různých podsíťových masek (tj.každé rozhraní má jinou masku) – využití zpravidla u privátních adres Počítačové sítě - architektura TCP/IP
19
Počítačové sítě IP vrstva
• Podsítě vs. VLSM – Prefixy pro jednotlivé sítě se určují podle potřeby – VLSM využívá efektivněji adresní prostor – Pro dvoubodová spojení max. prefix /30
• Classfull vs. Classless – Lepší využití adresního prostoru – Společný prefix skupiny sítí (supernetting) – Možnost agregace záznamů ve směrovacích tabulkách směrovačů Počítačové sítě - architektura TCP/IP
20
Počítačové sítě IP vrstva - směrování
Směrování - výběr cesty pro datagram: – Přímé směrování - předání cílovému uzlu na téže IP síti/podsíti – Nepřímé směrování - předání některému ze směrovačů na téže síti/subsíti Do rámce je třeba vložit MAC adresu cílového uzlu (u přímého směrování) nebo MAC adresu směrovače (u nepřímého směrování)
Počítačové sítě - architektura TCP/IP
21
Počítačové sítě IP vrstva - směrování
Vyhledání MAC adresy (pro sestavení rámce) ke známé IP adrese • Řešení: protokol ARP (Address Resolution Protocol): – Vyšle rámec s ARP dotazem (ARP request) na MAC broadcast cílovou adresu – Uzel, který poznal svou IP adresu uloženou v ARP dotazu vygeneruje ARP odpověď (ARP reply) , do které svou MAC adresu vloží – ARP cache – uchovává záznamy získané v předchozích ARP aktivitách
Počítačové sítě - architektura TCP/IP
22
Počítačové sítě IP vrstva - směrování Protokol ARP (Address Resolution Protocol)
Počítačové sítě - architektura TCP/IP
23
Počítačové sítě IP vrstva - směrování
Vyhledání IP adresy ke známé MAC adrese – pro konfiguraci síťového rozhraní • Řešení: protokol RARP (Reverse Address Resolution Protocol) – Použití např. v bezdiskové pracovní stanici, terminálu apod. - vyšle rámec s RARP dotazem (RARP request) na MAC broadcast – Odpoví RARP server (RARP reply) , který má uloženu mapu přiřazení MAC – IP pro obsluhované uzly
Počítačové sítě - architektura TCP/IP
24
Počítačové sítě IP vrstva - směrování Protokol RARP (Reverse Address Resolution Protocol)
Počítačové sítě - architektura TCP/IP
25
Počítačové sítě IP vrstva - směrování
Formát zprávy ARP/RARP protokolu v rámci Ethernet
Počítačové sítě - architektura TCP/IP
26
Počítačové sítě IP vrstva - směrování
• Nepřímé směrování – směrovací mapy (směrovací tabulky) • Směrovací tabulky – mapy pro určení cesty – Směrovací tabulky směrovačů – statické (manuálně vytvořené), dynamické (směrovač vytvoří mapu určitým algoritmem z informací získaných prostřednictvím směrovacích protokolů) – topologie celé sítě (směrovací oblasti) – Směrovací tabulky koncových uzlů – minimální mapy obsahují záznam, který specifikuje výchozí směrovač (default router) Počítačové sítě - architektura TCP/IP
27
Počítačové sítě IP vrstva
• Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF
Počítačové sítě - vrstva IP
1
Počítačové sítě IP vrstva
• Další protokoly IP vrstvy (ICMP, IGMP, OSPF a další vkládají svá PDU do IP datagramů • IP datagramy jsou zapouzdřeny do rámců protokolů data-link vrstvy (např. IEEE 802.3, IEEE 802.11, FDDI) • Protokoly ARP a RARP vkládají své zprávy přímo do rámců data-link vrstvy (nikoliv do IP datagramů)
Počítačové sítě - vrstva IP
2
• IP protokol
Počítačové sítě IP vrstva
– Vytváří datagramy – Zajišťuje přenos datagramů přes směrovače, které rozhodují o přenosové trase (služba bez spojení) – V případě potřeby (velikost datagramu > MTU) rozděluje pakety na fragmenty – každý fragment je samostatný datagram – Defragmentace (znovusestavení fragmentů) se provádí na cílovém systému – IP poskytuje službu transportním protokolům UDP a TCP, připojuje IP záhlaví před UDP datagramy a TCP segmenty – Pořadí přenášených bitů – big endian Počítačové sítě - vrstva IP
3
Počítačové sítě IP vrstva PDU transportní vrstvy
IP záhlaví 20 B + IP option 0
1
2
3
4
5
VERSION
6
7
8
9
10
11
12
13
14
HLEN
FLAGS TIME TO LIVE
TYPE OF SERVICE/DSCP + ECN TOTAL LENGTH IDENTIFICATION FRAGMENT OFFSET PROTOCOL HEADER CHECKSUM SOURCE IP ADDRESS DESTINATION IP ADDRESS
15
31
63
95 127 159
IP OPTION
(PADDING na hranici 4 B )
PDU transportní vrstvy Počítačové sítě - vrstva IP
4
Počítačové sítě IP vrstva Popis záhlaví IP datagramu • Version 0. – 3. b (4 b.) – hodnota 4 pro IPv4 • HLEN 4. – 7. b (4 b.) – délka záhlaví ve „slovech (4 B). Hodnota: min. 5 (povinné záhlaví – 20 B) – max. 15 (pro záhlaví s volbami – 60 B) • Total Length 16. – 31. b (16 b.) - celková velikost datagramu v B. Hodnota: min. 20 (datagram bez dat) – max. 65 535. • HEADER CHECKSUM 80. – 95. b (16 b.) - kontrolní součet záhlaví (nikoliv datového obsahu) Počítačové sítě - vrstva IP
5
Počítačové sítě IP vrstva • TIME-TO-LIVE 64. – 71. b (8 b.) – maximální počet průchodů přes mezilehlé směrovače –při průchodu směrovačem je hodnota snížena o 1. Je-li TTL=0/1 a datagram není v cílové IP síti chybová ICMP zpráva • PROTOCOL 72. – 79. b (8 b.) – kód protokolu, jehož PDU je v datagramu zapouzdřeno Protokol
kód
Protokol
kód
IPv4
00
UDP
17
ICMP
01
TCP
06
IGMP
02
Počítačové sítě - vrstva IP
6
Počítačové sítě IP vrstva • Bity 8 - 15 Původní verze - pole TOS (Type of Service) – specifikace požadavků na přenos datagramu
Ø Precedence (0 – 7 ) – význam (hodnota) datagramu Ø D (Delay) - přenos s minimálním zpoždění Ø T (Throughput) – přenos s maximálním výkonem Ø R (Reliability) – přenos s maximální spolehlivostí Ø C (Cost) – přenos nejméně nákladný
• Přenos bez zvláštních požadavků TOS=0 • Aby nastavení TOS bylo účinné, musí být podporováno všemi směrovači na přenosové cestě Počítačové sítě - vrstva IP
7
Počítačové sítě IP vrstva • Bity 8 - 15 Nová verze – pole DSCP a ECN
• DSCP (Differentiated Services CodePoint) – řízení provozu s rozdílnými požadavky na přenos (QoS) • ECN (Explicit Congestion Notification) – dva bity pro řízení přenosů (prevence proti zahlcení a následné ztrátě datagramů) Počítačové sítě - vrstva IP
8
Počítačové sítě IP vrstva • Řízení fragmentace - bity 32 - 63 – Identifikace fragmentu – pole IDENTIFICATION (16 bitů) – Příznak fragmentace – pole FLAGS (3 bity, 1. je nevyužitý) DF – Don´t Fragment MF – More Fragment nefragmentuje následují další fragmenty poslední fragment
– Umístění fragmentu v rámci původního datagramu (v počtu oktetů od prvního oktetu datagramu) – pole FRAGMENT OFFSET (13 bitů) Počítačové sítě - vrstva IP
9
Počítačové sítě IP vrstva • Pole IP OPTION – formát definované volby:
– Vytvoření záznamu o směrování (Record Route Option) – kód 0x07 – Specifikace striktní přenosové cesty (Strict Source Routing Option) – kód 0x89 – Specifikace volné přenosové cesty (Loose Source Routing Option) – kód 0x83 – Časový snímek (v msec uplynulých po půlnoci) přenosové cesty (Time Stamp Option) – kód 0x44 Problém IP voleb: aby volby měly smysl, musely by být implementovány na všech mezilehlých zařízeních (routerech) na přenosové cestě (a to nebývají) Počítačové sítě - vrstva IP
10
Počítačové sítě IP vrstva – protokol ICMP
Protokol ICMP (Internet Control Message Protocol) – informace o chybách a jiných významných událostech • IP datagram s ICMP zprávou
Počítačové sítě - vrstva IP
11
Počítačové sítě IP vrstva – protokol ICMP • Kde je ICMP zpráva je generována – Cílovým uzlem datagramu, ke kterému se ICMP zpráva vztahuje – Jedním z mezilehlých uzlů (směrovačů), kterými tento IP datagram prochází • Kdy není ICMP zpráva generována – IP datagram přenáší jinou ICMP zprávu – Cílová adresa datagramu je typu IP broadcast nebo IP multicast – Datagram obsahuje jiný fragment než první (viz pole FRAGMENT OFFSET) – Zdrojová adresa datagramu je 0.0.0.0., 127.0.0.1 (loopback), IP adresa typu IP broadcast nebo IP multicast Počítačové sítě - vrstva IP
12
Počítačové sítě IP vrstva – protokol ICMP ICMP zprávy • ICMP „Echo Request - TYP=8, KÓD=0, data ICMP: – Identifikátor zprávy – Pořadové číslo zprávy – Volitelná libovolná data • ICMP „Echo Reply - TYP=0, KÓD=0, data ICMP – kopie dat z příslušné ICMP „request • ICMP „Time Exceeded - TYP=11, KÓD=0/1, data ICMP : 4B „0 + záhlaví inkriminovaného IP datagramu (20B) + dalších 8 B – Kód 0 - hodnota TTL=0/1 a IP datagram není v cílové IP síti – generuje pouze router – Kód 1 - vypršel čas pro znovusestavení fragmentů datagramu generuje pouze cílovýPočítačové uzel sítě - vrstva IP 13
Počítačové sítě IP vrstva – protokol ICMP • ICMP „Destination Unreachable - TYP=3, KÓD=0 - 15, data ICMP: 4B „0 + záhlaví inkriminovaného IP datagramu (20B) + dalších 8 B
Kód
Význam
Kód
Význam
0 1 2
Nedostupná IP síť
Cílová IP síť neznámá Cílový IP host neznámý
Nedostupný protokol
6 7 9
3
Nedostupný port
10
Administrativní zákaz přístupu k IP hostu
4
Nutná fragmentace, nastaven D příznak
11
Nedostupná IP síť pro požadovanéTOS
5
Určený router selhal ( při IP volbě „Source Routing )
12
Nedostupný IP host pro požadovanéTOS
Nedostupný IP host
Počítačové sítě - vrstva IP
Administrativní zákaz přístupu do IP sítě
14
Počítačové sítě IP vrstva – protokol ICMP • ICMP „ Redirect Error – TYP=5, KÓD=0 - 3, data ICMP: – IP adresa směrovače, na který měl být datagram poslán (4B) – záhlaví inkriminovaného IP datagramu (20B) – dalších 8 B datagramu ICMP Redirect generuje směrovač, na který byl (nekorektně) datagram zaslán
Počítačové sítě - vrstva IP
15
Počítačové sítě IP vrstva – protokol ICMP – ICMP 5 „Redirect Error • Zdrojový uzel v ICMP obdrží ve zprávě „Redirect Error : – IP adresu směrovače (nesprávného), kterou si má ve své tabulce opravit – IP adresu směrovače, kam měl být datagram správně poslán (tu si musí zapsat do tabulky) – IP adresu cílového uzlu, kam byl datagram posílán • Kód – 0 - přesměrování pro IP síť – 1 - přesměrování pro IP host – 2 - přesměrování pro IP síť a TOS – 3 - přesměrování pro IP host a TOS Počítačové sítě - vrstva IP
16
Počítačové sítě IP vrstva – protokol ICMP • ICMP „ Time Stamp Request/Reply – TYP=13/14, KÓD=0, data ICMP: – Identifikátor (2B), pořadové číslo zprávy (2B) – Čas odeslání (v msec uplynulých od půlnoci) (4B) – Čas přijetí (4B) – Čas odeslání odpovědi (4B)
Počítačové sítě - vrstva IP
17
Počítačové sítě IP vrstva – protokol ICMP • ICMP „ Source Quench Error – TYP=4, KÓD=0 , data ICMP: – 32 bitů „0 (4B) – záhlaví inkriminovaného IP datagramu (20B) – dalších 8 B datagramu může generovat směrovač nebo cílový systém, který „nestíhá • ICMP „ Parameter Problems Error – TYP=12, KÓD=0/1 , data ICMP: – Ukazatel na chybný oktet v datagramu (1B) + 24 bitů „0 (3B) – záhlaví inkriminovaného IP datagramu (20B) – dalších 8 B datagramu Kód 0 – chyba v hodnotě parametru Kód 1 – požadovaný parametr (volitelný) chybí Počítačové sítě - vrstva IP
18
Počítačové sítě IP multicasting IP multicast – mechanismus pro skupinovou komunikaci v IP vrstvě • Zdroj vysílá jeden datagram, na multicast směrovačích se jeho kopie vysílají do větví multicast stromu (multicast spanning tree) • Adresy typu D – podpora IP multicastu • Protokoly pro podporu IP multicast – IP multicast směrovací protokoly – Protokol skupinové adresace – IGMP (Internet Group Management Protocol) 1
Počítačové sítě IP multicasting
2
Počítačové sítě IP multicasting
3
Počítačové sítě IP multicasting Adresy typu D (identifikace síťových skupin)
Celkový rozsah identifikátorů skupin: 224.0.0.0 – 239.255.255.255 • Rozsah 224.0.0.0 – 224.0.0.255 je rezervován pro směrovací protokoly a další protokoly pro řízení a správu multicast provozu • Multicast směrovače vytvářejí multicast spanning tree • Datagramy s cílovou adresou tohoto rozsahu nejsou dále forwardovány z multicast směrovačů.
• Rozsah 239.0.0.0 – 239.255.255.255 je rezervován pro interní používání (v rámci organizace)
4
Počítačové sítě IP multicasting • Rezervované adresy třídy D (příklady) – – – – – –
224.0.0.0 Base Address (Reserved) 224.0.0.1 All Systems on this Subnet 224.0.0.2 All Routers on this Subnet 224.0.0.5 OSPFIGP OSPFIGP All Routers 224.0.0.6 OSPFIGP OSPFIGP Designated Routers 224.0.0.9 RIP2 Routers
• Další příklady permanentních multicast adres – 224.0.1.128 CNN – 224.2.0.0 - 224.2.127.253 Multimedia Conference Calls
• Seznam rezervovaných multicast adres 5
Počítačové sítě IP multicasting • IP multicast směrovací protokoly vytvářejí virtuální multicast stromy na směrovacích cestách pro přenosy v rámci multicast skupin (podle adres třídy D) – PIM (Protocol Independent Multicast) - nezávislý protokol přenosu multicast. – DVMRP (Distance Vector Multicast Routing Protocol) směrovací protokol přenosu multicast s vektory vzdálenosti. – MOSPF (Multicasts Open Shortest Path First) - protokol první nejkratší cesty pro přenos multicast.
6
Počítačové sítě IP multicasting
7
Počítačové sítě IP multicasting Protokol IGMPv1/IGMPv2/IGMPv3 (Internet Group Management Protocol) – Dynamicky registruje členy, patřící do skupiny identifikovaných adresou třídy D. – Hostitel identifikuje členství ve skupině odesláním zpráv protokolu IGMP a data zasílá vždy všem členům skupiny. – Směrovače používající protokol IGMP pravidelně naslouchají zprávám protokolu IGMP a systematicky odesílají dotazy s cílem zjístit, které skupiny jsou v síti LAN aktivní. – Směrovače spolu komunikují pomocí multicast směrovacích protokolů a pro každou skupinu připravují cesty pro spoje s přenosem typu multicast 8
Počítačové sítě IP multicasting Formát IGMP v1 zprávy
9
Počítačové sítě IP multicasting Formát IGMP v2 zprávy
Type – typ příkazy 0x11 – query (vyhledávání obecné a specifikované) 0x12 - membership report (v1) 0x16 - membership report (v2) 0x17 – membership leave 10
Počítačové sítě IP multicasting • Nastavení cílové IP adresy v záhlaví datagramu – Vyhledávání obecné - query 224.0.0.1 (tj. „all systems on subnet ) – Vyhledávání určité skupiny - query identifikátor příslušné multicast skupiny – Report (membership report) - příslušná multicast skupina – Zpráva o opuštění skupiny (membership leave) – 224.0.0.2 (tj. „all routers on subnet ) 11
Počítačové sítě IP multicasting Komunikace pod protokolem IGMP
12
Počítačové sítě IP multicasting Multicast adresace – MAC … pro IP multicast jsou rezervovány adresy v rozsahu 01:00:5E:00:00:00 – 01:00:5E:7F:FF:FF (OUI IANA = 00:00:5E) 23 bitů
– IP …….adresy třídy D (224.0.0.1 – 239.255.255.254)
13
Počítačové sítě IP multicasting Mapování IP adresy třídy D do MAC multicast adresy
Počítačové sítě IP multicasting Protokoly pro IP multicast
15
Počítačové sítě IP routing
1
Počítačové sítě IP routing • IP sítě jsou propojeny směrovači - routery – Funkce směrovačů odpovídá 3. vrstvě referenčního modelu OSI - L3 – L3 odpovídá IP vrstvě architektury TCP/IP – Směrovače provádějí přepojování datagramů mezi IP sítěmi (datagramová služba) – Směrovače určují „nejlepší cestu pro datagramy podle směrovacích map (tabulek), které obsahují celou topologii internetu (internet = propojené IP sítě) 2
Počítačové sítě IP routing • Architektura internetu – Core-network (jádro sítě) – původní koncepce • Core routers
– Autonomní systémy - současná koncepce • Hraniční směrovače AS
3
Architektura Core-network
4
Architektura autonomních systémů
5
Počítačové sítě IP routing Směrovací mapy (směrovací tabulky) • Směrovač získává informace o sítích – Staticky (statické směrovací tabulky) • Administrátorem ručně editované záznamy • Směrovač nemůže vytvářet alternativní cesty, jestliže se nastavená cesta přeruší • Možnost chybné konfigurace • Riziko vzniku směrovacích smyček 6
Počítačové sítě IP routing – Dynamicky (dynamické směrovací tabulky) • Na základě informací periodicky šířených směrovacími protokoly se mapy vypočítávají podle určitého algoritmu • Snadná adaptace na změny v topologii sítě • Mezi směrovači musí být dohoda o implementaci stejného směrovacího protokolu
7
Počítačové sítě IP routing Připomeňme si: – Přímé směrování - zdroj i cíl ve stejné IP síti – Nepřímé směrování - zdroj a cíl v různých IP sítích • Výchozí směrovač (default router)
8
Počítačové sítě IP routing • Co obsahuje směrovací tabulka? – Pro každou IP síť internetu záznam: Síť
Brána
Rozhraní
Metrika
– Síť – IP adresa sítě – Rozhraní – identifikátor rozhraní – Brána - IP adresa rozhraní dalšího směrovače – Metrika - zhodnocené parametry přenosové cesty (parametry jsou stanoveny protokolem) - např. počet směrovačů na přenosové cestě, cena za přenos, přenosová kapacita, zpoždění ...
9
10
Počítačové sítě IP routing • Princip směrovacích protokolů - šíření směrovacích informací po krocích – Příklad: • Sítě Network 1, Network 2, Network 3, Network 4 • Routery RA, RB, RC, RD
11
Počítačové sítě IP routing • Každý směrovač musí mít mapu pro celý internet - pro globální síť Internet je to nerealizovatelné • Řešení: rozdělení Internetu na autonomní systémy • Autonomní systém (AS) – AS je komplex sítí a směrovačů – AS je jedna administrativní doména se společnou směrovací strategií 12
Počítačové sítě IP routing • Každý AS je registrován a má přidělen unikátní identifikátor ASN (16/32 bitů), který používají ke své identifikaci externí směrovací protokoly v procesu vzájemné výměny směrovacích informací • Globální správce čísel ASN je IANA (RIPE NCC pro Evropu, CZ.NIC pro ČR) • Dvě úrovně směrování v AS architektuře – Uvnitř AS - směrování interními směrovacími protokoly (IGP - Interior Gateway Protocol) – Mezi AS - směrování externími směrovacími protokoly (EGP -Exterior Gateway Protocol) 13
Počítačové sítě IP routing Propojení autonomních systémů Internetu
14
Počítačové sítě IP routing Dohody o tranzitu datových přenosů mezi AS - peering
15
Počítačové sítě IP routing Peering • Peeringová centra v ČR – NIX (Neutral Internet Exchange) - NIX.CZ, z.s.p.o.
– CBIX (Commercial Brno Internet Exchange) Master Internet, s.r.o. 16
Počítačové sítě IP routing •
Algoritmy pro výpočet směrovacích cest – Distance Vector Algorithmus (DVA) – Link State Algorithmus (LSA) • Princip DVA 1. Směrovače periodicky vysílají obsah své směrovací tabulky 2. Směrovače přijímají informace vysílané ostatními směrovači a podle nich aktualizují obsah své tabulky 3. Směrovací tabulky obsahují částečné informace o vzdálených oblastech sítě 17
Počítačové sítě IP routing • Charakteristika DVA – Protokoly založené na DVA definují malé přirozené číslo, které omezuje hodnotu DISTANCE (tzv. max. hop-count). Pokud v tabulce dojde k dosažení této hodnoty, síť se považuje za nedosažitelnou a záznam se z tabulky odstraní – Protokoly jsou tedy vhodné pro nepříliš rozsáhlé sítě 18
Počítačové sítě IP routing • DVA algoritmus Bellman-Ford Cíl je vytvořit tabulku: Net
Gateway
Distance („hopcount )
• Distance je počet směrovačů, přes které musí datagram projít na trase do cílové sítě • Směrovač šíří svou směrovací tabulku IP broadcastem/IP multicastem • Jestliže přijme směrovač novou informaci (záznam pro síť, kterou ve své tabulce nemá nebo je v záznamu pro známou síť kratší hopcount, svou tabulku opraví) 19
Počítačové sítě IP routing Vytvoření tabulky zahrnuje: 1. Vytvoření záznamů pro sousedící sítě 2. Podle postupně (po krocích) přijímaných obsahů tabulek sousedních směrovačů se tvoří záznamy pro vzdálenější sítě 3. Hodnota „hopcount přijatá od sousedního směrovače se vždy zvýší o 1
Nevýhody DVA: • • •
Periodicky se vysílají celé tabulky U větších sítí to jsou velké datové pakety Přenosy velkých tabulek zatěžují sítě 20
Počítačové sítě IP routing •
Princip LSA 1. Směrovače vysílají pouze informace („Link State Packets - LSP) o stavu spojů, ke kterým jsou připojeny. 2. LSP jsou vysílány všem ostatním směrovačům („flooding ) ve stejné směrovací oblasti – přenosy 3. Každý směrovač si vytváří z obdržených informací kompletní topologickou mapu sítě 21
Počítačové sítě IP routing
– Podle mapy jsou určeny „nejlepší cesty k cílovým sítím (Dijkstra algoritmus) – Metrika LSA - „cost (administrativně nastavená pro každou cestu) – Směrovač zpracovává pouze změny stavů spojů, které obdrží v LSP a potom znovu spočítá nejkratší cestu – Výhody LSA: • Pakety protokolů LSA jsou mnohem kratší než u protokolů DVA, velikost jejich obsahu nezávisí na velikosti sítě • Protokoly LSA jsou vhodné i pro velmi rozsáhlé sítě 22
Počítačové sítě IP routing • Interní protokoly - IGP – Protokol RIPv1 a RIPv2 (Routing Information Protocol version 1/2) – Protokol OSPF (Open-the Shortest-Path-First)
23
Počítačové sítě IP routing Charakteristika RIPv1 a RIPv2 – Algoritmus DVA – Metrika hopcount (max. hopcount = 16) – Vysílání RIP zpráv IP broadcastem každých 30 sec – Pokud není přijata RIP zpráva po dobu 180 sec, platnost směrovací tabulky vyprší (dojde ke ztrátě konektivity) – Použití v malých a středních sítích – Implementace RIP protokolu jsou součástí OS Unix – Protokol RIP nevytváří alternativní cesty – Problémy RIP protokolu: • pomalé šíření informace • náchylnost ke vzniku směrovacích smyček 24
Počítačové sítě IP routing – RIP nevytváří hierarchické směrovací oblasti – RIP vytváří „ploché (flat) směrovací oblasti – RIP definuje pouze jeden typ směrovače – Nastavení RIP routing na směrovačích a počítačích (programová konfigurace): • Aktivní – generují a šíří RIP zprávy (síťové směrovače) • Pasivní – pouze přijímají RIP zprávy od aktivních subjektů (počítače) 25
Počítačové sítě IP routing Formát zprávy RIPv1
Figure 176: RIP Version 1 (RIP-1) Message Format The RIP-1 message format can contain up to 25 RIP Entries. Here, RIP Entry #1 is shown here with each of its constituent subfields.
26
Počítačové sítě IP routing Formát zprávy RIPv2
27
Počítačové sítě IP routing
28
Počítačové sítě IP routing Charakteristika OSPF – Algoritmus LSA – Metrika „cost přiřazená administrátorem každému spoji – podpora ToS (Delay, Throughput, Reliability) – ToS = 0, pak „cost = šířka přenosového pásma – Možnost vytvářet paralelní cesty (stejná metrika) – rozdělení zatížení sítě (load balancing)
29
Počítačové sítě IP routing – OSPF vytváří hierarchické sítě tvořené směrovacími oblastmi (area) – OSPF definuje více typů směrovačů generujících více typů OSPF zpráv – Šíření zpráv mezi OSPF směrovači – komunikace prostřednictvím přenosů „multicast • Adresa 224.0.0.5 - všechny OSPF směrovače sítě • Adresa 224.0.0.6 - „pověřený směrovač (designed router)
30
Počítačové sítě IP routing – Oblasti OSPF (areas) zahrnují typicky více sítí, každá oblast je připojena k páteřní oblasti (transportní síti) – Nelze-li připojit oblast (area) k páteři, vytvoří se „virtuálního spoj přes jinou oblast (tranzitní síť) – OSPF podporuje ToS a autentizaci LSA
31
Počítačové sítě IP routing
OSPF doména Area - soustava jedné nebo více souvislých sítí • Každá area má svou „kopii Shortest Path First (SPF) algoritmu • Hierarchické směrování – Uvnitř oblasti – intra area – společná topologická databáze Vnitřní směrovač AR (Area Router) – „pověřený směrovač – Mezi oblastmi - inter area – přes páteřní oblast– sumarizuje topologické informace oblasti Hraniční směrovač ABR (Area Border Router) – Mezi OSPF směrovacími doménami – autonomní oblasti • Se stejnou metrikou • S rozdílnou metrikou Hraniční směrovač AS ASBR (AS Border Router) 33
Počítačové sítě IP routing OSPF doména
34
Příklad konfigurace OSPF
35
Počítačové sítě IP routing Zprávy OSPF – LSA (Link State Announcements Packets) – LSA pakety obsahují informace o spojích připojených k vysílajícímu směrovači – LSA pakety jsou generovány, jestliže nastane změna stavu spojů, jinak periodicky (30 min.) – Protokol „Hello – zřizuje a udržuje vztahy mezi sousedními směrovači, provádí výběr „pověřeného směrovače (224.0.0.6) v síti s více směrovači
36
Počítačové sítě IP routing Formát společného záhlaví OSPF zprávy
37
Počítačové sítě IP routing
38
Počítačové sítě IP routing Pakety OSPF
39
Počítačové sítě IP routing – LSA pakety (zprávy OSPF) • Hello Packet (typ 1) - vytváří se v prvním kroku LSA - "oslovení sousedních routerů"
• Database Description Packet (typ 2) odpověď na Hello Packet
• Link State Request Packet (typ 3) - žádost o vyslání Link State Update Packet
• Link State Acknowledgment Packet (typ 5) - potvrzuje příjem Link State Update Packet
40
Počítačové sítě IP routing • Link State Update Packet (typ 4) - odpověď na Link State Request Packet – LS LinkType 1 – Router Link – zahrnuje informace o stavu všech rozhraní směrovače s oblastí. Je vysílán do lokální sítě všemi směrovači – LS LinkType 2 – Network Link – zahrnuje seznam směrovačů připojených k lokální síti. Je vysílán do lokální oblasti a je generován „pověřeným směrovačem
41
Počítačové sítě IP routing • Link State Update Packet (typ 4) - odpověď na Link State Request Packet
– LS LinkType 3/4 – Summary Link to Network/to ASBR – popisuje cestu mimo oblast (v rámci vlastního AS). Je generován hraničními směrovači (ABR) a vysílán do připojených oblastí (typ 3 popisuje cestu k sítím, typ 4 k hraničním směrovačům AS – LS Link Type 5 – External Link – popisuje cestu v jiném AS. Je generován ASBR a vysílán do AS – LS LinkType 6 – Group Membership – podpora skupinových přenosů 42
Počítačové sítě IP routing • LS Type (shrnutí) 1 Router links 2 Network links 3 Summary link (IP network) 4 Summary link (ASBR) 5 AS external link
43
Počítačové sítě IP routing
44
Počítačové sítě IP routing Formát zprávy OSPF Hello
45
Počítačové sítě IP routing Formát zprávy OSPF Database Description
46
Počítačové sítě IP routing Formát zprávy OSPF Link State Request Packet
47
Počítačové sítě IP routing Formát zprávy OSPF Link State Update
48
Počítačové sítě IP routing Záhlaví každého oddílu Link Status Advertisements 1 - n
49
Počítačové sítě IP routing Pakety Link State Update Typ 1 a 2 – mezi routery uvnitř oblasti („AREA # ) Typ 3 (sumární) – mezi sousedícími oblastmi přes hraniční routery
50
Počítačové sítě IP routing • Formát zprávy Link State Update Packet
51
Počítačové sítě IP routing • Formát záhlaví sektoru Link State Advertisement
52
Počítačové sítě IP routing Externí protokoly - EGP • Protokol EGP (Exterior Routing Protocol) • Protokol BGP (Border Gateway Protocol)
53
Počítačové sítě IP routing • Protokol EGP – jednoduchý protokol, na bázi stromové struktury (nepřipouští „peering ), bez metriky. • Princip: – Zjistí každému směrovači sousední směrovače, se kterými bude komunikovat, – Periodicky „sousedství ověřuje – Vyměňuje se sousedy informace o dostupnosti sítí ve svém AS (seznam sítí a směrovačů) 54
IP směrování Externí protokoly
Protokol BGP • Hvězdicová struktura (Core Network) • V současnosti oficiální externí protokol Internetu (routery WAN podporují BGP)
55
Počítačové sítě IP routing • BGP protokol používá transportní protokol TCP (spolehlivý), dokáže šířit informace i mezi interními směrovači (uvnitř AS) • BGP kombinuje algoritmus DVA a LSA • Funkce BGP – Navázáni a udržování komunikace se sousedními směrovači – Při první výměně informací vysílá celé směrovací mapy – Nevysílá zprávy periodicky, pouze aktualizuje směrovací informace 56
Počítačové sítě IP routing • Typy zpráv BGP – OPEN – navázání spojení se sousedním routerem (jsou na stejné IP síti/subsíti) – UPDATE – předání informace o sítích, které jsou dosažitelné touto směrovací cestou a/nebo informace o změně směrovacích cest – KEEPALIVE – periodické ověření spojení se sousedním routerem – NOTIFICATION – chybová zpráva 57
Počítačové sítě IP routing Implementace externích a interních směrovacích protokolů
58
Počítačové sítě IP routing • Implementace směrování v LAN – Router • HW – Cisco, Juniper ……. • SW – PC router
• Pojmy: prefix, netmask, VLSM, metrika, hope, next_hope, default gateway, propagace routů, sumarizace routů, redundance cest, agregace směrovacích cest
59
IPv6 • IPv6 (IPng) – budoucí náhrada současné IPv4 • Vývoj IPv6 probíhá asi od poloviny 90. let • Důvody pro přechod na IPv6 – výhody: – rozsáhlost paměťového prostoru – tři typy adres (unicast, multicast, anycast) – hierarchické adresování => optimalizace směrování – automatická konfigurace IP adres (podpora mobility) – zvýšení bezpečnosti a podpora služeb se zajištěnou kvalitou 1
IPv6 Klíčové principy IPv6 – Adresace – Formát IPv6 datagramu – Automatická adresní konfigurace – Koexistence IPv4 a IPv6 v jednom internetu http://gogonet.gogo6.com/ 2
IPv6 Adresace – RFC 4291 : IPv6 Addressing Architecture (nahrazuje RFC 3513)
• IPv6 adresa 128 bitů – zápis šestnáctkový (obdobně jako u MAC adres) • Zkrácené zápisy pro adresy se skupinou nul konstrukcí „:: (může se použít v zápise adresy pouze jednou) • Prefixy – příslušnost k určité síti nebo subsíti 4000::/3 010xxxxx xxxxxxxx …… FE80::/10 11111110 10xxxxxx …. • Adresy typu – unicast (individuální) – multicast (skupinové) – anycast (výběrové) 3
IPv6 Základní rozvržení adres ::/128 ::1/128 FF00::/8 FE80::/10 FEC0::/10 2000::/3
Nedefinovaná adresa Loopback multicast adresy Unicast link local – lokální linková Unicast site local – lokální místní Unicast global - globální
Individuální adresy 4
IPv6
5
IPv6
6
IPv6 CESNET – TLA prefix 2001:718::/32 • Praha - 2001:718:0::/42 • Brno - 2001:718:800::/42 • Ostrava - 2001:718:1000::/42 • Hradec Králové - 2001:718:1200::/42 • Olomouc - 2001:718:1400::/42 • Ústi nad Labem - 2001:718:1600::/42 • Plzeň - 2001:718:1800::/42 • Liberec - 2001:718:1C00::/42 • České Budějovice - 2001:718:1A00::/42 7
IPv6 Generování identifikátoru rozhraní (64 b.) z MAC adresy (48 b.)
8
IPv6
9
IPv6 Přiřazené multicast adresy FF01::1/96 FF02::1/96 FF01::2/96 FF02::2/96 FF02::C/96
Všechna rozhraní uzlu Všechna rozhraní fyzického spoje Všechny routery na uzlu Všechny routery na fyzickém spoji Všechny servery a agenti podporující dynamickou adresaci sítě – protokol DHCP (Dynamic Host Configuration Protocol)
FF05::2/96
Všechny směrovače v místě (LAN) 10
IPv6 • Povinné adresy uzlu – Lokální linková adresa pro každé rozhraní (např. FE80::0208:05FF:FE22:57A1) – Přidělená individuální (např.2001:0718:800:12:0208:05FF:FE22:57A1) – Loopback ::1 – Všechna rozhraní uzlu FF01::1 – Všechny uzly na fyzické lince FF02::1
• Povinné adresy routeru – jako u uzlu + multicast adresy pro všechny směrovače na uzlu, na fyzické lince a v místě (LAN) 11
IPv6 Příklad: • Počítač má MAC adresu 00:08:05:22:57:A1 • Z ní je odvozen identifikátor rozhraní 0208:05FF:FE22:57A1 • Počítač je administrativně přiřazen do dvou podsítí organizace: – 1. podsíť 2001:718:800:1/64 – 2. podsíť 2001:718:800:2/64 • Je členem skupiny FF15::AAAA globální dosah
identifikátor skupiny 12
IPv6 Na kterých IP adresách bude počítač přijímat datagramy? • • • •
Lokální linková – FE80::0208:05FF:FE22:57A1 1. přiřazená - 2001:718:800:1:0208:05FF:FE22:57A1 2. přiřazená 2001:718:800:2:0208:05FF:FE22:57A1 Loopback - ::1 individuální
• Všechna rozhraní uzlu – FF01::1 • Všechna rozhraní linky – FF02::1 • Přidělená skupina – FF15::AAAA skupinové 13
IPv6 Datagram IPv6 – 40 B 0
15 16 Version
Priority
32 Flow Label
Payload Length
Next Header
Hop Limit
Source Address – 128b.
Destination Address – 128b.
Priority – třída provozu (intervaly 0 - 7 a 8 - 15 jsou zpracovány odděleně) 0 – nespecifikováno
1 - v pozadí
2 – neobsluhovaný přenos
4 – obsluhovaný objemný přenos
6 – interaktivní provoz
7 – správa a řízení (routovací protokoly, správa sítě)
8 až 15 – pro přenosy v reálném čase
14
IPv6 Pole záhlaví datagramu IPv6 • Flow Label –identifikátor proudu datagramů • Payload Length – počet B datagramu za standardním záhlavím • Hop Limit – maximální počet routerů • Next Header – jaké další IPv6 záhlaví nebo jaký typ dat následuje 0 - Hop-by-Hop Option Header 43 – Routing Header – popis přenosové trasy 44 – Fragment Header – řeší fragmentaci datagramu 15
IPv6 • Next Header (pokračování) 45 – Protokol IDRP 46 – Protokol RSVP 89 – OSPF 58 – ICMPv6 4 – IPv4 datagram 6 – TCP segment 17 – UDPdatagram Typy zapouzdřených dat 50 – Encapsulation Security Payload Podpora zabezpečených 51 – Authentication Header přenosů (IPsec) 59 – No Next Header 60 – Destination Option Header – informace pro cílový uzel
16
IPv6 Záhlaví datagramu IPv4 a IPv6
17
IPv6 Princip řazení záhlaví
18
IPv6 Princip autokonfigurace – určení vlastní IP adresy – Stavová autokonfigurace (z MAC adresy) 1. Vygenerování link local adresy z MAC (FE80 + identifikátor rozhraní) 2. Vyhledání routeru na stejné subsíti (prostřednictvím protokolu ICMPv6 – zpráva „výzva směrovači ) 3. Vytvoření vlastní adresy z prefixu subsítě, který zaslal směrovač prostřednictvím ICMPv6 – zpráva „ohlášení směrovače )
– Bezstavová autokonfigurace – • Dynamické přidělení IP adresy z DHCP serveru (Dynamic Host Configuration Protocol) • ICMPv6 Neighbor Discovery 19
IPv6 Významné složky IPv6 • IPsec – autentizace datagramu, šifrování obsahu – Vytvoření jednostranné bezpečnostní asociace (SA) mezi komunikujícími stranami protokolem IKE (Internet Key Exchange) – – Výměna kryptografických klíčů pro autentizaci a šifrování obsahu datagramu
Záhlaví autentizační (Authentication Header – AH)
20
IPv6 ESP (Encapsulation Security Payload) - formát šifrovaného datagramu (datagram obsahuje šifrovaná data)
21
IPv6 Kryptografická symetrická metoda se sdíleným klíčem • DES-CBC (Data Encryption Standard Cipher Block Chaining Mode, 56-bit key length) • 3DES-CBC (Triple-DES CBC, three encryption iterations, each with a different 56-bit key) • AES128-CBC (Advanced Encryption Standard CBC, 128-bit key length)
22
IPv6 – ICMPv6 Neighbor discovery - protokol pro bezstavovou autokonfiguraci (náhrada ARP IPv4) • Zajišťuje přímé směrování – komunikaci s uzly na společném spoji • Detekce duplikátů link local adres a nedosažitelných uzlů na spoji
– ICMPv6 Router discovery • Získání prefixu sítě pro stavovou autokonfiguraci • Získání IP adresy default routeru - možnost nepřímého směrování • Optimalizace routingu - „redirect informace od routeru
23
IPv6 • Řešení koexistence IPv4 a IPv6 – Dvouprotokolové systémy (duální implementace) – Tunelování (zapouzdření paketů IPv6 do datagramů IPv4 nebo UDP datagramů) – např. protokolem GRE (Generic Routing Encapsulation) – Automatické tunelování – techniky 6over4, ISATAP (IntraSite Automatic Tunnel Addressing Protocol), TEREDO – Administrované tunelování (zprostředkovatel tunelu – operátor nebo automatizovaná služba) – Proxy – překlad prováděný v aplikační vrstvě (např. na web serveru) 24
IPv6
25
IPv6 Převodníky IP adres – překlad IPv4 adresy do IPv6 adresy • 6over4 – mapuje IPv4 do posledních 32 bitů adresy IPv6 Příklad: IPv4 195.178.72.10 IPv6 ::195.178.72.10
• SIT (Stateless IP/ICMP Translation) – IPv6 uzel vytváří IPv4 adresy jejich překladem do adresy IPv6 s prefixem 0::FFFF:0:0/96 Příklad: IPv4 195.178.72.10 IPv6 00::FFFF:195.178.72.10 26
Počítačové sítě Transportní vrstva
1
2
Počítačové sítě Transportní vrstva
Transportní vrstva poskytuje službu aplikační vrstvě. – Je nejnižší vrstvou, na kterou se odvolávají síťové aplikace (uživatelské a systémové). – Transportní služba – sekvenční přenos dat mezi komunikujícími procesy. – Vytváří současně více paralelních transportních spojení – Transportní vrstva zahrnuje 2 transportní protokoly: • UDP (User Datagram Protocol) • TCP (Transmission Control Protocol) – Transportní protokoly jsou prostředkem, kterým se zajistí pro uživatelskou aplikaci spojení dvou počítačů v IP síti. 3
Počítačové sítě Transportní vrstva
Přístup k transportní vrstvě z vrstvy aplikační (rozhraní služeb) - multiplexing transportních služeb a IP služby
4
Počítačové sítě Transportní vrstva • Rozhraní SAP mezi aplikační a transportní vrstvou – rozhraní služeb – identifikace aplikačního protokolu, který bude transportní službu používat . • Číslo portu – 16 bitová proměnná. • Port – SAP transportní vrstvy – „vstup do user-end systému • Ze strany user-end systému je port schránka na obsah. transportního PDU – číslo portu určuje proces, který generuje data (směr „out ) nebo je příjemcem dat (směr „in). • Soket (socket) – IP adresa user-end systému + číslo portu – jednoznačný identifikátor poskytovatele/spotřebitele transportovaných dat v internetu (tj. síťového procesu).
5
Počítačové sítě Transportní vrstva
Port – Číslo portu – dekadické vyjádření 1 – 65535 – Adresový prostor portů spravuje IANA (Internet Assigned Numbers Authority) – pevně dané hodnoty pro poskytovatele určitých síťových služeb (tj. procesy typu „server ) – Oblast 1 – 1023 – „well-known porty pro známé síťové služby – Oblast 1024 – 65635 • možná registrace (pro firemní vývoj, použití apod.) • k disposici operačním systémům pro přidělování procesům typu „klient – porty dočasně alokované 6
Počítačové sítě Transportní vrstva
7
Počítačové sítě Transportní vrstva - protokoly
Protokol UDP – Služba nespojovaná (connection-less) – nespolehlivá, transport nelze řídit – Velmi efektivní – rychlá, malá provozní režie – Používá se • pro aplikace s malým objemem přenášených dat (zprávy se stanovenou velikostí apod.) • pro aplikace vyžadujících broadcast nebo multicast • pro aplikace, které si správnost datových přenosů samy zabezpečí 8
Počítačové sítě Transportní vrstva • Typický spotřebitel transportní služby UDP programy pro systémové síťové služby – šíření směrovacích informací – implementace protokolu RIP – šíření systémových hodin – implementace protokolu NTP – překlady doménových jmen – implementace protokolu DNS – správa IP sítí – implementace protokolu SNMP – aj. 9
Počítačové sítě Transportní vrstva - protokol UDP
• Formát PDU protokolu UDP – UDP datagram (UDP paket)
10
Počítačové sítě Transportní vrstva
UDP paket v IP datagramu
– Typicky je jeden UDP paket vysílán v jednom IP datagramu
11
Počítačové sítě Transportní vrstva
Protokol TCP – Služba spojovaná (connection- oriented), spolehlivá – Typ služby - PAR (Positive Acknowledgement with Retransmission) – Zajistí doručení datových segmentů ve stejném pořadí, v jakém byly odeslány s vyloučením ztráty, bitové nesprávnosti a duplicity
• Protokol TCP – Vytvoří mezi komunikujícími procesy (jejich porty) virtuální osmibitový full-duplex komunikační kanál
– Pojem: TCP spojení – dvojice komunikujících soketů 12
Počítačové sítě Transportní vrstva –
Typicky používají transportní službu TCP uživatelské síťové aplikace (přenos souborů mezi síťovými uzly – FTP, relace přes síťový terminál – TELNET, přístup ke zdrojům systému WWW – HTTP, předávání elektronických poštovních zpráv –SMTP, atd.) – Komunikace mezi procesy probíhá ve fázích 1. vytvoření spojení 2. řízený přenos proudu dat (sekvence datových segmentů) s eventuálním opakovaném odesláním nekorektně přijatých segmentů 3. ukončení spojení 13
Počítačové sítě Transportní vrstva
• Přístup k transportní vrstvě z vrstvy aplikační – rozhraní služeb • Multiplexing transportních služeb a IP služby
14
Počítačové sítě Transportní vrstva
Formát TCP záhlaví
15
Počítačové sítě Transportní vrstva
• Sequence Number (SN) – Je-li nastaven flag SYN, potom je SN počáteční číslo sekvence (ISN – Initial Sequence Number) – Není-li nastaven flag SYN, potom je SN pořadové číslo prvního datového oktetu v segmentu (vzhledem k celé sekvenci přenášených dat v rámci tohoto TCP spojení)
• Acknowledgement Number (ACKN) – potvrzovací číslo – musí být vysíláno během celého TCP spojení – představuje SN následujícího segmentu (tj. který je očekáván) (viz protokol Positive Acknowledgement with Retransmission) • Data Offset (délka záhlaví) - počátek dat (udáváno ve 32 bitových „slovech - 4 oktety) 16
Počítačové sítě Transportní vrstva Řídící bity – Flags
– – – –
CWR a ECE – bity pro řízení zahlcení TCP spojení URG – určuje platnost pole URGENT POINTER ACK - určuje platnost pole ACKN PSH – oznamuje, že segment obsahuje data, která se mají bezprostředně předat cílovému procesu – RST – vyvolá reset TCP spojení – SYN – iniciuje TCP spojení, vyvolá proces synchronizace, tj. výměnu SN obou stran – FIN – iniciuje ukončovací proces TCP spojení (zpravidla v případě konce sekvence dat) 17
Počítačové sítě Transportní vrstva • Window Size – určuje velikost „Sliding Window – max. 65535 (počet oktetů, které je možno přenést bez ACK)
• Checksum – kontrolní součet (včetně TCP pseudozáhlaví – viz. UDP pseudozáhlaví)
• Urgent Pointer – specifikuje offset posledního oktetu urgentních dat (spolu s řídícím bitem URG)
• TCP volby – pole proměnné délky (dorovnává se na hranici 2 oktetů) Typ
Délka
Data
– Maximum segment size (2, 4) – udává maximální možnou velikost segmentu přenášeného v rámci TCP spojení (max. 65535 B) – na začátku spojení (SYN) – Window Scale Factor (3, 3) – umožní zvětšení velikosti „plovoucího okna (65 535 x 214 ) - na začátku spojení (SYN) – Timestamp (8, 10) – nastavení časových známek na každý přenášený segment – pro měření RTT 18
Počítačové sítě Transportní vrstva • TCP spojení:
Socket A – Socket B
Příklad: 195.178.78.10.22 - 195.178.80.140.10500
SSH server
-
SSH klient
• TCP spojení – dynamický objekt v definovaném stavu • Stav TCP spojení určuje jeho předchozí stav a časově závislá událost: – předání řídící informace (TCP protokol) – příkaz aplikace (požadavek na spuštění služby, požadavek na přenos dat aplikace, požadavek na ukončení přenosu dat aplikace)
• V OS Unix TCP spojení obsluhuje jádro – Parametr jádra – maximální počet otevřených TCP spojení – Tabulky TCP spojení (datové struktury) – utilita netstat 19
Aplikace TCP/UDP
Aplikace TCP/UDP
20
Počítačové sítě Transportní vrstva Mechanismy řízení TCP spojení • Synchronizace komunikujících stran –ve fázi inicializace (otevírání) TCP spojení si strany vymění svá počáteční sekvenční čísla (ISN – Initial Sequence Number). • Posloupnost přijímaných segmentů TCP PDU (segmentů) – PAR – strana potvrzuje korektní přijetí předchozích segmentů pořadovým číslem segmentu následujícího, tzn. ackB = seqA + 1 a seqB = ackA – 1 • Řízení toku – zamezení zahlcení virtuálního kanálu – metoda Sliding Window– postupné zvyšování velikosti – strana přijímací data aplikace určuje maximum – při velikosti okna = 0 spojení zůstává otevřené 21
Počítačové sítě Transportní vrstva Stavy TCP spojení při normálním průběhu otevírání
22
Počítačové sítě Transportní vrstva
23
Počítačové sítě Transportní vrstva
24
Počítačové sítě Transportní vrstva
Synchronizace TCP spojení a řízení toku prostřednictvím Window Size
25
26
Počítačové sítě Transportní vrstva
• TCP/IP Guide
http://www.tcpipguide.com/free/t_toc.htm • Program pro výpis informací o stavu síťového subsystému v operačním systému počítače – netstat – netstat –u vypíše seznam UDP spojení – netstat –t vypíše seznam TCP spojení – netstat –l vypíše seznam naslouchajících portů – …… 27
Aplikační vrstva Přístup k transportní vrstvě z vrstvy aplikační – rozhraní služeb – služby pro systémové aplikace, služby pro uživatelské aplikace
1
Aplikační vrstva
Charakteristika aplikační vrstvy • Poskytuje aplikacím přístup k síťovým službám • Obsahuje protokoly, které implementují síťové aplikace • Protokoly jsou specifikovány ve standardech RFC • Protokoly základní (musí být implementovány, ale nemusí být administrativně povoleny) – SMTP, FTP, TELNET, DNS
2
Aplikační vrstva Protokoly aplikační vrstvy • Protokoly doporučené – SNMP, HTTP • Protokoly volitelné (rozšiřující) – RTP, RSVP • Aplikace typu „klient – spouští uživatel ve své relaci • Aplikace typu „server – programy typu daemon – spouští root nebo jiný systémový uživatel (zpravidla skriptem)
3
DHCP – Dynamic Host ConfiguraCon Protocol • Aplikační protokol pro automaCzované přidělování IP adres a dalších síťových parametrů: – Default gateway – Subnet mask – IP adresa DNS serverů – …
• Komunikační model klient – server • Předchůdce DHCP – Bootstrap Protocol (BootP) 4
DHCP – Dynamic Host ConfiguraCon Protocol • „Pronájem IP adres - automatizované přiřazení na základě požadavku připojovaného uzlu – Dynamicky – pronájem IP adresy z rozsahu, který má server k disposici, na určený časový úsek (hodiny až měsíce). – Staticky – přiřazení IP adresy k určité MAC adrese je v konfiguraci serveru
• Implementace
– Server – dhcpd, /etc/dhcp.conf – Klient – nastaveni konfigurace rozhraní na dynamický režim (dhcp) v /etc/sysconfig/network-‐scripts/ifcfgeth0 5
Konfigurační soubor DHCP serveru # [/etc/dhcpd.conf] option domain-name "firma.cz"; option routers 192.168.1.254 192.168.1.253; option domain-name-servers 192.168.1.1, 192.168.1.2; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; default-lease-time 3600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; } host guru { hardware ethernet 08:00:4b:2c:22:23; fixed-address 192.168.1.100; }
6
Konfigurační soubor DHCP klienta
# [/etc/sysconfig/network-scripts/ifcfg-eth0] DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
7
DHCP – Dynamic Host ConfiguraCon Protocol • DHCP zprávy
• Well-‐known porty – Server 67 – Klient 68
• Klient: „Discovery a „Request • Server: „Offer „ Acknowledge 8
DHCP – Dynamic Host ConfiguraCon Protocol
9
DHCP – Dynamic Host ConfiguraCon Protocol
10
DHCP – Dynamic Host ConfiguraCon Protocol 1. DHCP discovery – klient vyhledává na subsíC server (DHCP relay předává zprávu do jiné podsítě) 2. DHCP offer – server posílá klientovi IP adresu a další parametry 3. DHCP request – klient posílá broadcast všem serverům o své volbě 4. DHCP ack/nack – závěrečná fáze DHCP relace – server posílá klientovi dobu propůjčení adresy 11
/etc/dhcp.conf lease-‐file-‐name "/var/lib/dhcpd/dhcpd.leases"; opCon domain-‐name "site.net"; default-‐lease-‐Cme 21600; max-‐lease-‐Cme 43200; subnet 10.0.1.0 netmask 255.255.255.0
{ option routers 10.0.1.1; option subnet-mask 255.255.255.0; host pokuston02 { hardware ethernet 00:0F:FE:52:7F:03; fixed-address 10.0.1.3; }} 12
Domain Name System (DNS)
Charakteristika DNS • DNS je distribuovaná databáze, kterou používají TCP/IP aplikace k mapování doménových jmen do IP adres (a naopak) • DNS informace jsou rozprostřeny po množině DNS serverů • Mapovací informace jsou přenášeny prostřednictvím aplikačního protokolu DNS
13
Domain Name System (DNS) • DNS může používat transportní služby UDP nebo TCP • DNS protokol používají ke vzájemné komunikaci – DNS klient s DNS servery (požadavek – odpověď) – transport UDP – DNS servery (sekundarní DNS server a primární DNS server) k přenosu kopií DNS databází – transport TCP
14
Domain Name System (DNS)
Hierarchie jmenného prostoru DNS
15
Domain Name System (DNS) Kořenová doména (bezejmenná) (Root Domain) – Root Servers ( http://www.root-servers.org/)
TLD oblasti I
arpa (Address and Routing Parameter Area) – Infrastructure Domain http://www.iana.com/arpa-dom/
II
Generic Domain http://www.iana.com/gtld/gtld.htm
III
CC (Country Code) Domain
http://www.iana.com/cctld/cctld-whois.htm 16
Domain Name System (DNS) • SLD – Second Level Domains in-‐addr.arpa (v TLD arpa) – inverzní doména IPv4 – doménová jména „zón v oblasC geografické CC a v oblasC „generic (např. mendelu.cz) • Informace (jmenné mapy) pro jednotlivé zóny poskytují jmenné servery (Name Servers, DNS servers) • Databáze kořenových jmenných serverů jsou v Internetu centrálně distribuovány
17
Domain Name System (DNS) • Informace o doménách druhé úrovně (poskytují kořenové jmenné servery (Root Servers) -‐ administraCvně určené • Informace o doménách třes úrovně jsou zajištěny na úrovni jmenných serverů 2. úrovně • Další úrovně: čtvrtá, pátá …(nižší jen ojediněle) jsou zajištěny lokálně (jmennými servery 3. úrovně)
18
Domain Name System (DNS) • Doménové jméno TLD oblass generic a CC (např. pro uzel 5.úrovně) – úplné – rela>vní
hribek
návěs>4.návěs>3.návěstí 2.návěs>1. hribek.mech.les.cz. doména
plas v doméně mech.les.cz.
hribek.mech plas v doméně les.cz. 19
Domain Name System (DNS) • Doménová oblast TLD arpa • Doména 2.úrovně in-‐addr • 6 úrovní – návěss uzlů v úrovních 3 – 6 je dekadické vyjádření příslušného oktetu IP adresy uzlu • Doménové jméno reverzní – příklad: 10.72.178.195.in-addr.arpa
20
Domain Name System (DNS) • Funkce zóny in-‐addr.arpa – reverzní mapování (překlad IP adresy na doménové jméno) • Zóna in-‐addr.arpa – reverzní doména – je distribuovaná – zajišťují ji zpravidla name servery domén, které používají příslušné IP sítě • Reverzní doménové jméno – úplné -‐ 10.72.178.195.in-‐addr.arpa (je reverzní doméno jméno uzlu dahlia.mendelu.cz, kterému je přiřazena IP adresa 195.178.72.10 – relaCvní – 10 – plas v doméně 72.178.195. in-‐addr.arpa 21
Domain Name System (DNS) • Protokol DNS – specifikuje výměnu DNS zpráv – mezi síťovou aplikací vyžadující IP adresu k doménovému jménu a DNS serverem zajišťujícím danou zónu – mezi dvěma DNS servery • DNS protokol je založen na principu klient – server (well-‐ known port 53) • Používá transportní služby UDP (pro výměnu jednoduchých DNS zpráv) nebo TCP (pro transfer jmenných databází) • DNS zprávy jsou typu požadavek (query) a odpověď (response) 22
Domain Name System (DNS) • Formát DNS zprávy požadavek/odpověď
• DNS zdrojové záznamy (Resource Records – RR) jsou uloženy v databázích DNS serverů • Pojmy: – Zóna – Autorita zóny – autoritaCvní odpověď – Primární a sekundární DNS server – IteraCvní a rekurzivní požadavek/odpověď 23
Domain Name System (DNS)
24
Domain Name System (DNS)
Formát DNS zprávy
25
Domain Name System (DNS)
• Sekce „HEADER – 12 B
26
Domain Name System (DNS) • Sekce „QUESTIONS – sekce požadavků (dotazů) obsahuje jeden dotaz -‐ – „query name – vyhledávané doménové jméno – „query type (16 b) – typ záznamu (RR) – „query class (16 b) – obvykle IN=1 (internetové doménové jméno)
• Sekce „ANSWERS -‐ odpověď • Sekce „AUTHORITY – autoritaCvní odpověď • Sekce „ADDITIONAL INFORMATION – dodatečné informace 27
Domain Name System (DNS) Formát sekce QUESTIONS – DNS query
Reprezentace doménového jména v RR 6 d a h l i a 7 m e n d e l u 2 c z
28
Domain Name System (DNS) Hodnoty type/query type Name
Hodnota
Popis
A NS CNAME PTR HINFO MX SOA AXFR
1 2 5 12 13 15 6 252
IP adresa Name server Kanonické jméno Odkaz do inverzní domény Informační záznam Mail Exchanger Záznam Start of Authority Požadavek na přesun zóny
ANY
255
Požadavek na všechny záznamy
type query type X X X X X X X
X X X X X X X X X 29
Domain Name System (DNS) Formát DNS záznamu RR
30
Domain Name System (DNS) • DNS záznamy RR jsou uloženy v databázi zóny • Databázi zóny tvoří: – Základní zónový soubor – obsahuje standardní záznamy pro všechny IP uzly zóny – Reverzní zónové soubory – obsahují reverzní záznamy pro všechny IP uzly zóny – Zónový soubor specifické domény (pro uzel 127.0.0.1) – Zónový soubor specifické reverzní domény 0.0.127.in-‐addr.arpa – Zónový soubor kořenové domény (inicializační soubor pro cache) 31
Domain Name System (DNS) Záznam začátku autority zony („Start of Authority Record )
32
Domain Name System (DNS) DNS – typy záznamů • Adresový záznam („Address Record ) • Záznam pro zřetězené jméno („Canonical Name Record )
33
Domain Name System (DNS) DNS – typy záznamů • Záznam uzlu doručujícího poštovní zprávy („Mail Exchanger Record ) • Záznam pro DNS server zóny („Name Server Record )
34
Domain Name System (DNS) DNS – typy záznamů • Ukazatel na záznam v reverzní doméně (= in-‐ addrr.arpa.) pro daný uzel („Domain Name Pointer Record )
35
Domain Name System (DNS) • Implementace DNS (de facto standard) – BIND (Berkeley Internet Name Domain) – DNS server (daemon named) – DNS klient (knihovní funkce „resolver ) – nástroje pro ověření funkcí DNS server (uClita nslookup) – konfigurační soubory (named.conf…) – datové „zónové soubory (tzv. „Master files ) • přímá databáze • inverzní databáze • root databáze 36
Domain Name System (DNS) Funkční schéma DNS
37
Domain Name System (DNS) DNS klient -‐ server Komunikační režimy klient – server • Iterace • Rekurze
38
Domain Name System (DNS) DNS klient -‐ server
39
Počítačové sítě
Služby pro přenos souborů Protokol FTP • Autorizovaný přístup do souborového systému hostitelského uzlu • Informace o obsahu souborového systému hostitelského uzlu • Obousměrný přenos kopií souborů mezi serverem a klientem • Modifikace struktury souborového systému hostitelského uzlu (výmaz, vytváření, změna jmen a modifikace obsahu adresářů/souborů) 1
Počítačové sítě Služby pro přenos souborů – protokol FTP
• FTP používá TCP transport, vytváří 2 TCP spojení – TCP spojení pro řízení (příkazy a odpovědi) – well-known port 21 – spojení trvá po celou dobu FTP relace – TCP spojení pro vlastní přesun dat – well-known port 20 – spojení trvá po dobu přenosu
2
Počítačové sítě
Služby pro přenos souborů Protokol FTP Fáze komunikace FPT klient – FTP server • Otevření TCP spojení na port 21 (řídící spojení) • Identifikace a autentizace uživatele • Otevření datového spojení (aktivní nebo pasivní) • Datový přenos (na datovém spojení) • Nedatové operace (na řídícím spojení) • Ukončení FTP dialogu – uzavření řídícího spojení 3
• Příkazy protokolu FTP (klient) – Příkazy pro řízení přístupu – Příkazy stanovení parametrů přenosu – Příkazy služeb
• Příkazy pro řízení přístupu Příkaz Parametr
Popis
USER
username
Identifikace uživatele
PASS
password
Autentizace uživatele
CWD
cesta / adresář
Změna pracovního adresáře
CDUP
-
Změna prac. adresáře na adresář nadřazený
REIN
-
Reset parametrů na výchozí nastavení
LOGOUT/QUIT
-
Odpojení od relace 4
• Příkazy stanovení parametrů přenosu Příkaz
Parametr
PORT
p1 p2 p3 p4 p5 p6 (dekadické hodnoty)
PASV
-
TYPE
p1 – dva znaky (typ formát) p2 – dekadická hodnota velikosti souboru v B
STRU
p1 (F-file, R-record, P-page)
MODE
p1 (S-stream, B-block, Ccompressed)
Popis Specifikace datového portu (klienta): p1.p2.p3.p4 .…….IP adresa (p5 x 256) + p6…..č.portu Žádost o zaslání specifikace datového portu serveru Specifikace typy souboru typ (A–ASCII E – EBCDIC I– Image) format (N-Nonprint….) Specifikace struktury souboru Specifikace přenosového režimu souboru 5
• Příkazy služeb (1) Příkaz
Parametr
Popis
RETR
cesta / adresář
Žádost o přenos kopie souboru – směr „IN
STOR
cesta / adresář
Žádost o přenos kopie souboru – směr „OUT s možným přepisem souboru existujícího
STOU
cesta / adresář
Žádost o přenos kopie souboru – směr „OUT –unikátní jméno
APPE
cesta / adresář
Žádost o přenos kopie souboru – směr „OUT – s připojením k existujícímu
ALLO
dekadická hodnota (počet B)
Žádost o alokaci paměťové oblasti (následuje příkaz STOR/ APPE)
REST
-
Reset probíhajícího přenosu souboru 6
• Příkazy služeb (2) Příkaz
Parametr
Popis
RNFR
cesta
Přejmenování souboru: výchozí soubor
RNTO
cesta
Přejmenování souboru: cílový soubor (musí předcházet RNFR)
ABOR
Ukončení předcházejícího příkazu souvisejícího s přenosem souboru
DELE
cesta
Výmaz souboru
RMD
cesta / adresář
Výmaz adresáře
MKD
cesta / adresář
Vytvoření adresáře 7
• Příkazy služeb (3) Příkaz
Parametr
Popis
PWD
-
Výpis cesty pracovního adresáře
LIST
[cesta / adresář]
Výpis obsahu adresáře
HELP
-
Nápověda – výpis všech příkazů, které server implementuje
NOOP
-
Prázdná operace, odpověď serveru je vždy pozitivní
8
• Datové definice v protokolu FTP – RFC 959 – Typ souboru • „ASCII soubor (výchozí) • „EBCDIC soubor • „Image file type - binární soubor (posloupnost bytů) • „Local - lokální binární soubory (délka bytu je určena odesílající stranou) – Formát řízení (Format Control) – pouze pro ASCII a EBCDIC soubory • „Nonprint (výchozí) – soubor neobsahuje řídící znaky pro vertikální formátování • „Telnet format control – soubor obsahuje řídící znaky pro tisk souboru podle protokolu Telnet • „Fortran carriage control – první znak každé řádky je znak podle specifikace jazyka Fortran 9
– Struktura souborů • „File struktura (výchozí) – proud bytů • „Record struktura – záznamy – používá se pouze u textových souborů (ASCI nebo EBCDIC) • „Page struktura – posloupnost stránek s číslem stránky – pro soubory s náhodným přístupem k obsahu
– Přenosový režim • „Stream režim (výchozí) – posloupnost bytů – režim lze použít pro všechny datové typy • „Block režim – posloupnost bloků s hlavičkami (velikost bloku, deskriptor bloku) • „Compressed režim – přenos s jednoduchou kompresí 10
Aktivní otevření datového spojení (port 20)
11
Pasivní otevření datového spojení
12
Minimální implementace FTP serveru (podle RFC 959) 1. Datové definice : TYPE - ASCII Non-print (AN) MODE - Stream (S) STRUCTURE - File, Record ( F / R ) 2. Příkazy : USER, QUIT, PORT, TYPE, MODE, STRU, RETR, STOR (s výchozími hodnotami) NOOP 13
Odpovědi protokolu FTP (server): Tříciferný číselný kód (X Y Z) + text X
• Hodnota X 1 Pozitivní předběžná 2 Pozitivní konečná 3 Pozitivní přechodná 4 Negativní přechodná 5 Negativní konečná
Y
Z
• Hodnota Y 0 Chyba v syntaxi příkazu 1 Odpověď informační 2 Odpověď informuje o stavu datového spojení 3 Odpověď ve fázi autentizace 5 Odpověď informuje o statusu souboru
14
Příklady odpovědí FTP serveru: – 502 Příkaz server neimplementuje – 550 Soubor nenalezen – 425 Nemůže být otevřeno TCP datové spojení – 426 Datové spojení bylo uzavřeno, přenos byl zastaven – 331 User-name přijato, je očekáván password – 220 Služba FTP připravena pro uživatele – 225 Datové spojení otevřeno – 226 Datové spojení se uzavírá – 221 Řídící spojení se uzavírá – 125 Datové spojení je již otevřeno, začíná přenos 15
Počítačové sítě Systém pro přenos souborů – protokol TFTP
• Protokol TFTP (Trivial File Transfer Protocol): – jednoduchý protokol, princip klient - server (požadavek – odpověď) – součástí protokolu není autentizační sekvence – přístupy jsou autorizovány konfiguračním nastavením na TFTP serveru (ACL – Access Control List) – používá transportní služby UDP – well known port 69, zprávy jsou potvrzovány. Není-li potvrzení v určeném čase přijato, jsou zprávy opětovně vysílány – indikace chyby v přijatém požadavku à vyslání chybové zprávy
16
Počítačové sítě Služby pro přenos souborů – protokol TFTP
• Formát IP datagramu s TFTP zprávou
Typy zpráv – 2 B – Read Request – RRQ – kód 1 – Write Request – WRQ – kód 2 – Data – kód 3 – Acknowledgement – ACK – kód 4 – Error – kód 5
nedatové zprávy datová zpráva nedatové zprávy 17
Počítačové sítě Služby pro přenos souborů – protokol TFTP
• Data záhlaví – pro RRQ/WRQ – jméno souboru a mód dat souboru (ASCII text, oktet, ..) – pro DATA – pořadové číslo bloku (offset bloku) – Pro ACK – pořadové číslo bloku potvrzovaných dat – Pro ERROR – kód chyby, chybová zpráva 0 Specifikováno v chyb. zprávě
4 Zakázaná operace
1 Soubor nenalezen
5 Neznámý ident. přenosu
2 Nedodržení přístupových práv
6 Soubor již existuje
3 Nedostatečný paměťový prostor
7 Uživatel neznámý 18
Protokol TFTP – Write Request
19
Protokol TFTP – Read Request
20
Počítačové sítě Služby pro přenos souborů – protokol TFTP TFTP Read
21
Počítačové sítě Služby pro přenos souborů – protokol TFTP TFTP Write
22
Počítačové sítě Služby pro přenos souborů – protokol TFTP
• Využití implementace TFTP - TFTP klient v ROM u bezdiskových pracovních stanicích • Postup: – Po zapnutí stanice žádá o IP (implementace protokolů BootP nebo DHCP nebo RARP) – Po obdržení IP žádá TFTP server o data potřebná ke spuštění – Po obdržení dat se může spustit
23
Počítačové sítě Služby pro přenos souborů – protokol TFTP
24
Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET
1
Protokol TELNET • TELNET – Zajis? dvousměrný osmibitový komunikační kanál pro procesy terminálově orientované – Vytváří TCP spojení pro přenos řídících informací a uživatelských dat (proud znaků) – well-‐known port 23
– Principy: • NVT (Network Virtual Terminal) – je imaginární
zařízení vytvořené po ustavení TCP spojení -‐ společný síťový terminál komunikujících stran • NVT -‐ znakové zařízení I/O s „klávesnicí (pro vstup znaků) a „Yskárnou (pro výstup znaků ) -‐ na vzdáleném terminálu je virtuální Yskárna implementována zobrazovací jednotkou 2
Protokol TELNET • Vyjednání podmínek komunikace mezi stranami – rozšíření povinného minima definovaného v NVT • Symetrie vyjednávání podmínek mezi „klientem a „serverem – obě strany musí vyjednané podmínky akceptovat • Příklad voleb: – Echo – Typ terminálu (např. vt100) – Rychlost terminálu (rychlost přenosu bitů) – Řádkový nebo znakový režim – Geometrie okna (počet řádků a sloupců) 3
Protokol TELNET Implementace protokolu TELNET
4
Protokol TELNET Princip virtuálních terminálů – NVT
5
Protokol TELNET Přenášená data • „Tisknutelné znaky ASCII (textové řetězce) • Řídící znaky ASCII • Příkazy protokolu TELNET (230 – 255) následují za IAC (Interpret as Command) – kód 255 (0xFF) – Příklad (sekvence pro kontrolu kompaYbility): • Klient:
… „Are you there? • Server: `Y` `E` `S` – Příkazy <SB> a <SE> -‐ začátek a konec výměny hodnot vyjednávaných podmínek 6
Příkazy protokolu TELNET Název
Kód
Popis funkce
EOF
236
End-of-File
SUSP
237
Pozastavení probíhajícího procesu
Abort
238
Ukončení procesu
EOR
239
End-of-Record
SE
240
Konec nastavení voleb
NOP
241
Nulová operace
DM
242
Vyznačení dat
BRK
243
Konec
IP
244
Přerušení procesu
AO
245
Ukončení výstupu
7
Název
Kód
Popis funkce
AYT
246
„Jsi tam?
EC
247
Výmaz znaku
EL
248
Výmaz řádku
GA
249
„Pokračuj
SB
250
Začátek nastavení voleb
WILL
251
WONT
252
DO
253
DONT
254
IAC
255
Vyjednávání podmínek komunikace
„Následuje příkaz 8
NVT řídící znaky ASCII Název NULL BELL BS
Kód 0 7 8
Popis funkce Zvukový signál Znak zpět
HT 9 Horizontální tabelátor LF 10 Nový řádek VT 11 Vertikální tabelátor FF 12 O stránku vpřed CR 13 Návrat vozu Rozložení znaků: 0 – 31 řídící znaky 32 – 126 „tisknutelné znaky 9
Protokol TELNET Výměna podmínek komunikace – Odesilatel: IAC,, – Příjemce: IAC,, – Typ operace – DO, DONT, WILL, WONT
– Číselné kódy některých voleb: 1 24 32 34 36
Echo Typ terminálu Rychlost terminálu Řádkový režim Proměnné prostředí
10
Protokol TELNET
11
Protokol TELNET Časový diagram vyjednání podmínek
12
Protokol TELNET
Příklad vyjednání podmínky
13
Protokol TELNET • Implementace protokolu TELNET – Server – telnetd – Klient • Program telnet • Program pu)y
14
Protokol TELNET Bezpečnostní problém relace Telnet
15
Zabezpečené relace SSH • SSH (Secure Shell) – obecné označení pro protokoly i SW produkty • Protokoly SSH-‐1.3, SSH-‐1.5, SSH-‐2 • Klient – server probíhá v zabezpečeném TCP spojení • Šifrování – symetrická a asymetrická šifra • Kryptografická kontrola integrity přenášených dat 16
Princip SSH
17
Zabezpečené relace SSH • Bezpečnostní záruky protokolu SSH – důvěrnost dat – integrita dat – autenYzace obou komunikujících stran – autorizovaný přístup k uživatelským účtům – přesměrování spojení (port forwarding), zapouzdření jiného protokolu (tunneling)
18
Zabezpečené relace – řešení SSH Architektura protokolu SSH-‐2 -‐ protokol modulární (původní SSH-‐1 je monoliYcký) -‐ RFC 4251
19
Zabezpečené relace – řešení SSH • Bezpečnostní aspekty SSH – volba a dojednání algoritmů – generování a výměna klíčů (varianty používaných klíčů: klíč uživatele, klíč hosYtele, klíč relace) – vazba mezi klíčem a idenYtou – metoda cerYfikace veřejných klíčů, správa veřejných klíčů – typ a postup autenYzace – kontrola integrity
• Implementace SSH – sshd („naslouchá na portu 22) -‐ server – ssh, scp …-‐ klienY 20
Zabezpečené relace – řešení SSH • Zprávy SSH (záhlaví určuje typ zprávy, SSH definuje vlastní jazyk pro popis dat zpráv)
• • • • •
– data služebních protokolů (režijní data) – aplikační data Datové pakety Komprimace Výpočet výtahu Záhlaví + výplň Šifrování
21
SSH -‐ implementace • SSH server Open SSH hzp://www.openssh.org/ Open BSD Project – Program sshd – Program s0p-‐server
• SSH klient – Program ssh (Linux) – Program scp (Linux) – Program pu)y (MS Windows) – Program winscp (MS Windows) 22
Kryptografické algoritmy • Symetrické – komunikující strany používají společný tajný klíč (secret key)
• Asymetrické – komunikující strany používají různé klíče – veřejný (public key) a privátní (private key) -‐ kryptografické klíče tvoří dvojici s matemaYckou vazbou
• Hash funkce – jednocestné funkce vytvářející z
libovolné bitové sekvence datový blok určené délky („výtah ) 23
Diffie – Hellman algoritmus pro výměnu tajného klíče
24
Počítačové sítě Internetový systém elektronické pošty E-mail • Výměna elektronických zpráv mezi uživateli – ukládání do schránek (mailboxes) • Princip „store and forward , využití MX záznamů v DNS • Zpráva – v původní specifikaci e-mail pouze text (protokol SMTP) • V rozšířené verzi e-mail může mít zpráva libovolný obsah (specifikace MIME – Multipurpose Internet Mail Extensions)
1
Počítačové sítě Internetový systém elektronické pošty • Formát elektronické adresy: [email protected]éna – user musí mít v mail serveru zřízen mailbox – user může mít na mail serveru alias (např. [email protected] ~ [email protected] – mailserver musí být dostupný na well-known portu 25 pro poštovní službu – mailserver pro doménu má MX záznam v zónovém DNS souboru
2
Počítačové sítě Internetový systém elektronické pošty
Protokoly e-mail systému – SMTP (Simple Mail Transfer Protocol) – RFC 2821 (původní RFC 821) základní protokol pro výměnu poštovních zpráv – MIME (Multipurpose Internet Mail Extensions) – RFC 2045-2049 - protokol pro strukturování těla zprávy – POP3 (Post Office Protocol) – RFC 1939 – přístup do mailboxu ze vzdáleného klienta – IMAP4 (Internet Message Access Protocol) – RFC3501-3503 - přístup do mailboxu ze vzdáleného klienta 3
Počítačové sítě Internetový systém elektronické pošty
Logické moduly e-mail systému – MTA (Mail Tranfer Agent) – zajistí přenos zprávy – podporuje protokol SMTP – komunikace mezi MTA na principu klient - server (MTA lokální, MTA „relay ) – MDA (Mail Delivery Agent) – zajistí uložení zprávy do mailboxu uživatele – MRA (Mail Retrieval Agent) – zajistí klientovi přístup do uživatelova mailboxu – podporuje protokoly POP3 nebo IMAP4 (nebo oba) – MUA (Mail User Agent) – vytváří rozhraní pro přístup uživatele k poštovním službám, komunikuje s MTA a MRA – podporuje SMTP, POP3, IMAP4 4
Počítačové sítě Internetový systém elektronické pošty E-mail komunikační model
5
Počítačové sítě Internetový systém elektronické pošty
Komunikace mezi logickými moduly e-mail systému
6
Počítačové sítě Internetový systém elektronické pošty Systém SMTP relay
7
Počítačové sítě Internetový systém elektronické pošty
Protokol SMTP – Využívá transportní službu TCP, well-known port 25, komunikace klient - server – Vytváří neautentizované TCP spojení • Protokol SMTP je implementován v logických modulech MTA
• Příklady MTA: sendmail, qmail, postfix….. 8
Počítačové sítě Internetový systém elektronické pošty • Průběh relace MTA podle protokolu SMTP: – Klient iniciuje navázání TCP spojení na port 25 – Probíhá obousměrný dialog (příkazové sekvence specifikované v protokolu SMTP), při kterém klient předá (i opakovaně) serveru data (e-mail zprávu/zprávy) – Dialog je ukončen uzavíracím příkazem, TCP spojení se uzavře
• IP datagram se zprávou protokolu SMTP
9
Počítačové sítě Internetový systém elektronické pošty
10
Počítačové sítě Internetový systém elektronické pošty
SMTP zprávy:
• Příkazy SMTP - 4 znakový alfabetický řetězec (s příslušnou sémantikou) + parametry – HELO<SP><doménové_jméno> - identifikace klienta – MAIL <SP>FROM identifikace odesílatele – RCPT <SP>TO - identifikace příjemce – DATA - žádost o příjem dat (poštovní zásilky odesílatele) 11
Počítačové sítě Internetový systém elektronické pošty • Příkazy SMTP – – –
RSET - ukončení transakce VRFY<SP> - ověření platnosti adresy bez odeslání dat QUIT - uzavřeni SMTP dialogu – uzavření TCP spojení
Příkazová sekvence pro předání dat: 1. 2. 3. 4. 5.
HELO – navázání spojení, představení MTA odesílatele MAIL identifikace odesílatele a příjemce RCPT (vkládá se do „obálky ) DATA – požadavek na přijetí „zásilky (QUIT) – v případě, že není k předání další „zásilka 12
Počítačové sítě Internetový systém elektronické pošty
Princip komunikace příkaz – odpověď („hand-shake ) Odpovědi SMTP:
Kód odpovědi
(3cifry)<SP>text
Příklad: „500 Command unrecognized
1. cifra X – specifikuje typ odpovědi Pozitivní předběžná odpověď Pozitivní konečná odpověď Pozitivní průběžná odpověď Přechodná negativní odpověď Trvalá negativní odpověď 13
Počítačové sítě Internetový systém elektronické pošty
2. cifra Y – specifikuje obsah odpovědi Chybná syntaxe příkazu Odpověď informativního charakteru Odpověď nesoucí informaci o stavu spojení Zatím nespecifikováno Zatím nespecifikováno Odpověď indikující stav transakce na příjemcově straně
3. cifra
– kontextové rozlišení odpovědi
14
Příklady SMTP odpovědí: • • • • • • • • • •
500 Chyba syntaxe, příkaz nepoznán 501 Syntaktická chyba v parametrech příkazu 502 Příkaz není implementován 220 <domain> Service připraven 250 Požadovaná služba vyplněna 450 Požadovaná služba nevyplněna, není k disposici mailbox (mailbox busy) 550 Požadovaná služba nevyplněna, není k disposici mailbox (mailbox nenalezen) 451 Požadovaná služba násilně přerušena, chyba ve zpracování 452 Požadovaná služba nevyplněna, nedostatečná kapacita paměti systému 554 Transakce selhala 15
Počítačové sítě Internetový systém elektronické pošty
Formát zpráv elektronické pošty – RFC 822 (pro protokoly SMTP, POP3, IMAP4)
16
Počítačové sítě Internetový systém elektronické pošty
• Záhlaví zprávy – klíčové slovo + text (specifikováno v RFC 2822 ) – Příklady klíčových slov: • • • • • • • •
Received: (seznam MTA) Message-ID: (identifikátor zprávy) CC: (příjemce kopie zprávy) From: (odesílatel) Date: (datum a čas odeslání) Reply-to: (zpáteční adresa) To: (adresát) Subject: (předmět zprávy) 17
Počítačové sítě Internetový systém elektronické pošty
Protokol MIME – specifikace obsahu „těla zprávy
• Záhlaví MIME zahrnuje „hlavičky : – MIME-Version – specifikuje, že zpráva obsahuje hlavičku dle RFC2045 – RFC2049
– Content-Type 1. jednoduchý typ/podtyp dat – skládá se z jedné části (text, video, audio, binární program…..).
Příklady: • Image/gif • Video/mpeg • Application/PostScript
18
Počítačové sítě Internetový systém elektronické pošty 2. kompozitní typ/podtyp - skládá se z více částí – multipart – zpráva obsahuje více dílčích zpráv – oddělovač je parametr boundary • Mixed – zpráva s přílohami • Parallel – všechny části zprávy se interpretují současně (obraz + zvuk) • Alternative – stejný obsah v alternativním formátu • Signed – s připojeným elektronickým podpisem • Encrypted – šifra zprávy – message – dlouhá zpráva rozdělena na více segmentů • rfc822 – vnořené zprávy s vlastním záhlavím • Partial – zpráva je dělena na segmenty 19
Počítačové sítě Internetový systém elektronické pošty
Další záhlaví MIME: – Content-Transfer-Endoding – specifikace použitého kódování pro přenos (značná část přenosových zařízení dokáže zpracovat pouze data ve formátu ASCI. Příklady: quoted-printable, base64, 7bit, 8bit, binary…. – Content-ID – identifikační číslo zprávy (volitelná hlavička) – Content-Description – textový popis obsahu zprávy – Content-Disposition – specifikuje, zda jsou data určena k automatickému zobrazení nebo k uložení na lokální disk 20
Počítačové sítě Internetový systém elektronické pošty
Příklad záhlaví MIME: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="frontier" This is a message with multiple parts in MIME format. - -frontier Content-Type: text/plain This is the body of the message. - -frontier Content-Type: application/octet-stream Content-Transfer-Encoding: base64 PGh0bWw+CiAgPGhlYWQ +CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA +VGhpcyBpcyB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZS48L3A +CiAgPC9ib2R5Pgo8L2h0bWw+Cg== --frontier--
21
Počítačové sítě Internetový systém elektronické pošty
22
Počítačové sítě Internetový systém elektronické pošty
23
Počítačové sítě Internetový systém elektronické pošty – POP3
Post Office Protocol - POP3 – Autorizovaný přístup do mailboxu na vzdáleném mailserveru – Výpis informace o stavu mailboxu – Přenos kopie obsahu zprávy uložené v mailboxu – Označení zprávy pro výmaz event. zrušení označení • POP3 je stavový automat – přechod do jednotlivých stavů probíhá v příkazových sekvencích. – Stavy: • Autorizace • Transakce • Aktualizace 24
Počítačové sítě Internetový systém elektronické pošty • POP3 používá TCP transport, well-known port 110, komunikace klient – server (příkaz – odpověď) • Implementace POP3 – Server - na straně mail serveru programem typu daemon („naslouchá na portu 110) – Klient – v uživatelském poštovním aplikačním programu (pine, OutlookExpress, ….) – Příkaz - alfabetický řetězec (se sémantikou) <SP>data – Odpověď • Pozitivní +OK <SP>data • Negativní -ERR <SP>data 25
Počítačové sítě Internetový systém elektronické pošty – IMAP4
Internet Message Access Protocol – IMAP4 – Autorizovaný přístup do vzdáleného maiboxu a do dalších poštovních schránek uživatele – Selektivní načtení obsahu zpráv uložených v mailboxu a dalších poštovních schránkách uživatele – Modifikace obsahu zpráv uložených v mailboxu a dalších poštovních schránkách uživatele – Sdílení poštovní schránky více uživateli – …….
• IMAP4 je stavový automat – přechod mezi se stavy provede v návaznosti na příkazových sekvencích
27
Počítačové sítě Internetový systém elektronické pošty – IMAP4
IMAP4 používá transport TCP, well-known port 143, komunikace klient – server (příkaz – odpověď) – Příkaz: značka (tag) příkaz parametry (text) • tag je identifikátor příkazu v rámci relace, to umožňuje, že klient nemusí čekat před vysláním dalšího příkazu na odpověď na příkaz předešlý (a001, a002, a003 …… ). Odpovědi serveru mají předřazeny tagy příslušných příkazů (server může generovat zprávy, které nejsou odpovědi na příkazy, pak jsou to odpovědi neoznačené – místo tagu mají předřazen znak *) • příkaz – alfabetický řetězec se sémantikou 28
Počítačové sítě Internetový systém elektronické pošty – IMAP4
Příkazy IMAP4 (1) tag NOOP Prázdná operace – klientovi vrací odpověď OK tag CHECK Kontrola mailboxu na nově došlé zprávy tag LOGIN user passwd tag EXPUNGE Výmaz všech zpráv označených příznaky \DELETED (příznaky: \recent \seen \answered \flagged \deleted \draft ) tag LOGOUT tag COPY sequence mailbox Kopírování specifikovaných zpráv tag SELECT mailbox Výběr určitého mailboxu 29
Počítačové sítě Internetový systém elektronické pošty – IMAP4
Příkazy IMAP4 (2) tag FETCH sequence data Přesun specifikovaných zpráv z vybraného mailboxu tag CREATE name Vytvoří mailbox daného jména tag STORE sequence data value Změna dat ve zprávě v mailboxu tag DELETE name Zruší mailbox daného jména tag SEARCH search_program Vyhledání mailboxu podle určitého typu zpráv tag SUBSCRIBE/UNSUBSCRIBE mailbox Aktivace / deaktivace přihlášení do sdíleného mailboxu 30
Počítačové sítě Internetový systém elektronické pošty – IMAP4 – Odpovědi - označené (s tagem) i neoznačené (bez tagu): • tag OK text nebo * OK text kladná odpověď • tag NO text nebo * NO text neúplné provedení příkazu • tag BAD text nebo * BAD text záporná odpověď – Odpovědi neoznačené (určité odpovědi na určité příkazy) • * # text • * FLAGS seznam odpověď na SELECT • * SEARCH sekvence odpověď na SEARCH • * MAILBOX string odpověď na FIND MAILBOXES • * BYE text server uzavírá spojení 31
Protokol HTTP (Hypertext Transfer Protocol) • HTTP je základem systému „World Wide Web (WWW) -‐ Web … • HTTP – jednoduchý protokol aplikační vrstvy, transport TCP, well-‐known port 80 • Princip klient -‐-‐ server • Zprávy požadavek a odpověď jsou vyměňovány mezi klientem a serverem obdobně jako u transakcí SMTP • HTTP odpovědi – původně textové dokumenty ve formátu HTML – nyní podpora MIME (odpovědi mohou obsahovat soubory i netextových formátů) 1
Protokol HTTP • HTTP transakce (např. klient požaduje zaslání kopie souboru, který následně interpretuje – server požadavek akceptuje, kopii ve své odpovědi odesílá)
2
Protokol HTTP (Hypertext Transfer Protocol) • Formát a obsah zpráv je specifikován v RFC dokumentech • Vývoj HTTP – současná verze HTTP/1.1 (RFC 2616) – princip zpětné kompaability • Přínosy nové verze : – Vytváří trvalá spojení pro více požadavků klienta – Podporuje komprimaci a dekomprimaci dat – Možnost nastavení virtuálních serverů – Podpora bezpečných transakcí – ……..
3
Protokol HTTP (Hypertext Transfer Protocol)
4
Protokol HTTP (Hypertext Transfer Protocol) HTTP transakci iniciuje klient, předává požadavek serveru
5
Protokol HTTP (Hypertext Transfer Protocol)
6
Protokol HTTP (Hypertext Transfer Protocol) Popis zpráv HTTP Verze protokolu – HTTP/1.1 nebo HTTP/1.0 Request: Metoda – požadavek (1) – GET – žádá zaslání celé enaty specifikované v URI – HEAD – žádá zaslání záhlaví enaty specifikované v URI – POST – odesílá obsah zprávy do enaty specifikované v URI • Odeslání poštovní zprávy do sdílené schránky • Odeslání dat zapsaných do formuláře • Připojení dat do databáze • …….. 7
Protokol HTTP (Hypertext Transfer Protocol) Metoda – požadavek (2) – PUT – vkládá obsah zprávy do enaty specifikované v URI (tj. nahrává data do serveru) – DELETE – žádá o výmaz enaty specifikované v URI – Požadavky na správu transakce • OPTION – Žádost o informaci o podmínkách transakce • TRACE – Odešle kopii obdrženého požadavku zpět odesílateli, takže klient může zjisat, co na požadavku mění nebo přidávají servery, kterými požadavek prochází. • CONNECT – spojí se s uvedeným objektem před uvedený port. Používá se při průchodu skrze proxy pro ustanovení kanálu 8
Protokol HTTP (Hypertext Transfer Protocol) URI – (Uniform Resource Idenafier) -‐ idenafikátor přístupu k internetovému zdroji (obecný)
Formát URI <schema>://<user>:<password>@:<port>//…..
schema -‐ síťový protokol aplikační vrstvy (služba) např.: hlp, mp, telnet, mailto, nntp, news, file URL (Uniform Resource Locator) – typ URI – formát pro protokol HTTP: http: // < host > [: < port>][< abs_path> [? < query>] ]
9
Protokol HTTP (Hypertext Transfer Protocol) Složky URL • h@p: // < host > [: < port>][< abs_path> -‐ hierarchická složka (cesta k objektu) • < query> -‐ nehierarchická složka • Sekvence < key>= < value>& < key>= < value>& < key>= < value>& < key>= < value>….
CGI (Common Gateway Interface) – standard pro
definice rozhraní mezi Web serverem a externími aplikačními programy 10
Protokol HTTP (Hypertext Transfer Protocol) Proměnné, které jsou předávány hlp serveru a mohou být zpracovámy v CGI programech – REQUEST_METHOD určuje způsob předávání informací -‐-‐ GET nebo POST – QUERY_STRING obsahuje data přenášená metodou GET – CONTENT_TYPE MIME typ dat zasílaných metodou POST – CONTENT_LENGTH délka dat zasílaných metodou POST 11
Protokol HTTP (Hypertext Transfer Protocol) – REMOTE_ADDR IP-‐adresa počítače, z nějž přišel požadavek – REMOTE_HOST doménová adresa počítače, z nějž přišel požadavek – AUTH_TYPE způsob použité autorizace uživatele REMOTE_USER v případě, že byl uživatel autorizován, obsahuje tato proměnná jeho jméno
12
Protokol HTTP (Hypertext Transfer Protocol) URI schema h@ps – h@ps není samostatný protokol, ale HTTP interakce šifrovaná přes spojení SSL (Secure Sockets Layer) nebo TLS (Transport Layer Security) – Pokud není specifikováno v URL, používá hlps port 443 – Interakce klient – server vyžaduje autenazaci serveru (povinně) a autenazaci klienta (volitelně)
13
Protokol HTTP (Hypertext Transfer Protocol) Response: Stavový kód – tříciferný idenafikátor typu odpovědi • 100 – 199 – odpověď má charakter informace • 200 – 299 -‐ požadavek je úspěšně splněn • 300 – 399 – informace o přemístění požadované enaty • 400 – 499 – chyba na straně klienta • 500 – 599 –chyba na straně serveru 14
Protokol HTTP (Hypertext Transfer Protocol) Příklady HTTP odpovědí • Poziavní odpovědi 200 – data odeslána 202 -‐ akceptováno 201 – vytvořeno 204 – není obsah • Informace 304 -‐ nemodifikováno • Chyba klienta 400 – Bad Request 401 – Unauthorized 403 – Forbidden 404 – Not found • Chyba serveru 500 – Internal server error 501 -‐ Not implemented 502 -‐ Bad gateway 503 – Service unavailable 15
Protokol HTTP (Hypertext Transfer Protocol) Záhlaví („hlavičky ) – definuje RFC 2616 – Obecné hlavičky – Hlavičky požadavků – Hlavičky odpovědí – Hlavičky obsahů zpráv
16
Protokol HTTP (Hypertext Transfer Protocol) Obecné hlavičky (general) -‐ informace obecného charakteru o zprávě. Příklady: • Date: Mon, 07 Apr 1996 06:42:10 GMT (formát podle RFC822) Datum vytvoření zprávy • Pragma: no-‐cache Umožní zahrnout specifické direkavy • Host: "Host" ":" host [ ":" port ]
GET /pub/WWW/ HTTP/1.1 Host: www.w3.org 17
Protokol HTTP (Hypertext Transfer Protocol) Hlavičky požadavků (request) • Accept : text/plain, text/html, text/x-‐dvi, image/jpeg Podporované typy informačních objektů • Authorizaion: Basic : Autenafikace uživatele • From : user@e-‐mail.address E-‐mail uživatele • If-‐Modified-‐Since: Mon, 07 Apr 1996 06:42:10 GMT Datum poslední modifikace objektu • Referer hqp://www.w3.org/hypertext/DataSources/ Overview.htm Informuje server, který URL je původcem odkazu na URL dotazu 18
Protokol HTTP (Hypertext Transfer Protocol) Hlavičky odpovědí (response) • Locaion: hqp://nekde.jinde.cz/novy.html V souvislosa s kódy skupiny 3xx udává nové URL přemístěného objektu • Server: Apache/1.2.5 mod_czech/2.4.0 PHP/ 3.0rev-‐dev Informace o programové podpoře serveru • WWW-‐Authenicate: Basic realm="super-‐tajne" V souvislosa s kódem 401 -‐ výzva k prokázání totožnosa 19
Protokol HTTP (Hypertext Transfer Protocol) Hlavičky těla zpráv (enaty) • Allow: GET, HEAD, PUT Informuje, jaké metody jsou uplatněny v rámci příslušného URL • Content-‐Base: hqp://www.pef.mendelu.cz Základní URL pro relaavní specifikaci • Content-‐Encoding: gzip Indikace použitého dodatečného typu kódování • Content-‐Type: text/html : charset=ISO-‐8859-‐2 Specifikuje typ zasílaného objektu • Expires: Mon, 07 Apr 2003 06:42:10 GMT Datum vypršení platnosa informace (pro ukládání do cache) • Last-‐Modified: Mon, 07 Apr 1996 06:42:10 GMT Datum poslední modifikace objektu 20
Protokol HTTP (Hypertext Transfer Protocol) Kontext WWW – Web technologie • Hypertexový dokument– odkazy na další zdroje prostřednictvím URL • Základní typ zdroje systému WWW – HTML (Hypertext Markup Language) dokument • Jazyk HTML – podmnožina specifikace SGML (Standard Generalized Markup Language) • Verze HTML 4.0 – poslední verze HTML, dále jako součást specifikace XHTML (Extensible Markup Language) • Vývoj Web systému -‐ konsorcium W3C
21
Protokol HTTP (Hypertext Transfer Protocol) • Implementace HTTP serveru – WWW server – apache – IIS (Internet Informaaon Server fy. Microsom) – ……………………………………….
• Implementace HTTP klienta – WWW prohlížeč (WWW browser) – Explorer – Netscape browser – Opera – Lynx – ……………….. 22
Protokol SNMP
Simple Network Management Protocol Správa a řízení velkých sí3 • Monitoring provozu v určitých uzlech sítě – ukládání do databáze -‐ agent • Sběr dat od agentů – manager • Vzdálené řízení – reset , reboot, nastavení proměnných (např. IP Time-‐To-‐Live) • Řídící stanice -‐ NMS (Network Management Sta4on) • Princip klient (manager) – server (agent) • SNMP je systémová služba, transport UDP, well-‐known porty 161 a 162 1
Protokol SNMP Simple Network Management Protocol
2
MIB -‐ Management Informa4on Base • Hierarchická organizace shromažďovaných dat • Každý objekt má přidělen jméno (alfanumerický řetězec) a numerický iden7fikátor • Typy objektů – Skalární objekt -‐ definuje jednoduchou instanci objektu – Tabulární objekt – definuje násobné instance objektu
• Jednoznačné určení objektů – Jmenné – zřetězení jmen objektů na cestě od kořene – Číselné – zřetězení iden^fikátorů na cestě od kořene
• Ve zprávách protokolu se používá číselná reprezentace určení objektů 3
MIB -‐ Management Informa4on Base
Hierarchická organizace shromažďovaných dat
4
Struktura MIB
MIB (Management Informa7on Base) • Objektově orientovaná databáze dat • Objekty se sdružují do skupin – tříd • Třídy jsou definovány – Atributy objektů, které jsou ve třídě sdruženy (atribut je určen typem a hodnotou). Hodnotu získává nebo ji lze na řízeném objektu nastavit – Chováním – odezvy na operace prováděné na řízeném objektu – Hlášením – agent sděluje managerovi událos^ odehrávající se na řízeném objektu – Výčtem operací, které je možné s objekty třídy (nebo jejich atributy) provádět 5
5 povinných charakteristik
Struktura MIB
• Name (Object Descriptor a Object Identifier) • Syntax - datový typ (běžný/tabulární) a struktura, která ho popisuje) • Access (přípustné operace: read-create/ write/only, accessible-for-notify, notaccessible) • Status – platnost objektu v SMI (mandatory, optional, obsolete) • Definition/Description
Volitelné charakteristiky • Units - popis jednotek spojených s objektem • Reference - odkazy na související dokumenty a relevantní informace • DefVal – definice přípustných hodnot • Index – definice objektů, které jsou rozšířením jiných objektů 6
Struktura MIB • Za správu MIB je zodpovědný agent (SNMP server), manager (SNMP klient) může požadovat nebo nastavovat hodnoty • SNMP server (agent) udržuje databázi MIB, na vyžádání SNMP klienta (managera) odešle hodnoty objektů nebo je nastaví na vyžadovanou hodnotu (pokud je zápis povolen) • Řízené objekty jsou jednoznačně iden^fikovány jménem objektu
7
MIB -‐ Management Informa4on Base
8
Skupiny objektu mib-‐2(1) (1)system (2)interface
informace o systému informace o všech síťových rozhraní systému (3)at informace o fyzických a IP adresách síťových rozhraní systému (4)ip informace o provozu v IP vrstvě (5)icmp informace o ICMP zprávách (6)tcp informace o TCP spojeních (7)udp informace o UDP přenosech (8)egp informace o externím směrování ………………………………………………………………………………… (11)snmp informace o zprávách SNMP protokolu
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ (14)ospf
informace o zprávách OSPF protokolu 9
Struktura MIB Příklad skupiny
10
Skalární objekty -‐ skupina udp: Jméno
Datový R/W typ
Popis
udpInDatagrams
čítač
-
Počet UDP datagramů doručených do uživatelských procesů
udpNoPorts
čítač
-
Počet UDP datagramů, pro které neexistoval proces na cílovém portu
udpInErrors
čítač
-
Počet UDP nedoručených (chybových) datagramů
udpOutDatagrams
čítač
-
Počet UDP datagramů vyslaných 11
Tabulární objekt -‐ UDP tabulka (pro „naslouchající proces) Jméno
Datový typ
R/W
Popis
udpLocalAddress
IP adresa
-
Lokální IP adresa (pro proces)
udpLocalPort
[0…..65535]
-
Číslo portu (pro proces)
12
Skupina IP Jméno ipForwarding(1)
Datový typ
R/ W
Popis
[1/2]
-
Systém forwarduje ano/ne
ipDefaultTTL(2)
INTEGER
ano
TTL pro IP datagramy
ipInReceives(3)
čítač
-
Počet přijatých IP datagramů
ipInHdrErrors(4)
čítač
-
Počet datagramů –chyba v záhlaví
ipInAddrErrors(5)
čítač
-
Počet datagramů –chyba v cílové adrese
ipForwDatagrams(6)
čítač
-
Počet forwardovaných datagramů
ipInUnknownProtos(7)
čítač
-
Počet dat. – chyba v poli PROTOCOLS
ipInDiscards(8)
čítač
-
Počet diskartovaných dat. – nedostatek místa v bufferu
……… 13
Datová reprezentace v SNMP • SMI (Structure of Management Informa7on) definuje
pravidla pro popis spravovaných objektů (tj. jak budou objekty vytvářeny) – Jménem (OID) – Typem a syntaxí prostřednictvím ASN.1 (Abstract Syntax Nota7on) – Kódem – pravidla pro transport dat (např. BER)
ASN.1 je standard pro popis zprávy (tj. datové jednotky aplikace) – odpovídá prezentační vrstvě OSI • Syntaxe abstraktní – obecná struktura dat • Datový typ – pojmenovaná sada hodnot Kódování a kódovací pravidla (BER – Basic Encoding Rules, PER – Packet Encoding Rules nebo DER – Dis^nguished Encoding Rules) – odpovídá relační vrstvě OSI • Přenosová syntaxe (bitový „proud při přenosu mezi příslušnými en^tami – např. ASCII, EBCDIC)
14
Použi3 abstraktní a přenosové syntaxe
15
ASN.1 • ASN.1 není programovací jazyk – pokrývá pouze strukturální aspekty informace – nemá žádné operátory pro výpočty nebo manipulaci s daty • Programová podpora ASN.1 – Většina OS má nástroje k podpoře ASN.1 – ASN.1 podporují programovací jazyky jako: JAVA, C, C++ atd.
• Standardizace ASN.1 – v r. 1984 – CCITT (nyní ITU-‐T) – X.690 – v r. 1985 – ISO – dva dokumenty • Abstract Syntax ASN.1 • Encoding Rules BER
– současnost – ASN.1 Consor^um – nová edice ASN.1:2002
16
ASN.1 • ASN.1 se používá k definicím datových struktur • Definice datové struktury – pojmenovaný modul • Obecný formát pojmenovaného modulu: <jméno_modulu>DEFINITIONS::= BEGIN definice modulu výběr instance popis elementů ………… ………… END 17
FooProtocol DEFINITIONS ::= BEGIN FooQues7on ::= SEQUENCE { trackingNumber INTEGER, ques^on IA5String } FooAnswer ::= SEQUENCE { ques^onNumber INTEGER, answer BOOLEAN } END myQuestion FooQuestion ::= { trackingNumber 5, question "Anybody there?" } 18
ASN.1 Datové typy ASN.1 (abstraktní) – Jednoduché (INTEGER, BOOLEAN, BIT STRING…..) – Strukturované (SEQUENCE, SEQUENCE OF) – Výběrové • CHOICE -‐ výběr mezi typy • ANY – předem neurčený Označení (TAG)– tag zahrnuje třídu a datový typ Třídy: 1. 2. 3. 4.
Univerzální (rezervované pro ASN.1) Aplikačně závislé Kontextové Privátní
19
ASN.1 Některé univerzální „tagy
20
Datové typy SMI – SNMP -‐ příklady INTEGER NULL OCTET STRING OBJECT INDENTIFIER SEQUENCE SEQUENCE OF DisplayString IpADDRESS PhysAddress TimeTicks Counter Gauge
celé číslo indikuje, že příslušná proměnná nemá žádnou hodnotu řetězec bytů s hodnotou 0-255 identifikátor objektu, př. 1.3.6.1.2.1 sekvence položek dvourozměrné pole proměnných – tabulka řetězec znaků NVT ASCII IP adresa HW adresa čítač času ve stovkách sekund číslo 0-(232 –1), pak 0… číslo 0-(232 –1), pak zůstává
21
Příklad definic typů
22
Příklad definic subtypů
23
Příklad definice typu OBJECT IDENTIFIER
24
Definice proměnných skupiny ip ve formálním jazyku ASN.1 (Abstract Syntax Notation) -- the IP group ipForwarding OBJECT-TYPE SYNTAX INTEGER { gateway(1), -- entity forwards datagrams host(2) -- entity does NOT forward datagrams } ACCESS read-only STATUS mandatory ::= { ip 1 } ipDefaultTTL OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory ::= { ip 2 } ipInReceives OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 3 } ipInHdrErrors OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 4 } 25
ipInAddrErrors OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 5 } ipForwDatagrams OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 6 } ipInUnknownProtos OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 7 } ipInDiscards OBJECT-TYPE SYNTAX Counter ACCESS read-only STATUS mandatory ::= { ip 8 } 26
Obecný kódovací formát pro ASN.1 – BER Triplet
• Pole iden^fikátoru –Tag (8 bitů) • Pole délky - Length • Pole obsahu - Value 27
Obecný kódovací formát pro ASN.1 -‐ BER http://en.wikipedia.org/wiki/Basic_Encoding_Rules
28
SNMP paket
29
Protokol SNMP • Verze protokolu – SNMPv1 – SNMPv2 – SNMPv3 – ochrana dat šifrovacím algoritmem (DES)
• Nekompa^bilita verze 1 a verze 2 se řeší proxy agentem („dvojjazyčným ) • Formát zprávy SNMPv1 a SNMPv2
30
Protokol SNMP • Záhlaví SNMP zprávy: – Číslo verze – Jméno „komunity – auten^zační iden^fikátor skupiny agentů • Zprávy PDU
– SNMPv1 Get GetNext
Response Set
Trap
GetBulk Response
Set Inform Trap
– SNMPv2 Get GetNext
31
Klient – server v protokolu SNMP
32
Klient – server v protokolu SNMP
33
SNMPv1 PDU Zprávy Get, GetNext, Set – Typ PDU: 0 Get-‐request 2 Get-‐response 1 GetNext-‐request 3 Set-‐request – Request ID – spojení požadavku s odpovědí – Error status – indikace jednoho z definovaných chybových stavů – Error index -‐ spojení chybového stavu s určitým objektem – Objekt, hodnota – spojení objektu s určitou hodnotou (kromě Get-‐request a GetNext-‐request)
34
SNMPv1 PDU Trap – iniciuje agent v důsledku výjimečné událos^ na řízeném zařízení (připojení do sítě, reboot, připojení dalšího síťového rozhraní ….)
– Enterprise – iden^fikuje typ zařízení, které generuje trap – Agent address – adresa zařízení, které generuje trap – Generic trap type/specific trap code – indikuje typ a kód trap – Time stamp – časová známka – Objekt, hodnota – spojení objektu s určitou hodnotou 35
SNMPv2 PDU Zprávy Get, GetNext, Set, Trap, Inform
Typ PDU: 0 Get-request 3 Set-request 1 GetNext-request 4 Trap 2 Get-response 5 Inform – Request ID – spojení požadavku s odpovědí – Error status – indikace jednoho z definovaných chybových stavů – Error index - spojení chybového stavu s určitým objektem – Objekt, hodnota – spojení objektu s určitou hodnotou (kromě Get-request a GetNext-request) 36
SNMP - Get
SNMP - Set
37
SNMP - Trap
38
SNMPv2 PDU GetBulk – request požadavek na zaslání objemného seznamu „bindings (setříděných podle iden^fikátoru objektu – tzv. „lexicografic ordering )
– Non repeaters – počet proměnných v seznamu Objekt-‐Hodnota, pro které se očekává v odpovědi pouze jedna hodnota (tzn. skalární objekty) – Max repe^^ons – určuje maximální počet hodnot pro každou proměnnou (pro ne-‐skalární objekty). 39
Řazení odesílaných objektů v příkazech GetNext a GetBulk
40
SNMP - GetBulk
41
Příklad obsahu pole Objekt-‐Hodnota („binding)
42