-
Notifications
You must be signed in to change notification settings - Fork 0
DHCP a DNS
Dvě služby, které dělají úplně různé věci, ale spojuje je jedna vlastnost: fungují na pozadí, nikdo o nich nepřemýšlí, a když se rozbijí, vypadá to jako „nefunguje internet".
Když připojíš zařízení do sítě, nemá žádnou adresu. Nemůže tedy nic poslat, protože nemá zpáteční adresu, a nemůže se ani nikoho zeptat, protože neví, koho.
DHCP tenhle problém řeší tím, že se nový klient zeptá úplně všech naráz.
sequenceDiagram
participant K as Klient
participant S as DHCP server
K->>S: DISCOVER (broadcast, kdokoliv?)
S->>K: OFFER (nabízím 192.168.1.10)
K->>S: REQUEST (beru ji)
S->>K: ACK (je tvoje, na 24 hodin)
Zkratkou DORA. Klient křičí do sítě, server nabídne adresu, klient ji potvrdí a server ji zapíše.
Druhý a třetí krok existují proto, že v síti může být víc DHCP serverů. Klient si vybere jednu nabídku a tou žádostí ostatním serverům oznámí, že jejich nabídku nepotřebují.
Zdaleka nejen adresu. V odpovědi je typicky:
- IP adresa a maska
- výchozí brána
- adresy DNS serverů
- doména pro hledání
- doba zápůjčky
- volitelně NTP server, adresa TFTP pro bootování a desítky dalších voleb
Právě proto se špatně nastavený DHCP projevuje tak různorodě. Když chybí brána, funguje jen místní síť. Když chybí DNS, funguje ping na IP, ale ne na jména.
Adresa se nepřiděluje natrvalo, ale na dobu určitou. V polovině té doby si klient řekne o prodloužení. Když se server neozve, zkouší to znovu, a když ani pak, adresu po vypršení pustí.
Doma nastav něco mezi 12 a 24 hodinami. Kratší doba znamená víc provozu, delší znamená, že se dlouho drží adresy zařízení, která už dávno odešla.
Když chceš, aby zařízení mělo pořád stejnou adresu, máš dvě možnosti.
Rezervace na DHCP serveru je ta rozumná. Řekneš routeru „tahle MAC adresa vždycky dostane tuhle IP". Zařízení o ničem neví, dostává adresu normálně přes DHCP, jen pořád stejnou. Všechna nastavení zůstávají na jednom místě.
Statická adresa přímo na zařízení je ta, co tě jednou kousne. Zařízení pak nemá ponětí o zbytku sítě, a když změníš rozsah nebo bránu, přestane fungovat a ty budeš půl hodiny hledat proč. Použij ji jen tam, kde nemáš na výběr.
Pokud rezervuješ, drž si rezervace mimo dynamický rozsah. Například dynamicky 192.168.1.100 až .200, rezervace v .10 až .50. Vyhneš se konfliktům a v seznamu klientů poznáš na první pohled, co je co.
Klasika, když někdo přinese domů router a zapojí ho do sítě jako switch, ale zapomene mu vypnout DHCP. Zařízení pak dostávají adresy náhodně od obou serverů, půlka sítě nefunguje a příčina je neviditelná.
Když stavíš síť a připojuješ do ní jakoukoliv krabici s nápisem „router", první věc je vypnout na ní DHCP a WiFi.
DNS překládá jména na adresy. To je popis, který znáte všichni, a nic nevysvětluje. Zajímavější je, jak se k té odpovědi vlastně dojde.
Když se tvůj počítač zeptá na www.seznam.cz, nezeptá se přímo. Zeptá se svého resolveru — obvykle routeru nebo serveru poskytovatele — a ten to vyřeší za něj:
sequenceDiagram
participant P as Tvůj počítač
participant R as Resolver
participant Root as Kořenový server
participant CZ as Server pro .cz
participant S as Server seznam.cz
P->>R: kde je www.seznam.cz?
R->>Root: kde je www.seznam.cz?
Root->>R: nevím, ale .cz řeší tenhle server
R->>CZ: kde je www.seznam.cz?
CZ->>R: nevím, ale seznam.cz řeší tenhle server
R->>S: kde je www.seznam.cz?
S->>R: 77.75.79.222
R->>P: 77.75.79.222
Systém je hierarchický a čte se zprava. Nejdřív se zjistí, kdo spravuje .cz, pak kdo spravuje seznam.cz, a teprve ten zná odpověď.
Vypadá to zdlouhavě a taky to zdlouhavé je — proto se všechno kešuje. Druhý dotaz na tutéž doménu dostane odpověď okamžitě z paměti resolveru.
| Typ | K čemu |
|---|---|
A |
jméno na IPv4 adresu |
AAAA |
jméno na IPv6 adresu |
CNAME |
jméno na jiné jméno |
MX |
kam doručovat poštu pro doménu |
TXT |
libovolný text, používá se pro ověřování a SPF |
PTR |
zpětný překlad z adresy na jméno |
NS |
který server doménu spravuje |
Když zapínáš IPv6, potřebuješ AAAA. Nepřidá se sám od sebe a to je jeden z nejčastějších důvodů, proč „IPv6 mám, ale nikdo se na mě nedostane".
Každý záznam má nastavenou dobu, po kterou si ho smí kdokoliv pamatovat. Když změníš IP adresu své domény, svět se to dozví až po vypršení téhle doby, ne okamžitě.
Když plánuješ stěhování, sniž TTL na pár minut den předem. Po přesunu ho vrať zpátky nahoru.
Tohle je zdroj věčného zmatku, protože keší je v řadě za sebou několik:
- prohlížeč
- operační systém
- router
- resolver poskytovatele
Když ti změna „nefunguje", pravděpodobně koukáš na jednu z nich. Vyčištění:
ipconfig /flushdns # Windows
sudo dscacheutil -flushcache # macOS
sudo systemd-resolve --flush-caches # Linux
A v prohlížeči zkus anonymní okno, protože Chrome má vlastní keš nezávislou na systému.
Stojí za zvážení. Když si pustíš vlastní resolver, dostaneš tři věci: lokální jména pro vlastní zařízení, blokování reklamy na úrovni sítě, a nezávislost na tom, co ti podstrkuje poskytovatel.
Nejběžnější volby jsou Pi-hole nebo AdGuard Home. Obojí běží klidně na Raspberry Pi nebo v kontejneru na NASu.
Když to uděláš, počítej se dvěma věcmi. Musíš mít záložní řešení, protože bez DNS ti v domácnosti přestane fungovat úplně všechno včetně televize. A moderní prohlížeče a operační systémy mají tendenci obcházet tvůj resolver přes DoH (DNS přes HTTPS), takže to je potřeba na klientech vypnout nebo to zablokovat na firewallu.
dig seznam.cz # dotaz na výchozí resolver
dig @8.8.8.8 seznam.cz # dotaz konkrétně na Google
dig seznam.cz AAAA # jen IPv6 záznam
dig +trace seznam.cz # celá cesta hierarchií
Když dig @8.8.8.8 funguje a dig bez parametru ne, máš rozbitý vlastní resolver. To je nejrychlejší způsob, jak to rozlišit. Víc v nástrojích.
Našel jsi chybu nebo něco chybí? Založ issue nebo pošli pull request. — Psáno 2026, licence CC BY-SA 4.0
Základy
- Cesta paketu
- Vrstvy a zapouzdření
- MAC, ARP a přepínání
- Prefixy a masky
- Směrování
- DHCP a DNS
- Porty a spojení
- NAT a port forwarding
Domácí síť
IPv6
Linux firewall
TLS a reverse proxy
- TLS a HTTPS
- HTTP, QUIC a WebSocket
- Reverse proxy
- Caddy
- Nginx
- Traefik
- Certifikáty a Let's Encrypt
- Vlastní certifikační autorita
Kryptografie
- Stavební kameny
- Veřejný a soukromý klíč
- Diffie-Hellman
- Hashe, HMAC a podpisy
- Náhodnost a entropie
- TLS handshake
- Postkvantová kryptografie
- Šifrování disků a souborů
Virtualizace a kontejnery
Diagnostika
Vzdálený přístup
Provoz a bezpečnost
Praxe