Det finstilta: För att ge en något förenklad bild av hur information rör sig på Internet så begränsar jag mig till IP (Internet Protocol).
Det här med nät är ju roligt. Titta bara på sociala nätverk som Facebook, MySpace och så vidare. Något som jag själv anser är ännu roligare, och troligtvis mer givande, är datanätverk som exempelvis Internet. För en leverantör av tjänster på Internet såsom Loopia, så är det viktigt med redundans i anslutningen mellan de servrar man har och Internet. Ett vanligt sätt att få ”riktig” redundans är med hjälp av BGP (Border Gateway Protocol), vilket är ett protokoll som i korthet används för att bestämma nästa steg för transporten av data från källa till mål.
På Internet finns ”öar” med nätverk, så kallade AS (Autonoma System). Ett AS kan betraktas som en behållare för nätverk och i de punkter där dessa AS möts hittar man routers. När en router får information som skall vidare någonstans så tittar routern på IP-adressen för målet. Om målet ligger utanför det egna AS:et så slår routern upp, beroende på målets IP-adress, vilket AS som informationen skall till härnäst, och skickar informationen vidare till rätt AS. Detta fortsätter ända tills informationen nått målet. Om det skall tillbaka ett svar så är det inte säkert att svaret tar samma väg tillbaka. Nu kommer kunskapsstinna läsare protestera lite och påpeka att det faktiskt finns interna routrar i större nät också, vilket stämmer. Men i detta inlägg fokuserar jag bara på så kallade borderrouters mellan AS.
Borderrouters används således som en slags gränsövergång mellan nätverk. Loopias nätverk finns i AS39570 och vårt AS har via våra routers direktkontakt med två andra AS, Telias AS3301 och Tele2s AS1257. En router kan välja att skicka information via nästa AS baserat på en rad olika kriterier, exempelvis kapacitet på anslutningen, vilket land som routern står i, avsiktlig viktning och annat. Framförallt kan vägval göras baserat på om en ansluting är bruten eller inte, vilket är viktigt i just redundanssyfte. Loopia har två Internetleverantörer idag, Telia och Tele2. I normalfallet får och skickar vi trafik till båda leverantörerna. Vilken leverantör som väljs beror på det routingmässiga avståndet på Internet till oss. Om en av anslutningarna mellan oss och en Internetleverantör får ett avbrott så kommer routrarna automatiskt att upptäcka det och skicka allt via en av de fungerande anslutningarna.
Allt det här är ju trevligt, men varför skriver jag om det här då? Jo, för att när man sitter och tittar på tjänsteutbud, priser och annat smått och gott som de olika webhotellen erbjuder så är detta en sak att fundera över. Vad skall man fråga sitt tilltänkta webhotell? Man kan exempelvis fråga om de har redundant anslutning till Internet. Om de säger ja, fråga vilka AS de är direktanslutna till och om BGP används, för att på så sätt försöka avgöra om de verkligen har ”riktig” redundans eller bara två sladdar till ett och samma modem i källaren. Det kan naturligtvis även vara ett visst värde i att webhotellet använder etablerade, välkända Internetleverantörer.
För att ta fram vilket AS en viss IP-adress hör till så kan man använda UNIX-kommandot whois:
> whois 194.9.94.162 OrgName: RIPE Network Coordination Centre OrgID: RIPE Address: P.O. Box 10096 City: Amsterdam StateProv: PostalCode: 1001EB Country: NL ... ... origin: AS39570 mnt-by: LOOPIA-MNT source: RIPE # Filtered
Origin säger att IP-adressen, som går till www.loopia.se, hör till AS 39570.
Hemläxa
Med UNIX-kommandot whois kan man prata med (bland annat) RIPE:s whoisdatabas och få fram information om AS:
> whois -h whois.ripe.net as39570 % This is the RIPE Whois query server #1. % The objects are in RPSL format. % % Rights restricted by copyright. % See http://www.ripe.net/db/copyright.html ...
Man kan blandannat utläsa vilka nät som annonseras och annat matnyttigt.
Ett annat bra kommando är traceroute, med vilket man kan se vilka nätverksenheter som passeras på vägen mellan dig och någonstans på det stora vida Internet:
> traceroute ftp.sunet.se traceroute to ftp.sunet.se (194.71.11.69), 64 hops max, 40 byte ... 1 fw1-1.fw-int.core.loopia.se (194.9.95.225) 0.321 ms 0.165 ... 2 rtr1.bgp4.core.loopia.se (194.42.55.169) 0.494 ms 0.389 ms ... 3 telia.isp.core.loopia.se (194.42.55.162) 1.088 ms 1.723 ms ... 4 81.228.103.160 (81.228.103.160) 316.588 ms 16.742 ms ... 5 u-b-c5-link.se.telia.net (81.228.79.96) 9.863 ms 10.548 ms ... 6 fre-c5-link.se.telia.net (81.228.75.100) 9.828 ms 10.979 ms ... 7 fre-peer1-link.se.telia.net (81.228.75.101) 8.484 ms 8.285 ... 8 sunet.se.telia.net (195.67.220.150) 28.981 ms 8.188 ms ... 9 a1sth-ae5.sunet.se (130.242.82.210) 6.268 ms 23.499 ms ... 10 ftp-g.sunet.se (193.11.0.242) 10.133 ms 13.813 ms 10.716 ... 11 194.71.11.69 (194.71.11.69) 8.476 ms 7.666 ms 9.038 ms
Sen kommentar, men antyder rubriken att ni bytt till OpenBGPD hos Loopia? Såhär i backspegeln, hur har det funkat?
Vi har använt OpenBGPD ända sedan vi började hantera BGP själva.
OpenBGPD har fungerat klockrent och helt utan problem. Vi har BGP-sessioner mot flera ISP:er som använder diverse olika router-tillverkare, t.ex Cisco över både IPv4 och IPv6 och allt fungerar toppen.
OpenBGPD laddar dessutom routes så snabbt att Cisco känns som en snigel.
Och så använder vi CARP för redundans både av borderrouters och brandväggar, vilket fungerar minst lika bra.