Handig gereedschap om netwerkproblemen op te sporen

In deze lesbrief gaan we kijken naar commando's die je kan gebruiken om informatie te krijgen over het netwerk.
Aan de orde komen:
Als je deze lesbrief hebt doorgenomen en de commando's kent kun je van heel wat veel voorkomende netwerkproblemen de oorzaak achterhalen. Om commando's te leren kennen is het nodig om niet alleen deze lesbrief door te lezen maar er zelf mee te spelen.

Linux of windows?

Of je deze lesbrief doorneemt vanaf een linux-systeem of vanuit windows hangt een beetje af van je mogelijkheden. Het handigst is om het voor allebei te doen. Op school kan dat bijvoorbeeld om vanaf je pc ook in te loggen op een linuxmachine met behulp van putty.
De meeste van deze commando's bestaan in linux en window, soms onder een iets andere naam.
We zullen beide gaan bekijken en per commando een stuk specifiek over windows en over linux invoegen.

Om het wat overzichterlijker te maken heeft het linux gedeelte een gele achtergrond

De stukken die specifiek over windows gaan zijn blauw

De command-line

Als je met een linux-machine werkt (bv met Knoppix) moet je een xterm openen om op de commandline (opdrachtregel) te komen.
Als je deze lesbrief thuis volgt (en je nog geen linux op je pc hebt geinstalleerd) is het het handigst om met knoppix te werken (vraag mij als je die nog niet hebt).
Op school hebben we tijdens de computerclub vaak 2 linuxmachines aan staan waar je op in kunt loggen via ssh, de adressen staan dan op het bord. Om verbinding te maken gebruik je het programma Putty dat in de map bewaren van de computerclub staat. In putty moet je het ipadres dat op het bord staat invullen en kiezen voor ssh. Om in te loggen op een linuxmachine moet je uiteraard wel een loginnaam en wachtwoord hebben (als je die nog niet hebt moet je het even aan mij vragen).

Er zijn in windows verschillende manieren om op de commandline te komen:

-Klik op uitvoeren en tik in cmd of:
-Ga naar start - programma's - bureau-assesoires - Opdrachtprompt

Op school en thuis zal je het op die manier kunnen doen.
Je hebt echter plekken waar de systeembeheerder het je moeilijk maakt om op de opdrachtprompt te komen. Dan moet je wat meer moeite doen :-)

-open de verkenner via rechts klikken op start of met windows-toets en E, je kunt hem dan opzoeken via C - WINNT - system32 - CMD.exe

Als ook dat je onmogelijk wordt gemaakt (je hebt nu eenmaal systeembeheerders die willen verhinderen dat hun gebruikers krachtige programma's als de opdrachtprompt gebruiken) moet je een andere truc gebruiken.
Als er word op staat kun je dat gebruiken, kiezen voor openen, naar de C-schijf gaan en dan rechts klikken in het venster, dan kun je kiezen voor verkennen. De rest staat hierboven :-)

ipadressen

Om computers met elkaar te laten communiceren moet elke computer, of om preciezer te zijn elke netwerkkaart voorzien zijn van een (uniek) nummer. Zo'n nummer heet een ip-adres. Een ipadres bestaat uit 4 getallen tussen de 0 en 255, gescheiden door een punt.

Hoe komt je netwerkkaart aan zo'n IP-adres?
Dat kan op 2 manieren:
deze wil ik graag hebben localhost
Er is een adres dat je altijd heb, je zogenaamde "loopback interface". Deze heeft het adres 127.0.0.1
Een andere naam is localhost

netmask
Behalve het ip-adress is het van belang dat je het netmask weet. Het netmask geeft aan welke pc's in hetzelfde netwerk zitten.
Van de 4 door punten gescheiden getallen geven een aantal het netwerk aan en een aantal (vaak alleen de laatste) het computernummer in het netwerk
Het netmask geeft aan dat de getallen waarvan het netmask 255 is behoren tot hetzelfde netwerk. Dit verhaal begrijp je misschien beter met een voorbeeld.
Mijn computer heeft ip-adres 192.168.2.101, en netmask 255.255.255.0. Dat betekent dat hij een computer met ipadres 192.168.2.1 wel ziet als behorende bij het eigen netwerk maar een pc met adres 192.168.1.1 niet.

broadcast
Het laatste adres dat je moet herkennen is de broadcast, dat is het netwerkadres met als laatste 255, op dit adres worden boodschappen verspreid waar alle computers in het netwerk naar luisteren. Op mijn pc is de broadcast 192.168.2.255

(het verhaal hierboven is wat kort door de bocht en klopt ook niet meer als je ook met subnets gaat werken. Om er meer van te begrijpen moet je in ieder geval de lesbrief over binaire getalllen doorgelezen hebben en daarna kun je deze toelichting lezen.)

Genoeg theorie, laten we eerst maar eens gaan kijken hoe we kunnen vinden wat het eigen ipadres is

Met linux is het eenvoudig genoeg. Je geeft op de prompt het commando:
/sbin/ifconfig
en alle gevraagde gegevens komen op je scherm

ifconfig

Hoe je in windows op de opdrachtregel komt is hierboven beschreven.
Tik in ipconfig /all en je krijgt een heleboel gegevens, niet alleen je ipadres maar ook netmask en gateway



Met de opdracht ipconfig kun je nog meer dingen doen, probeer eens ipconfig /? om te zien wat de mogelijkheden zijn.

Als je een oudere versie van windows hebt (windows 95, windows 98, windows me) gebruik je winipcfg

ipcfg


Ping

ping is ongetwijfeld het meest gebruikte gereedschap om netwerkproblemen op te sporen. Wat je doet als je pingt is niet meer dan een klein datapakketje sturen en kijken hoe de andere kant daar op reageert. Als het goed is stuurt de ontvangende computer een pakketje terug en kun je dus zien dat die computer aan staat. Het kan ook zijn dat de computer waarheen je pingt wel aanstaat maar niet reageert uit veiligheidsoverwegingen :-)
De officiele naam voor pingen is een ICMP echo request, je stuurt namelijk een icmp-pakketje en je verzoekt daarop te antwoorden.

Bij netwerkproblemen onderzoek je vaak achtereenvolgends:
Pingen gaat in windows en linux hetzelfde, tik in: ping naam_van_de_pc

ping

ping -? geeft je voor zowel windows als linux verdere opties, voor linux kun je uiteraard ook de man-pages raadplegen

nslookup

Een computer heeft een naam en een ip-adress. Op het internet zoeken we op adress maar we geven vaak de naam op, we vragen bijvoorbeeld om www.calandlyceum.nl i.p.v. 80.69.72.18. Er moet dus "vertaald worden" van naam naar ip-adress. De computers die dat doen heten nameservers of DNS-servers. Als je je ipadress via dhcp krijgt krijg je daar (vaak) ook de dns informatie bij.

Als je wilt weten welk ip-adress bij een naam hoort (of omgekeerd) en je wilt weten weten van welke nameserver je die informatie krijgt gebruik je nslookup
nslookup is er zowel voor linux als voor windows (vanaf versie 2000, de oude windowsversies (95, 98 en me) kennen het niet).

nslookup

host

De commando's host en dig bestaan alleen in linux, als je windows gebruikt moet je nslookup gebruiken.

host vertaald namen in ip-adressen en omgekeerd

Host

dig

Met dig kun je ook het ip-adress bij een naam achterhalen. dig heeft een heleboel opties, zo kun je bijvoorbeeld aangeven bij welke nameserver de informatie moet worden gehaald

dig

traceroute

Soms vraag je een pagina op maar blijft je scherm leeg. Er gaat ergens wat mis. Maar waar? In je eigen netwerk? Bij je provider? Of nog verder weg? Om daar iets over te zeggen is het handig om te kijken naar de route die jouw aanvraag volgt en te kijken waar het blijft steken. Daarvoor gebruik je traceroute.

Tik in traceroute naam_van_de_site:

traceroute

Als de site niet bereikbaar is blijft het ergens steken en verschijnen er sterretjes:

traceroute"


In windows is traceroute ook bekend maar heet het commando tracert

tracert



NAT (Network Address Translation)

Je begrijpt dat er al lang niet genoeg unieke adressen zijn voor elke computer. Gelukkig zijn er een aantal adressen die iedereen mag gebruiken binnen het eigen netwerk.
Die adressen zijn:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Als je naar het ip-adres van je computer op school kijkt zul je zien dat die ook zo'n adres uit de "private range" heeft

Een computer met zo'n adres kan niet rechtstreeks het internet op, er zouden dan immers een heleboel computers tegelijk met het zelfde ipadres zijn en dat kan niet. Om toch het internet op te gaan is zo'n computer verbonden met een router. De router heeft behalve een intern-adres (in dezelfde range als je computer) ook een public ip-adres. Van een pakketje dat door een interne computer naar het internet wordt verzonden wordt door de router het ip-adres vervangen door het public ip-adres. Als er antwoord terugkomt zend de router het pakketje weer door naar de computer waarvan de aanvraag kwam
Dit "vertalen" van ip-adressen word Network Adress Translation genoemd, oftewel NAT

netstat

De computer moet via de router naar het internet. Zo'n "uitgang" noemen we een ook wel een gateway. Het is nodig dat de pc weet wat de gateway is.
Een van de zaken die je moet controleren als het je niet lukt om verbinding te krijgen is of je computer naar de juiste gateway gaat. Je wilt weten of je pc de juiste route weet, ofwel de routing table
Met het commando netstat kun je o.a. de routing table van je systeem bekijken. Met netstat kun je nog veel meer, dat komt in een andere lesbrief nog aan de orde. De optie die je hier gebruikt is netstat -nr

Je kunt het zowel in windows als linux gebruiken

netstat



naar boven