I dag har runt 14 procent av världens befolkning tillgång till internet, men med nuvarande version 4 av ip-protokollet kommer vi aldrig att nå över 20 procent. Lösningen på problemet heter ipv6, som ger oss tillräckligt med ip-adresser för att koppla upp i stort sett varenda­ pinal på jordklotet. I stället för ett adressutrymme begränsat till dagens 32 bitar får vi med ipv6 hela 128 bitar.

De flesta nya Linuxdistributioner har ipv6 aktiverat, men är det inte aktiverat gör du det med kommandot modprobe ipv6. Slår du sedan kommandot ifconfig kommer du förutom den välbekanta ipv4-adressen även ha en inet6-adress som har formen fe80::5cca: 11ff:fe16:e52c/64.

Adressen kallas link local och skapas med en algoritm som bygger på nätverkskortets mac-adress.

Jämför du din ipv6-adress med mac-adressen för ditt nätverkskort ser du att flera siffror är identiska. Första delen av adressen är fe80::, vilket betyder att adressen enbart förekommer på det lokala nätverket och att den aldrig kommer att passera en router.

Två kolon ger nollor


Vän av ordning ser direkt att adressen i exemplet inte består av 128 bitar. Förklaringen är att ipv6-adresser kan ”kortas ned” med två kolon direkt efter ­varandra. Två kolon betyder att det området fylls ut med nollor. Vår adress är alltså egentligen fe80:0000:0000:0000:5cca:11ff:fe16:e52c. Inledande nollor i varje fält behövs inte heller skrivas ut. Dubbla kolon kan bara användas en gång i samma adress.

”Vän av ordning ser direkt

att adressen i exemplet inte
består av 128 bitar.

ipv6 har också sin egen ”localhost”, men i stället för 127.0.0.1 heter adressen ::1. Slår du kommandot ping6 ::1 svarar localhost. En annan specialadress som är bra att känna till är ::, som är ipv6:s motsvarighet till 0.0.0.0. Den används bland annat när du vill att en servertjänst ska lyssna på alla tillgängliga adresser.

Privata nät även i ipv6


Precis som du har privata nätverk i ipv4, exempelvis 10.0.0.0/8, har du en rad privata­ nätverk i ipv6. Giltiga nät ­börjar med fecx:, fedx:, feex: och fefx: där ”x” är godtycklig hexadecimal siffra, vanligtvis noll. Däremot har de här privata nätverken till stor del spelat ut sin roll, eftersom hela vitsen med ipv6 är att alla digitala ­enheter ska ha sin egen publika adress. Du måste bara hitta ­vägen ut.

Med kommandot ifconfig är det enkelt att modifiera ip-adressen direkt vid kommandoprompten. ipv6 skiljer sig lite från ipv4. Du anger en adress genom att skriva ifconfig eth0 add 2001:0db8:100:f101::1/64. Tänk på att det är viktigt att ange nätmasken.

Dina klienter i nätverket får vanligtvis sina adresser via automatisk ip-tilldelning, men på en server anger du givetvis ipv6-adressen statiskt och det gör du på det vanliga stället. Hos Debian eller Ubuntu är det filen /etc/network/interfaces som gäller. I sektionen för eth0 skriver du:

auto eth0
iface eth0 inet6 static
address 2001:0db8:100:f101::1
netmask 64

Nu ska du kunna aktivera gränssnittet med kommandot ifdown eth1 och sedan ifup eth1. Med ifconfig kan du se om du har lyckats ange en statisk ipv6-adress. I en skarp konfiguration skriver du även in ”gateway” följt av ipv6-adressen till din router.

På servrarna ser du till att ha statiska adresser som du specificerar i /etc/network/interfaces.

Dynamisk ipv6-tilldelning


I stort sett alla små och stora nätverk har i dag automatisk ip-tilldelning och det gäller även ipv6. Fedora driftar projektet dhcpv6, som är en dhcp-server med stöd för ipv6.

I Debian eller Ubuntu installerar du dhcp-servern med kommandot sudo apt-get install wide-dhcpv6-server. Ett exempel på hur konfigurationsfilen, dhcp6s.conf, ska se ut:

interface eth0 {
server-preference 255;
renew-time 60;
rebind-time 90;
prefer-life-time 130;
valid-life-time 200;
allow rapid-commit;
option dns_servers 2001:db8:0:f101::1 sub.domain.example;
link AAA {
range 2001: db8:0 :f101::1000to2001:db8: 0:f101::ffff/64;
prefix 2001:db8:0:f101: :/64;
};
};

Ping är troligtvis det enklaste kommandot systemadministratören har i sin verktygslåda och samtidigt det mest användbara för att kontrollera om det är ”fri väg” till en annan klient ­eller en server. Principen i ipv6 är densamma, men kommandot heter ping6. Om du försöker pinga en lokal adress (som börjar på fe80) måste du även ange vilket gränssnitt adressen sitter på med växeln -I eth0. Du har även traceroute6, som är ipv6-versionen av traceroute och visar alla routerhopp fram till slutdestinationen.

Hitta en mäklare


Nu är det dags att gå ut på ­nätet. I idealfallet är din internetleverantör ansluten till ipv6-nätet och erbjuder dig en väg ut. Då räcker det med att skapa en ­default route med kommandot route -A inet6 add 2000::/3 gw 2001:0db8:0:f101::1. Då kommer du att använda 2001:0db8:0:f101::1 som default gateway för att nå hela det globala 200x-nätet.

Det mest troliga är däremot att din internetleverantör ännu inte har stöd för ipv6. Då kan du ta dig ut på ipv6-nätet ­genom att använda en tunnelmäklare, en tunnel broker. Du har några gratis mäklare att välja mellan.

Vi har positiva erfarenheter av www.tunnelbroker.net. Att sätta upp ett konto går snabbt och du har möjlighet att välja mellan flera olika geografiska punkter i USA, Europa och ­Asien. Välj den punkt som är närmast.

Tunneln kommer att skapas mot den skarpa ipv4-adress som du går ut genom. Tunnelbroker talar sedan om exakt vilka kommandon du därefter måste slå för att komma ut på ipv6-nätet:

ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.66.84.42
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:470:1f12:153::2/64
route -A inet6 add ::/0 dev sit1

Verifiera att tunneln är skapad och att du nu kommer åt externa ipv6-adresser genom att pinga Google med kommandot ping6 ipv6.google.com. Du kan också starta Firefox och gå in på www.kame.net. Om sköldpaddan högst upp i bild rör på sig betyder det att du har anslutit via ipv6.

Om du har lyckats med din ipv6-installation ska sköldpaddan röra på sig när du går in på www.kame.net.

Prova också möjligheten att i Firefox adressfält skriva in http://[2001:6b0:e:1::f:1] och se var du hamnar. Tänk på att du måste ange adressen inom hakparanteser, eftersom kolon är ett specialtecken som används för att specificera protokollet, i det här fallet http.

Tunneln du har skapat hos Tunnelbroker kan du också använda som en intern router om du vill och låta andra datorer på ditt nätverk gå ut den vägen.

På www.tunnelbroker.net registrerar du dig gratis. Väljer du vilken typ av tunnel du vill koppla upp och från vilket operativsystem får du direkt fram de kommandon du måste slå in. Hela proceduren tar inte ens tre minuter.

Fördelen med ipv6 är att du nu har en skarp, publik adress på ipv6-nätet och att du obehindrat kan använda peer-to-peer-tjänster som fildelning och sip-telefoni. Det är tjänster som inte alltid fungerar hundraprocentigt bakom brandväggar av nat-typ. Nackdelen är att all trafik nu tunnlas och därmed inte är lika snabb som om den hade gått ut direkt via din vanliga operatör.

Tänk på att du samtidigt har skapat ett potentiellt hål i din brandvägg som nu ligger öppet för eventuella hackare som också är anslutna till ipv6. När du inte längre skyddas av nat ställs högre krav på att både servrar och klienter hålls uppdaterade.

Namnuppslagningen när du är ansluten som en klient med ipv6 är helt sömlös, men om du själv ska drifta tjänster under ipv6 är det en hel del nya saker du behöver tänka på. En 32-bitars ipv4-adress lagras i namnservern som en A-record medan en 128-bitars ipv6-adress lagras som en AAAA, eller quad-A. Du kan själv verifiera att så är fallet genom att köra programmet nslookup, skriva in type=AAAA och slå fram en ipv6-adress.

Dns-servern bind, som följer med alla Linuxdistributioner, klarar ipv6 sedan version 9 och den 150 sidor tunga guiden Linux Ipv6 HOWTO (se rutan ”Så går du vidare” här intill) går igenom hur du sätter upp bind för ipv6.

När nätet väl fungerar är det dags att konfigurera servertjänsterna för ipv6. Vanligtvis handlar det bara om att definiera vilken adress tjänsten ska lyssna på, men hur som helst är det viktigt att de program du konfigurerar klarar ipv6. Vill du exempelvis att webbservern Apache ska lyssna på en specifik ipv6-adress gör du det med direktivet ”Listen [ fe80::5cca:11ff:fe16:e52c]:80” i din konfigurationsfil. Märk att du måste omge ipv6-adressen med hakparenteser.

Så här ser det ut när vi slår ifconfig och har en ipv6-tunnel igång, över en uppringd 3g-förbindelse via ppp.

Räkna med trubbel


Du kan tyvärr räkna med att stöta på problem om du vill bygga en lösning uteslutande med ipv6. Exempelvis klarar My SQL fortfarande inte att hantera protokollet. Det är planerat att komma i My SQL 6. I dagsläget måste du fortsätta använda ipv4 lokalt, alternativt kommunicera över IPC. Samma sak gäller postgresql, som också kan ge dig problem.

I den bästa av världar skulle det underliggande protokollet inte heller ha någon inverkan alls på de klientprogram du kör. Att surfa in på techworld.se eller hämta e-posten från mail.techworld.se fungerar precis likadant oavsett om det är ipv4 eller ipv6 i botten. Tyvärr finns fortfarande en stor mängd program där användaren uppmanas att fylla i en ipv4-adress i stället för ett namn som hittas med hjälp av vanlig namnuppslagning. Det gäller exempelvis nätverksanslutna skrivare, adressen till en webbcache eller ip-adresser som du av någon anledning vill blockera.

En hel del på gång


Lyckligtvis händer det mycket på området. Red Hat-sponsrade Fedora räknar bland annat med att ha fullt stöd för ipv6 i konfigurationsverktyget network-manager i höstens version av distributionen. Då ska du även kunna använda network-manager för att ange statiska adresser på exempelvis en server.

Att komma igång med ipv6 är ingen större konst. Infrastrukturen finns där och ipv6 är utformat för att kunna samexistera med dagens ipv4. Däremot ser det tyvärr ut som att det kan ta ett tag innan alla program är omskrivna, alla operatörer delar ut ipv6-adresser och vi själva har forcerat den mentala barriär som det trots allt innebär att lämna gamla, hederliga, bekanta ipv4 bakom oss och ta klivet in i framtiden.

Illustration: Jonas Englund

Artikelserie om ipv6


Det här är del 3 av 3 i en artikelserie om ipv6.
 

Vill du läsa mer om ipv6 har vi samlat TechWorlds samtliga artiklar om ipv6 på denna sajt.

» Så går du vidare


Fakta

Det här är del 3 av 3 i en artikelserie om ipv6.

Vill du läsa mer om ipv6 har vi samlat TechWorlds samtliga artiklar om ipv6på denna sajt.