Úvod do počítačových sítí
Zde bydlí mé poznámky ze síťové části úvodu do počítačových sítí, kterou přednášel RNDr. Libor Forst. Poznámky jsou kompletní a to místy až moc. Mnoho věcí zde uvedených nebyly u zkoušky vůbec vyžadovány a nebyly ani zdaleka zapotřebí k pochopení celého předmětu.
Zároveň pořadí jednotlivých kapitol ani náhodou neodpovídá pořadí, ve kterém byly přednášeny, zejména kryptografická kapitolka na konci poznámek je opravdu náhodně mimo.
Pokud jste studenty MFF UK a čeká vás zkouška ze sítí, určitě se vám bude hodit tato stránka s vypracovanými zkouškovými otázkami.
Sítě
- obecné atributy komunikace:
- identifikace – komunikující strany se musejí najít
- metoda – forma komunikace
- jazyk
- rychlost
- proces – požadavky, odpovědi, potvrzení
- dělení:
- LAN – local area, jeden vlastník
- WAN – wide area, mnoho vlasntíků
- MAN – metropolitan
RFC
- request for comments
- prostředek standardizace internetu
OSI
- open systems interconnection
- megalomanské a nepraktické protokoly, používá se jen jako výukový model
Vrstva | Funkce |
---|---|
aplikační | komunikace mezi programy |
prezentační | datové konverze pro aplikace |
relační | řízení dialogu mezi koncovými uzly |
transportní | end-to-end přenos datových bloků |
síťová | směrování mezi sítěmi |
linková | přenos datových rámců mezi uzly |
fyzická | fyzický přenos (bitů) mezi uzly |
TCP/IP
- souhrn:
- well-known services:
- 20, 21/TCP – FTP
- 22/TCP – SSH
- 25/TCP – SMTP
- 53/* – DNS
- 80, 443/TCP – HTTP(S)
- 5060, 5061/* – SIP
Multiplexing
- několik komunikačních kanálů v určité vrstvě používá stejný komunikační kanál v podřízené vrstvě
Zapouzdření
- vrstva $n-1$ převezme řídící informace, zpracuje je a poté připraví jednotku dat sestávající z těla PDU$_n$ a záhlaví s řídícími informacemi
- encapsulation dat vrstvy $n$ do dat na vrstvě $n-1$
PDU
protocol data unit
standardizovaná jednotka dat pro daný protokol
aplikační – stream, message
transportní – vezme data, přidá zdrojový a cílový port
síťová – vezme segment, přidá zdrojovou a cílovou IP a typ
linková – vezme packet, přidá cílovou a zdrojovou MAC adresu, typ a frame check sequence
fyzická – vezme frame
Aplikační vrstva
aplikační, prezentační a relační v OSI
definuje:
- průběh dialogu na obou stranách
- formát (text/bin, struktura, …)
- typ (požadavky a odpovědi)
- sémantika zpráv a informačních polí
- interakce s transportní vrstvou
DNS
- domain naming system
- binární protokol
- port 53, většinou UDP (TCP jen na vyžádání klienta)
- jednotkou dat je záznam (RR – resource record)
Typ | Jméno | Data |
---|---|---|
SOA | jméno domény | start of authority – obecné informace o doméně |
NS | jméno domény | jméno nameserveru somény |
A | jméno počítače | IPv4 adresa počítače |
AAAA | jméno počítače | IPv6 adresa počítače |
PTR | reverzní jméno | doménové jméno počítače |
CNAME | jméno aliasu | kanonícké jméno počítače |
MX | jméno domény/počítače | jméno mailového serveru a jeho priorita |
- DNS servery:
- primární – spravuje záznamy o doméně
- sekundární – stahuje a uchovává kopii dat o doméně (často otevřené TCP spojení s primárním)
- caching-only – udržuje jen (ne)vyřešené dotazy po dobu platnosti
- vyřizování dotazu
- rekurzivní dotaz – server přejímá veškerou zodpovědnost za vyřízení dotazu
- nerekurzivní – server jen posílá co nejrelevantnější odpověď
- bezpečnost
- volba náhodného zdrojového portu a ID
- „cache poisoning” – útočník do odpovědi přidá falešné údaje do sekce
AUTHORITY
aADDITIONAL
- „cache poisoning” – útočník do odpovědi přidá falešné údaje do sekce
- DNSSEC – podpisy zabezpečené DNS (rozšiřuje se dost pomalu)
- volba náhodného zdrojového portu a ID
FTP
file transport protocol
porty 21 a 20, TCP
otevřený přenos dat – au au
- dnes hlavně anonymní přístup k volně šiřitelným datům (heslo=email apod.)
prvně se zavádějí standardizované kódy odpovědí (více u HTTP)
aktivní spojení:
- port 20
- připojení pro přenos navazuje server
- když se klient připojuje s privátní sítě (jeho IP je překládána NAT), musí router koukat do informací aplikační vrstvy
pasivní spojení
- port 21
- připojení navazuje klient, kterému při sestavování připojení poslal server svou IP a port, na kterém naslouchá
aplikace: WWW prohlížeče, Total Commander
SMTP
- simple mail transfer protocol
- port 25, TCP
- mail user agent -> mail transfer agent -> WAN -> jiný MTA -> POP/IMAP server -> jiný MUA
- příkazy dle RFC 821:
- HELO
- MAIL FROM <adresa odesílatele>
- RCPT TO <adresa příjemce>
- DATA – po tomto příkazu posílá klient text dopisu, dopis končí sekvenci
CR LF .
- QUIT – konec komunikace
- …
- obálka – adresy použité v protokolu
- nemá žádný vztah k tělu dopisu – nemusí vůbec platit, že jsme dopis dostali od vlastníka adresy napsané na obálce
- Hlavička
- overall info o dopisu + kudy a kdy všude dopis chodil
- UUENCODE – kódování znaků mimo ascii do více ascii znaků
- MIME – možnost používat HTML, diaktiriku, podpisy (SMIME)
- Base64 – UUENCODE akorát s jinou tabulkou než je ascii
- Quoted-Printable – nonASCII znaky mají formát „=HH”, kde HH je jejich hexadecimální hodnota
- ochrana proti spamu
- grey-listing – spam-engine obvykle neopakuje pokus o doručení, server si udržuje grey-list neznámých adres, napoprvé dopis odmítne, opakované pokusy již přijímá
- Sender Policy Framework – doména publikuje algoritmus na ověřování, že stroj odesílající pod touto doménou je ok (problém při forwardingu)
- DomainKeys Identified Mail – server domény podepisuje text a některé hlavičky dopisu
- Antispam – heuristický odhad dle obsahu hlavičky a těla dopisu
POP
- post office protocol
- otevřené posílání hesla
- dopisy je nutno stahovat celé
- jakmile si dopis vyzvednu, server ho smaže
IMAP
- internet message access protocol
- podporuje SSL/TLS a STARTTLS
- podpora více schránek
- možnost stahnout pouze část dopisu
- dopisy zůstávají na serveru
- možnost v dopisech vyhledávat
HTTP
hypertext transfer protocol
port 80 nebo 443 (pro HTTPS), TCP
komunikace je bezestavová, stav je nutno přenášet pomocí cookies
formát zprávy:
- úvodní řádka – požadavek/odpověď
- doplňující hlavičky – jazyk, kódování, stáří stránky, autentikace, typ dokumentu, expirace
- volitelné – tělo dokumentu
kódy odpovědí
- 1XX – informativní
- 2XX – kladná odpověď
- 3XX – redirect
- 4XX – chyba na straně klienta
- 5XX – chyba na straně serveru
Metoda | Tělo požadavku | Tělo odpovědi | Bezpečná | Idempotentní |
---|---|---|---|---|
GET | dokument | ano | ano | |
HEAD | ano | ano | ||
POST | parametry | dokument | ne | ne |
PUT | dokument | ne | ano | |
DELETE | výsledek | ne | ano | |
CONNECT | tunel | přes | všechna | pole |
v.1
- textový protokol
- odpověď na jeden požadavek je jeden dokument
- po jednom spojení může jít více požadavků
- požadavky jsou nezávislé
v.2
- binární protokol (lze na něj přejít v rámci HTTP/1 spojení)
- větší propustnost
- vlastní multiplexing
- server může
PUSH
nout více dat, než klient požadoval (např. obrázky na stránce)
v.3
- místo TCP používá QUIC (založen na UDP se zabudovaným TLS)
- identifikace spojení nezávisí na zdroji
- individuální šifrování paketů
WWW
world wide web
distribuovaná hypertextová databáze
- základní jednotkou je hypertextová stránka
přenos stránek pomocí HTTP, chybějící zabezpečení se řeší pomocí TLS (HTTPS)
Telnet
- telecommunication network
- vzdálený přístup
- otevřený přenos dat – au
- používá se na LAN nebo pro ladění jiných protokolů
- protokol přenáší oběma směry příkazy a odpovědi a neumí je rozlišit
SSH
- secure shell
- port 22, TCP
- šifrovaný vzdálený přístup
- ověřování
- klient ověřuje server (na základě klíče, certifikátu)
- server ověřuje uživatele (heslo, výzvy a odpovědi, veřejný klíč klienta)
SIP
session initiation protocol
port 5060 a 5061
řeší jen vyhledání partnera pro komunikaci a navázání spojení
přenos dat pomocí RTP/RTCP
- protokoly pro přenos audia a videa
informace se přenášejí pomocí hlaviček
NFS
- network file system
- propojení cizího filesystému do lokálního
- taky je ještě SMB, ale to mě quite honestly nezajímá
NTP
network time protocol
běží na UDP
synchronizace času mezi uzly sítě
- stejné timestampy souborů, porovnávání časů událostí na různých počítačích
klient kontaktuje servery – odpovědi mají různá zpoždění
- pomocí Marzullova algoritmu se najde nejlepší průnik
DHCP
- dynamic host configuration protocol
- časově omezený pronájem IP adresy – server pošle nabídku, klient si vybírá
- klient posílá
DHCPDISCOVER
na broadcast - od DHCP serverů dostane několi
DHCPOFFER
- jednu adresu si vybere server, který mu ji nabídl, o ni požádá skrz
DHCPREQUEST
Transportní vrstva
- end-to-end přenos dat
- umožňuje provozování více aplikací na stejném uzlu sítě
- volitelně zabezpěčuje spolehlivost přenosu dat
- volitelně segmentuje data pro snažší přenos a opětovně je skládá
- volitelně řídí tok dat
TCP
- transmission control protocol
- spojované služby
- klient naváže spojení, data tečou ve formě streamu
- komplikované, má velkou režii
- méně pravidelné, ale bezeztrátové doručování
TCP příznaky:
SYN
– synchroznizace čísel segmentů, inicializace sequence numberACK
– paket potvrzuje doručení všech paketů až po acknoledgement number (bez)- windowing – potvrzení nejpozději každého $n$-tého packetu
PSH
– informuje příjemce, že obdržel kompletní blok a má ho pushnout aplikaci- příjemce následně posílá
ACK
- příjemce následně posílá
FIN
– zavření spojení (server ještě posíláACK
aFIN
, na které klient odpovíACK
)RST
– odmítnutí/okamžité přerušení spojeníURG
– urgentní out-of-band data
příkaz
tcpdump
- začátek three-way handshake – pouze příznak SYN
<zdrojová IP>.<port>
><cílová IP>.port
- iniciální sekvenční číslo a velikost okna
- odpověď serveru – SYN a ACK
- potvrzené seq číslo ack a návrh většího okna
- odpověd klienta – ACK
- ack už je relativní vůči původnímu seq
- úvodní zpráva serveru
- ack klienta
- první příkaz klienta
- odpověď serveru
- začátek three-way handshake – pouze příznak SYN
UDP
user datagram protocol
nespojované služby
data se posílají jako nezávislé zprávy
velmi jednoduché, celé spojení řídí aplikace
pravidelný tok, vyšší ztrátovost
příkaz
netstat -a
- zobrazí výpis všech aktivních spojení TCP a UDP a porty, na kterých naslouchají spuštěné procesy
Síťová vrstva
- přenos dat předaných transportní vrstvou od zdroje k cíli
- adresace – tvar a struktura adres
- encapsulation – řídící data potřebná pro přenos se musí vložit do PDU
- routing
- forwardign – předání dat ze vstupního síťového rozhraní na výstupní
- decapsulation
IP
- nespojovaná služba (datagramy se doručují nezávisle)
- přidělování adres:
- centrální: IANA (jedno z oddělení ICANN)
- regiony: RIR (regionální registrátoři) – je jich 5, podle geografie
- dále: ISP různých úrovní
- v lokální síti: lokální správa sítě
- port – 16bitové číslo identifikující jeden konec spojení
- socket – jeden konec komunikačního kanálu mezi klientem a serverem
VoIP
- voice over IP
- obecné označení technologií pro přenos hlasu po IP
- standardně používá SIP
v4
- 4 byty
- implicitní síťové masky:
- speciální adresy by design:
- this host –
0.0.0.0/8
- adresa rozhraní s dosud nepřiřazenou adresou
- může být použita pouze jako zdrojová
- loopback –
127.0.0.1/8
- localhost – vždy začíná
127
- localhost – vždy začíná
- adresa sítě –
<adresa sítě>.<samé nuly>
- network broadcast –
<adresa sítě>.<samé jedničové bity>
- limited broadcast –
255.255.255.255
- „všem v této síti”, nesmí opustit síť, kde vznikl
- this host –
- speciální adresy by definition:
- site-local –
10.0.0.0/8
,172.16-31.0.0/16
,192.168.*.0/24
- pro provoz v lokální síti, přiděluje správce, nesmí opustit síť
- link-local –
169.254.1-254.0/16
- pouze pro spojení v rámci segmentu sítě, uzel si ji sám volí
- site-local –
Subnetting
- rozdělení sítě na podsítě rozšířením síťové části adresy –
net.subnet.host
- netmask – jedničky v síťové části (net + subnet) , nuly v části pro počítač
- určuje rozsah adres v podsíti
- classles formát – jen počet jedničkových bitů prefixu –
193.84.65.71/27
- VLSM – variable length subnet mask
- v síti se používají různě velké masky
Supernetting
- spojování sítí
- např. pokud mám v LAN více než 254 počítačů a mám pro ně dvě sítě třídy C
- sítě lze spojit do jedné s maskou
/23
- sítě lze spojit do jedné s maskou
CIDR
- classless interdomain routing
- poblém: velký počet nesouvisle přidělených bloků rychle plní směrovací tabulky
- částečné řešení: pokud spolu v reálu sousedily sítě, které spolu sousedily i svojí numerickou hodnotou, bylo možné nad nimi udělat supernetting – záznamy agregovat
- tomu se říká právě CIDR
v6
- 16 bytů
- 16bitová slova v hexadecimální podobě s CIDR zápisem masky
- možno zkracovat zápisy plné nul –
0fec:0000:0000:...:3456
=fec::3456
- druhy adres:
- unicast – adresa jednoho uzlu:
- loopback –
::1/128
- link-scope (obdoba link-local) –
fe80::/10
- unique-local (obdoba site-local) –
fc00::/7
- loopback –
- multicast – adresa skupiny uzlů:
ff00::/8
- anycast – unicastová adresa pro více uzlů
- nemá žádné broadcast adresy
- unicast – adresa jednoho uzlu:
NAT
- network address translation
- IP Masquerading
- router na perimetru privátní sítě překládá privátní adresy na veřejné
- při odesílání přepíše
src IP
na svou vlastní asrc port
na některý ze svých volných - při přijímání v tabulce podle portu zjistí, na který port a IP má data poslat
- při odesílání přepíše
ICMP
- internet control message protocol
- posílání řídících informací pro IP
echo
,echo reply
– testování dosažitelnostidestination unreachable
time exceeded
– vypršel TTLsource quench
– žádost o snížení rychlosti toku datagramůrouter solicitation
,router advertisement
– vyhledávání routerůredirect
– výzva ke změně záznamu v routovací tabulceparameter problem
– chyba v záhlaví datagramu
- používá IP datagramy, ale není transportním protokolem
Ping
- program pro diagnostiku sítě
- periodicky vysílá
echo
, pokud zpráva dorazí na cílový stroj, odpovíecho reply
- periodicky vysílá
- na cílovém stroji nemusí běžet žádný speciální server, na ICMP odpovídá síťový software sám
- nezaručuje dostupnost služeb, pouze dostupnost síťové vrstvy
Linková vrstva
dvě podvrstvy:
- LLC – logical link control – zajišťuje multiplexing
- MAC – media access control – adresace uzlů a přístup k médiu
frame (rámec) – datová jednotka linkového protokolu
- synchronizační pole – start condition
- hlavička – MAC adresy příjemce a odesílatele, řídící informace LLC
- payload nadřazeného protokolu
- patička – Frame Check Sequence
ARP
- address resolution protocol
- spojuje síťovou a linkovou vrstvu
- zjišťování MAC (např. Ethernet) adres odpovídající síťovým adresám (např. IP)
- neznámé adresy se zjišťují broadcastovou výzvou
- výsledky se ukládají na uzlu do ARP cache
- nelze ověřit správnost odpovědi
- nevyžádaná ARP zpráva – odpověď bez předchozího dotazu
- ARP spoofing – man in the middle útok – kdo víc křičí, vyhrává
- ve stejné LAN lze používat dvě stejné MAC adresy, pokud jsou oddělené routerem
ARP proxy
- A posílá broadcastem
ARP request
s IP adresou B - router pozná, že dotaz nebude zodpovězen (A a B jsou v jiné podsíti), proto sám posílá
ARP reply
s MAC adresou routeru - A si přiřadí MAC oruteru k IP adrese B ve své ARP cache
- A posílá data pro B s MAC adresou routeru
- je to totožný jak normální proxy, jen na úrovni MAC a IP adres
- v ARP cache na stroji bude u různých IP adres stejná MAC adresa
- pokud v síti není ARP proxy, může se jednat o pokus o útok
Síťové topologie
- řešení kolizí:
- CSMA – carrier sense with multiple access
- uzel poslouchá „nosnou” (přenosové médium) a pokud není volno, čeká
- CSMA/CD – collision detector (např. Ethernet)
- uzel při vysílání detekuje kolize
- zastaví vysílání, upozorní ostatní, počká náhodnou dobu a pokus opakuje (exp. čekání)
- podmínka: doba vysílání rámce > doba šíření po segmentu
- CSMA/CA – collision avoidance (např. WIFI)
- když je volná nosná, vysílá se celý rámec a čeká se na ACK
- pokud není volná nosná nebo nedorazí ACK, zahájí exponenciální čekání
- CSMA – carrier sense with multiple access
Multipoint
- sběrnice
- taký drát spojující všechny uživatele
- může nastat kolize – více uživatelů se pokusilo odeslat data naráz
- jednoduché přidávání počítačů
- jakmile se drát přeruší na jednom místě, vypadne celá síť
- hvězda
- centrální prvek (switch), další uzly jsou vázány na něj (připojeny do portu)
- nejčastější realizace ethernetu
- když vypadne jeden uzel, zbytek sítě stále běží
- kruh
- data tečou furt jedním směrem – vyhýbáme se kolizím
Point-to-point
jen dva uzly – výrazně zjednodušená komunikace
řešení kolizí:
- half duplex – příjem i vysílání po jednom spojení (kolizní)
- full duplex – různá spojení na příjem a vysílání (bezkolizní)
RS-232 – trauma z principů počítačů intensifies
modemy – telefonní spojení
Ethernet
vznikl ve firmě Xerox, standardizaci převzalo IEEE – máme dva standardy
vůdčí technologie pro lokální sítě
- schopnost pružné reakce na vývoj HW
- široké spektrum přenosových médií
CSMA/CD – při detekci kolize uzel vysílá „jam signal” (hezky česky držhubu signál)
- pak zahajuje exponenciální čekání – po 16 pokusech končí s chybou
adresy – 3 byty prefix (výrobce, multicast, …), 3 byty adresa
VLAN
prostředek, jak po jedné fyzické síti provozovat více nezávislých lokálních sítí
- může ale nemusí být pro koncovou stanici transparentní
VLANID – 12bitový identifikátor
ethernetový rámec je prodloužen o 32bitový tag
- dochází ke změně typu rámce!
- síťová zařízení musí dokázat zpracovat rámce překračující maximální velikost, nebo je třeba snížit maximální velikost rámce v celé síti
CRC
- cyklický kontrolní součet
- hashovací funkce pro kontrolu konzistence dat (např. FCS, IP hlavička)
- posloupnost bitů je považována za koeficienty polynomu
- toto modulo charakteristickým polynomem se pak použije jako hash
- probíhá při kontrole dat a při přepočítávání, pokud se data nějak měnila
WiFi
- skupina protokolů používaná pro bezdrátovou komunikaci – pásma 2,4 a 5 GHz
- hvězdicová topologie s CSMA/CA
- střed je nějaké AP (switch)
- AP musejí vysílat na nepřekrývajících se frekvenčních kanálech, nebo musejí mít centrální řízení (:money_with_wings:)
- velké problémy s bezpečností
- není třeba fyzický přístup k síti
- SSID – service set identifier
- ID sloužící k rozlišení různých sítí
Fyzická vrstva
- přenos dat po konkrétním fyzickém médiu
- převod digitální informace na analogovou a obráceně
- různé typy médií
- metalické – elektrické pulzy
- optické – světelné pulzy
- bezdrátové – modulace vln
Druhy přenosu dat
- analog $\times$ digital
- ve skutečnosti je vše analogové (principy počítačů yet again)
- převod D –> A: modem (modulator/demodulator)
- převod A –> D: codec (coder/decoder)
- baseband $\times$ broadband
- baseband – zakódovaná hodnota signálu
- broadband – modulace základního signálu – AM a FM
UTP
nestíněná kroucená dvoulinka
dva pravidelně zakroucené vodiče vytváří elektromagnetické pole, které je přirozenou ochranou před rušením
- STP – kolem vodičů je ještě kovové stínění
ve skutečnosti 8 vodičů
- lze propojit kabelem 2 dvojice počítačů
crossover – výstupní pin na jedné straně musí být propojen se vstupním pinem na druhé
- i kdybychom nepoužívali křížený kabel, síťové karty se dnes umí dohodnout, který vodič bude která strana používat pro vstup a výstup
Optická vlákna
signál se šíří jako viditelné světlo vláknem z oxidu křemíku
vysoké frekvence, velká šířka přenosového pásma
nízký útlum, žádné rušení
vyšší cena, náročnější manipulace (když se ohne, je to nanic)
singlemode – užší jádro, laser
- vysoký dosah, přenosová kapacita i cena :money_with_wings:
multimode – širší jádro, LED
Segmentace sítě
- repeater – spojuje segmenty na fyzické vrstvě
- překonává útlum kabelů
- zhoršuje propustnost
- ve strukturované kabeláži se mu říká hub
- bridge – spojuje segmenty na linkové vrstvě
- zlepšuje propustnost – odděluje kolizní domény
- ve strukturované kabeláži se mu říká switch
Learning bridge, BUS (BUM)
switche si pro každý port udržují tabulku MAC adres stanic, které jsou za tímto portem připojeny
důležitá propojení v síti se někdy zálohují pomocí redundantních switchů
- problém: graf bude cyklický a learning bridge selže
- řešení: Spanning Tree Protocol – udržujeme si jen kostru
Routing
Směrovací tabulka
- taký síťový rozcestník
- destination – adresa sítě včetně rozsahu zadaného síťovou maskou
- gateway – next-hop router
- počítač si ze směrovací tabulky vybírá co nejkonkrétnější směr
přímé záznamy – popisují přímo připojenou síť
- vznikají automaticky po nakonfigurování síťového rozhraní
- loopback adresa
- hlavní síť naší LAN
- záznam pro point-to-point síť, kterou jsme připojeni k ISP
nepřímé záznamy – popisují cizí sítě a podsítě naší LAN
default záznam – kam mam posílat veškerý ostatní bordel
- nemusí existovat – pokud požadavek nematchne žádné pravidlo, prostě jej zahodí a pošle ICMP
No route to host
- nemusí existovat – pokud požadavek nematchne žádné pravidlo, prostě jej zahodí a pošle ICMP
příkaz
route
– vypíše obsah routovací tabulkypříkaz
traceroute
/tracepath
– postupně odesílá pakety s TTL od 1 do $n$ – vypisuje cestu k nějakému cíli
Statické řízení
cesty se nastavují po bootu z informací uložených někde kdo ví kde
- nepružné při změnách
- problémy se subnettingem
- nesnadné zálohování spojení
méně citlivé na problémy v síti
dostupné i ve zcela heterogenním prostředí (boy do I know what that is)
vhodné pro jednodušší, stabilní sítě
ICMP redirect
- situace na obrázku
- chceme poslat packet do sítě
6.0.0.0
, se kterou sousedíme, ale nevíme o tom - pošleme tak packet na router
5.0.0.8
, který má u sebe ale zapsáno, že by měl paket poslat do sítě, ze které přišel - router tak pošle paket sperávnému routeru (
5.0.0.6
) a nám zpátky pošle ICMPredirect
, ve kterém nám sděluje, že do sítě6.0.0.0
se dostaneme přes router5.0.0.6
s příznakemD
– dynamicky vzniklý záznam
- chceme poslat packet do sítě
- pokud bude v lokální síti někdo šířit nevalidní ICMP redirecty, může síť rozbít
- většinou je lepší distribuovat klientům kompletní strukturu sítě a
redirect
zakázat
- většinou je lepší distribuovat klientům kompletní strukturu sítě a
Dynamické řízení
routery si navzájem vyměňují informace o síti pomocí routovacího protokolu
jednoduchost změny konfigurace
síť se dokáže sama opravovat
směrovací tabulky se udržují automaticky
citlivější na problémy a útoky
na počítači musí běžet program obsahující daný routovací protokol
- např. BIRD – studentský projekt Forsta, Medvěda a asi pár dalších (no a náplní práce Marie z CZ.NICu je tak parsovat špagetykód z jejich studentský let, nice)
Distance-vector protokoly
uzel má ve směrovací tabulce i vzdálenosti
svou tabulku periodicky posílá svým sousedům
jednoduché a snadno implementovatelné
pomalá reakce na chyby
metrika špatně zohledňuje vlastnosti linek (rychlost, spolehlivost, …)
omezený rozsah sítě
chyba ve výpočtu jednoho routeru zaplaví celou síť (možnost vzniku routovacích smyček)
RIP
routing information protocol
metrikou je hop count – né vždy úplně inteligentní metrika
- můžeme uměle zvětšit hop count pro pomalé linky
rozsah sítě je omezen na 15 hopů, 16 je „do nekonečna”
- „nekonečno” 16 je malé, abychom minimalizovali dopad counting to infinity
- dobře popsáno v extended slidech, tohle odmítám přepisovat
Bellman-Ford alg. – jedna úprava tabulky odpovídá jednomu kroku algoritmu
umí subnetting včetně VLSM
Link state protokoly
každý router zná mapu celé své sítě
routery si navzájem sdělují stav svých linek a podle toho přepočítávají své mapy
- výpočet mapy je náročnější na CPU a paměť
- při startu a na nestabilních sítích to může být velká zátěž
- velmi pružná reakce na změny topologie
- chyba na jednom uzlu neovlivňuje ostatní
- síť je možné rozdělit na menší podsítě
- výměna dat probíhá pouze při změnách
OSPF
- Dijkstra alg.
- hierarchický model sítě – páteř a její podsítě (neexistují žádné další mezisítě)
- metriku je možné konfigurovat – může zahrnovat vzdálenost, šířku pásma, latenci, …
Autonomní systémy
- routování po internetové páteři
- jednotlivé bloky sítí tvoří AS – autonomní systémy
- sítě musí mít společnou routovací politiku – není složité o přiřazení AS požádat
- typicky ISP nebo velké společnosti
- routování mezi různými AS probíhá podle ID čísel (dříve 16bit, dnes přechod na 32bit)
EGP
- externí routovací protokoly
- např. BGP
- mega důležité faktory
- zahrnutí dalších faktorů při hodnocení cest
- zabránění vzniku smyček
- path-vector – posloupnost čísel AS, přes něž vede cesta
Zabezpečení sítě
IP filtering
bezpečnostní politika při připojování lokální sítě do internetu
- pravidla pro typy provozu z a do lokální sítě
- (ofc přijímám odpovědi na requesty, co jsem poslala)
na transportní vrstvě (trochu zavádějící název, innit?)
přísná konfigurace – ven vybrané porty, dovnitř nic
- dobré pro protokoly s jedním kanálem (HTTP, SMTP)
- problém pro protokoly s více kanály (FTP, SIP)
obvyklá konfigurace – ven cokoliv, dovnitř nic
problém už jen s aktivními kanály nebo tam, kde je kanálů třeba více
problém se službami uvnitř – www server, mail
- povolení výjimek je riskantní
- DMZ – demilitarized zone – oddělený segment pro tyto služby
problémy se dají řešit nastavením aplikací a SW na routeru
- potřebná spolupráce s aplikační vrstvou
Proxy server
kontroluje provoz určitého protokolu
bezpečností a výkonnostní důvody
- proxy může vyřešené požadavky cacheovat (nelze u HTTPS)
transparentní varianta
- hraniční router sítě zachytí klientův požadavek a předá ho proxy serveru
- pokud je požadavek v pořádku, naváže jako klient spojení na skutečný server
- odpověď serveru opět zkontroluje a přepošle ji původnímu klientovi
- klient nemusí měnit konfiguraci, požadavek se k proxy dostane tak jako tak
netransparentní varianta
- klient musí dávat požadavek proxy serveru, nikoliv cílovému serveru
- je nutná podpora protokolu
- proxy server může běžet na vhodnějším HW nebo OS než je router
Kryptografie
- šifrování dat pro bezpečný přenos veřejným prostředím
Symetrické šifry
pro šifrování a dešifrování se používá stejný klíč
transpoziční, aditivní, substituční šifry, …
Caesar, Vigenère, Blowfish, …
Asymetrické šifry
- pro šifrování a dešifrování se používá pár navzájem neodvoditelných klíčů
- veřejný a privátní klíč
- rozklad na prvočinitele, diskrétní logaritmus
- RSA, DSA, ElGamal, …
Hahovací funkce
- vytvoření pevného kódu z daného textu
- princip holubníku – kolize
- SHA
- použití v kryptografii:
- doplnění požadavků na algoritmus o bezpečností prvky
- malá změna textu = velká změna hashe
- jednocestnost
Šifrování dat
Elektronický podpis
Diffie-Hellman
- výměna informací mezi dvěma partnery posílanými nezabezpečeným kanálem
- princip: $A^b = (p^a)^b = p^{ab} = p^{ba} = (p^b)^a = B^a$
- Alice vygeneruje tajné $a$ a veřejná prvočísla $p$ a $q$
- Spočítá $A = p^a \mod{q}$ a pošle $p$, $q$ a $A$ Bobovi
- Bob zvolí tajné číslo $b$, spočte $B = p^b \mod {q}$ a pošle $B$ Alici
- Alice spočítá $s = B^a \mod{q}$ a Bob $s = A^b \mod{q}$
Certifikáty
- certifikát je klíč doplněný o identifikaci vlastníka a podepsaný vydavatelem
- pokud důvěřujeme vydavateli, můžeme věřit klíči vlastníka
Ověřování
- hledáme někoho, kdo nám řekne, že tento veřejný klíč opravdu patří k tomuto člověku
- web of trust, trust on first use, certification authorities, …
SSL, TLS
- secure socket layer ~ transport layer security
- způsob jak si klient a srever domlouvá šifrování
- mezi transportní a aplikační