11.09.2013 Views

IPv6 via 6to4-tunnel - mynta.org

IPv6 via 6to4-tunnel - mynta.org

IPv6 via 6to4-tunnel - mynta.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>IPv6</strong> <strong>via</strong> <strong>6to4</strong>-<strong>tunnel</strong><br />

med<br />

Linksys WRT54GL


Innehåll<br />

Inledning .................................................................................................................................................. 4<br />

Förutsättningar ........................................................................................................................................ 4<br />

Vad man har när man är färdig ............................................................................................................... 4<br />

Hårdvaruspecifikation WRT54GL ............................................................................................................ 5<br />

Förberedelse av nätanslutning ................................................................................................................ 5<br />

Konfigurera IP-adress inför mjukvarubytet. ............................................................................................ 7<br />

Hämtning av OpenWRT mjukvaran och mellanlagra den på din dator ................................................... 8<br />

Uppgradering av mjukvara i routern ..................................................................................................... 10<br />

Access till routern efter installation av OpenWRT ................................................................................ 12<br />

Konfiguration av nätverksparametrar ................................................................................................... 13<br />

Några tips om konfiguration och start-filer i OpenWRT ....................................................................... 13<br />

Grunder för mjukvaruinstallation i OpenWRT ...................................................................................... 14<br />

Uppdatering av konfigurationsfil för IPKG ........................................................................................ 15<br />

Mjukvaruinstallation – <strong>IPv6</strong> ............................................................................................................... 15<br />

Konfiguration av <strong>IPv6</strong> ............................................................................................................................ 17<br />

Konfiguration av <strong>6to4</strong>-<strong>tunnel</strong> ............................................................................................................ 17<br />

Konfiguration RADVD ........................................................................................................................ 17<br />

Konfiguration av enkelt ip6tables filter ............................................................................................. 18<br />

Omstart av router för att kontrollera installationen ............................................................................. 18<br />

Verifiering av <strong>IPv6</strong> access ...................................................................................................................... 18<br />

Ominstallation av OpenWRT när OpenWRT redan är installerad ......................................................... 20<br />

Hur väljer windows mellan IPv4 och <strong>IPv6</strong>? ............................................................................................ 22<br />

Testa ...................................................................................................................................................... 23<br />

Appendix konfigurationsfiler ................................................................................................................. 24<br />

etc/ipkg.conf...................................................................................................................................... 24<br />

etc/radvd.conf ................................................................................................................................... 25<br />

etc/config/network – statisk WAN IP adress .................................................................................... 26<br />

etc/config/network – dynamisk WAN IP address ............................................................................. 27<br />

etc/hotplug.d/iface/20-ipv6 .............................................................................................................. 28<br />

etc/config/ipv6 .................................................................................................................................. 30<br />

etc/init.d/firewall6 ............................................................................................................................ 31


Figurer<br />

Figur 1 – Blockdiagram över WRT54GL ................................................................................................... 5<br />

Figur 2 – PC erhåller IP-adress från router .............................................................................................. 6<br />

Figur 3 - Inloggningsruta .......................................................................................................................... 7<br />

Figur 4 – routerns startsida ..................................................................................................................... 7<br />

Figur 5 – Hur inställningar för statisk IP-adress ser ut ............................................................................ 8<br />

Figur 6 – Nätritning .................................................................................................................................. 8<br />

Figur 7 – OpenWRT mjukvaruarkiv. Aktuell mjukvara markerad. ......................................................... 10<br />

Figur 8 – Fliken ”administration”........................................................................................................... 10<br />

Figur 9 – Fliken ”firmware upgrade” ..................................................................................................... 11<br />

Figur 10 – En mjukvara vald för uppgradering! ..................................................................................... 11<br />

Figur 11 – Första inloggning <strong>via</strong> telnet .................................................................................................. 12<br />

Figur 12 – Lösenordet bytt och ssh aktivt! ............................................................................................ 12<br />

Figur 13 – Alla paket som behövs för <strong>IPv6</strong> installeras med ”ipkg” ........................................................ 16<br />

Figur 14 – Information om hur routerns interface fått sina IP-adresser ............................................... 19<br />

Figur 15 – Ping6 mot en av servrarna för .se ......................................................................................... 19<br />

Figur 16 – Lyckad ping mot a.ns.se och g.ns.se ..................................................................................... 20<br />

Figur 17 – Nedladdning av ny mjukvara och configuration ................................................................... 20


Inledning<br />

Detta dokument är framtaget för att visa hur man installerar den öppna mjukvaran OpenWRT på en<br />

vanlig hemma router, Linksys WRT54GL V1.1, och konfigurerar den för både IPv4 och <strong>IPv6</strong> – den<br />

senare <strong>via</strong> en <strong>6to4</strong>-<strong>tunnel</strong>. Resultatet blir alltså en router som ger möjlighet att använda den nya<br />

versionen av IP antingen hemma eller som en testmiljö på företaget. I resten av dokumentet<br />

refererar vi till denna Linksys WRT54GL som kort och gott ”routern”. Nedan väljer vi också att<br />

benämna de Ethernetkontakter som används som LAN, eller LAN-kontakter.<br />

Förutsättningar<br />

Det här behövs för att kunna genomföra konfigurationen:<br />

Linksys router WRT54GL V1.1<br />

o Om man redan har installerat OpenWRT/DD-WRT/Tomato eller liknande så är det<br />

inget hinder. Exemplen är dock relaterade till <strong>org</strong>inalmjukvaran.<br />

o Notera att routern kommer att tömmas på all befintlig konfiguration och det kan vara<br />

svårt att lägga tillbaks Linksys originalmjukvara!<br />

Ett antal LAN-kablar i lämpliga längder.<br />

Internetanslutning med publik IP-adress.<br />

o Dynamiskt tilldelad med DHCP: fungerar bra om du enbart vill testa att accessa <strong>IPv6</strong><br />

servers från en klient. Konfigurationen som beskrivs i detta dokument klarar att<br />

anpassa systemet om adressen ändras.<br />

o Statisk tilldelad: behövs om du vill driva t.ex. en webbserver eller DNS-server.<br />

En eller flera Laptop’s med något av följande operativsystem.<br />

o Microsoft Windows XP/SP3 (begränsat <strong>IPv6</strong> stöd – DNS uppslagning <strong>via</strong> IPv4)<br />

o Microsoft Windows Vista/SP1<br />

o Ubuntu 8.10<br />

o Givetvis kan vilket OS som helst som har stöd för <strong>IPv6</strong> användas men exemplen<br />

beskriver bara hur man använder ovanstående.<br />

LAN-anslutning på datorerna<br />

Bra kunskaper om det operativsystem man använder. Speciellt nätverks-konfiguration.<br />

Kunskap om hur man jobbar i Linux och grundläggande kunskap om hur man använder ”vi”<br />

för att editera textfiler<br />

En telnet/ssh klient till sitt operativsystem.<br />

o Windows – Putty rekommenderas<br />

Vad man har när man är färdig<br />

Linksys WRT54GLmed OpenWRT 7.09 Release med Linux-kärna 2.4<br />

En <strong>IPv6</strong> <strong>6to4</strong>-<strong>tunnel</strong>anslutning enligt RFC3056 och RFC3068 med automatisk tilldelning av<br />

<strong>IPv6</strong> adresser baserat på den aktuella IPv4-adressen på routerns ”utsida”.<br />

De fyra LAN-anslutningarna på ”insidan” aktiverade för IPv4 och <strong>IPv6</strong>.<br />

o Ett ”privat” IPv4-prefix. T.ex. 192.168.1.xxx/24 med DHCP-utdelning av adresser.


o Ett ”publikt” <strong>IPv6</strong>-prefix T.ex. 2002:c080:8013::/64 med RA-utdelning av adresser.<br />

Trådlöst LAN deaktiverat. (I labbmiljö med flera laboranter är detta lämpligast)<br />

Prestanda<br />

o Throughput; upp till ca 10-20Mbit/s.<br />

o Beroende på applikation och trafikmönster kan dock detta förändras.<br />

Hårdvaruspecifikation WRT54GL<br />

Linksys WRT54GL är en så kallad hemmarouter som huvudsakligen används för att fler än en dator<br />

skall kunna använda bredbandsanslutningen. Den innehåller en LAN upplänk samt både 4 LANanslutningar<br />

för kabel samt trådlös LAN-anslutning. Linksys och den nuvarande ägaren Cisco har<br />

under lång tid stöt utveckling av öppen mjukvara till enheten som i realiteten är en väldigt liten dator<br />

utan hårddisk och bildskärm/tangentbord.<br />

DDR SDRAM<br />

128Mb x 16<br />

16MB<br />

Flash Memory<br />

2Mb x 16<br />

4MB<br />

Front Panel<br />

LED’s<br />

AutoSetup<br />

SW3<br />

Linksys WRT54GL Block Diagram<br />

Ethernet<br />

10/100<br />

Reset Switch<br />

SW1<br />

Ethernet<br />

10/100<br />

Figur 1 – Blockdiagram över WRT54GL<br />

Ethernet<br />

10/100<br />

Ethernet<br />

10/100<br />

Ethernet 10/100 Magnetics<br />

Broadcom WiFi Router Processor<br />

BCM5353EKB<br />

Integrated MIPS32 SoC<br />

Integrated 802.11 MAC<br />

Integrated 802.3u MAC<br />

Integrated 802.3u Switch<br />

DC IN<br />

+12V<br />

Ethernet<br />

10/100<br />

UART Ports<br />

(2)<br />

JP2<br />

b<br />

Ant<br />

JTAG Port<br />

JP1<br />

Diversity<br />

Switch<br />

Broadcom<br />

BCM2050<br />

802.11 b/g<br />

Baseband<br />

Förberedelse av nätanslutning<br />

Denna beskrivning gäller för en helt ny router. Om din enhet är använd tidigare så kan IP adresser<br />

och password vara annorlunda. Ett bra tips är då att nollställa den med hjälp av RESET knappen på<br />

routerns baksida. All konfiguration kommer då att nollställas och routern startas med ”factory<br />

defaults” och då kommer allt att stämma med denna beskrivning. Förfarandet är enkelt; Dra ur<br />

sladden från kraftaggregatet från enheten, tryck in den lilla reset-knappen med en penna eller<br />

motsvarande och håll den intryckt medan du återansluter kraftsladden. Håll knappen intryckt i 10<br />

sekunder och släpp den sedan. Nu skall enheten var ”nollställd” och allt är klart att följa<br />

beskrivningen nedan.<br />

g<br />

Ant


- Starta upp din dator och om du inte nollställt din router enligt beskrivningen ovan så skall du<br />

starta den också.<br />

- Anslut datorns LAN-port till en av portarna 1-4 på baksidan av routern.<br />

- Slå av trådlöst LAN på din Laptop så att du inte ”råkar” ansluta till någon annan router! Detta<br />

är viktigt eftersom det i många fall är samma inställningar på samtliga routrar!<br />

- Verifiera att du får IP adress på din LAN-anslutning<br />

o Windows – starta ett cmd fönster och ge kommando ”ipconfig /all”. Du hittar IPadressen<br />

under huvudrubriken ”Ethernet adapter Local Area Connection” och sedan<br />

efter rubriken ”IPv4 adress”.<br />

o Ubuntu – starta ett xterm fönster och ge kommando ”ifconfig –a”. Du hittar IPadressen<br />

vid ”eth0” efter texten ”inet addr:”<br />

o Adressen borde börja med 192.168.1… Om det inte är fallet, vänta en liten stund och<br />

kolla igen. Om det fortfarande inte dyker upp en IP-adress eller om den börjar på t.ex<br />

169… så börja med att dubbelkolla alla kablar, starta sedan om routern och din dator<br />

och upprepa processen ovan.<br />

Figur 2 – PC erhåller IP-adress från router<br />

När du har erhållit en IP-adress enligt beskrivningen ovan är det dags att ansluta till routern <strong>via</strong> din<br />

webbläsare. Webbläsaren och gå till adressen http://192.168.1.1. Ett inloggningsfönster kommer att<br />

visas. Som standard kan du logga in med username ”admin” och password ”admin”. Mata in dessa<br />

och kontrollera att du får access till din router genom att startsidan för enheten visas.


Figur 3 - Inloggningsruta<br />

Figur 4 – routerns startsida<br />

Konfigurera IP-adress inför mjukvarubytet.<br />

För att byta mjukvara så måste du ha internetaccess. Det är oavsett dynamisk/statisk/publik/privat<br />

IP-adress. Det är dock bra att redan nu kunna verifiera att den adress du skall använda senare<br />

fungerar.<br />

Notera: Du kan inte ha samma IP adress på utsidan som på insidan av din router. Detta kan inträffa<br />

om du är ansluten bakom en s.k. NAT eller brandvägg som ger ut ”privata” adresser. Dessa adresser,<br />

varav en kommer att kopplas till din routers ”utsida”, kan då vara samma som de som routern<br />

normalt använder på sin ”insida”. Är detta fallet måste du välja en annan adress på ”insidan”!<br />

Här följer instruktionen för att ställa routern till en statisk publik IP adress.<br />

Högst upp på den webbsida routern presenterar finns möjlighet att välja ”Internet Connection Type”.<br />

Ändra denna till ”Static IP” och ange sedan de nätverksparametrar du fått från din ISP eller<br />

nätvärksadministratör. Parametern är de översta på websidan du ser efter valet för ”Internet<br />

Connection Type”.<br />

VIKTIGT! Klicka på ”Save Settings” längst ner på sidan för att spara dina inställningar.<br />

Routern kommer att starta om och aktivera de nya inställningarna vilket kan ta nån minut eller 2.


Figur 5 – Hur inställningar för statisk IP-adress ser ut<br />

Anslut nu routerns ”utsida” till förbindelsen mot Internet. Det är porten som sitter enskilt och är<br />

märkt ”Internet”. Verifiera att du kommer åt internet genom att t.ex. surfa till någon webbsida som<br />

t.ex. http://www.iis.se.<br />

Din router och dator skall nu vara kopplad som i nedanstående skiss<br />

Figur 6 – Nätritning<br />

Internetaccess med publika IP adresser<br />

LAN switch för Internetaccess<br />

LapTop<br />

WRT54GL/OpenWRT<br />

Hämtning av OpenWRT mjukvaran och mellanlagra den på din dator<br />

Före installationen måste du hämta hem den mjukvara som skall installeras och mellanlagra den på<br />

din dator.<br />

I denna laboration så har vi valt att installera en OpenWRT version med linux-kärna 2.4. En av<br />

orsakerna är att det för närvarande enbart finns stabila drivrutiner för trådlöst LAN för routern<br />

under i linux-kärnor med version 2.4.<br />

Den länk du skall använda för att hämta hem den mjukvaran är:


http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/brcm-2.4/openwrt-wrt54g-2.4-squashfs.bin<br />

Spara filen på ”skrivbordet” på din dator. Då är det enkelt att hitta den senare när den skall<br />

användas.<br />

Kontrollera mjukvaran<br />

När du laddat ner mjukvaran kan du jämföra MD5 checksumman med den som finns i denna länk.<br />

http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/brcm-2.4/md5sums<br />

Windows har dock ingen egen MD5 checksummeräknare. En lättanvänd variant är winmd5sum:<br />

http://www.nullriver.com/downloads/Install-winMd5Sum.exe<br />

Du bör för säkerhets skull också kontrollera att den mjukvara du laddar ner inte innehåller virus!<br />

Mer om mjukvara<br />

Om du valt att surfa till http://www.openwrt.<strong>org</strong> och själv hitta mjukvaran kan det vara värt att<br />

nämna att i nedladdningskatalogen så finns det ett flertal filer. Filer med ändelsen .BIN är filer som<br />

används när man skall uppgradera från originalmjukvaran. Denna fil har en extra header för att<br />

<strong>org</strong>inalmjukvaran skall känna igen den. De filer som slutar på .TRX filen är samma mjukvara men utan<br />

denna header. Den skall användas om du skall uppgradera från en version av OpenWRT till en annan.<br />

Om du av nån orsak vill nollställa och börja från början så kan du också installera samma version igen<br />

med då med ändelsen .TRX istället.<br />

Den fil du skall använda vid en senare omflashning av routern är alltså<br />

http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/brcm-2.4/openwrt-brcm-2.4-squashfs.trx


Figur 7 – OpenWRT mjukvaruarkiv. Aktuell mjukvara markerad.<br />

Uppgradering av mjukvara i routern<br />

I huvudmenyn finns rubriken ”Administration”. Klicka på den.<br />

Figur 8 – Fliken ”administration”<br />

På raden under finns nu flera underflikar. Klicka på ”Firmware Upgrade”


Figur 9 – Fliken ”firmware upgrade”<br />

Du skall nu välja filen som du tidigare lagt på skrivbordet på din dator. Klicka på BROWSE och leta<br />

reda på den. Den skall alltså heta openwrt-wrt54g-2.4-squashfs.bin<br />

Figur 10 – En mjukvara vald för uppgradering!<br />

Klicka sedan på ”Upgrade” längs ned i fönstret.<br />

VIKTIGT!!<br />

Avbryt inte installationen! Har du väl startat så måste du fullfölja. Att avbryta genom att t.ex. koppla<br />

loss strömmen resulterar troligtvis i att din router bara får en del av mjukvaran och därför inte går att<br />

använda eller ”laga”.


Access till routern efter installation av OpenWRT<br />

Efter att installationen är klar så kommer routern att starta om. Vänta nån minut, för att se att<br />

routern är klar. Sedan kan du prova med att pinga från ett xterm/cmd fönster från din laptop mot IP<br />

adressen 192.168.1.1.<br />

När du får svar på ping så skall du använda telnet mot IP adress 192.168.1.1 för att konfigurera din<br />

router för första gången. Efter detta kommer du alltid att använda ssh för configuration!<br />

Figur 11 – Första inloggning <strong>via</strong> telnet<br />

Som första och enda kommando ger du ”passwd” och byter det tomma inloggnings lösenordet mot<br />

ditt eget. Som förslag är att under denna labb använda ”<strong>IPv6</strong>Labb”. Du bör byta till ett annat när du<br />

är klar med labben! Logga nu ut med ctrl+d och stäng fönstret om det inte försvinner av sig själv.<br />

Figur 12 – Lösenordet bytt och ssh aktivt!<br />

När du satt lösenord på användaren ”root” så kommer du inte längre att kunna logga in mot din<br />

router <strong>via</strong> telnet utan du måste använda ssh!


Nu är installationen av mjukvaran OpenWRT på din router klar.<br />

Konfiguration av nätverksparametrar<br />

Efter installationen av OpenWRT så är all konfiguration av nätverksparametrar nollställd. Detta måste<br />

med andra ord konfigureras igen.<br />

Det enda som direkt efter uppstart fungerar är:<br />

Utsidan kan erhålla en IP adress utdelad <strong>via</strong> DHCP t.ex. från ett bredbandsabbonemang.<br />

Insidan har IP adress 192.168.1.1 med masken 255.255.255.0<br />

DHCP server är aktiverad på insidan för att kunna tilldela din dator en adress .<br />

Nu är det dags att ansluta till routern igen och börja installera ytterliggare mjukvara som behövs för<br />

<strong>IPv6</strong> och konfigurera denna.<br />

Logga in <strong>via</strong> SSH till din router genom att ansluta till 192.168.1.1. Användarnamn är ”root” och<br />

lösenordet det du satte ovan – troligen ”<strong>IPv6</strong>Labb”.<br />

Editera med ”vi” filen ”/etc/config/network” och justera nätverksparametrarna till de som du fått av<br />

din ISP eller nätverksadministratör – samma som du använde tidigare.<br />

vi /etc/config/network<br />

Tips!<br />

Alla konfigurationsfilerna finns som bilagor samt går att ladda ner från nätet! Om något går fel finns<br />

två möjligheter; avbryt innan du sparat genom att trycka ett par gånger på ESC och sedan ”:q!”. Ett<br />

annat alternativ är att återställa filen genom att ladda ner den från nätet eller klipp in den från<br />

bilagan.<br />

Spara sedan filen.<br />

Konfigurationen för nätverket är en av de få som gör att du behöver starta om routern. Ge<br />

kommandot ”reboot” för att starta om utan att behöva bryta strömmen. I vissa fall så blir ditt sshfönster<br />

kvar och du får manuellt stänga det.<br />

Omstarten tar en liten stund. Prova att logga in igen med ssh efter någon minut eller två.<br />

Verifiera också att du nu åter har Internetaccess från din laptop genom att surfa till<br />

http://www.iis.se.<br />

Några tips om konfiguration och start-filer i OpenWRT<br />

En av de saker som skiljer sig mest mellan de olika versionerna av Unix/Linux etc. är hur<br />

konfigurationen och start av systemet sköts. OpenWRT som bygger på busybox har filer som styr<br />

start av systemet i katalogen /etc/init.d. Dessa filer länkas sedan från katalogen /etc/rc.d/ med namn<br />

som ”SxxYYY” eller som exempel ”S20dhcpd”


När man lägger till egna paket så finns det ett par kommandon man skall ge om start-filerna följer<br />

OpenWRT’s standard. I de flesta fall görs dock detta automatiskt vid paketinstallationen!<br />

Så här fungerar det om man gör det manuellt. Vi tar som exempel start-filen /etc/init.d/firewall6<br />

Aktivera filen med kommandot ”/etc/init.d/firewall6 enable”. En länk skapas från<br />

/etc/rc.d/S45firewall6 enligt information som finns i själva filen /etc/init.d/firewall6.<br />

Om man vill deaktivera filen ger man kommandot “/etc/init.d/firewall6 disable”. Länken i<br />

/etc/rc.d tas bort och scriptet körs ej längre automatiskt vid uppstart.<br />

Man kan starta processen som filen hanterar manuellt genom att ge kommandot<br />

”/etc/init.d/firewall6 start”. Detta är precis samma sak som sker när OpenWRT startar.<br />

Om man behöver stoppa processen ger man kommandot ”/etc/init.d/firewall6 stop”. I just det<br />

här exemplet så innebär stop inte att processen stannar utan att den återgår till att ”inte göra något”<br />

men i de flesta fall stoppas den på riktigt. Detta är också det som händer när systemet stoppas.<br />

Grunder för mjukvaruinstallation i OpenWRT<br />

I OpenWRT finns en mjukvara som installerar, uppdaterar, listar och tar bort mjukvarupaket. Den<br />

mjukvaran heter ipkg och körs från kommandoraden.<br />

Ipkg kommandon<br />

ipkg update Uppdaterar databasen med information om vilka mjukvarupaket<br />

som är installerade.<br />

ipkg remove Tar bort mjukvarupaket <br />

ipkg install Installerar mjukvarupaketet inklusive<br />

beroende mjukvaror<br />

ipkg list Visar lista med mjukvaror<br />

ipkg list_installed Visar lista med installerade mjukvaror<br />

ipkg info Visar mer information om ett paket


Bra att veta!<br />

Flashminnet på routern är ca 4Mbyte stort. Grundmjukvaran tar ca 2-2.5MByte. Du kan alltså<br />

installera ca 1.5Mbyte extra mjukvara. Du kan däremot inte få mer utrymme genom att ta bort paket<br />

eller filer som finns i grundmjukvaran. De ligger fast i flashminnet. Vill man ta bort mjukvara som<br />

finns i grundmjukvaran så måste den kompileras om och ny installation göras.<br />

Uppdatering av konfigurationsfil för IPKG<br />

När den senaste releasen av OpenWRT 8.09 släpptes så verkar man ha ändrat filsystemet lite på<br />

OpenWRT’s webserver. Därför så måste man justera IPKG’s konfigurationsfil för att man skall kunna<br />

hämta sina paket. Om du inte gör det så kommer du att få ett felmeddelande.<br />

Editera filen /etc/ipkg.conf , rad 2 och lägga in /7.09/ så att det ser ut som följande rad.<br />

src packages http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/packages/mipsel<br />

När du gjortt förändringen så skall du kunna göra kommandot ipkg update enligt nedan.<br />

Se appendix för exempel på hur hela filen skall se ut eller för länk att hämta den.<br />

Mjukvaruinstallation – <strong>IPv6</strong><br />

Grundmjukvaran OpenWRT innehåller inte <strong>IPv6</strong>-stöd. För att installera det behöver vi ge ett några<br />

enkla kommandon. Först måste databasen för mjukvara uppdateras genom kommandot ”<br />

ipkg update<br />

Nu är routern ”synkorniserad” och ipkg vet vad den behöver hämta och göra när vi begär installation<br />

av ett nytt paket.<br />

Sen skall vi installera <strong>IPv6</strong> kernel modul. Det är den centrala delen av <strong>IPv6</strong>. Ge kommandot<br />

ipkg install kmod-ipv6<br />

Ipkg kommer att skriva lite information på skärmen medan installation och konfigurationen<br />

genomförs och sista raden bör vara ”Done.”<br />

När detta är klart ska dom stödpaket som behövs installeras. Kommandona är följande och alla skall<br />

avslutas med att ipkg säger just ”Done.”<br />

Installera paketet som administrerar <strong>IPv6</strong>-adresser på LANet:<br />

ipkg install radvd<br />

Installera paketet som gör att routern kan ”routa” paket mellan insidan och utsidan:<br />

ipkg install ip<br />

Installera en enkel version av brandväggen ip6tables med två kommandon:<br />

ipkg install kmod-ip6tables


ipkg install ip6tables<br />

Figur 13 – Alla paket som behövs för <strong>IPv6</strong> installeras med ”ipkg”


Konfiguration av <strong>IPv6</strong><br />

Konfiguration av <strong>6to4</strong>-<strong>tunnel</strong><br />

<strong>6to4</strong>-<strong>tunnel</strong>n styrs med hjälp av ett så kallat hotplug script. Det möjliggör för OpenWRT att ändra viss<br />

konfiguration när det sker en förändring, i detta fall, på ett interface. Då startas motsvarande script<br />

som aktiverar, ändrar konfiguration eller deaktiverar <strong>6to4</strong>-<strong>tunnel</strong>n.<br />

Hotplug-scriptet består av två delar; konfigurationsdata och själva scriptet. Scriptet som heter ”20ipv6”<br />

skall läggas i katalogen /etc/hotplug.d/iface och konfigurationsdatan ligger i en fil som kort och<br />

gott heter ”ipv6” och skall finnas i katalogen /etc/config. Sedan måste rättigheterna sättas.<br />

Börja med att säkerställa att ingen gammal version finns med kommandot:<br />

rm -f /etc/config/ipv6 /etc/hotplug.d/iface/20-ipv6<br />

Hämta sedan de två filerna från nätet med följande kommandon:<br />

wget -O /etc/hotplug.d/iface/20-ipv6 http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/hotplug.d/iface/20-ipv6<br />

wget -O /etc/config/ipv6 http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/config/ipv6<br />

Till sist måste scriptet ha korrekta rättigheter. Det sätts med kommandot:<br />

chmod 755 /etc/hotplug.d/iface/20-ipv6<br />

Nu är konfigurationen för den dynamiska <strong>6to4</strong> <strong>tunnel</strong>n klar!<br />

Konfiguration RADVD<br />

I <strong>IPv6</strong> tilldelas IP-adresser med en funktion som kallas Router Advertisment eller RA. Systemet består<br />

av en mjukvara på routern som talar om att den finns och vilka IP-adresser den tillhandahåller och en<br />

klient som lyssnar efter meddelanden och ber om en adress. Funktionen är väldigt smidig och gör att<br />

man i princip inte behöver konfigurera något i PCs som ansluts till nätet. Tyvärr förbisåg man behovet<br />

av att peka ut en nameserver när protokollet skapades. En komplettering för detta har gjorts men<br />

tyvärr är det inte säkert att alla operativsystem stödjer detta.<br />

I OpenWRT behöver vi bara servern. Klienten finns inbyggd i ditt operativsystem. Vi skall nu<br />

konfigurera servern som allmänt kallas för radvd. Den består också av ett script och en<br />

konfigurationsfil.<br />

Börja med att säkerställa att ingen gammal data finns med kommandot:<br />

rm -f /etc/radvd.conf /etc/hotplug.d/iface/30-radvd<br />

Hämta sedan filerna från nätet med kommandona:<br />

wget -O /etc/radvd.conf http://<strong>mynta</strong>.<strong>org</strong>/ openwrt/etc/radvd.conf<br />

wget -O /etc/hotplug.d/iface/30-radvd http:// <strong>mynta</strong>.<strong>org</strong>/openwrt/etc/hotplug.d/iface/30-radvd<br />

Även detta script måste ha vissa rättigheter. Sätt dom med:<br />

chmod 755 /etc/hotplug.d/iface/30-radvd


Till sist måste vi informera OpenWRT att vi vill att radvd skall startas automatiskt när routern startas.<br />

Det gör man enkelt genom följande kommando:<br />

/etc/init.d/radvd enable<br />

Konfiguration av enkelt ip6tables filter<br />

OpenWRT kan fungera som en enkel brandvägg med hjälp av ett paket som heter ip6tables. Det är i<br />

de flesta fall betydligt bättre än att bara förlita sig på t.ex en NAT i IPv4. Den version av ip6tables som<br />

just nu finns för OpenWRT är relativt begränsad. I princip så hanterar den portfiltrering men den kan<br />

inte hantera tex ESTABLISHED eller CONNECTION TRACKING. Vi skall nu konfigurera ip6tables för att<br />

blockera anrop utifrån på portar mellan 0 och 1023 men ett undantag för port 22 som är ssg .<br />

Börja med att ta bort eventuell existerande konfiguration. Finns ingen tidigare fil får du ett<br />

felmeddelande men det är ju helt ok då! Kommandot är:<br />

rm -f /etc/init.d/firewall6<br />

Hämta sedan exempelfilen och sätt rättigheterna med följande två kommandon:<br />

wget -O /etc/init.d/firewall6 http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/ init.d/firewall6”<br />

chmod 755 /etc/init.d/firewall6<br />

Sedan förberedas brandväggen för start med systemet i framtiden och startas nu direkt med:<br />

/etc/init.d/firewall6 enable<br />

/etc/init.d/firewall6 start<br />

Omstart av router för att kontrollera installationen<br />

När allt är klart är det bra att kontrollera att alla ändringar fungerat och att allt dessutom är förberett<br />

att dra igång när routern startar! För att göra en snygg omstart av routern ger du kommandot<br />

Sync<br />

och när det är klart<br />

reboot<br />

Verifiering av <strong>IPv6</strong> access<br />

När routern startat om, dvs efter ett par minuter, är det dags att testa att <strong>6to4</strong> interfacet är<br />

aktiverat. Logga in på routern som du gjort tidigare med ssh och ge sedan följande kommandon:<br />

ifconfig tun<strong>6to4</strong><br />

ifconfig eth0.1


Figur 14 – Information om hur routerns interface fått sina IP-adresser<br />

Under ”eth0.1” skall IPv4-adressen vara något annat än 192.168.x.x, 172.168.x.x, 10.x.x.x eller<br />

169.x.x.x. För tun<strong>6to4</strong> bör du nu ha en <strong>IPv6</strong>-adress som börjar på 2002: Jämför med exemplet ovan!<br />

Verifiera att du kan nå Internet <strong>via</strong> <strong>IPv6</strong> med kommandot med ping6 (observera ”6” i slutet av ping!):<br />

ping6 –c 5 a.ns.se<br />

Figur 15 – Ping6 mot en av servrarna för .se<br />

Om allt ser bra ut på routern så gå vidare med att verifiera att din Laptop är <strong>IPv6</strong> ansluten. Det gör du<br />

genom att på Linux/Unix/MacOS X ge samma kommandon som i routern!<br />

ping6 –c 5 a.ns.se


I windows Vista heter dock kommandot bara ping – inte ping6! Med ”-6” tvingas kommandot att bara<br />

använda <strong>IPv6</strong>.<br />

ping -6 a.ns.se<br />

Figur 16 – Lyckad ping mot a.ns.se och g.ns.se<br />

Ominstallation av OpenWRT när OpenWRT redan är installerad<br />

Om din installation skulle bli förstörd eller om du gör ett radikalt misstag och känner att det är<br />

enklare att börja om från början så är det fullt möjligt.<br />

Figur 17 – Nedladdning av ny mjukvara och configuration<br />

Logga in på routern med ssh som vanligt. Ge sedan följande kommandon:<br />

cd /tmp<br />

wget http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/brcm-2.4/openwrt-brcm-2.4-squashfs.trx


mtd –r write openwrt-brcm-2.4-squashfs.trx linux<br />

Routern skriver nu ner en ny mjukvara i flash-minnet och nollställer all konfiguration. När detta är<br />

klart startas routern om och du kan börja om nästan högst upp i den här beskrivningen.


Hur väljer windows mellan IPv4 och <strong>IPv6</strong>?<br />

När Windows Vista och XP har tillgång till både IPv4 och <strong>IPv6</strong> så finns en mekanism som bestämmer<br />

vilket protokoll som skall användas först. Denna kan men både undersöka och påverka <strong>via</strong> ett CMDfönster<br />

och kommandot ”netsh”.<br />

Låt oss börja med att titta på standardinställningarna och deras betydelse. Ge kommandot:<br />

netsh interface ipv6 show pref<br />

Windows XP Home – standardinställningar med <strong>IPv6</strong><br />

Om vi går efter ”etikt” (etikett) eller ”label” som den engelska windows kallar det omfattar ”prefix”<br />

följande:<br />

50 ::1 localhost dvs. den egna datorn<br />

40 ::/0 Godtycklig <strong>IPv6</strong>-adress<br />

30 2002::/16 <strong>6to4</strong> <strong>tunnel</strong><br />

20 ::/96 IPv4-kompatibel <strong>IPv6</strong>-adress<br />

10 ::ffff:0:0/96 IPv4-mappad <strong>IPv6</strong>-adress<br />

5 2001::/32 Teredo <strong>tunnel</strong><br />

Windows prioriterar adresser med högre “prioritet” (eller “precedence” i engelska windows) framför<br />

de med lägre när den skall skicka data. Så, jämför man siffrorna så får vi en ordning;


a) Kan man prata med något lokalt på den egna datorn så gör man det utan att skicka ut paket på ett<br />

LAN och tillbaka.<br />

b) Har man <strong>IPv6</strong> så är det bäst!<br />

c) Kan man nå <strong>IPv6</strong> <strong>via</strong> en s.k. <strong>6to4</strong> <strong>tunnel</strong> så är det nästan lika bra.<br />

d) Efter det kommer IPv4 på två olika sätt.<br />

e) Sista alternativet är att använda en s.k. Teredo-<strong>tunnel</strong>.<br />

Man kan också modifiera detta beteende så att man t.ex. inte specialbehandlar <strong>6to4</strong>-tunnlar:<br />

netsh interface ipv6 del pref 2001::/32<br />

netsh interface ipv6 del pref ::ffff:0:0/96<br />

netsh interface ipv6 del pref ::/96<br />

netsh interface ipv6 del pref 2002::/16<br />

netsh interface ipv6 del pref ::/0<br />

netsh interface ipv6 del pref ::1/128<br />

netsh interface ipv6 add pref ::1/128 50 0<br />

netsh interface ipv6 add pref ::/0 40 1<br />

netsh interface ipv6 add pref ::/96 20 3<br />

netsh interface ipv6 add pref ::ffff:0:0/96 10 4<br />

netsh interface ipv6 add pref 2000::/24 5 5<br />

Om man vill vara helt säker på att inställningarna tar så bootar man om sin dator!<br />

Det är också enkelt att återställa standardinställningarna:<br />

netsh interface ipv6 reset<br />

Man måste efter detta kommando starta om sin dator för att ”original” konfigurationen skall<br />

återställas.<br />

Testa<br />

Här är några olika webbplatser som kan vara bra för att testa hur din dator beter sig:<br />

http://Ipv6only.se: visar att du kommit fram till en <strong>IPv6</strong>-webbplats och vilken <strong>IPv6</strong>-adress du har.<br />

Hamnar du här väljer din dator <strong>IPv6</strong> före IPv4.<br />

http://ipv4only.se: visar att du föredrar eller bara har IPv4 – och uppmanar dig att byta!<br />

http://force.ipv6only.se: Om din dator väljer IPv4 före <strong>IPv6</strong> kan du med denna webbplats testa om du<br />

överhuvudtaget kan använda <strong>IPv6</strong> om det inte finns någon IPv4!


Appendix konfigurationsfiler<br />

Filerna kan antingen kopieras direct från appendix eller hämtas från angivna URL’er. Notera att<br />

filerna ligger på webbservern i motsvarande katalog som på din router.<br />

Tips!<br />

Det är både smidigt och säkert att hämta configurationsfilerna från webbservern. Bland annat slipper<br />

man risken att radbrytningar hamnar på fel ställe och gör att routern inte förstår innehållet i filen.<br />

/etc/ipkg.conf<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/ipkg.conf<br />

src release http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/brcm-2.4/packages<br />

src packages http://downloads.openwrt.<strong>org</strong>/kamikaze/7.09/packages/mipsel<br />

dest root /<br />

dest ram /tmp


etc/radvd.conf<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/radvd.conf<br />

# For more examples, see the radvd documentation.<br />

interface br-lan<br />

{<br />

AdvSendAdvert on;<br />

#<br />

# Disable Mobile <strong>IPv6</strong> support<br />

#<br />

AdvHomeAgentFlag off;<br />

MaxRtrAdvInterval 30;<br />

prefix 0:0:0:0::1/64<br />

{<br />

Base<strong>6to4</strong>Interface eth0.1;<br />

AdvOnLink on;<br />

AdvAutonomous on;<br />

AdvRouterAddr on;<br />

AdvValidLifetime 300;<br />

AdvPreferredLifetime 180;<br />

};<br />

#<br />

# Really.. Change this to your <strong>IPv6</strong> DNS SERVER<br />

#<br />

RDNSS 2001::1 {};<br />

};


etc/config/network – statisk WAN IP adress<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/config/network-static-wan-example<br />

#### VLAN configuration<br />

config switch eth0<br />

option vlan0 "0 1 2 3 5*"<br />

option vlan1 "4 5"<br />

#### Loopback configuration<br />

config interface loopback<br />

option ifname "lo"<br />

option proto static<br />

option ipaddr 127.0.0.1<br />

option netmask 255.0.0.0<br />

#### LAN configuration<br />

config interface lan<br />

option type bridge<br />

option ifname "eth0.0"<br />

option proto static<br />

option ipaddr 192.168.1.1<br />

option netmask 255.255.255.0<br />

option dns <br />

#### WAN configuration<br />

config interface wan<br />

option ifname "eth0.1"<br />

option proto static<br />

option ipaddr <br />

option netmask <br />

option gateway


etc/config/network – dynamisk WAN IP address<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/config/network-dynamic-wan-example<br />

#### VLAN configuration<br />

config switch eth0<br />

option vlan0 "0 1 2 3 5*"<br />

option vlan1 "4 5"<br />

#### Loopback configuration<br />

config interface loopback<br />

option ifname "lo"<br />

option proto static<br />

option ipaddr 127.0.0.1<br />

option netmask 255.0.0.0<br />

#### LAN configuration<br />

config interface lan<br />

option type bridge<br />

option ifname "eth0.0"<br />

option proto static<br />

option ipaddr 192.168.1.1<br />

option netmask 255.255.255.0<br />

#### WAN configuration<br />

config interface wan<br />

option ifname "eth0.1"<br />

option proto dhcp


etc/hotplug.d/iface/20-ipv6<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/hotplug.d/iface/20-ipv6<br />

Notera att detta script använder en konfigurationsfil: /etc/config/ipv6<br />

#!/bin/sh<br />

# Copyright (C) 2008 OpenWrt.<strong>org</strong><br />

TUNNEL=tun<strong>6to4</strong><br />

. /etc/functions.sh<br />

config_cb() {<br />

local cfg="$CONFIG_SECTION"<br />

local cfgtype<br />

local ip6add<br />

config_get cfgtype "$cfg" TYPE<br />

if [ "$cfgtype" = ipv6 ]<br />

then<br />

config_get REMOTE $cfg remote<br />

if [ "$REMOTE" = relay ]<br />

then<br />

ip6add=`echo $IP4LOC | awk -F. '{ printf<br />

"2002:%02x%02x:%02x%02x::1", $1, $2, $3, $4 }'`<br />

IP4REM="any"<br />

IP6TUN="${ip6add}/16"<br />

IP6REM="::192.88.99.1"<br />

IP6LOC="${ip6add}/64"<br />

else<br />

config_get ip6add $cfg local6<br />

IP4REM="${REMOTE}"<br />

IP6TUN="${ip6add}/64"<br />

config_get IP6REM $cfg remote6<br />

config_get IP6LOC lan ip6addr<br />

fi<br />

fi<br />

}<br />

del_ip6addr() {<br />

local file=/var/state/network.$$<br />

grep -v "^config_set 'wan' 'ip6addr' " /var/state/network > "$file"<br />

mv "$file" /var/state/network<br />

}<br />

if [ "$INTERFACE" = wan ]<br />

then<br />

. /var/state/network<br />

config_get IP4LOC wan ipaddr<br />

config_get IP6WAN wan ip6addr<br />

config_get IFNAME lan ifname<br />

config_load ipv6<br />

case $ACTION in<br />

ifup)<br />

if [ ! "$IP6WAN" ]


$IP4LOC<br />

fi<br />

then<br />

ip <strong>tunnel</strong> add $TUNNEL mode sit ttl 255 remote $IP4REM local<br />

ip link set $TUNNEL up<br />

ip -6 addr add $IP6TUN dev $TUNNEL<br />

ip -6 route add 2000::/3 <strong>via</strong> $IP6REM dev $TUNNEL metric 1<br />

[ "$REMOTE" = relay ] && ip -6 addr add $IP6LOC dev $IFNAME<br />

uci set "/var/state/network.wan.ip6addr=$IP6TUN"<br />

else<br />

ip <strong>tunnel</strong> change $TUNNEL local $IP4LOC<br />

if [ "$IP6WAN" != "$IP6TUN" ]<br />

then<br />

ip -6 addr flush to 2002::/16<br />

ip -6 addr add $IP6TUN dev $TUNNEL<br />

ip -6 addr add $IP6LOC dev $IFNAME<br />

del_ip6addr<br />

uci set "/var/state/network.wan.ip6addr=$IP6TUN"<br />

fi<br />

fi<br />

;;<br />

ifdown)<br />

ip -6 route flush dev $TUNNEL<br />

ip link set dev $TUNNEL down<br />

ip <strong>tunnel</strong> del $TUNNEL<br />

[ "$REMOTE" = relay ] && ip -6 addr del $IP6LOC dev $IFNAME<br />

del_ip6addr<br />

;;<br />

esac


etc/config/ipv6<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/config/ipv6<br />

Filen styr funktionen för scriptet /etc/hotplug.d/iface/20-ipv6<br />

config ipv6<br />

option remote relay<br />

# Fixes the <strong>6to4</strong> <strong>tunnel</strong> to be "dynamic"<br />

Not. Om man istället har en <strong>tunnel</strong> så ser en exempelkonfiguration ut på följande sätt:<br />

config ipv6<br />

option remote 11.22.33.44<br />

option local6 2001:0db8::2<br />

option remote6 2001:0db8::1<br />

# Gives a static <strong>tunnel</strong><br />

Man måste då också ändra LAN konfigurationen i /etc/config/network till ungefär motsvarande<br />

#### LAN configuration<br />

config interface lan<br />

option type bridge<br />

option ifname "eth0.0"<br />

option proto static<br />

option ipaddr 192.168.1.1<br />

option netmask 255.255.255.0<br />

option ip6addr 2001:0db8::2/64<br />

# Set correct <strong>IPv6</strong> Address from <strong>tunnel</strong> broker on the LAN interface


etc/init.d/firewall6<br />

Filen kan hämtas från: http://<strong>mynta</strong>.<strong>org</strong>/openwrt/etc/init.d/firewall6<br />

#!/bin/sh /etc/rc.common<br />

# Copyright (C) 2006 OpenWrt.<strong>org</strong><br />

START=45<br />

start() {<br />

include /lib/network<br />

scan_interfaces<br />

config_load /var/state/network<br />

config_get WAN wan ifname<br />

config_get LAN lan ifname<br />

#<br />

# We force interface to be tun<strong>6to4</strong> since we are using <strong>6to4</strong><br />

#<br />

WAN=tun<strong>6to4</strong><br />

# CLEAR TABLES<br />

ip6tables -F<br />

ip6tables -X<br />

# Clear Old Rules<br />

ip6tables -F INPUT<br />

ip6tables -F OUTPUT<br />

ip6tables -F FORWARD<br />

# Default policies<br />

ip6tables -P INPUT DROP<br />

ip6tables -P OUTPUT ACCEPT<br />

ip6tables -P FORWARD DROP<br />

# localhost rules<br />

ip6tables -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT #ssh<br />

ip6tables -A INPUT -i $WAN -p tcp --dport 0:1023 -j DROP<br />

ip6tables -A INPUT -i $WAN -p udp --dport 0:1023 -j DROP<br />

# Allow access from certain ports and deny the rest<br />

ip6tables -A FORWARD -i $WAN -p tcp --dport 22 -j ACCEPT #ssh<br />

ip6tables -A FORWARD -i $WAN -p tcp --dport 0:1023 -j DROP<br />

ip6tables -A FORWARD -i $WAN -p udp --dport 0:1023 -j DROP<br />

# Allow all traffic > 1023<br />

ip6tables -A INPUT -i $WAN -p tcp -j ACCEPT<br />

ip6tables -A INPUT -i $WAN -p udp -j ACCEPT<br />

ip6tables -A FORWARD -i $WAN -p tcp -j ACCEPT<br />

ip6tables -A FORWARD -i $WAN -p udp -j ACCEPT<br />

# Allow all ICMP traffic<br />

ip6tables -A INPUT -p ipv6-icmp -j ACCEPT<br />

ip6tables -A FORWARD -p ipv6-icmp -j ACCEPT<br />

# Allow outbound traffic<br />

ip6tables -A FORWARD -i ! $WAN -j ACCEPT<br />

}<br />

stop() {<br />

ip6tables -P INPUT ACCEPT<br />

ip6tables -P OUTPUT ACCEPT<br />

ip6tables -P FORWARD ACCEPT<br />

ip6tables -F<br />

ip6tables -X<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!