ťařina
Obsah Soubory
markdown

Diagnostika.md

6.0 kB 172 řádků Změněno Zobrazit na GitHubu Stáhnout
markdown
# Jak hledat problém Většina lidí při problému se sítí restartuje router. Občas to pomůže, což je nejhorší možný výsledek — naučí tě to, že restartování je řešení, a příště strávíš hodinu restartováním něčeho, co se restartem spravit nedá. Tahle stránka je o systematickém postupu. Trvá o dvě minuty déle a řekne ti, co je skutečně špatně. ## Princip: odspodu nahoru [Vrstvy](Vrstvy-a-zapouzdreni) fungují na sobě. Když nefunguje spodní, nemá smysl řešit horní. Postupuj tedy odspodu a na první vrstvě, která selže, se zastav — tam je problém. ```mermaidflowchart TD    A[Svítí link na portu?] -->|ne| A1[Kabel, port, napájení]    A -->|ano| B[Mám IP adresu?]    B -->|ne| B1[DHCP, VLANa, ARP]    B -->|ano| C[Pingnu bránu?]    C -->|ne| C1[Špatná maska, VLANa, izolace klientů]    C -->|ano| D[Pingnu 8.8.8.8?]    D -->|ne| D1[Směrování, NAT, poskytovatel]    D -->|ano| E[Přeloží se jméno?]    E -->|ne| E1[DNS]    E -->|ano| F[Otevře se web?]    F -->|ne| F1[Firewall, MTU, aplikace]    F -->|ano| G[Funguje, jen pomalu?]    G --> G1[Měř propustnost a ztrátovost]``` Každý krok v tom schématu má níž vlastní sekci. ## 1. Svítí link? Nejzákladnější kontrola, kterou skoro nikdo neudělá. Dioda na portu switche a na síťovce. Když nesvítí, je problém fyzický: kabel, konektor, port, napájení. Vyzkoušej jiný kabel a jiný port, ať víš, který z nich to je. Když svítí, ale na špatné rychlosti (100 Mb místo gigabitu), je to skoro vždycky kabel — poškozený, nebo špatně zapíchnutý v keystonu. Zkontroluj: ```ethtool eth0        # Linux, ukáže dojednanou rychlost``` ## 2. Mám adresu? ```ip addr             # Linuxipconfig /all       # Windowsifconfig            # macOS``` Co uvidíš a co to znamená: | Adresa | Diagnóza ||---|---|| `192.168.x.x` nebo podobná | v pořádku, jdi dál || `169.254.x.x` | DHCP neodpovědělo, adresu si přidělil sám || žádná adresa | vrstva 2 — kabel, VLANa, nebo vypnuté rozhraní | Adresa `169.254.x.x` je velmi konkrétní příznak. Znamená, že vrstva 2 funguje (jsi v síti), ale [DHCP server](DHCP-a-DNS) se neozval. Buď je vypnutý, nebo jsi ve špatné [VLANě](VLANy). Zkontroluj taky masku a bránu. Špatná maska je záludná, protože část komunikace funguje a část ne. ## 3. Pingnu bránu? ```ping 192.168.1.1``` Když neodpovídá, ale máš adresu, podívej se na ARP tabulku: ```ip neigh``` Prázdný nebo `INCOMPLETE` záznam pro bránu znamená problém na vrstvě 2 — jsi v jiné VLANě, než si myslíš, nebo je zapnutá izolace klientů. Viz [MAC a ARP](MAC-ARP-a-prepinani). Když je záznam kompletní a přesto neodpovídá, brána tě buď blokuje [firewallem](Firewall-a-zony), nebo má vypnuté odpovídání na ping. ## 4. Pingnu veřejnou adresu? ```ping 8.8.8.8ping -6 2001:4860:4860::8888``` Když bránu pingneš a tohle ne, problém je ve [směrování](Smerovani) nebo u poskytovatele. Zkontroluj výchozí trasu: ```ip route``` a pak zjisti, kde se to láme: ```mtr 8.8.8.8``` Když poslední odpovídající uzel je tvůj router, problém je mezi tebou a poskytovatelem. Když je to někde dál, problém je u nich a ty s tím nic neuděláš — ale máš důkaz pro reklamaci. ## 5. Přeloží se jméno? ```ping seznam.czdig seznam.cz``` Klasický příznak: `ping 8.8.8.8` funguje, `ping seznam.cz` ne. To je DNS a nic jiného. Rozliš, jestli je rozbitý tvůj resolver, nebo celý svět: ```dig seznam.cz               # tvůj resolverdig @8.8.8.8 seznam.cz      # cizí resolver``` Když druhý funguje a první ne, je problém u tebe. Viz [DHCP a DNS](DHCP-a-DNS). ## 6. Otevře se web? Když se všechno výše povedlo a přesto nejde konkrétní služba, zúžil jsi to na vrstvu 4 nebo 7. ```nc -zv seznam.cz 443        # dá se navázat spojení?curl -v https://seznam.cz   # co odpoví server?``` Když `nc` neprojde, blokuje to [firewall](Firewall-a-zony) na některé straně. Když projde a `curl` selže, problém je v aplikaci nebo v certifikátech. ### Zvláštní případ: MTU Příznak je typický a stojí za to ho znát. Malé věci fungují, velké se zaseknou v půlce. Web se načte, ale obrázky ne. SSH se připojí, ale `ls` velkého adresáře zamrzne. Otestuj to pingem s postupně větší velikostí a zakázanou fragmentací: ```ping -M do -s 1472 8.8.8.8      # Linux, 1472 + 28 = 1500ping -f -l 1472 8.8.8.8         # Windows``` Když projde 1472 a neprojde 1473, máš MTU 1500 a je to v pořádku. Když neprojde ani 1472, hledej nižší hranici — typicky 1492 u PPPoE nebo méně u [VPN](WireGuard). ## 7. Funguje, ale pomalu Nejdřív změř, co vlastně máš. Ne přes speedtest v prohlížeči, ale mezi dvěma body ve své síti: ```iperf3 -s                   # na jednom strojiiperf3 -c 192.168.1.10      # na druhém``` Tím oddělíš problém v domácí síti od problému s připojením ven. Pak zjisti, jestli jde o propustnost, nebo o ztrátovost: ```mtr -c 500 -r 8.8.8.8``` Ztrátovost na posledním uzlu je skutečný problém. Ztrátovost na mezilehlém uzlu, která se dál neprojevuje, je normální — routery odsouvají odpovídání na ping jako nejnižší prioritu a nic to neznamená. ## Zlatá pravidla **Měň jednu věc naráz.** Když změníš tři a začne to fungovat, nevíš nic. **Piš si, co jsi zkusil.** Po třiceti minutách si nebudeš pamatovat, jestli jsi ten kabel už vyměnil. **Ověřuj předpoklady.** „Ten port je určitě ve správné VLANě" je tvrzení, ne fakt. Podívej se. **Zjisti, kdy to naposledy fungovalo, a co se mezi tím změnilo.** V devíti případech z deseti je odpověď v téhle otázce. **Zúži problém na jedno zařízení nebo na všechna.** Když nefunguje jen jeden notebook, hledej na notebooku. Když nefunguje nic, hledej v infrastruktuře. Tohle rozlišení ušetří spoustu času a udělá se za deset vteřin. Konkrétní nástroje a jak číst jejich výstup jsou v [nástrojích](Nastroje).