Jak riešiť problémy s pripojením v kolejnete HOWTO

verzia 0.1

Cieľ tohoto HOWTO

Cieľom je, aby administrátori počítačov v kolejnete boli rýchlo schopní nájsť a vyriešiť najbežnejšie problémy, resp. schopní napísať report o závade, ktorý ukazuje, kde je problém. Nie je tu podrobný popis protokolov 802.1x, DHCP, atď., pretože by sa to sem za a) nevošlo b) bolo by to zbytočne zložité, hlavne pre ľudí, ktorí neštudujú informatiku. Prípadné faktické chyby v texte, doplnenie textu oznámte na webmaster /zavinac/ www.kolej.mff.cuni.cz, ale tu vám nepomôžu riešiť konkrétny problém s pripojením, na to je netadm /zavinac/ kolej.mff.cuni.cz.

Problémy sú radené od najbežnejších až po tie obskurnejšie, v každom prípade tu nie sú všetky možné situácie, ktoré by mohli nastať. Zo skúseností údajne aspoň 90% problémov vyrieši už krok 1.

Zatiaľ je tu návod pre Linux (posledné jadrá 2.4.x, 2.6.x, IMHO aj na niekoľko rokov starom systéme by to malo fungovať) a pre Windows XP SP2. Pre *BSD systémy a MAC OS X by to malo byť veľmi podobné, akurát treba vymeniť príkazy na incializáciu/vypnutie sieťového interfacu. Prípadne doplňte pre váš OS. Text je vo viacerých stĺpcoch, stĺpec pre daný OS, niektoré veci sú spoločné a preto je pre všetky OS v tabuľke len jedna spoločná bunka. Zrovna pri multiplatformých nástrojoch sa to bude líšiť max. okrajmi okien a nejakými drobnosťami vo fontoch, atď.

Výber operačného systému OS

Implicitne je zobrazený návod pre Windows XP SP2 aj pre Linux, rozdielny postup je rozdelený do stĺpcov, spoločné časti sú v jednom stĺpci. Ak chcete vidieť len časť špecifickú pre váš OS, vyberte si (je treba mať zapnutý javascript, aby skrývanie fungovalo):

Windows XP SP2
Linux

Nástroje

Vzhľadom na to, že toto HOWTO bude najužitočnejšie keď vám net nepôjde, je lepšie ho uložiť na disk (vrátane obrázkov) a mať ho po ruke offline. Preto je dobré si stiahnuť aj potrebné nástroje (netreba hneď inštalovať). Dokonca je vysoká pravdepodobnosť, že tieto nástroje nikdy nebudete potrebovať, pretože väčšina problémov s pripojením je triviálnych, viz krok 1 nižšie. Nástroje:
Windows XPLinux
WinDump.exe, WinPcap a Wireshark s WinPcap. Ak najprv nainštalujete Wireshark, potom netreba osobitne inštalovať WinPcap, pretože Wireshark tú knižnicu už obsahuje, ale pre správnu funkčnosť WinDump je treba mať WinPcap nainštalované - je ale jedno, či je to tá z Wiresharku alebo osobitne nainštalovaná WinPcap. WinDump sa neinštaluje, spúšťa sa priamo napísaním WinDump a parametrov, skopírujte si ho napr. do c:\util (prípadne iného adresára vášho vkusu) Wireshark (pôvodný názov ethereal) z www.wireshark.org, tcpdump a libpcap z www.tcpdump.org. Oba nástroje sú priamo vo všetkých desktopových distribúciách, najjednoduchšie je ich nainštalovať cez váš balíčkovací systém.

Poznámky

Keď sa bude písať o príkazovom riadku, resp. shelli vo Windows, myslí sa tým: vybereme Start->Spustit a napíšeme cmd, Enter a zbytok príkazov určených pre príkazový riadok píšeme sem. V Linuxe sa predpokladá, že máte sieťovku pod označením eth0 (inak zamienať v príkazoch).

Krok 1 nevyžaduje žiadne extrémne technické znalosti, len poznať váš operačný systém. Kroky 2-4 už trocha ano, ale znalosť protokolov 802.1x, DHCP, DNS, atď nie je nutná, základ je zistiť "posiela váš počítač vôbec niečo a dostáva niečo späť"?



Krok 1 - najbežnejšie problémy

  • nezaplatený net za daný mesiac, skontrolujte v NET IS u spolubydliča. Jednak pár dní trvá, kým sa prevedie platba (typicky 1-3 pracovné dni medzi bankami od pokynu) a jednak nejaký čas trvá, kým to IS zistí (nasledovný deň od pripísania na účet IS krátko po 22:00). Pokiaľ platíte ručne vyplneným príkazom k úhrade, je možné, že úradník spraví preklep pri prepise (dá sa spätne zistiť porovnaním výpisu účtu a kontrolou kópie príkazu k úhrade).
  • zle opísané/skopírovné username/heslo do 802.1x, skúste opísať znova, hlavne keď máte net zavedený prvý krát. Skontrolujte, či nastavenia sedia podľa postupu pripojenia.
  • prekročený limit na odchozie dáta, viz traffic.
  • iná adresa sieťovej karty (MAC) ako bola nahlásená, môže sa stať po výmene sieťovej karty. Prejavuje sa okrem iného aj tak, že sa nepodarí získať autentizáciu. Pozrite sa na NET IS u kolegu/spolubydliča, či nahlásená MAC sedí s aktuálnou:
Windows XPLinux
v príkazovom riadku zadáme
    ipconfig /all
    
a hľadáme riadok obsahujúci "Fyzická adresa: 01-88-DE-AD-BE-EF" (vaša MAC adresa samozrejme bude iná)
v shelli (ako root)
    ifconfig eth0
    
Hneď prvý riadok výstupu:
    eth0      Link encap:Ethernet  01:88:DE:AD:BE:EF
    
  • je zlý kábel/nie je signál/port na switchi nebol aktivovaný - prejavuje sa to tak, že LED dióda na sieťovke vôbec nesvieti, alebo svieti, ale nebliká (závisí od sieťovky). Neaktivovaný switch môže byť v prípade, že ste si len nedávno zaregistrovali net nanovo. Počet prijatých paketov 0 indikuje, že problém môže byť problém práve tu. Je tiež možné, že máte nesprávne nastavený "media type" (autonegotiation, rýchlosť, duplex)
Windows XPLinux


Ak je počet prijatých paketov 0 aj po dlhšej dobe (cca minúta-5 minút), pravdepodobne je problém s káblom alebo neaktivovaným portom na switchi.

V shelli ako root: tcpdump, po minúte dvoch zakillujeme cez Ctrl+C
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 68 bytes
    0 packets captured
    0 packets received by filter
    0 packets dropped by kernel
    


Krok 1a - jednoduché a obskurné problémy

Inak povedané - stalo sa, riešenie je jednoduché, ale občas sa ťažko hľadá:
  • zle nastavený čas - rádovo o mesiace/roky, OS kvôli tomu zamietne certifikát
  • pri kopírovaní hesla medzi Windows-Linux ste skopírovali aj newline (znak nového riadka), riešenie je skúsiť opísať znak po znaku
  • sieťový kábel/zásuvka je len "napoly zlý", tj. prepúšťa pakety len "občas/s náhodnými chybami"

Krok 2 - skontrolovať nastavenie a funkčnosť 802.1x autentizácie

Potrebujete zistiť 3 veci:
  • posiela váš počítač žiadosť na autentizáciu?
  • dostáva aspoň nejakú odpoveď na žiadosť o autentizáciu?
  • dostáva ako výsledok Failure?
Najprv vypneme sieťový interface, zapneme, začneme sledovať pakety a pustíme autentizáciu takto:
Windows XPLinux
Start->Nastavení->Síťová připojení->pravý klik na pripojenie ku kolejnetu (väčšinou sa nazýva Připojení k místní síti) a dajte Zakázat. Vytiahneme sieťový kábel a povolíme pripojenie. Do príkazového zadáme príkazy (predpoklad je, že WinDump máte v c:\util, inak zmeňte adresár)
    c:
    cd \util
    WinDump.exe -s 0 -w output.dump
    

Zapojíme sieťový kábel naspäť, OS zistí pripojenie kábla (uplink) a začne autentizáciu. Počkáme, kým Windows neohlási "Ověřování se nezdařilo" (trvá cca 10-30 sekúnd) a v príkazovom riadku stlačíme Ctrl+C, čo zastaví ten WinDump a v adresári c:\util nám pribudne súbor output.dump.

V shelli ako root:
    ifconfig eth0 down
    ifconfig eth0 up
    tcpdump -s 0 -w output.dump
    

Vo vedľajšom shelli pustíme autentizáciu - tu závisí, ako to máte spravené, buď pustite /etc/init.d/net.eth0 start, ifup eth0, wpa_supplicant -C config_file, xsupplicant -c config_file, atď. tcpdump po čase zakillujeme, keď wpa_supplicant/xsupplicant zahlási neúspech (supplicanti majú možnosť zapnúť debugovacie hlášky, viz manuál, z debugovacích hlášok sa dá možno vyčítať viac než z etherealu).

V prípade úspechu 802.1x klienta pustíme ešte aj DHCP klienta (pre ďalší krok), nech máme všetky pakety v jednom dumpe a tcpdump zakillujeme až potom.

Poznámka: ak máte viac sieťových interfacov (sieťoviek), tcpdump aj WinDump má parameter -i, kde je možné špecifikovať presne sieťovku.

Spustíme Wireshark (ethereal) a otvoríme v ňom ten súbor output.dump, ktorý vytvoril tcpdump/WinDump. Wireshark zásadne spúšťame pod neprivilegovaným účtom (tj. nie root, nie Administrator), z bezpečnostných dôvodov. Wireshark má implicitne nastavené dekódovanie MAC adries podľa výrobcu, vypnúť sa to dá v menu zrušením View->Name Resolution->Enable for MAC layer a zmačknutím Ctrl+R (inak miesto MAC 00:0d:87:ab:cd:ef budete vidieť "dekódovanú MAC" Elitegro_ab:cd:ef).


Obrázok 1: neúspešné overenie


Obrázok 2: úspešné overenie

Ako prvé do políčka Filter (5) dáme "eapol" a potvrdíme Enterom. To odfiltruje len 802.1x autentizáciu. Prezrieme pakety, či sa tam nachádza niekde Failure/Success (2 alebo 6). Pozrieme sa, či vôbec počítač odosiela 802.1x pakety a či dostáva 802.1x pakety (3 a 4), kto je odosielateľ zistíte podľa stĺpca "Source" porovnaním s vašou MAC adresou. Ak sa po odfiltrovaní cez "eapol" filter nič neobjaví, tak počítač ani nič neodosiela, ani nedostáva. Ak počítač neodosiela 802.1x pakety, tak je chyba na vašej strane a zrejme je niekde chyba v nastavení 802.1x klienta. Ak počítač 802.1x pakety odosiela, ale nič nedostáva, je chyba na strane switchu, resp. serveru obstarávajúceho autentizáciu (treba poslať hlásenie a uviesť tento fakt tiež s tým, či máte uplink).

Ak je výsledok Failure, tak je zrejme problém v nastavení username/hesla/autentizačnej metódy (alebo nezaplateným netom/prekročeným limitom odchozích dát, ale to by ste sa mali dozvedieť už v predchádzajúcom kroku pri kontrole NET IS). Skontrolujte a keď je z vašej strany všetko v poriadku, tak zrejme ide o problém s autentizačným serverom a treba poslať hlásenie a uviesť tento fakt.

Ak je výsledok Success, ale napriek tomu nefunguje net, ideme na ďalší krok - overenie adresy pridelenej od DHCP.



Krok 3 - Overenie pridelenia adresy od DHCP

Vo Wiresharku do políčka na filter dáme "bootp" a potvrdíme Enterom. To odfiltruje len DHCP/BOOTP protokol (dôležité sú popisy paketov, viz 8 v nasledovnom obrázku). Nebudeme popisovať kompletný DHCP protokol, len nástrel - základ je zistiť "posiela váš počítač požiadavky a vidíte v zachytenom dumpe nejakú odpoveď?". Zameráme sa na otázky:
  • ak máte notebook, ktorý používate jak v práci, tak na koleji, je celkom možné, že "nestihol zistiť", že sa mu zmenila sieť, špeciálne ak bol pri odchode z práce uspaný (suspend). Treba skontrolovať, či aktuálne nastavenie siete sedí, zakázať sieťový interface a znova povoliť.
  • posiela váš počítač žiadosť o pridelenie adresy? Mali by ste vidieť odoslané "DHCP discover", "DHCP request" alebo "DHCP inform". Inak váš počítač neodosiela požiadavky a asi máte pravedpodobne nastavenú pevnú IP adresu
  • dostáva počítač odpoveď od DHCP servera? Mali by tam byť pakety "DHCP offer" a "DHCP ACK". Ak počítač nedostáva odpovede od DHCP servera, treba poslať hlásenie
  • dostáva počítač adresu 195.113.24-27.x, 195.113.16.x, 10.x.x.x alebo niečo úplne iné? (viz 7 na obrázku, hľadajte v pakete "DHCP ACK") Po úspešnej 802.1x autentizácii by mal dostať niektorú zo spomenutých 195.113.x.x.
Úspešné pridelenie adresy vyzerá zhruba takto (ale odpoveď od DHCP môže vyzerať aj inak):

Obrázok 3: úspešné pridelenie IP adresy od DHCP serveru
Nakoniec skontrolujeme, či počítač "zobral na vedomie" pridelenú IP adresu, vo Windows cez ipconfig /all, v Linuxe cez ifconfig eth0. Ak by ste tam uvideli inú adresu než pridelenú, tak je problém niekde v konfigurácii OS/siete.


Krok 4 - Overenie funkčnosti DNS a konektivity von do internetu

Keď ste sa dostali až sem a net poriadne nejde, znamená to, že 802.1x autentizácia prešla a máte pridelenú správnu IP adresu. Problém môže byť ešte v DNS alebo v odrezaní koleje od zbytku sveta. Urobíme najprv z príkazového riadku (shellu) ping na gateway, potom "von do sveta" a nakoniec otestujeme DNS nasledovne:
Windows XPLinux
prípad neúspechu:
    ping 195.113.24.1

    Príkaz PING na 195.113.24.1 s délkou 32 bajtu:

    Cílovy hostitel není dostupny.
    Cílovy hostitel není dostupny.
    Cílovy hostitel není dostupny.
    Cílovy hostitel není dostupny.

    Statistika ping pro 195.113.24.1:
    Pakety: Odeslané = 4, Prijaté = 0, Ztracené = 4 (ztráta 100%)
    

prípad úspechu:

    ping 195.113.24.1

    Príkaz PING na 195.113.24.1 s délkou 32 bajtu:

    Odpoved od 195.113.24.1: bajty=32 cas=3ms TTL=64
    Odpoved od 195.113.24.1: bajty=32 cas < 1ms TTL=64
    Odpoved od 195.113.24.1: bajty=32 cas < 1ms TTL=64
    Odpoved od 195.113.24.1: bajty=32 cas < 1ms TTL=64

    Statistika ping pro 195.113.24.1:
    Pakety: Odeslané = 4, Prijaté = 4, Ztracené = 0 (ztráta 0%),
    Priblizná doba do prijetí odezvy v milisekundách:
    Minimum = 0ms, Maximum = 3ms, Prumer = 0ms
    
    $ ping -n -c 4 195.113.24.1
    
    PING 195.113.24.1 (195.113.24.1) 56(84) bytes of data.
    64 bytes from 195.113.24.1: icmp_seq=1 ttl=64 time=0.265 ms
    64 bytes from 195.113.24.1: icmp_seq=2 ttl=64 time=0.215 ms
    64 bytes from 195.113.24.1: icmp_seq=3 ttl=64 time=0.323 ms
    64 bytes from 195.113.24.1: icmp_seq=4 ttl=64 time=0.276 ms

    --- 195.113.24.1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 2998ms
    rtt min/avg/max/mdev = 0.215/0.269/0.323/0.043 ms
    
Pingneme počítač vonku na internete, vyskúšajte tieto adresy miesto 195.113.24.1: 64.233.187.99, 64.233.167.99, 72.14.207.99, 194.228.32.3 (google, seznam), neviem ale na 100%, či budú rovnaké aj o mesiac. Strata paketov znamená problém - 100%-ná strata znamená, že je niekde odrezaný kábel, resp. iná HW/SW závada, menej než 100% ale viac než 0% indikuje tiež problém (zriedkavo je pôvodcom sama sieťovka, ale môže sa stať), treba napísať report o závade.
Otestujeme DNS na nejaké "dobre známe názvy": www.kolej.mff.cuni.cz, google.com, seznam.cz, kernel.org, atď. V úspešnom prípade by mal výstup vyzerať asi takto:
Windows XPLinux
V príkazovom riadku dáme príkaz nslookup google.com, resp. nahradíme google.com za iné meno.
    Server:  ns.kolej.mff.cuni.cz
    Address:  195.113.24.1
    
    Name:    google.com
    Address:  64.233.187.99
    
V shelli host google.com:
    google.com has address 64.233.167.99
    google.com has address 72.14.207.99
    google.com has address 64.233.187.99
    google.com mail is handled by 10 smtp1.google.com.
    google.com mail is handled by 10 smtp2.google.com.
    google.com mail is handled by 10 smtp3.google.com.
    google.com mail is handled by 10 smtp4.google.com.
    
Pri probléme s DNS najprv skontrolujeme, či máme nastavenú automatickú konfiguráciu DNS (viz spomenutý návod). V prípade, že to máme nastavené správne a DNS odmieta fungovať, treba poslať hlásenie o závade.