====== IP adresy ====== ===== Základní pojmy ===== IP adresa (Internet Protocol address) je numerický identifikátor přiřazený každému zařízení připojenému k počítačové síti, která používá Internet Protocol pro komunikaci. IP adresa slouží ke dvěma hlavním účelům: identifikaci hostitele nebo síťového rozhraní a adresování lokality v síti. ===== Verze IP protokolu ===== ==== IPv4 ==== IPv4 je čtvrtá verze Internet Protocolu a nejrozšířenější verze používaná v současnosti. === Formát === Skládá se ze 32 bitů (4 bajty) Zapisuje se jako čtyři dekadická čísla oddělená tečkami Každé číslo (oktet) může nabývat hodnot 0-255 Příklad: ''192.168.1.1'' === Adresní prostor === Celkový počet adres: 2^32 = 4 294 967 296 adres Tento prostor je dnes považován za nedostatečný === Struktur IPv4 adresy === IPv4 adresa se skládá ze dvou částí: Síťová část (Network ID) - identifikuje konkrétní síť Hostitelská část (Host ID) - identifikuje konkrétní zařízení v síti ==== IPv6 ==== IPv6 je novější verze Internet Protocolu vyvinutá jako odpověď na vyčerpávání IPv4 adres. === Formát === Skládá se ze 128 bitů (16 bajtů) Zapisuje se jako osm skupin po čtyřech hexadecimálních číslicích oddělených dvojtečkami Příklad: ''2001:0db8:85a3:0000:0000:8a2e:0370:7334'' === Zkrácený zápis === Úvodní nuly ve skupině lze vynechat: ''2001:db8:85a3:0:0:8a2e:370:7334'' Posloupnost nulových skupin lze nahradit ''::'': ''2001:db8:85a3::8a2e:370:7334'' ''::'' lze použít pouze jednou v adrese === Adresní prostor === Celkový počet adres: 2^128 ≈ 340 undecilionů adres Tento prostor je prakticky nevyčerpatelný ===== Třídy IPv4 adres ===== Původní systém dělení IPv4 adres do tříd (dnes již většinou nahrazen CIDR notací): ==== Třída A ==== Rozsah: ''1.0.0.0'' - ''126.255.255.255'' První bit: 0 Síťová maska: ''255.0.0.0'' nebo ''/8'' Počet sítí: 126 Počet hostitelů na síť: 16 777 214 ==== Třída B ==== Rozsah: ''128.0.0.0'' - ''191.255.255.255'' První dva bity: 10 Síťová maska: ''255.255.0.0'' nebo ''/16'' Počet sítí: 16 384 Počet hostitelů na síť: 65 534 ==== Třída C ==== Rozsah: ''192.0.0.0'' - ''223.255.255.255'' První tři bity: 110 Síťová maska: ''255.255.255.0'' nebo ''/24'' Počet sítí: 2 097 152 Počet hostitelů na síť: 254 ==== Třída D (Multicast) ==== Rozsah: ''224.0.0.0'' - ''239.255.255.255'' První čtyři bity: 1110 Používá se pro multicastové přenosy ==== Třída E (Experimentální) ==== Rozsah: ''240.0.0.0'' - ''255.255.255.255'' První čtyři bity: 1111 Rezervováno pro experimentální účely ===== Speciální IP adresy ===== ==== Privátní IP adresy (RFC 1918) ==== Tyto adresy jsou určeny pro použití v lokálních sítích a nejsou routovatelné na veřejném internetu: Třída A: ''10.0.0.0'' - ''10.255.255.255'' (''/8'') Třída B: ''172.16.0.0'' - ''172.31.255.255'' (''/12'') Třída C: ''192.168.0.0'' - ''192.168.255.255'' (''/16'') ==== Loopback adresa ==== IPv4: ''127.0.0.1'' (celý rozsah ''127.0.0.0/8'') IPv6: ''::1'' Používá se pro komunikaci v rámci stejného zařízení Také známá jako "localhost" ==== Adresa nenastaveného rozhraní ==== IPv4: ''0.0.0.0'' IPv6: ''::'' Používá se při konfiguraci nebo jako zástupný symbol ==== Broadcast adresa ==== IPv4: ''255.255.255.255'' (omezený broadcast) Nebo poslední adresa v síti (směrovaný broadcast) Používá se pro zasílání paketů všem zařízením v síti ==== Link-Local adresy ==== IPv4: ''169.254.0.0'' - ''169.254.255.255'' (''/16'') IPv6: ''fe80::/10'' Automaticky přiřazené při nedostupnosti DHCP Platné pouze v lokálním segmentu sítě ==== Dokumentační adresy ==== Vyhrazené pro dokumentaci a příklady: ''192.0.2.0/24'' (TEST-NET-1) ''198.51.100.0/24'' (TEST-NET-2) ''203.0.113.0/24'' (TEST-NET-3) ''2001:db8::/32'' (IPv6 dokumentace) ==== Carrier-Grade NAT ==== ''100.64.0.0'' - ''100.127.255.255'' (''/10'') RFC 6598 Sdílené adresní prostory pro poskytovatele ===== Síťové masky a CIDR ===== ==== Síťová maska (Subnet Mask) ==== Síťová maska určuje, která část IP adresy reprezentuje síť a která hostitele. === Formát === Zapisuje se stejně jako IP adresa (např. ''255.255.255.0'') Binárně obsahuje nepřerušenou sekvenci jedniček následovanou nulami Jednička označuje síťovou část, nula hostitelskou část === Příklady === ''255.0.0.0'' - 8 bitů pro síť ''255.255.0.0'' - 16 bitů pro síť ''255.255.255.0'' - 24 bitů pro síť ''255.255.255.128'' - 25 bitů pro síť ==== CIDR notace ==== CIDR (Classless Inter-Domain Routing) je modernější způsob zápisu síťových masek. === Formát === Zápis: ''IP_adresa/počet_bitů_síťové_části'' Příklad: ''192.168.1.0/24'' Číslo za lomítkem udává počet bitů síťové masky === Převodní tabulka === ^ CIDR ^ Maska ^ Počet IP adres ^ Počet použitelných IP ^ | /8 | 255.0.0.0 | 16 777 216 | 16 777 214 | | /16 | 255.255.0.0 | 65 536 | 65 534 | | /24 | 255.255.255.0 | 256 | 254 | | /25 | 255.255.255.128 | 128 | 126 | | /26 | 255.255.255.192 | 64 | 62 | | /27 | 255.255.255.224 | 32 | 30 | | /28 | 255.255.255.240 | 16 | 14 | | /29 | 255.255.255.248 | 8 | 6 | | /30 | 255.255.255.252 | 4 | 2 | | /31 | 255.255.255.254 | 2 | 2* | | /32 | 255.255.255.255 | 1 | 1 | * RFC 3021 umožňuje použití /31 pro point-to-point spoje ===== Subnetting ===== Subnetting je proces dělení většího síťového segmentu na menší podsítě. ==== Důvody pro subnetting ==== Efektivnější využití adresního prostoru Zlepšení výkonu sítě (menší broadcast domény) Zvýšení bezpečnosti (izolace segmentů) Snadnější správa ==== Příklad subnettingu ==== Mějme síť ''192.168.1.0/24'' (256 adres) a chceme ji rozdělit na 4 podsítě: Nová maska: ''/26'' (''255.255.255.192'') Každá podsíť: 64 adres (62 použitelných) Podsítě: ''192.168.1.0/26'' (0-63) ''192.168.1.64/26'' (64-127) ''192.168.1.128/26'' (128-191) ''192.168.1.192/26'' (192-255) ==== Síťová a broadcastová adresa ==== V každé podsíti jsou dvě speciální adresy: Síťová adresa - první adresa (všechny hostitelské bity = 0) Broadcastová adresa - poslední adresa (všechny hostitelské bity = 1) Tyto adresy nelze přiřadit hostitelům ===== Přidělování IP adres ===== ==== Statické přiřazení ==== Adresa je nakonfigurována ručně administrátorem Zůstává stejná po restartu Vhodné pro servery, tiskárny, síťové zařízení ==== Dynamické přiřazení (DHCP) ==== DHCP (Dynamic Host Configuration Protocol) automaticky přiřazuje IP adresy zařízením v síti. === Výhody DHCP === Automatická konfigurace Centralizovaná správa Efektivní využití adres (recyklace) Snadná změna konfigurace === DHCP proces (DORA) === Discovery - klient hledá DHCP server Offer - server nabídne konfiguraci Request - klient požádá o nabízenou konfiguraci Acknowledgment - server potvrdí přidělení === DHCP lease === IP adresa je přidělena na omezenou dobu (lease time) Klient musí lease obnovovat Po vypršení se adresa vrací do fondu ===== NAT (Network Address Translation) ===== NAT umožňuje více zařízením sdílet jednu veřejnou IP adresu. ==== Typy NAT ==== === Static NAT === Pevné mapování 1:1 mezi soukromou a veřejnou adresou Používá se pro servery, které musí být dostupné z internetu === Dynamic NAT === Mapování ze soukromých adres do fondu veřejných adres Přiřazení není pevné === PAT (Port Address Translation) / NAT Overload === Nejběžnější forma NAT Mnoho soukromých adres → jedna veřejná adresa Rozlišení pomocí portových čísel Používá se v domácích routerech ==== Výhody NAT ==== Šetří veřejné IPv4 adresy Poskytuje určitou úroveň zabezpečení (skrývá vnitřní strukturu) Umožňuje změnu ISP bez změny vnitřních adres ==== Nevýhody NAT ==== Porušuje end-to-end princip internetu Komplikuje některé aplikace (VoIP, P2P) Přidává latenci Ztěžuje trasování a diagnostiku ===== Port Forwarding ===== Port forwarding umožňuje přístup k zařízení za NATem z internetu. Mapování specifického portu veřejné IP na interní IP a port Příklad: ''veřejná_IP:80'' → ''192.168.1.10:8080'' Nutné pro servery, hry, vzdálený přístup ===== DNS (Domain Name System) ===== DNS překládá doménová jména na IP adresy. ==== Základní principy ==== Hierarchický, distribuovaný databázový systém Převádí lidsky čitelná jména (''www.example.com'') na IP adresy Funguje na portu 53 (UDP/TCP) ==== DNS záznamy ==== A záznam - mapování doménového jména na IPv4 adresu AAAA záznam - mapování doménového jména na IPv6 adresu PTR záznam - reverzní DNS (IP → jméno) CNAME - alias (kanonické jméno) MX - mail server pro doménu NS - name server pro doménu TXT - textové informace (SPF, DKIM, atd.) ==== DNS hierarchie ==== Root servery (.) TLD servery (.com, .org, .cz) Autoritativní servery (konkrétní domény) Rekurzivní resolvery (cache, dotazování) ===== Routing ===== Routing je proces výběru cesty pro síťová data od zdroje k cíli. ==== Routovací tabulka ==== Každé síťové zařízení má routovací tabulku obsahující: Cílovou síť - kam mají pakety směřovat Síťovou masku - maska cílové sítě Gateway - IP adresa dalšího skoku (next hop) Interface - síťové rozhraní pro výstup Metriku - priorita cesty (nižší = lepší) ==== Typy routování ==== === Statické routování === Cesty jsou nakonfigurovány ručně administrátorem Nemění se automaticky Vhodné pro malé, stabilní sítě === Dynamické routování === Routery si automaticky vyměňují informace o topologii Přizpůsobují se změnám v síti Používají routovací protokoly ==== Routovací protokoly ==== === IGP (Interior Gateway Protocol) === Protokoly pro routing uvnitř autonomního systému: RIP (Routing Information Protocol) - distance vector, max 15 hopů OSPF (Open Shortest Path First) - link state, rychlejší konvergence EIGRP (Enhanced Interior Gateway Routing Protocol) - Cisco proprietární === EGP (Exterior Gateway Protocol) === Protokoly pro routing mezi autonomními systémy: BGP (Border Gateway Protocol) - de facto standard pro internet ==== Default Gateway ==== IP adresa routeru, který odesílá pakety mimo lokální síť Používá se, když není známa specifická cesta k cíli Typicky router připojující lokální síť k internetu ===== ARP (Address Resolution Protocol) ===== ARP překládá IP adresy na MAC adresy (hardwarové adresy) v lokální síti. ==== Jak ARP funguje ==== Zařízení potřebuje komunikovat s IP adresou v lokální síti Odešle ARP request broadcast: "Kdo má IP adresu X.X.X.X?" Zařízení s danou IP odpoví ARP reply se svou MAC adresou Odesílatel uloží mapování do ARP cache ==== ARP cache ==== Dočasná tabulka mapování IP → MAC Snižuje množství ARP requestů Záznamy mají omezenou životnost (typicky minuty) ==== RARP a další varianty ==== RARP (Reverse ARP) - MAC → IP (zastaralé) Gratuitous ARP - oznámení vlastní IP/MAC Proxy ARP - router odpovídá za jiné zařízení ARP spoofing - bezpečnostní útok (man-in-the-middle) ===== ICMP (Internet Control Message Protocol) ===== ICMP je používán pro diagnostiku a hlášení chyb v IP sítích. ==== ICMP zprávy ==== === Běžné typy zpráv === Echo Request/Reply (Type 8/0) - ping Destination Unreachable (Type 3) - cíl nedostupný Time Exceeded (Type 11) - TTL vypršelo (traceroute) Redirect (Type 5) - lepší cesta k cíli Source Quench (Type 4) - zpomalení odesílání ==== Ping ==== Nástroj pro testování dosažitelnosti hostitele Odesílá ICMP Echo Request, očekává Echo Reply Měří RTT (Round-Trip Time) ping 8.8.8.8 ping www.example.com ==== Traceroute ==== Zobrazuje cestu paketů k cíli Využívá postupně se zvyšující TTL (Time To Live) Každý router snižuje TTL a vrací ICMP Time Exceeded traceroute www.example.com # Linux/Mac tracert www.example.com # Windows ===== TTL (Time To Live) ===== TTL je pole v IP hlavičce omezující životnost paketu v síti. ==== Účel ==== Prevence nekonečných smyček Každý router snižuje TTL o 1 Při dosažení 0 je paket zahozen Router vrací ICMP Time Exceeded ==== Typické hodnoty ==== Linux: 64 Windows: 128 Cisco/síťová zařízení: 255 ==== Použití ==== Traceroute/tracert Identifikace operačního systému (OS fingerprinting) Omezení šíření multicastu ===== Fragmentace IP paketů ===== Fragmentace je proces rozdělení velkých IP paketů na menší části. ==== MTU (Maximum Transmission Unit) ==== Maximální velikost paketu, který může síťové rozhraní přenést Ethernet: typicky 1500 bajtů Různé sítě mohou mít různé MTU ==== Path MTU Discovery ==== Proces zjišťování minimálního MTU na cestě k cíli Používá IP flag "Don't Fragment" (DF) Pokud je paket příliš velký, router vrací ICMP Fragmentation Needed ==== Fragmentace ==== Pokud DF není nastaven, router může paket fragmentovat Každý fragment má vlastní IP hlavičku Defragmentace probíhá až u cílového hostitele Ztráta jednoho fragmentu = ztráta celého paketu ===== Bezpečnost IP adres ===== ==== IP Spoofing ==== Falšování zdrojové IP adresy v paketu Používá se při DDoS útocích Obrana: ingress/egress filtering (BCP 38) ==== DDoS útoky ==== SYN flood - zahlcení pololetými TCP spojeními UDP flood - zahlcení UDP pakety ICMP flood (ping flood) - zahlcení ICMP požadavky DNS amplification - zneužití DNS serverů ==== Port Scanning ==== Zjišťování otevřených portů na cílovém systému Nástroje: nmap, masscan Může být přípravou na útok ==== Firewall ==== Síťové zabezpečení kontrolující příchozí a odchozí provoz: Packet filtering - filtrování na základě IP, portů, protokolů Stateful inspection - sledování stavu spojení Application layer - kontrola na úrovni aplikací ==== VPN (Virtual Private Network) ==== Šifrované tunelové spojení přes veřejnou síť: Site-to-Site VPN - propojení sítí Remote Access VPN - připojení jednotlivých uživatelů Protokoly: IPsec, OpenVPN, WireGuard, L2TP, PPTP ===== Geolokace IP adres ===== Geolokace umožňuje určit přibližnou fyzickou polohu IP adresy. ==== Jak to funguje ==== Databáze mapující IP rozsahy na lokace Data od RIR (Regional Internet Registries) Data od ISP Crowdsourcované měření ==== Přesnost ==== Země: 95-99% přesnost Město: 50-80% přesnost Přesná adresa: obvykle nemožné Horší přesnost u mobilních sítí a VPN ==== Služby ==== MaxMind GeoIP IP2Location GeoLite2 IPinfo.io ===== IPv4 vyčerpání a přechod na IPv6 ===== ==== IPv4 vyčerpání ==== IANA přidělila poslední bloky RIR v únoru 2011 Regionální registry postupně vyčerpaly své zásoby RIPE NCC (Evropa) vyčerpána od listopadu 2019 ARIN (Severní Amerika) vyčerpána od září 2015 ==== Řešení nedostatku IPv4 ==== NAT - sdílení jedné veřejné adresy CIDR - efektivnější přidělování adres Recyklace - zpětné použití nepoužívaných bloků IPv4 trading - obchodování s IPv4 bloky Přechod na IPv6 - dlouhodobé řešení ==== Přechod na IPv6 ==== === Mechanismy přechodu === Dual Stack - zařízení má současně IPv4 i IPv6 Tunneling - zapouzdření IPv6 do IPv4 (6to4, Teredo) Translation - NAT64/DNS64 překlad mezi IPv4 a IPv6 === Stav adopce === Globální adopce: cca 40-45% (2025) Varies by country: Indie >70%, USA >50%, EU cca 30-40% Velké služby (Google, Facebook) plně podporují IPv6 ==== Výhody IPv6 ==== Obrovský adresní prostor Zjednodušená hlavička paketu Zabudovaný IPsec (bezpečnost) Eliminace nutnosti NAT Lepší podpora mobility Autoconfiguration (SLAAC) ===== RIR (Regional Internet Registries) ===== RIR jsou organizace odpovědné za přidělování IP adres v určitých regionech. ==== Pět RIR ==== ARIN - Severní Amerika RIPE NCC - Evropa, Střední východ, část Asie APNIC - Asie a Tichomoří LACNIC - Latinská Amerika a Karibik AFRINIC - Afrika ==== Hierarchie přidělování ==== IANA (Internet Assigned Numbers Authority) - globální koordinace RIR - regionální přidělování LIR (Local Internet Registry) - ISP, velké organizace End users - koneční uživatelé ===== WHOIS ===== WHOIS je protokol pro dotazování na informace o IP adresách a doménách. ==== Informace v WHOIS ==== Vlastník IP bloku nebo domény Kontaktní informace Datum registrace a expirace Name servery Status domény ==== Použití ==== whois 8.8.8.8 whois example.com ==== RDAP (Registration Data Access Protocol) ==== Modernější alternativa k WHOIS Strukturované JSON odpovědi Lepší internacionalizace Autentizace a autorizace ===== Multicast a Anycast ===== ==== Unicast ==== Jeden odesílatel → jeden příjemce Standardní model komunikace Každý paket má jednu cílovou adresu ==== Broadcast ==== Jeden odesílatel → všichni v síti IPv4: broadcastová adresa sítě IPv6: broadcast neexistuje (nahrazen multicastem) ==== Multicast ==== Jeden odesílatel → skupina příjemců Efektivní pro streaming, videokonference IPv4: 224.0.0.0/4 (třída D) IPv6: ff00::/8 Vyžaduje podporu v routerech (IGMP, PIM) ==== Anycast ==== Více zařízení sdílí stejnou IP adresu Paket je doručen "nejbližšímu" zařízení Používá se pro DNS root servery, CDN Zlepšuje redundanci a latenci ===== Quality of Service (QoS) ===== QoS označuje mechanismy pro prioritizaci síťového provozu. ==== Důvody pro QoS ==== Omezená šířka pásma Různé nároky aplikací (VoIP vs. email) Prevence zahlcení sítě ==== Metody QoS ==== Classification - identifikace typu provozu Marking - označení paketů (DSCP, CoS) Queuing - fronty s různými prioritami Policing - omezení přenosové rychlosti Shaping - vyhlazení datového toku ==== DSCP (Differentiated Services Code Point) ==== 6-bitové pole v IP hlavičce Umožňuje až 64 různých tříd provozu Běžné hodnoty: EF (Expedited Forwarding), AF (Assured Forwarding) ===== IP v kontextu OSI modelu ===== OSI model je koncepční rámec pro pochopení síťové komunikace. ==== Vrstvy OSI modelu ==== Fyzická vrstva - přenos bitů (kabely, rádiové vlny) Linková vrstva - lokální síťové adresování (MAC, Ethernet) Síťová vrstva - ← IP je zde (routování, logické adresování) Transportní vrstva - TCP, UDP (segmentace, řízení toku) Relační vrstva - správa relací Prezentační vrstva - formátování dat, šifrování Aplikační vrstva - HTTP, FTP, SMTP ==== TCP/IP model ==== Jednodušší, praktičtější model: Link Layer - fyzická a linková vrstva Internet Layer - ← IP je zde (IP, ICMP, ARP) Transport Layer - TCP, UDP Application Layer - HTTP, DNS, SSH, atd.