# ISA 1 ## Sockets - 'schranka' - vstupny / vystupny bod pre komunikaciu - identifikovana IP, cislom portu ## Adresovanie / Smerovanie - adresa - jednoznacne definuje objekt s ktorym budeme komunikovat - dynamicky meniace smerovacie tabulky - sietova vrstva - DNS - distribuovany priestor domenovych mien - IPtelefonia - pomocou centraly ## TCP model ### Linkova vrstva - L2 - 48bit fyz. adresa - MAC - jednoznacne identifikovanie rozhrania - prvych 24bit - OUI - ID organizacie - zvysok - cislo siet. rozhrania od vyrobcu - ramec obsahuje typ protokolu - IPv4 0x0800 - IPv6 0x086DD - multicast MAC adresy: - IPv4 01 00 5e - (zbytek IPv4) - IPV6 33 33 - (zbytek IPv6) ### Sietova vrstva - L3 - 32 bit - IPv4 - 128 bit - IPv6 - IPv4 - netid + hostid | skupina | prefix | |:-------:|:-----------:| | A | 8 | | B | 16 | | C | 24 | | D | multicast | | E | nepouzivane | - DHCP - funguje na aplikacnej vrstve - prideluje adresy pre L3 vrstvu ### Transportna vrstva - L4 - TCP / UDP - patri tu iba src/dst port - **_!! source a dest IP patria do L3 !!_** ### Aplikacna vrstva - L7 - kazda aplikacia/protokol komunikuje inak # ISA 2 - klient-server / P2P ## Protokol - jazyk/prekladac - mnozina viet ktore si vymienaju klient a server - su definovane urcitou gramatikou - subor syntaktickych a semantickych pravidiel - popis protokolu: - napr. gramatika / konecny automat / graf ## BSD socket - zaznam ktory obashuje polozky ktore musime nainicializovat - obsahuje aj buffer - IP adresa + port - odosielatel + prijemca - SOCK_STREAM - TCP - SOCK_DGRAM - UDP - SOCK_RAW - pristup k nizsej vrstve ## Spojovane UDP schranky - connect() - narozdiel od TCP neodosiela nic, iba nastavuje aby aplikacia primala ICMP packety - musi vyuzivat `read()` `write()` ako TCP namiesto `sendto()` - promiscuous rezim - cita packety aj mimo svojej adresy - neighbor discovery - IPv6 - podobne ako ARP pre IPv4 - __vyuziva multicast__ # ISA 3 ## Multicast - skupinove primanie packetov - IGMP - prihlasenie do mult. skupiny - router nacuva na IGMP packety aby vedel kam ma poslat datovy segment - join() na pocitaci sposobi ze sa na rozhranie prida multicast. adresa - data sa vysielaju skupine pocitacov - vzdy je to 1 packet/ramec ktory prima viac stanic nasluchajucich na rovnakom mediu - prenos podobny ako v zdielanej zbernici CSMA/CSMD - na point-point sieti nechodi multicast - **pokial nejde multicast nefunguju smerovacie protokoly - RIPv2, OSPF, RIGRP, ...** - rozsah(prefix): - IPv4 - 1110 - skupina D - IPv6 - FF: / 8 ### Rozdelenie | | IPv6 | TTL | IPv4 | |:-----------------:|:----:|-------|-------------------------------| | Lokalne rozhranie | FF01 | 0 | | | Lokalna podsiet | FF02 | 1 | 224.0.0.1/24 | | Dana lokalita | FF05 | <32 | 239.255.0.0/16 | | Organizacia | FF08 | | 239.192.0.0 - 239.195.255.255 | | Globalne | FF0E | <=255 | 224.0.1.0-238.255.255.255 | - u IPv6 kontrolovane - u IPv4 - funguje aj ked nedodrziava rozdelenie - dynamicke prihlasovanie klientov - zobrazenie multicast adries - netstat -g - ip muladdr - IPv4 - IGMP - IPv6 - MLD - vyuziva vlastne protokoly pri komunikacii medzi routrami - vyuziva vlastne smerovacie tabulky - routre pouzivaju: - DVMRP - PIM - MOSPF ### L2 vrstva (linkova) - ramec obsahuje 1bit pre rozoznanie multicast/unicast - ina multicast adresa ako na L3 vrstve - mapovanie adresy: - IPv4 - poslednych 23bit z IPv4 - prefix - 01 00 5e + 1 nulovy bit - IPv6 - 33 33 + 32bit z IPv6 - prekryvanie adries - imperfect filtering - mozme dostavat aj multicast packety patriacej inej skupine, su zahodene na L2/L3 vrstve - TTL default je na 1 - treba nastavit pomocou `setsockopt()` ### Rezervovane multicast adresy - IANA - URRP - IGMP - NTP - SAPv1 ### Server - vytvor schranku SOCK_DGRAM - posielame UDP packety - `socket(AF_INET, SOCK_DGRAM, 0)` - nastavime adresu, port, TTL, rozhranie v setsockopt() - `setsockopt()` - interface - ttl - IP_MULTICAST_LOOP / IP_MULTICAST_TTL - odoslanie packetu ako pri unicast - `sendto()` ### Klient - specialna struktura - struct ip_mreq - in_addr imr_mmultiaddr // D - adresa - in_addr imr_interface // loc. rozhranie pre spojenie - `bind()` - nastavenie portu - `setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq))` - odosle join na IGMP + prideli sa multicastova adresa ktoru je mozne vidiet na sietovom rozhrani - `recvfrom()` - primanie dat - odpojenie: - `setsockopt(sock, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq))` ### BSD Packet filter(BFP) - komunikacia priamo so siet. kartou - kopia packetu do bufferu filtra ### PF_PACKET - nacita ramce priamo z linkovej vrstvy ### Libpcap - medzi siet. kartou a TCP/IP - API pre zachytavanie dat - `pcap_lookupdev()` - `pcap_open_live()` / `pcap_open_offline()` - `pcap_dispatch()`, `pcap_loop()`, `pcap_next()` - analyza packetov cez aplikaciu # ISA 4 ## System DNS - Root DNS - ICANN - stromovita struktura - zvycajne UDP - zonove dotazy vacsinou TCP - reverzny preklad - specialna domena - \<IP>.in-addr.arpa. - whois - dohladanie info o IP - ukladanie domenovych mien - cast domenoveho priestoru pod jednou spravou - uklada sa na servery toho kto to spravuje - ZONA - zona - moze obsahovat viac domenovych priestorov - specialna zona - hint - ukazuje na korenovy server - server DNS: - primarny - SOA, NS - sekundarny - NS - zalozny - niesu autoritativne - nemusia byt aktualne ### Update dns serveru - treba zmenit seriove cislo - podla toho sekundarne servery poznaju zmenu a spytaju sa na inkrementalny alebo celkovy update - dns Notify - primarny oznami sekundarnym ze sa nieco zmenilo ### Resolve - ak nie je lokalne tak poziadavka ide vzdy na Root server - 13 hlavnych po celom svete ### Zaznamy #### SOA - jediny primarny - obsahuje udaje o spravci serveru / domeny a dlzku platnosti zaznamu ```dns $TTL 3600 @ IN SOA isa.fit.vutbr.cz. root.isa.fit.vutbr.cz. ( 100711090 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS isa.fit.vutbr.cz. IN MX 0 eva.fit.vutbr.cz. isa IN A 10.10.10.1 ``` #### NS - vytvaranie stromu - ukazuje ako sa dostat do nizsej urovne - kazdy z tychto serverov obsahuje validnu kopiu zonoveho suboru #### A - jedine zaznamy ktore obsahuju IPv4 #### AAAA - zaznamy obsahuju IPv6 #### MX - ktory server prima mail postu + priorita - ak server nefunguje tak sa vyuzije dalsi zo zaznamov #### CNAME - aliasy - iba domenove mena - `email IN CNAME hermina.fit.vutbr.cz.` #### PTR - reverzne mapovanie - 147.229.9.23 - `23.9.229.147.in-addr.arpa. 14400 IN PTR www.fit.vutbr.cz` - IPv6 - \<byty>ip6.arpa. #### NAPTR - mapovanie retazcov na data - napriklad ENUM - telefonne cisla - lokalizacia SIP serveru #### SRV - adresovanie sluzieb - pre aky protokol existuje aka sluzba #### TXT - textove data - `fi.muni.cz. 300 IN TXT "Faculty of Informatics"` ### Utoky - zamena IP adresy - podvržení odpovědi - DDOS utok na DNS servery - přetížení serverů - Cache poisoning - podvržení dat do paměti cache ### Pisomkova otazka: Jakým způsobem probíhá práce s DNS, ať už získávání informací, nebo import? > Dotazování na základní typy záznamů DNS je v dnešních OS realizováno pomocí volání jádra, které podle nastavených DNS serverů (přidělených pomocí DHCP či manuálně) vyhodnotí dotaz na konkrétní typ/klíč záznamu. V úvahu je také nutné brát DNS cache, ať už cache lokální stanice, tak rekurzivní DNS (caching) servery - obě slouží pro snížení odezvy na DNS dotaz a zátěže na autoritatní DNS servery. > > Pro definici stromu DNS záznamů jsou použity tzv. zónové soubory - každý obsahuje definici části záznamů pro doménu či více domén. Tyto soubory jsou uloženy u autoritativního serveru a jako první obsahují SOA záznam s metadaty k samotné doméně a dalším záznamům. Pomocí přesunu zóny (DNS Notify) jsou tyto záznamy distribuovány i na sekudární DNS servery. Třináct kořenových jmenných serverů je rozmístěno po celém světe - definují umístění kořenových serverů pro jednotlivé TLD, tyto servery poté počátek stromu pro každou z TLD domén. - Top level domain(TLD) - DNS servery na nejvyšší úrovni .cz, .sk, .org, .com # ISA 5 ## DNSSEC - rozsirenie DNS o nove zaznamy které řeší ověření pravosti záznamu - __NIE je to sifrovanie!__ - zabezpecenie pomocou podpisovania - asymetricka kryptografia - verejny a sukromny kluc - privatni: podepisování záznamů (nikam neposílám!) - veřejný: ověřování - ZSK - podpisovanie zaznamov DNS v zonach - cely zonovy subor podpisany jednym privatnym klucom - overenie verejnym klucom(nešifruje se jím) - KSK - podpisovanie klucov pre podpisovanie zaznamov - overenie ci zona mala pravo vyvorit si podpisovy kluc - Zaznamy: - DNSKEY - verejny kluc pre overenie podpisov - ZSK - RRSIG - podpis konkretneho zaznamu pomocou ZSK - NSEC, NSEC3 - odkaz na dalsi domenove meno - ochrana pri dotaze na neexistujucu domenu - DS - záznam obsahuje hash verejneho KSK - verejny KSK ulozeny u nadriadeneho DNS serveru ![](https://i.imgur.com/wxqhxY1.png) ### Pisomkova otazka: Jak funguje a využívá se DNSSEC? > DNSSEC, tedy rozšíření pro zabezpečení DNS, funguje na principu asymetrické šifry, tedy privátního a veřejného klíče. Pro podepsání samotných DNS záznamů je použit privátní z dvojice ZSK. Takto podepsané záznamy (podepsány vždy po skupinách podle hlavičky - stejné doménové jméno, typ, třída a TTL a z těchto atributů se vytvoří podpis) jsou uloženy v podepsaném zónovém souboru a distribuovány servery jednotlivým klientům. Tento podpis je schopen klient ověřit po získání veřejného ZSK a KSK (DNSKEY záznamy) a DS záznamu (obsahuje hash veřejného KSK), který je uložený u nadřazeného DNS serveru z hlediska stromové hiearchie DNS záznamů – záznam DNSKEY obsahující ZSK je podepsána pomocí KSK a záznam DNSKEY obsahující KSK je podepsán pomocí ZSK. > > Takto navržená dvojice je výhodou při výměně jednoho z klíčů a taktéž pro nižší náročnost ověření podpisu záznamů, ZSK lze mít méně "bezpečený" (méněbitový) než KSK, vzhledem k tomu, že je ověřován násobně častěji . Pro uložení samotných podpisů se v DNS používá typ záznamu RRSIG, DS poté slouží k vytvoření tzv. "řetězu důvěry", což je rekurzivní princip důvěry v autoritativní server domény n-1 řádu a obsahuje tedy otisk (hash) veřejného KSK a tento záznam je uložený v nadřazené zóně. > > Záznamy NSEC se používají k autoritativnímu potvrzení neexistence záznamu v doméně. Tím, že záznam NSEC ukazuje na další doménové jméno, zároveň říká, že mezi současným doménovým jménem a dalším jménem není žádná další položka - tímto principem je vytvořen záznam na neexistenci záznamu, který lze již podepsat. ## Postove sluzby ![](https://i.imgur.com/IlcJsAo.png) - minimalne 3 sluzby k emailu: DNS, SMTP, IMAP(POP3) - optional: LDAP - adresujeme pomocou email - adresy - standard SMTP - uzivatel@domena - smeruje sa najprv podla lokalneho configu a dalej pomocou MX zaznamov - ak nie je MX zaznam server vygeneruje chybovu spravu pre spravcu a sprava sa posle naspat odosielatelovi - potvrdenie prijatia emailu neexistuje - jediny sposob pozriet sa do logov mailovych serverov - povinnost 6 mesiacov uchovavat podla CZ zakona - system elektronickej posty nam definuje aj format prenasanych sprav a akym systemom sa da pristupovat k email schrankam - sucasti: klient, server - protokoly POP3, SMTP, IMAP, HTTP - klient(UA, User Agent) - vytvara, formatuje spravu do daneho protokolu SMTP - riadi odosielanie / prijimanie - Server (MTA, Mail Transfer Agent) - převezme mail a uloží - 2 typy schranok: - inbox(vždy je na serveru) - (IMAP) dalsie schranky - v hlavicke uvedeny udaj `Received` - kazdy email server tam prida svoju domenu a cas s casovym pasmom kedy to cez neho preslo - povodne kodovanie 7-bit ASCII - 8-bit porusuje definiciu SMTP - binary - porusuje definiciu SMTP - base64 - kodovanie 8bit znakov na 6 bit 3B -> 4 x 6-bit slova - quoted-printable - kodovanie 8bit na 7bit znaky podla tabulky - rozsirenie MIME - obsah emailu moze byt rozdeleny na viacero casti - kazda cast moze mat ine kodovanie/typ ### SMTP PORT 25 - EHLO - extended hello - rozsirena sada prikazov - MAIL FROM: .... - RCPT TO: ... - DATA - ukoncenie "." - QUIT ![](https://i.imgur.com/C54Wf6x.png) ### POP3 - iba jeden klient (uzamknutie schranky pri pristupe) - obsah sa prenesie az po ukonceni prace - iba jedna schranka - pri preruseni spojenia niekedy hrozilo zablokovanie stranky cez LOCK(kvůli pomalémů spojení / vypadku) ### IMAP - viacnasobny pristup k schrankam - atributy (seen, answered, recent, deleted, flagged) - viac schranok, praca s hlavickami aj s celou spravou ### Zabezpecenie emailov - příhlašování zabezpečeno cez SSL - mezi servery je zabezpečení TLS(většinou nebývá zabezpečeno) - prenos medzi servery uz nemusi byt sifrovany - PGP / S/MIME - asynchronne sifrovanie(šifrování přes dva klíče) ### Pisomkova otazka: Jakým způsobem probíhá elektronická pošta SMTP, ať už zasílání, nebo přijímání zpráv, nejlépe včetně zapojení, DNS, LDAP, a používaných protokolů? > UA (User agent, nejčastěji e-mailový klient) pomocí SMTP kontaktuje MTA (Mail transfer agent) pro schránku odesílatele. Po volitelné autentizaci klienta dojde k odeslání zprávy následujícím způsobem: pomocí DNS jsou vyhledány MX záznamy pro schránku příjemce. Pomocí těchto záznamů, jejich priority a odpovídajících A/AAAA záznamů pro cílové servery je opět pomocí SMTP předána zpráva do cílové schránky. Jestliže nejsou tyto záznamy nalezeny/cílový server neodpovídá, je odesílateli signalizována chyba odeslání. > > Ke čtení zpráv lze použít starší POP3 protokol, stahující celé zprávy k UA, kde je s nimi následně lokálně manipulováno - tento protokol ovšem nepodporuje nastavení vlastních atributů zprávám, vlastní adresáře ani konkurentní přístup více klientů. Oproti tomu novější IMAP stahuje pouze hlavičky zpráv (jejich tělo až na vyžádání), podporuje vlastní atributy (přečteno, vlaječky, atd.) a konkurektní přístup více UA. > Adresářovou službu LDAP lze použít pro vyhledání konkrétní adresy schránky pro elektronickou poštu pro konkrétního uživatele - lze takto i filtrovat dle uložených atributů (jména, ústavu, atd.). ## Adresarove sluby - phone directory(DB telefonních čísel) - adresy osob, dalsich informacii - povodne ako podpora elektronicke posty - vyhladavnie uzivatelov (email, IP telefonie) - LDAP, active directory ### LDAP PORT 389 - L7, TCP - distribuovana sluzba - najdenie LDAP serveru - DNS SRV zaznam LDAP - pouziva koncept X.500. Pro data: Directory Information Tree(DIT) ![](https://i.imgur.com/yg3GmdV.png) - zakladnou jednotkou je zaznam (entry) - kazdy zaznam tvori mnozina atributu (typ,hodnota) - podoba definovana podobne ako classa - podporuje aj dedenie - jednoznacny identifikator - Distinguished Name - DN #### organizacia zaznamov - stromova struktura - definuje organizaciu a identifikaciu zaznamov v adresari ![](https://i.imgur.com/eOJkyVG.png) #### prepojenie adresarov - alias - alternativne meno - cn=bar,dc=example,dc=com odkazuje na cn=foo,dc=widget,dc=com ``` dn: cn=bar,dc=example,dc=com objectClass: top, alias, extensibleObject cn: bar aliasedObjectName: cn=foo,dc=widget,dc=com ``` - odkazy typu referrals - specialny URL typu ldap ``` dn: ou=DESY,dc=HEP,dc=NET ref: ldap://ldap.desy.de/ou=DESY,dc=HEP,dc=NET ``` ![](https://i.imgur.com/M13W2wU.png) #### protokol LDAP - klient - server - data ulozene vo formate ASN.1, prenos kodovany BER standardom ``` K - klient S - server K: open connection, bind S: result of bind K: search S: first entry S: second entry S: result of search K: unbind S: close connection ``` - klient moze upravovat zaznamy, dnes nepouzivane - vacsinou to upravuje spravca - operace: - bind/unbind - compare - abandon - modify - add - delete - modifyDN - search #### pouzitie LDAP - email klient - vyhladavanie osob - prihlasovanie - autentizace 802.1x (pristup do siete LAN) # ISA 6 ## Hlasove sluzby - SIP - dva typy protokolů signalizační(SIP,H.323) a datový(RTP) - klient - telefon - applikacia - server (gatekeeper) - uklada informacie o uzivateloch - autentizace uzivatelov - uctovanie (poplatky operatorov) - gateway - umoznuje sa dostat do inych sieti - typy prenosov: - signalizacia - hlasova data - obraz - potrebujeme DNS - mozne spojenie s LDAP servermi - komunikacia medzi: - klientom a ustrednou - ustrednami - ustredna generuje ton pri zdvihnuti sluchatka - narozdiel od pevnej linky IP telefonia nevie zariadit garantovanu sirku pasma a spolahlivy prenos - IP telefonia nema pevne miesto - dolezita vlastnost: mobilita - IP telefonia __musi__ implementovat volanie na tiesnove volania - musi sa dat dovolat na vsetky telefonne cisla nie iba organizacne ### Funkcie - prevod hlasu na IP datagramy - vzorkovanie hlasu - zachytenie impulzov z mikrofonu - ADC a DSP prevodnik - kodovanie a zapuzdrovanie do datagramov ### Riadenie komunikacie - registracia ucastnikov - adresovanie hovorov (URI) - telefonne cislo sa preklada na SIP uri - smerovanie hovorov - mimo lokalnej siete sa vyuzivaju DNS zaznamy - NAPRT - SRV - vytvaranie hovorov, udrziavanie spojeni - dohadovanie portov, kodekov, dalsich informacii - vytvorenie spojenia ### Prenosove protokoly - signalizacne - H.323 - SIP - MGCP - SCCP - transportne - RTP/RTCP ### Kodovanie hlasu ![](https://i.imgur.com/vPMjvLa.png) - dochadza k vzorkovaniu - vzorky sa kvantifikuju - u-law (micro) - a-low (alpha) - komprese ![](https://i.imgur.com/pVlOifX.png) - rezia prenosu - RTP header(12B), UDP(8B), IP(20B) - Ethernet (18B), Frame Relay(6B) - IPSec tansport(30-53B), IPSec tunel(50-73) ![](https://i.imgur.com/FeGoERW.png) ### Ztrata kvality - ozvena - jitter buffer - zpozdenie - < 150ms - dobra kvalita - 150 - 400 - poslouchatelné - \> 400ms - nedovolatelne - rozptyl packetov(jitter) - ztratovost - kodek ### Hodnotenie kvality #### Subjektivne hodnotenie - hodnotenie od posluchacov - MOS hodnota (Mean Opinion Score): 0-5 ![](https://i.imgur.com/s1bJBN5.png) **Matousek - netreba poznat tie tabulky naspamat - treba vediet vymenovat niekolko kodekov** #### E-model - objektivne hodnotenie podla nameranych hodnot - tabulky s tolerovanymi hodnotami ### SIP - aplikacny protokol nad UDP - signalizacia VoIP - registracia uzivatelov - naviazanie spojenia - __smerovanie hovorov__ - smerovacie udaje ulozene v SIP hlavicke: Via, Route, Record-Route - smerovanie spravuju servery SIP na ceste - __adresovanie pomocou SIP URI__ - sip:user@domain (sip:matousp@cesnet.cz) - neprovadi spravu relaci po ich vytvoreni - nezaistuje kvalitu prenosu - nezaistuje prenos hlasovych dat ### Pisomkova otazka: Jak probíhá SIP? > SIP (Session initialization protocol) je textově orientovaný protokol pro přenos signalizace v rámci IP telefonie. Lze jej použít ve dvou velmi podobných kontextech - peer 2 peer, kdy komunikují stanice přímo a verze s ústřednou, kdy je ústředna prostředníkem pro signalizaci. Samotný proces probíhá v několika fázích - pomocí metody REGISTER se účastník připojí do sezení, následné INVITE je určeno k zahájení relace telefonie. V rámci této metody jsou v těle požadavku pomocí protokolu **SDP** smluveny kodeky, porty a další parametry spojení určeného pro samotných VoIP dat (skrz RTP). O potvrzení, ukončení relace se stará SIP - konkrétně jeho metody ACK a BYE. Vzhledem k tomu, že SIP vychází z HTTP, jsou stavové kódy tříciferné, obecně 1XX-6XX. #### Server UAS (User Agent Server) - proxy server: analyzuje spravy, smeruje hovory - lokalizacny server - informacie o umiestneni klientov - server pre smerovanie- dalsi bod spojeni(hop) u alternativneho SIP serveru - registracny server - prijima ziadosti REGISTER, aktualizuje lokaci ![](https://i.imgur.com/fmdOEiE.png) #### Vytvaranie spojenia ##### metoda REGISTER - registr podobny autoritativnemu DNS serveru - UAC preklada ID uzivatela(AOR) na adresu zariadenia(device URI) - UAC predava svoju IP adresu a port - registacny server udrzuje lokalizacnu databazu - bez registracie sa nam nikto nedovola ale za urcitych podmienok mozme volat ![](https://i.imgur.com/PdpP5zz.png) #### Smerovanie ##### metoda INVITE ![](https://i.imgur.com/nOpBBNT.png) - data idu vacsinou napriamo #### Zakladne metody SIP - REGISTER - INVITE, ACK, CANCEL - BYE - OPTIONS #### Dalsie metody - INFO - MESSAGE - SUBSCRIBE, NOTIFY - PUBLISH #### SDP - Session description protocol - prenasany v spravach SIP typu INVITE a OK - informacie potrebne pre primanie hlasoveho toku ### RTP - aplikacny protokol pre prenos hlasovych/obrazovych dat - obsahuje typ prenasanych dat, sekvencne cislo, casovu znacku - pre kazdy smer samostatny tok - monitorovanie kvality - RTCP - RTP Control Protocol ### Zistenie SIP - SRV zaznam pre SIP - `-sip_tcp.cesnet.cz. service = 100 10 5060 cyrus.cesnet.cz.` ### Zabezpecenie VoIP - odposluch - viry SPIT, PHIT - utoky DoS, DDoS - neautorizovane pouzitie - vypadky napajania #### Sposoby ochrany - riadenie pristupu k mediu technologii - oddelenie hlasoveho provozu pomocou VLAN - zabezpecenie spojenia - IPSec, Secure RTP - napajanie PoE, zabezpecenie PoE switchov - power over ethernet - __musi byt vo firme__ # ISA 7 ## Zaistenie kvality sluzieb (QoS) - Traffic engineering - treba: - rozlisit rozne typy dat - definovat priority - obecne L3 zariadenia - poziadavky na zaistenie QoS - IP hlavicka - type of service - ToS (globalne nebude fungovat) - kazdy provider si nastavuje tuto hlavicku sam - defaultne: Best effort delivery - pri zahltenych frontach sa packety zacinaju zahadzovat - zaistenie kvality prenosu - znacenie packetov (packet marking) - rozlozenie (traffic shaping) - riesi problem shluku (burst) - lepsie vyuzitie pasma - nezahazujeme packety - u VOIP moc nepoužitelné(spoždění) - orezanie (traffic policing) - neuklada data - nevklada spozdenie - packety nad rychlostí zahazuje ![](https://i.imgur.com/CLQrUhw.png) - zaistenie QoS na sieti prostrednictvom fronty - az po zaplneni hlavnej fronty prichadza rozdelovanie do dalsich front podla priorit ![](https://i.imgur.com/QeeokxX.png) ### FIFO - D(spozdenie) <= B(velkost fronty)/R(rychlost linky) $$D <= {B}/{R}$$ ### PQ (Priority Queues) - najprv packety s najvyssou prioritou - moze dojst k vyhladovaniu (nedostane sa k packetom s najnizsou prioritou) ### RR (Round Robin) - cyklicke fronty - Pro každý tok se vytváří dynamicky jedna fronta - počet toku(front se dynamcky mění) ### WFQ (weighted Fair Queues) - vahove fronty - pre kazdy tok - jedna fronta - dynamicke vytvaranie a zanik - vaha urcuje pocet odobranych packetov z dane fronty - da sa urcit (garantovat) rychlost obsluhy - nedochází k vyhladovění $r_i = R * {w_i}/{\sum_{j}^{n}w_j}$ ![](https://i.imgur.com/3hjPaJ1.png) ### Leaky Bucket - tekoucí vědro - packety přícházejí do kýblu a postupně odcházejí s danou **konstantní** rychlostí pokud je počet packetů větší, kýbl přeteče a packety se začnou zahazovat(kýbl je FIFO fronta) - shaping & policing(odstraněním fronty) - implementuje sa pomocou FIFO fronty ![](https://i.imgur.com/s9xsK0M.png) ### Token Bucket - zasobnik zetonov - 1 token == 1B(Bajt) dat - packet caka kym ma dostatocny pocet zetonov na prenos - packety mozme poslat v burste narozdiel od Leaky Bucket - dlhodobo sa neda presiahnut rychlost - povolujeme spicky - CIR - priemerna rychlost (Commited Information Rate) - PIR - rychlost v spicke (Peak Rate) - CBS - maximalna velkost zhlukov (Committed Burst Size)(počet tokenů) - na smerovac posleme CIR a CBS - ten nastavi dalsie hodnoty na zaklade toho #### Max pocet bytov na vstupe $$ A(t) = b + t * r = CBS + t * CIR = CBS + t * \frac{CBS}{T} $$ - v praxi sa vacsinou kombinuje token bucket a leaky bucket ![](https://i.imgur.com/gBHxtBF.png) #### Max rychlost v spicke $$ PIR=\frac{CBS}{T}+CIR $$ ## Integrovane sluzby (IntServ) - integrovane / diferencovane sluzby - rezervacia zdrojov - protokol RSVP (Resource Reservation Protocol) - vytvorenie spojenia - call setup - call admission - triedy sluzieb - garantovane sluzby - striktne obmedzenie spozdenia vo frontach - kontrolovana zataz - kvalita provozu bliziaca sa k nezatazenemu prvku - najvacsie usilie - bezna kvalita sluzieb nad IP - nastavia sa fronty aby to vyhovovalo rezervaciam - zvysok provozu ktory nema rezervaciu prechadza best effort delivery (default) ### Protokol RSVP - protokol na rezervaci zdrojů - signalizační protokol - žádosti provádí koncová stanice - rezervace pásma v multicastových stromech(aby nešli individuální požadavky) - pouze v rámci menších sítí - problemy: - pokial ma tento system fungovat musia ho podporovat vsetky zariadenia na sieti - da sa to zaistit iba na zariadeniach na ktory mam administratorsky pristup - neda sa to vyuzit pre siete kde je prilis vela tokov ![](https://i.imgur.com/gQfGUtr.png) ### Diferenciované služby - když přijde paket přidělím mu třidu služby(té náleži určitá značka) tu zapíši do hlavičky packetu a podle hodnoty dále prioritizuju packety - nastavení hodnoty IP precedence(ToS) alebo DSCP(DS) v hlavičkách packetů - Definice chování - přednostní EF (Expedited Forwarding) - garantvané AF (Assured Forwarding) - deli sa este na mnozstvo podtried - 3 triedy kazda ma dalsie 3 podtriedy - nejvyšší úsilí BE (Best Effort) ### Zajištění kvality v praxi - identifikace provozu - klasifikace provozu - definice politiky každé třídy ### Zahlcení - dynamická úprava rychlosti TCP spojení ![](https://i.imgur.com/1QmAMYf.png) - když dochází k zahlcení rychlost se zpomalí poté pokud se linka uvolní zase se navýší rychlost - vyhladovění TCP - když je linka plná TCP zpomalí rychlost. Ale UDP spojení neřeší nikdy zpomalování, tak se tam nacpe. Tohle řeší RED ### RED - prevence zahlcení - detekce(prevence zahlcení) - pokud se fronta začíná zaplňovat musíme zpomalit - RED se podívá na aktuální velikost fronty a začne zahazovat preventivně packety - čím větší je fronta tím větší je pravděpodobnost že budeme zahazovat $$ Pa = Pmax*\frac{Qavg - Qmin}{Qmax-Qmin} $$ ![](https://i.imgur.com/HGpR1XT.png) ### WRED - prevence zahlcení s váhami - rozšíření RED o priority a každou třídu zahazuje podle jiného algoritmu - každá třída má jiný práh zahazování - rozdelovanie do tried zavisi na IP precedence(ToS) / DSCP ![](https://i.imgur.com/vZfGoBK.png) # ISA 8 ## Klasifikace packetů a filtrování dat - zo vstupnej mnoziny dat vyberam data do roznych podmnozin na zaklade istych kriterii - používá se k filtrování packetů, směrování ## Filtrování paketů - filtrovat sa moze vstup aj vystup provozu - filtruji podle čísla protokolu, zdrojové/cílové IP, portu probíhá na L3 nebo L4 - provádí akce allow(povolí), deny(zahodí), forward(přesměruje), ... - seznam pravidel (ACL list) - náročné na rychlost ![](https://i.imgur.com/ay0wxLd.png) ### Filtrovací pravidla ![](https://i.imgur.com/pcZ7QUg.png) - poslední(deny IP any any) je implicitní pravidlo - pokud je shoda hlavičky a pravidla bere se vždy první pravidlo nepokračuje dál ### Filtrování na L7 - Deep Packet Inspection(DPI) - detekcia podla hlavicky protokolu - kontrola SMTP, HTTP, IMAP, POP3, ... - detekce P2P sítí podle známých sekvencí: BitTorrent, KaZaA, ... - detekce malwaru - filtrování URL(zákaz příchodu na stránky) ### Vyhledávání adres - IP Lookup - klasifikace pouze podle IP adres - převážně na směrovačích a směrovacích tabulkách - vyhledává se podle nejdelšího vhodného prefixu - projdu všechna pravidla a vyhledám pravidlo které vyhovuje nejlépe - pokial ziadne nevyhovuje packet ide na defaultne rozhranie ### Klasifikace paketů - roztřídit packety podle zadaných pravidel - cílem je co nejrychlejí najít pravidlo které se shoduje s informacemi v hlavičce - zařadit packet do třídy packetů - využíváme L3 a L4 hlavičky - kazde pravidlo moze obsahovat k hodnot - pravidla nemusia mat definovane vsetky k hodnoty - niektore packety filtrujeme na zaklade vstupneho portu niektore na zaklade vystupneho portu atd ... - způsoby porovnání: - přesné porovnání (úplná shoda) - prefixové porovnávání (hodnota pravidel je prefixem hodnoty packetu) - intervalové porovnání - na číslech portů ![](https://i.imgur.com/S8NgebB.png) ### Priebeh klasifikacie ![](https://i.imgur.com/nSljnZh.png) ### Algoritmy vyhledávání - vyhledávání: - v jedné dimenzi (1D) - ve dvou dimenzích (2D) - n dimenzich (nD) - techniky: - linéární - stromové - rožděluj a panuj - rozdelenie na skupiny - paralelne spracovanie - bitové vektory - rozhodovací stromy - kartézský součin #### Lineární vyhledávání - porovnává postupně celý seznam - nejjednodušší způsob klasifikace - vhodné pro malý počet pravidel - sekvencne vyhladavanie podla poradia pravidiel - porovná postupně hodnoty všech dimenzí(DstIP, DstPORT, SrcIP,SrcPORT,...) - da sa pouzit do 15-20 pravidiel - dalej neefektivne - Složitost časová: - N počet pravidel - K počet dimenzí $O(N*K)$ #### Stromové vyhledávání(TRIE) - prefixové vyhledávání - binární stromová struktura - uzel Px označuje daný bit prefixu, cesta z uzlu Px ke koření tvoří prefix - rychlé procházení a vyhledávání, naopak složitější rušení a přidávání(v některých případech) ![](https://i.imgur.com/oEaeVSl.png) - Složitost časová: - N - nejvyšší prefix $O(N)$ $O(2N)$ - když je použit backtracking #### Vícebitový trie - jedná se o n-ární strom, kde počet potomků určuje krok - při porovnávání porovnáváme více bitů v jednom kroku - vyžaduje prefixi určité velikosti - nutno transformovat(rozšířit na nejbližší možnou délku) ![](https://i.imgur.com/0DEvDEA.png) ![](https://i.imgur.com/TTdcbca.png) - Složitost časová: - N - nejvyšší krok $O(N)$ - Implementace pomocí bitového pole ![](https://i.imgur.com/nwRn0o4.png) #### Stromové vyhledávání ve 2D - pro každou dimenzi strom trie - filtrování například podle dest IP a src IP - Složitost prostorová: - N - nejvyšší krok - K - počet dimenzí $O(N^K)$ ![](https://i.imgur.com/QeXpKjH.png) #### Stromové vyhledávání ve 2D s backtrackingem - menší prostorová složitost, větší časová náročnost - pouzítí algoritmu zpětného vyhledávání(backtracking) ![](https://i.imgur.com/Xw5P31r.png) #### Stromové vyhledávání ve 2D s ukazateli - pro každý bod přepočítáme ukazatel na další možný strom - snížení časové složitosti(rychlejším průchodem) - Složitost časová: - N - nejvyšší prefix $O(N)$ ![](https://i.imgur.com/iSBnrp7.png) #### Vyhledávání ve více dimenzích - pouzivaju sa heuristiky pre zefektivnenie vyhladavania v dimenziach - heuristiky poskladane z dat zozbieranych z realych komunikacii - porovnání IP do max 24 bitů prefixu - intervaly se v praxi příliš nepoužívají - většinou kombinuju více porovnání. V prvním použiju pouze 2D porovnání kde se porovná většina packetu, kdyz nenajdu, budu prohledávat na více dimenzích #### Bitové vektory - bitový vektor popisuje výskyt daného prefixu v množině pravidel - počítáme bitovým AND nejlepší shodu nad všemi prefixy - možná paralelizace, kdy jeden proces může řešit jeden vektor - po výsledku který vyjde AND všemi vektory beru první pravidlo ![](https://i.imgur.com/e5n1gdK.png) ![](https://i.imgur.com/TIneHnW.png) # ISA 9 ## Prostředky pro správu sítě - pomocí logování služeb, které jsou v žurnálových souborech - správa zařízení uživatelů a konfigurací - účtování, autorizace přístupu k zařízení a službám - sledování výkonu, plánování výpadky - bezpečnost, detekce útoků - zálohování a obnova zdrojů na síti - architektura: - sběr monitorovacích dat (SNMP, logs, NetFlow, PCAPs) - zpracování: filtrace, agragace, analýza, uložení - prezentace: zobrazení událostí, alarmů, výpadků - reakce: hlášení o stavu sítě, ignorování, zásah ### Jak spravovat? - monitorování (získávání metadat o stavu sítě) - pasivní - logování Syslog - hlášení stavu sítě: asynchronní zprávy SNMP, záznamy NetFlow - aktivní - testování dostupnosti: ICMP, SNMP, telnet - analýza provozu - sledování přímo komunikace(včetně obsahu paketů) - software: Wireshark, tcpdump - hardware: Fluke OptiView - vytváření dlouhodobých statistik - sbět dat: SNMP, RMON, NetFlow - sledovaní stavu linek a počet přenesených dat - statistiky přenosu TCP/UDP/ICMP, unicast/multicast/broadcast - vytvoříme grafy nebo tabulky a uvidíme co se děje ### Dlouhodobé statistiky - říkají administrátorovi, ve který čas může provádět změny, kdy je nejméně a nejvíce vytížená síť - nástroj: MRTG - zobrazení dlouhodobých statistik a aktuálního stavu ### Správa na úrovni IP #### ICMPv4 - ICMP - slouží na správu prostředků na úrovní IP - je implementovaná v TCP/IP - možnost se informovat o zahozených packetech, nebo pokud neni cíl dostupný, atd... ![](https://i.imgur.com/XbwPDYP.png) - Redirect Message - bezpecnostne riziko - vacsinou sa filtruje - Ping - posílá ICMP Echo(8) na cílovou adresu - vzdálený uzel odpovídá zprávami ICMP Echo reply(0) - Traceroute - posílá IP pakety se zvyšujícím se TTL - očekává zprávy ICMP typu TimeExceededMessage(11) - bezpečnostní rizika - prohledávání sítě pomocí ping - podvržení implicitní brány ICMP redirect message #### ICMPv6 - překlad mac adress a IP adresy zprávy typu ND(neighbour discovery) je to náhrada ARP - Jediný způsob jak v historii zjistit kdo ským komunikoval - šíření prefixů od směrovače(SLAC) - sucastou pridelovania adries - bez toho nefunkcna siet - zpráva MLD na IPv6 náhrada IGMP která je na IPv4 - správce musí sledovat Router Solicitation a Advertisement, kvůli bezpečnosti protože zapojením falešného DHCP serveru je mozne stáhnut na sebe provoz který může být odposloucháván a monitorován ##### Vytvorenie IPv6 adresy - IPv6 se generuje z mac nebo náhodně + prefix z DHCP serveru #### Standardy pre spravu siete - X.700 - FCAPS - povodne pre telekomunikacne siete - Internet Management using SNMP #### FCAPS (tento rok vynechane) - značí zkratky: - F - Fault - C - Configuration - A - Accounting - P - Performance - S - Security ##### Sprava poruch (Fault) - detekcia vypadkov, izolace, oprava - test konektivity, integrity dat, odozvy, funkcnosti - redundance - logovanie behu aplikacii aj zariadeni ##### Sprava konfiguracii (Configuration) - sledovanie pripojenych zariadeni (hlavne ake zariadenia tam nemaju byt) - databaza konfiguracii monitorovanych objektov - aktualizacia, distribucia softwaru, zalohovanie ##### Uctovanie (Accounting) - sprava uzivatelov a poplatkov - logovanie, riadenie pristupu(autorizace, kvoty), alokacia prostriedkov - statistky prenosov, identifikacia prenosov ##### Sprava vykonnosti (Performance) - monitorovanie objektov - dostupnost, odozva, priepustnost, vyuzitie - meranie kvality prenosov - monitorovanie prahovych hodnot - metriky pre meranie vykonnosti - propustnost, ztratovost, ... - riadenie vykonnosti, planovanie zdrojov ##### Bezpecnost (Security) - definicia bezpecnostnej politiky - riadenie pristupu k sietovym zdrojom, distribucia klucov, certifikatov - zabezpecenie zariadeni, sledovanie udalosti, audit - nastroje: - autentizacne sluzby(RADIUS, 802.1x), siete VPN(IPSec, SSL) - filtrovanie provozu, pristupove prava - firewall, ACL, IDS/IPS - Reputacny system, fyzicka ochrana #### SNMP - Simple Network Management Protocol (PORT 161, async na PORT 162) - vychází z X.700 definuje množinu objektů, strukturu - přenos v UDP - principem je monitorování objektů, které jsou definované na každém zařízení a objekty poskytují informace - nejvíce nás zajímají přenosové charakteristiky(počet paketů přijatých, odeslaných, počet UDP, TCP packetu, broadcast, unicast, multicast, atd...) - SNMP nemá historii - sklada sa z: - komunikujuce uzly (network management station, agent) - protokol ktory nam prenasa informacie - databaza objektov - MIB - mody: - pull model - manager polluje SNMP agentov - push model - agenti posielaju informacie o eventoch ![](https://i.imgur.com/u7HJlav.png) ##### SNMP agent - agent ktory bezi nad UDP - sleduje objekty ktore su definovane na danom zariadeni - na tlaciarni napriklad stav toneru ... ##### System SNMP - __jazyk SMI(Structure of Management Information)__ - popis objektov - definuje datove typy pre objekty a sposob vytvarania - primitivne typy - cele cislo - retazec - counter - iny nez integer, pravidelne sa inkrementuje - identifikacia objektov pomocou OID - napr. interface number (ifNumber) - 1.3.6.1.2.1.2.1 - presna identifikacia z ktorej sa daju vycitat informacie napriklad o pocte rozhrani - __identifikacia rovnaka pre vsetky zariadenia__ ![](https://i.imgur.com/S6jl4iI.png) - __usporiadanie databaze objektu MIB__ - stromova struktura: objekty(listy), skupiny objektov(nelistove uzly) - standardizovane MIB-2 - proprietarne databaze MIB - kazda firma si moze definovat vlastnu strukturu - zposob kodovania objektov - __kodovanie BER (Basic Encoding Rules)__ - **kodování != šifrování** - koduje hodnoty objektov do struktur TLV (Type, Length, Value) - struktura moze byt rekurzivna(pouze pokud je datový typ SEQUENCE a SEQUENCE OF) - komunikacny protokol SNMP - nejběžnější komunikace pooling(vyzívání) - zakladne prikazy: - Get, GetNext, GetBulk, Set, Trap(hodnota dosiahla stropu - odosiela upozornenie) -SNMPv1, SNMPv2c, SNMPv3 ##### Nasadenie SNMP - problem s bezpecnostou - SNMPv3 to z casti riesi pokrocilejsim zabezpecenim - nejde detekovat stratu sprav Trap - MIB databaza nie je cela definovana na agentovi - paramatre ovplivnujuce rychlost: - pocet agentov - frekvencia dotazovania (bezne 1-5 dotazov/min) - objem prenasanych dat - bezne nejde monitorovat vyssiu uroven nez je L4 - ziadne udaje o aplikaciach - pouziva sa s kombinaciou s NetFlow - NetFlow sleduje aktivne toky - SNMP vie zistit v akom stave je siet ak niesu ziadne toky - SNMP nevie od koho a kam idu packety - riesi iba pocty packetov # ISA 10 ## NTP (UDP PORT 123) - synchronizacia casu - typicky podporovany na vsetkych zariadeniach - routre, switche, tiskárny, ... - NTP server - pouziva referencne hodiny - odosiela klientom informacie o case - hierarchia - Stratum - Stratum 0 - referencny cas - napriklad atomove hodiny, GPS cas ... - Stratum 1 - NTP server synchronizovany na Stratum 0 s rozdielom par usekund - Stratum N - dolezity pre: - generovanie klucov, overovanie klucov - key expiration - overovanie certifikatov - logovanie - NTP nesynchronizuje s casovym serverom ktory nie je synchronizovany, aby nerozbil konfiguraci ostatních zařízení - mody: - Server - Klient - Peer ![](https://i.imgur.com/Iaby43H.png) ## Syslog (UDP PORT 514) - __UDP__ - nespolahlive - logy posielane ako plain text => problém se zabezpečením - rozdeluje sa na rozne urovne priority spravy - syslog se posílá v rámci lokální sítě, nedoporučuje se mimo sit kvůli bezpečnosti jelikož je to plain/text - 0 - 7 - 0 - najzavaznejsia - 7 - debug <!-- syslog example --> ![](https://i.imgur.com/DDyhpRk.png) ## File transfer - konfiguracia, backup, upload - pre pristup sa pouziva aj HTTP alebo REST API ### Seriova konzola - velmi pomala - port oddeleny od vsetkych ostanych - da sa pouzit ako zalozny pristupovy bod na server ### TFTP - mala binarka - moze sa pouzit pre bootovanie z internetu / firmware upload alebo download - niekedy sa pouziva pre synchronizaciu databaze na switchoch a routroch - napr DHCP bind ### FTP, SFTP - robustnejsie a zabezpecenejsie varianty ## Analyza logov ### Ukladanie logov - velky pocet logovych suborov - velkost sa stale zvacsuje - je nutne ulozit dlhsi casovy usek logov podla zakona - logy se musí uchovávat po nějakou dobu, která je stanoveno státem hlavně kvůli trestní činnosti ### Interpretacia dat - tazko sa interpretuje velke mnozstvo dat - hlavne funkcie nastrojov: - Agent monitoring - SNMP monitoring - Graph reporting - Notifikacie - nastroje: - zabbix - nagios - konfiguracia monitorovania a zalohovania - rancid - oxidized - ... # ISA 11 ## Monitorování sítí - výpočetně náročné pro linky 10-100 Gb/sec sonda neni tak rychlá, aby mohla data zrekonstruovat - analýza provozu - sledování obsahu paketů - rekonstrukce protokolů L3 - L7 - velmi náročné dolování dat - vyhledávání známých řetězců - detekce malware, nedovolených aplikací - identifikace DoS DDoS - filtrování komunikace - dlhodoba statistika - statistika o provozu na danom zariadeni - zjistíme počet Gb dat kolik prošlo zařízením ale naopak nejzistíme konkrétně kolik šlo kam např. 10 Gb šlo do googlu 5Gb šlo na facebook atd...(toto nám zajistí NetFlow) - __SNMP__, RMON - statistika tokov - __NetFlow__, IPFIX, sFlow, OpenFlow ## NetFlow UDP - první implementace firmou Cisco - slouží pro monitorování site - vyuziva informacie o tokoch - dá se použít pro identifikaci napadených počítačů - pouziva iba niektore informacie - bez obsahu komunikacie - iba metadata - kto s kym, kedy a ako komunikoval ### Tok - **DEFINICE:** postupnost packetov ktore maju nejaku spolocnu vlastnost a prechadzaju bodom pozoravania(sondou) za urcity cas - informacie: - zdrojova & cielova IP - zdrojovy & cielovy port - protokol - interface - ToS (DSCP) - ak su vsetky tieto informacie totozne tak sa oznacuju ako sucast jedneho sietoveho toku - cache sa uklada do hash tabulky(kvůli rychlosti) - hash sa vypocitava z meta informacii packetu ### Architektura - Exporter - sonda pre ziskavanie statistik o tokoch - síťový prvek nebo software, které monitorují provoz - vytvaraju flowCache - bud sa zaznam vytvara novy alebo inkrementuju existujuce statistiky - riesi expiraciu zaznamov a ich export - active timer - zaznam je prilis dlho v zazname aj ked je aktivny - zaznam po uplynuti exportujeme (zmazeme?) - defaultne 30min - inactive timer - doba po kterou neprobíhá žádná komunikace - default 15sec - hlavne UDP - po uplynuti exportujeme a zmazeme - NetFlow Cache full - RST alebo FIN TCP flag - Kolektor - zariadenie pre ukladanie zaznamov o tokoch - napr Nfdump - prijima pakety a uklada si to do databaze (napr relacnej SQL) - na tieto data sa da potom dotazovat alebo ich inak vizualizovat - může sbírat data i z více zařízení - ukládá si všechny data na disk a provádí nad všemi daty analýzu - například dat uložených za jeden den na VUT je 71GB **komprimovaných** dat - protokol NetFlow - NetFlow v5, NetFlow v9, IPFIX, sFlow - nastroje pre zobrazenie dat - grafy, statistiky - napr NfSen / Flowmon Dashboard, Nfdump ### Vzorkovanie - podla poradia, casu, velkosti - moze prebiehat na exporteri aj kolektore - dovod: znizenie narokov na hardware - 1:100 znizi narok o priblizne 75% - flow filter - vzorkovanie podla provozu, nie je tak zatazena cache - mody: - deterministic - kazdy 100 packet - random ### Filtrovanie - klasifikaca provozu na zaklade hodnot v hlavickach packetu - nezavisi na poradi, case ... ![](https://i.imgur.com/4aP305v.png) ### Vzorkovanie & Filtrovanie ![](https://i.imgur.com/Geg6aNP.png) ### Agregace - podla klucovych poloziek sa data spoja - exportuje sa menej informacii - cache exporteru se tak nezaplňuje - typicky niekolko cache pamati - hlavna cache kde sa zapisuje vsetko - agregated cache ![](https://i.imgur.com/NgxkBSc.png) ### Protokol NetFlow v5 - fixne hlavička a pod tím jsou fixní statistické informace - nepodporuje IPv6 kvůli již řečeným fixním informacím - hlavicka - pocet zaznamov Netflow - unix time - identifikace sondy - obsah - mnozina zaznamov o tokoch - kazdy zaznam obsahuje statistiku o jednom toku - hodnoty zo zaznamu: - zdroj. & ciel. IP - next hop router - kontrola smerovania - pocet packetov, prenesenych bytov - priznaky u TCP packetov, protokol, ToS ### NetFlow v9 - protokol rozšířen o šablony kde si stanovíme co bude v políčku a jaká bude velikost, dále jsme schopni přidat další informace, které chceme exportovat - rozsirenie o sablony - popis struktury zaznamu - flexibilny zapis - rozsirene o L2 informacie - VLAN - BGP - IPv6 - Multicast - MPLS - kolektor musi najprv zachytit šablonu inak nie je schopny dekodovat obsah packetov ![](https://i.imgur.com/FCI2Jow.png) ### IPFIX - podobne ako NetFlow v9 - prenos akychkolvek informacii ohladne uctovania a monitorovania - je mozne popisat variabilnu dlzku zaznamu - napriklad URL roznej dlzky - zlozita forma implementacie na kolektore # Videokonference a streaming multimedii ## Multimedia - sucasne pouzitie viacero medii - Audio - Obraz - Text - Video - Animace - Interaktivita ### Distribucia obsahu - sposob prenosu - pocet prijemcov dat - klient / P2P - stream(live, on-demand) / download ### Sposob prenosu - pocet prijemcov dat - unicast - jeden - multicast - urcena skupina - broadcast - vsetci ![](https://i.imgur.com/D3PP8Vc.png) ### Klient-server / P2P - klient-server - jeden objekt zvoleny ako server riadiaci pristup k medialnym objektom - peer-to-peer - decentralizovany pristup k objektom ### Streaming / download - jednosmerny prenos multimedialnych dat #### Streaming - prenost dat po sieti v realnom case rychlostou prehravania - vhodny mechanizmus pre jednorazove dorucenie - staci mala vyrovnavacia pamat - prehravanie zacina po par sekundach - vyuzitie: - IPTV, Cable TV - internetove radia - Video on Demand(YouTube) - zabezpecenie objektov(IP kamery) - monitorovanie - videokonferencie - prenos AV signalu(projektory, monitory) - problemy - omezeny prenos - zatazenie siete - rozptyl packetov - nepravidelne dorucovanie - spozdenie - strata packetov - nekompatibilita protokolov - vacsinou riesene zvacsenim vyrovnavacej pamate - casto sa vyuziva kompresia dat inak by bol objem dat prilis velky - audio - G.711 - G.726 - G.728 - G.729 - MP3 - WMA - AAC - … - video - H.261 (ISDN) - H.263 (videokonference) - H.263+ - H.263++ - H.264 (MPEG-4 AVC) - MPEG-1 - MPEG-2 - H.265 - … ![](https://i.imgur.com/H3Gkitq.png) ##### Live streaming - vsektym sa zasielaju data v ten isty moment - prehravanie nejde riadit ##### On-demand streaming - klientovi je streamom poslany predom vytvoreny multimedialny obsah - prehravanie sa da riadit #### Download - prenos a ulozenie kompletneho suboru - libovolna rychlost prenosu - prehravanie zacina az po ulozeni dat ##### Stahovanie s prehravanim - kombinacia streamu s prehravanim - subor nie je na zaciatku prehravania kompletne ulozeny - rychlost stahovania > rychlost prehravania - moznost kontrolovat prehravanie - treba vyssiu vyrovnavaciu pamat nez pri streame ![](https://i.imgur.com/Zgaj0bm.png) #### MPEG transport stream - casti multimedialneho obsahu kombinovane do jedneho toku dat - multiplexing - umoznuje v jednom datovom toku poslat > 1 multimedialnych streamov - vhodne pre prenos kde je mozne ze dojde k strate/poskodeniu packetov - data rozdelene na packety pevnej velkosti - zvycajne 188B - 4B hlavicka - prvy B hlavicky obsahuje hodnotu 0x47 (sync byte) - data - klucova polozka - 13b PID (Packet Identifier) - odpoveda jednotlivym elementarnym streamom - uzivatel si urci o aky Transport Stream ma zaujem - urci PID packetov - s PIDom su ako sucast TS zasielane aj metadata s informaciami o programu PSI (Program Specific Information) ![](https://i.imgur.com/aZ6TSu5.png) #### RTP / RTCP (UDP) ##### RTP - standard pre prenost audio, video a inych v realnom case beziacich dat po sieti - urceny pre prenos cez unicast/multicast - sucastne s RTP sa pouziva kontrolny protokol RTCP - kazdy media stream - samostatne RTP spojenie na samostatny UDP port - podporuje - detekciu straty dat a poradie dorucenia packetov - informacie o casovani odvodene od vzorkovacej frekvencie - zabezpecenie - identifikaca obsahu - nepodporuje - zarucenie kvality sluzieb - spolahlive dorucenie dat - dorucenie dat v spravnom poradi - dorucenie dat v urcitom case ##### RTCP - riadiaci protokol doplnujuci RTP - nenesie medialne data - pravidelny prenos dat - obsahuje statistiky, informacie o kvalite prenosu a informacie nutne pre synchronizaciu media streamu ##### RTSP - signalizacny protokol - sluzi k: - nadviazaniu a ukonceniu spojenia - riadenie jedneho alebo viac casovo synchronizovanych media streamov - urceny pre VoD a multimedia multicasting a broadcasting - syntax podobna HTTP - textovy protokol - __data su dorucovane inym protokolom (RTP)__ - __Stateful protocol__ - server si udrzuje informacie o stave relacie (ID relacie, sekvencne cislo) - hlavne typy sprav: - DESCRIBE - SETUP - PLAY - PAUSE - TEARDOWN - OPTION - dalsie typy: - ANNOUNCE - GET_PARAMETER - SET_PARAMETER - REDIRECT - RECORD ![](https://i.imgur.com/8m2C50U.png) ## Videokonferencia - obojsmerny prenos synchronizovaneho audia,videa, ... - medzi >= 2 lokalitami - realny cas - technologie: - H.323 - SIP - Skype - WebEx - MPEG - ... ### Kvalita prenosu - spozdenie: - oproti video streamingu musi byt co najmensie - stratovost - s obcasnou stratou dat sa dokazu systemy vyrovnat - rozptyl (jitter) - pouzitie bufferu ### H.323 > Doporučení ITU-T popisující terminály a další součásti, které poskytují služby pro multimediální komunikaci v paketově orientovaných sítích v nichž nemusí být garantovaná kvalita služeb (QoS) #### Sucasti architektury - Terminal - koncove zariadenie - zaistuje obojsmernu komunikaciu v realnom case s inym koncovym zariadenim, branou alebo MCU - komponenty: - videokamera - zobrazovacia plocha - mikrofon - reproduktory - kodek - uzivatelske rozhranie - Ultra-high-end telepresence systems - garantovane prostredie pre spolupracu na dialku - sucastou: - audio, video - konferencne zariadenie - miestnost - prenosova siet a sprava - navrhnuta pre spolupracu v ramci organizacie s predom garantovanym prostredim - Gateway - koncove zariadenie - umoznuje obojsmernu komunikaciu v relanom case medzi terminalmi - Gatekeeper - volitelna sucast H.323 - poskytuje sluzby: - preklad cisel na koncove IP adresy - riadenie velkosti datovych tokov - riadenie pristupu - komunikuje s ostanymi gatekeepermi v sieti - Multipoint control unit(MCU) - umoznuje vytvorit viacbodove videokonferencie - prima a preposiela streamy - dekoduje streamy v roznych formatoch a vyrvara prislusny vystupny stream pre koncove uzly - streamy mozu byt zasielane asymetricky