ťařina
Obsah Soubory
Diagnostika

Jak hledat problém

Aktualizováno 4 min čtení 691 slov

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 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.

flowchart 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.

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             # Linux
ipconfig /all       # Windows
ifconfig            # 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 se neozval. Buď je vypnutý, nebo jsi ve špatné VLANě.

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.

Když je záznam kompletní a přesto neodpovídá, brána tě buď blokuje firewallem, nebo má vypnuté odpovídání na ping.

4. Pingnu veřejnou adresu?

ping 8.8.8.8
ping -6 2001:4860:4860::8888

Když bránu pingneš a tohle ne, problém je ve směrování 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.cz
dig 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 resolver
dig @8.8.8.8 seznam.cz      # cizí resolver

Když druhý funguje a první ne, je problém u tebe. Viz 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 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 = 1500
ping -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.

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 stroji
iperf3 -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.