6. december

Hvordan hænger internettet sammen?

traceroute

Kan du ikke længere komme igennem til maskinen på dit kontor hjemmefra? Eller går det bare meget langsomt? Vil du vide hvor på nettet det går galt?

Kommandoen "traceroute" giver dig information om hvilke maskiner pakker sendt fra din maskine til en anden maskine passerer. Den helt enkle måde at bruge den på er:

~/ > traceroute tyge.sslug.dk
traceroute to tyge.sslug.dk (130.225.226.90), 30 hops max, 38 byte packets
 1  riso-unic (130.226.48.2)  3.451 ms  1.131 ms  1.136 ms
 2  130.225.244.185 (130.225.244.185)  1.200 ms  1.115 ms  1.076 ms
 3  FNET.dk-gw7000.router.darenet.dk (130.225.244.241)  1.760 ms  1.540 ms  1.567 ms
 4  Panum.1.router.darenet.dk (130.225.244.253)  2.742 ms  2.330 ms  2.380 ms
 5  130.225.244.131 (130.225.244.131)  3.368 ms  3.046 ms  3.040 ms
 6  teil2-5-gw.net.ku.dk (130.225.204.109)  2.612 ms  2.662 ms  2.916 ms
 7  fw2.nbi.dk (130.225.212.198)  3.278 ms  3.677 ms  3.048 ms
 8  cvs.sslug.dk (130.225.226.90)  2.510 ms  3.202 ms  3.836 ms
~/ >

Dette eksempel viser en forholdsvis god forbindelse, hvor der er syv maskiner mellem maskinen "traceroute" bliver kørt på og den maskine hvortil forbindelsen blev undersøgt (cvs.sslug.dk og tyge.sslug.dk er forskellige navne for den samme maskine). De tre sidste tal på hver linie er tre målinger af hvor lang tid, det tager at sende en pakke til maskinen, hvis navn står forrest på linie og maskinen der spørger.

Hvis der er problemer med forbindelsen, vil "traceroute" udskrive en stjerne (*) for hvert forsøg der mislykkes. På grund af den måde "traceroute" virker på, kender den ikke navnet på de maskiner pakkerne passerer, før der er kommet svar fra dem. Derfor vil du nogen gange komme ud for at der kommer en eller to stjerner før maskinnavnet, eller at der ligefrem bare kommer tre stjerner og ikke noget maskinnavn. Her er der et eksempel fra en forholdsvis dårlig forbindelse mellem København og Paris:

~/ > traceroute d22-5-apple0.lps.ens.fr
traceroute to d22-5-apple0.lps.ens.fr (129.199.120.165), 30 hops max, 40 byte packets
 1  nbi-gw (130.225.212.1)  1 ms  2 ms  1 ms
[...]
 7  nordunet.se.ten-155.net (212.1.192.153)  13 ms  13 ms  13 ms
 8  ch-se.ch.ten-155.net (212.1.192.45)  67 ms  62 ms  62 ms
 9  212.1.194.14 (212.1.194.14)  85 ms  85 ms  80 ms
10  geneva1.ch.att-unisource.net (195.206.65.105)  287 ms  88 ms  86 ms
11  paris5.fr.att-unisource.net (195.206.65.49)  87 ms  86 ms  95 ms
[...]
20  nio-i.cssi.renater.fr (193.51.206.33)  429 ms *  408 ms
21  * * 193.51.206.146 (193.51.206.146)  429 ms
22  * * *
23  * * *
24  danton2.rerif.ft.net (193.48.75.6)  412 ms * *
25  danton1.rerif.ft.net (193.48.58.6)  392 ms  428 ms *
26  * * *
27  195.83.239.158 (195.83.239.158)  451 ms  446 ms  422 ms
28  * merlin-gw.ens.fr (129.199.1.16)  431 ms *
29  d22-5-apple0.lps.ens.fr (129.199.120.165)  424 ms *  436 ms
~/ >

Man kan se at der er flere steder i den franske ende af forbindelsen, hvor pakkerne ikke kommer igennem hver gang. Man kan også se på tiderne at der er en betydelig forsinkelse på forbindelsen mellem Sverige (nordunet.se.ten-155.net) og Schweiz (ch-se.ch.ten-155.net) og at det alt i alt tager 4/10 sekund for data at nå fra København til Paris og tilbage igen. Når man kan se, hvor det går galt, så har man også en idé om hvor man kan få besked om hvad der sker og hvornår fejlene udbedres.

Nogle gange er der mere end 30 hop fra en maskine til en anden (mere end 29 maskiner imellem). Hvis du støder ind i det problem, kan du med flaget "-m" øge antallet af hop, som "traceroute" forsøger sig med. "-m 60" skulle være rigeligt med den størrelse internettet har i dag:

~/ > traceroute -m 60 maskine.i.langbortistan
traceroute to maskine.i.langbortistan (257.260.305.767), 60 hops max, 38 byte packets
 1  nbi-gw (130.225.212.1)  1 ms  1 ms  2 ms
 2  teil1-3-gw.net.ku.dk (130.225.204.110)  2 ms  3 ms  2 ms
[...]
44  portner.i.langbortistan (257.260.305.747) 642 ms  881 ms  776 ms
45  maskine.i.langbortistan (257.260.305.767) 656 ms  891 ms  796 ms
~/ >

host

Det sker at man har brug for navnet på en maskine - eller i det mindste den virksomhed, der har ansvaret for den - men ikke har andet end maskinens adresse (dens IP-nummer). Hvis maskinen har et navn, kan du bruge kommandoen "host" til at slå det op:

~/ > host 130.225.226.81
81.226.225.130.in-addr.arpa. domain name pointer munin.nbi.dk.
~/ >

Du kan også slå maskinens adresse op, hvis du har navnet:

~/ > host hugin.ldraw.org
hugin.ldraw.org. is an alias for www.ldraw.org.
www.ldraw.org. has address 130.225.226.81
~/ >

Hvis det ikke virker, så kan du forsøge dig med "traceroute" til adressen. Det giver dig ikke selve maskinens navn, men af de sidste par maskinnavne i den liste du får ud, kan du normalt gætte, hvilken virksomhed det drejer sig om.