it-swarm-eu.dev

Odstraňování problémů a ladění v systému Linux

Čas od času se uživatelé Linuxu a Unixu setkali s různými problémy se sítí. Mnoho z těchto problémů je prezentováno zde a na některých dalších fórech pro řešení problémů, ale jsou velmi konkrétní a obsahují spoustu dalších technických informací, a někdy je poměrně obtížné pochopit hlavní bod a skutečný důvod chování systému buggy.

Tím, že položím tuto otázku, mám v úmyslu zahájit komunitní wiki stránku, která umožňuje zobecnění našich řešení problémů se sítí a ladění. Doufám, že uživatelé Linuxu a Unixu by mohli pomocí této stránky snáze rozpoznat a vyřešit („rozdělit a dobýt“) své síťové problémy.

Rodič této stránky by měl být Doporučený postup pro diagnostiku problémů . Ale zde bychom se měli zaměřit na řešení problémů síťových problémů z user- a kernel-space.

Předpokládám, že pokud:

  1. Sdílejte informace o použití skvělého síťového diagnostického nástroje s konkrétními příklady použití a příklady síťových chyb, které pomáhají zachytit.
  2. Sdílejte odkaz na skvělé síťové konzultace spojené s tímto předmětem
  3. Řekněte o obecné metodě nebo receptu, který umožňuje řešit některé problémy se sítí
  4. Sdílejte informace o sadě nástrojů pro ladění sítě a odstraňování problémů

to by se perfektně hodilo pro toto téma.


Začnu sdílením odkazu na varios diagnostické nástroje a 12letý jednoduchý tutoriál . Zdá se, že také archlinux tutorial má aktuální informace o našem předmětu. A pro potápění do linuxových sítí musíme rozhodně navštívit Linux Networking-HOWTO .

83
dr.

Myslím, že obecné zásady řešení problémů se sítí jsou:

  1. Zjistěte, na jaké úrovni zásobník TCP/IP (nebo jiný zásobník) dochází k problému.
  2. Pochopte, jaké je správné chování systému a jaká je odchylka od normálního stavu systému
  3. Zkuste problém vyjádřit jednou větou nebo několika slovy
  4. Pomocí získaných informací z buggy systému, vlastních zkušeností a zkušeností ostatních lidí (google, různá fóra atd.) Se pokuste problém vyřešit až do úspěchu (nebo selhání)
  5. Pokud se vám nepodaří, zeptejte se ostatních lidí na pomoc nebo radu

Pokud jde o mě, obvykle získávám všechny potřebné informace pomocí všech potřebných nástrojů a snažím se tyto informace přizpůsobit mé zkušenosti. Rozhodování o tom, jaká úroveň síťového zásobníku obsahuje chybu, pomáhá odříznout nepravděpodobné varianty. Využití zkušeností jiných lidí pomáhá řešit problémy rychle, ale často to vede k situaci, že dokážu vyřešit nějaký problém bez jeho pochopení a pokud se tento problém objeví znovu, je pro mě nemožné znovu jej vyřešit bez internetu.

A obecně nevím, jak vyřeším problémy se sítí. Zdá se, že v mém mozku je nějaká magická funkce s názvem SolveNetworkProblem(information_about_system_state, my_experience, people_experience), která by někdy mohla vrátit přesně tu správnou odpověď, a také by někdy mohla selhat (jako zde TCP umírá na laptopu Linux ).

Pro ladění sítě obvykle používám utils z této sady:

  • ifconfig (nebo ip link, ip addr) - pro získání informací o síťových rozhraních
  • ping - pro ověření, zda je cílový hostitel přístupný z mého počítače. ping lze také použít pro základní diagnostiku DNS - mohli bychom ping hostitele pomocí IP adresy nebo jeho hostname a pak jsme se rozhodli, zda DNS vůbec funguje. A pak traceroute nebo tracepath nebo mtr a podívejte se, co se tam děje.
  • Dig - diagnostikujte vše DNS
  • dmesg | less nebo dmesg | tail nebo dmesg | grep -i error - pro pochopení toho, co si o některých problémech myslí jádro Linuxu.
  • netstat -antp + | grep smth - moje nejoblíbenější použití příkazu netstat, které zobrazuje informace o připojeních TCP připojení. Často provádím nějaké filtrování pomocí grepu. Viz také nový příkaz ss (z iproute2 nová standardní sada síťových nástrojů pro Linux) a lsof jako v lsof -ai tcp -c some-cmd.
  • telnet <Host> <port> - je velmi užitečná pro komunikaci s různými TCP službami (např. na SMTP, HTTP protokolech), také bychom mohli zkontrolovat obecnou příležitost připojit se k nějakému TCP port).
  • iptables-save (v systému Linux) - výpis výpisů plných tabulek iptables
  • ethtool - získejte všechny parametry karty síťového rozhraní (stav odkazu, rychlost, parametry offload ...)
  • socat - nástroj švýcarské armády k testování všech síťových protokolů (UDP, vícesměrové vysílání, SCTP ...). Obzvláště užitečné (více než telnet) s několika -d možnosti.
  • iperf - otestujte dostupnost šířky pásma
  • openssl (s_client, ocsp, x509...) k ladění všech problémů SSL/TLS/PKI.
  • wireshark - výkonný nástroj pro zachycení a analýzu síťového provozu, který vám umožní analyzovat a zachytit mnoho síťových chyb.
  • iftop - zobrazí velké uživatele v síti/routeru.
  • iptstate (v systému Linux) - aktuální zobrazení sledování připojení brány firewall.
  • arp (nebo nový (Linux) ip neigh) - zobrazí stav tabulky ARP.
  • route nebo novější (v systému Linux) ip route - zobrazí stav směrovací tabulky.
  • strace (nebo truss, dtrace nebo tusc v závislosti na systému) - je užitečný nástroj, který ukazuje, která systémová volání způsobují problémový proces, také ukazuje chybové kódy (errno) při selhání systémových volání. Tyto informace často říkají dost pro pochopení chování systému a řešení problému. Alternativně můžete pomocí bodů přerušení u některých síťových funkcí v gdb zjistit, kdy jsou vytvořeny as jakými argumenty.
  • vyšetřovat problémy brány firewall v systému Linux: iptables -nvL ukazuje, kolik paketů odpovídá každému pravidlu (iptables -Z vynulovat čítače). Cíl LOG vložený do řetězců brány firewall je užitečný pro zjištění, které pakety k nim přistupují a jak se již transformovaly, když se tam dostanou. Chcete-li získat další NFLOG (přidružené k ulogd), zaznamená se úplný paket.
120
dr.

Překvapivý počet „problémů se sítí“ se odráží v problémech DNS jednoho či druhého druhu. Počáteční řešení problémů by mělo používat ping -n w.x.y.z, abyste vynechali rozlišení DNS názvu hostitele a zkontrolovali pouze připojení IP. Poté použijte route -n pro kontrolu výchozí IP trasy bez rozlišení DNS.

Po ověření připojení IP a směrování mohou nslookup, Host a Dig poskytnout informace. Nezapomeňte, že „uzamčení“ může znamenat, že dochází k vypršení časového limitu DNS.

Nezapomeňte zkontrolovat existenci a obsah /etc/resolv.conf. Klienti DHCP mění tento soubor při každém zapůjčení a někdy jej dostanou špatně nebo pokud je místo na disku těsné, aktualizace se nemusí stát.

15
Bruce Ediger

Mohou existovat problémy s kabeláží. Pokud máte přístup k hardwaru, ujistěte se, že jsou všechny kabely zapojeny a mechanicky zapojeny. Pokud vidíte směrovače nebo ethernetová rozhraní, ujistěte se, že kontrolky propojení svítí.

Vzdáleně musíte záviset na ethtool a mii-tool.

[[email protected] ~]# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 24
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x00000001 (1)
                               drv
        Link detected: yes

„Zjištěn odkaz: ano“ je dobrý, ale 10 MB/sa poloviční duplex nejsou dobré, protože NIC na tomto počítači může dělat lépe. Musím přijít na to, jestli NIC je poškozený nebo je kabel. Další počítač připojený ke stejnému routeru říká 100 Mb/s, Full duplex.

8
Bruce Ediger