ipv6 tunnel xs4all windows 2003
Auteur: Ramon Aangemaakt op: 6-9-2003
Voorwoord
In het eerste kwartaal van 2002 begon mijn avontuur met ipv6. Toen was het namelijk al mogelijk om een ipv6 tunnel op te zetten met xs4all. Toen had ik nog een Windows 2000 server en had ik de ipv6 preview stack geïnstalleerd. Probleem was alleen dat niks werkte :) IE werkte niet omdat het geen ipv6 ondersteunde. Daar had je weer een aparte fix voor nodig en werkte zeer goed. Je kon zelfs op ipv6 adres een site bezoeken als je het adres maar tussen blokhaken had gezet. IE6 op Windows XP en 2003 ondersteund nu standaard ipv6 maar helaas kun je niet een ipv6 adres invoeren. Hopelijk komt die feature toch nog terug.
Mijn uiteindelijke doel was on mijn netwerk clients die achter een NAT configuratie zitten van buitenaf via ipv6 te kunnen benaderen. xs4all geeft maar één ip adres bij een lite/basic/fast/poweradsl. Met ipv6 is het mogelijk om toch alle clients van buitenaf te benaderen zonder aan portforwarding te moeten doen. Je krijgt van xs4all een /48. Dit houd in dat je 2^(128-48) adressen ter beschikking hebt. Daar kun je wel even mee door komen lijkt me.
Deze special geeft uitleg over de volgende zaken:
Hoe zet ik een ipv6 tunnel op (hier met xs4all)
Hoe configureer ik de router zodat mijn interne hosts benaderd kunnen worden
Hoe zet ik een ipv6 reverse dns zone op met Windows 2003
Een applicatie ondersteund alleen ipv4, hoe kan ik deze over ipv6 laten werken
Ik ben geen ipv6 of Windows 2003 expert dus mocht je fouten tegen komen dan kan ik het zeer waarderen als deze worden gemeld bij webmaster(at)exyll.net.
Pagina 2
ipv6 tunnel xs4all windows 2003
Hoe zet ik een ipv6 tunnel op
Een ipv6 tunnel zorgt ervoor dat je over een ipv4 verbinding een tunnel opzet omdat je host zelf (nog) niet native benaderbaar is via ipv6.
xs4all kant
Ga naar het xs4all service center
Scroll naar beneden en selecteer WIJZIG button bij Experimentele dienst, IPv6 Tunnel
IPv4 tunnel endpoint
Vul bij IPv4 tunnel endpoint je externe IP adres in. Als je die niet weet kun je die direct zien op
http://www.whatismyipaddress.com.
Reverse lookup
Als je graag wilt dat ipv6 reverse lookup werkt (van ipv6 adres naar hostname) dan moet je bij nameservers de hostname(s) invoeren die deze PTR records heeft. Ik heb een eigen nameserver draaien en heb daarvan de hostname ingevoerd
(nameserver.exyll.net).
Tunnel info
Bewaar de IPv6 space informatie. Die hebben we straks nog nodig. Bij mij is dat de volgende info:
XS4ALL's tunnel IPv6 adres 2001:888:10:953::1/64
exyll's tunnel IPv6 adres 2001:888:10:953::2/64
exyll's IPv6 prefix 2001:888:1953::/48
Activeren
Alles is nu ingevuld en dat betekend dat je de tunnel kunt activeren zodat wij er straks op kunnen connecten. Nu zijn de instelling voor de tunnel aan de kant van xs4all klaar. Nu moet je de host in je eigen netwerk configureren die aan de andere kant van de ipv6 tunnel tunnel komt.
client kant
Zorg ervoor dat als je XP gebruikt je SP1 hebt geïnstalleerd anders kent deze de netsh interface ipv6 instructies nog niet!
ipv6 support installeren
Start een console (WINDOWS+R, cmd.exe, enter) en voer het onderstaan commando uit. Het kan zijn dat je systeem opnieuw moet opstarten.
netsh interface ipv6 install
Tunnel opzetten
We gaan nu de tunnel actief maken. Als eerst maken we een tunnel en als tweede geven we aan wat het ipv6 adres moet zijn voor onze kant van de tunnel. Dit adres kun je opvragen bij je ipv6 tunnel eigenschappen in het
service center. De tunnel krijgt een interface naam. Ik heb deze de naam
Xs4all IPv6 Tunnel gegeven.
netsh interface ipv6
add v6v4tunnel interface="Xs4all IPv6 Tunnel" localaddress=194.109.160.204 remoteaddress=194.109.5.241
netsh interface ipv6
add address interface="Xs4all IPv6 Tunnel" address=2001:888:10:953::2
Ping test
Nu moeten we even testen of het allemaal werkt natuurlijk. Dit doen we door een ipv6 host te pingen. Een mooie kandidaat is de xs4all newszilla ipv6 server ( newszilla6.xs4all.nl ). Test even of je newszilla over ipv6 kunt pingen:
ping -6 ping newszilla.xs6all.nl
Pinging newszilla6.xs4all.nl [2001:888:0:4::119] with 32 bytes of data:
Reply from 2001:888:0:4::119: time=24ms
Reply from 2001:888:0:4::119: time=23ms
Reply from 2001:888:0:4::119: time=23ms
Reply from 2001:888:0:4::119: time=26ms
Via http://www.ams-ix.net/cgi-bin/lg6 kun je jezelf via ipv6 laten pingen. Het adres wat je moet pingen is je tunnel IPv6 adres (zie boven tweede regel, bij mij 2001:888:10:953::2).
XP ipv6 firewall
Als je Windows 2003 gebruikt ben je zelf ook al via ipv6 te pingen. Bij WindowsXP niet, dit komt door de ingebouwde ipv6 firewall die standaard actief is. Deze is in te stellen met
netsh firewall. Controleer of je firewall aanstaat met het onderstaande commando.
netsh firewall show adapter {INTERFACENAAM}
Via het volgende commando kun je je ipv6 firewall uitzetten. Vul bij INTERFACE naam de logisch naam van je netwerkkaart in (zie netwerk eigenschappen).
netsh firewall set adapter {INTERFACENAAM} all=disable
Om de firewall weer te activeren (verstandig want bijna alle Windows firewall's ondersteunen geen ipv6!) moet je het onderstaande commando uitvoeren.
netsh firewall set adapter {INTERFACENAAM} all=enable
Als je alles goed hebt gedaan krijg je response en mag je nu een kratje bier openen.
Pagina 3
ipv6 tunnel xs4all windows 2003
ipv6 routeren
De meesten willen ipv6 opzetten zodat ze hun interne clients via ipv6 kunnen benaderen. Hiervoor moet de host die de ipv6 tunnel heeft opgezet gaan routeren. Bij xs4all krijg je een /48 range toegewezen. Dit betekend theoretisch dat je 2^(128-48) hosts in je netwerk kunt plaatsen die allemaal via ipv6 zijn te benaderen.
We moeten aangeven dat de tunnel interface ipv6 traffic moet forwarden
netsh interface ipv6
set interface interface="Xs4all IPv6 Tunnel" forwarding=enabled
Netwerk clients moeten weten welke host als ipv6 gateway gaat fungeren. Dit geven we aan door op de netwerk kaart die aan je lan gekoppeld is advertising aan te zetten. Het woord laat direct merken wat het doet :)
netsh interface ipv6
set interface interface="Naar intranet" advertise=enabled forwarding=enabled
Hierna moeten we aangeven waar pakketjes die binnen komen naar doorgestuurd moeten worden. In mijn opstelling heb ik de range 2001:888:1953::/64 genomen voor mijn LAN. Dit betekend dat ik nog 'maar' 2^64 hosts (18.446.744.073.709.551.616) in mijn lan kan hebben. Ook moet ik aangeven dat alle overige pakketjes via de ipv6 tunnel interface richten xs4all moeten worden gestuurd.
netsh interface ipv6
add route prefix=2001:888:1953::/64 interface="Naar intranet" metric=0
netsh interface ipv6
add route prefix=::/0 interface="Xs4all IPv6 Tunnel" metric=0 publish=yes
In bovenstaande geven we in de tweede regel aan dat deze host laat weten aan het netwerk dat deze de gateway is voor traffic met bestemming ::/0 (dus alles). DIt kan waarschijnlijk nog wel iets fraaier maar mij is momenteel onbekend hoe. Voor mijn eigen gemak luisterd mijn webserver op deze host ook naar een ipv6 adres in mijn eigen range.
netsh interface ipv6
add address interface="Naar intranet" address=2001:888:1953::1
Pagina 4
ipv6 tunnel xs4all windows 2003
ipv6 reverse dns zone met Windows 2003
Installeer DNS service
Voeg in Windows 2003 de DNS server via de server manager. Nadat deze procedure is afgerond moet je een forward lookup zone (bij mij exyll.net) en een reverse lookup zone toevoegen.
Forward lookup zone
Volg de New zone wizard om een forward lookup zone aan te maken. Selecteer primary zone geef het de naam van je domein of de hostname van je externe ip adres (b.v. exyll.xs4all.nl). Geef een een bestandsnaam op en laat dynamic updates achterwege want ipv6 op Windows 2003/XP ondersteund nog geen dynamic DNS updates. Nadat de wizard is afgerond staat er in de directory %SystemRoot%\system32\dns\ een nieuw dns bestand (bij mij exyll.net.dns). Je kunt via de DNS GUI wel AAAA records toevoegen maar het gaat stukken makkelijker door gewoon het dns bestand in notepad te openen en zo de informatie in te voeren. Voeg de hostnames met ipv6 adres toe onder het kopje Zone records. Zo heb ik het volgende lijstje staan.
mars AAAA2001:888:1953::1
nameserver A194.109.160.204
pluto AAAA2001:888:1953::3
saturnus AAAA2001:888:1953::4
1200AAAA2001:888:1953::2
www A194.109.160.204
AAAA2001:888:1953::1
Nadat je de wijzigingen hebt aangebracht en het bestand hebt opgeslagen raad ik aan de DNS servive even opnieuw te starten. Dit kan via de dns mmc, de service mmc of gewoon via de commandprompt.
net stop dns
net start dns
Test of het intern werkt door een nslookup uit te voeren naar een LAN client. Test via een traceroute op b.v.
http://www.ams-ix.net/cgi-bin/lg6
of de buitenwereld ook de lookup kan doen en eventueel ook je client in je netwerk kan bereiken.
Reverse lookup zone
Voeg net als bij de forward lookup zone via de New zone wizard een reverse lookup zone toe. Nadat je hebt aangegeven dat je een primary zone wilt aanmaken moet je niet een network ID invoeren maar een Reverse lookup zone name. De naam kun je in het service center vinden in de kop Nameservers voor reverse DNS zone ........ Bij mij is dat 3.5.9.1.8.8.8.0.1.0.0.2.ip6.arpa. Dit kun je ook zelf invoeren door de 3de regel (... IPv6 prefix) uit het service center IPv6 space block te halen en al deze informatie om te draaien. Mijn IPv6 prefix is 2001:888:1953::/48 en dus mijn reverse DNS zone 3.5.9.1.8.8.8.1.0.0.2.ip6.arpa. Ik raad aan om momenteel een zelfde reverse DNS zone aan te maken maar dan met de extensie ip6.int .int is obsolete en je moet .int gebruiken. Maar dit werkt niet omdat in een hoop configuraties nog ip6.int word gebruikt. Aangeraden word dus beide te gebruiken om zowel de huidige als de toekomstige configuraties te ondersteunen (zie b.v. ). Nadat beide zones zijn aangemaakt heb je er weer twee bestanden bij in je %SystemRoot%\system32\dns\ directory. In mijn configuratie 3.5.9.1.8.8.8.0.1.0.0.2.ip6.arpa.dns en 3.5.9.1.8.8.8.0.1.0.0.2.ip6.int.dns. Ook hier geef ik het advies om de bestanden gewoon in notepad te beheren want via de DNS GUI is het beheren van de de reverse lookup's echt een ramp! Onder het kopje Zone records moeten nu de PTR records worden toegevoegd. Een aantal van mijn records zijn:
;
; Zone records
;
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTRmars.exyll.net.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTRvenus.exyll.net.
3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTRsaturnus.exyll.net.
4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTRpluto.exyll.net.
...
Zorg ervoor dat je deze wijzigingen in zowel *.ip6.int.dns als *.ip6.arpa.dns doorvoert! Het bestand kopieëren en hernoemen moet volgens mij goed werken omdat in de bestanden niet naar een zone word gerefereerd behalve in de comments.
DNS mmc bugje
Als je de DNS mmc sluit en opnieuw opent dan zie je dat de reverse lookup zone *.ip6.int opeens bij de forward lookup zones staat! Dit komt door de extensie .int. De Windows 2003 DNS service gaat er van uit dan alleen de .arpa variant word ingevoerd. Maar zoals ik al eerder heb geschreven is het verstandig ook een .int reverse lookup zone te hebben om alle huidige configuraties te ondersteunen.
Pagina 5
ipv6 tunnel xs4all windows 2003
ipv4 over ipv6 (4to6)
Momenteel zijn er voor het Windows platform een hele hoop applicaties die nog niet met ipv6 kunnen werken. Momenteel ken ik de volgende Windows applicaties die ipv6 ondersteunen:
Outlook 20003 (Mail)
Mozilla Thunderbird (Mail en usenet)
XChat (irc)
Om een ipv4 applicatie toch een ipv6 host te laten benaderen kunnen we dus 4to6 gebruiken. Onder Windows 2000 moesten we daar Asybo voor gebruiken maar bij XP en 2003 is soortgelijke functionaliteit standaard ingebouwd en is te configureren met 'netsh interface portproxy'. Je kunt de applicatie lokaal laten connecten op de portproxy welke dan een connectie opzet naar een host die je hebt geconfigureerd. Het configureren gaat per poort. Om bijvoorbeeld mIRC op de xs4all ipv6 irc server te laten connecten moet je de volgende mapping aanmaken:
netsh interface portproxy
add v4tov6 listenport=6667 connectaddress=2001:888:0:2::6667 connectport=6667
De portproxy werkt helaas alleen met tcp! Hetzelfde kan dus ook anders op met 6to4. Je kunt dan een ipv4 applicatie beschikbaar stellen via ipv6. Op deze manier kun je momenteel bijvoorbeeld over ipv6 een remoting client benaderen die alleen ipv4 ondersteund.
Pagina 6
ipv6 tunnel xs4all windows 2003
Windows XP ipv6 firewall
Als je WindowsXP gebruikt zul je er snel achterkomen dat het vaak niet wil lukken om een verbinding op te zetten of te pingen. Dit komt door de ingebouwde ipv6 firewall die standaard actief is. Deze is in te stellen met
netsh firewall. Controleer of je firewall aanstaat met het onderstaande commando.
netsh firewall show adapter {INTERFACENAAM}
Via het volgende commando kun je je ipv6 firewall uitzetten. Vul bij INTERFACE naam de logisch naam van je netwerkkaart in (zie netwerk eigenschappen).
netsh firewall set adapter {INTERFACENAAM} all=disable
Om de firewall weer te activeren (verstandig want bijna alle Windows firewall's ondersteunen geen ipv6!) moet je het onderstaande commando uitvoeren.
netsh firewall set adapter {INTERFACENAAM} all=enable
Als je alles goed hebt gedaan krijg je response en mag je nu een kratje bier openen.
Pagina 7
ipv6 tunnel xs4all windows 2003
Netwerk clients
Static configuration
Als we client van buiten af willen benaderen dan is het handig als deze een vast ip nummer hebben. Om een ipv6 adres aan een host in je netwerk toe te voegen moet je het volgende command uitvoeren.
netsh interface ipv6
add address interface="lan" address=2001:888:1953::2
Aangezien we eerder op de router hebben aangegeven deze gateway is voor ::/0 gaat al het verkeer via de router en dus ook het verkeer binnen het lan. Dit is iets wat we niet willen en om dat te voorkomen voegen we een route mapping toe zodat dit niet gebeurd.
netsh interface ipv6
add route prefix=2001:888:1953::/64 interface="lan" metric=0
Autoconfiguration
Tevens is er de mogelijkheid om je LAN clients automatisch te laten configureren op een simpele DHCP achtige wijze. De clients krijgen automatisch een juist IP adres toegewezen dat in je toegewezen range zit. Ook je eventuele DNS server word middels een ipv6 adres kenbaar gemaakt.
Om dit te bewerkstelligen moeten we op de router aangeven dat deze op het LAN moet aangezen dat deze autoconfiguration ondersteund. Dit doen we door middel van de publish vlag.
Voorheen
netsh interface ipv6
add route prefix=2001:888:1953::/64 interface="Naar intranet" metric=0
Nu
netsh interface ipv6
add route prefix=2001:888:1953::/64 interface="Naar intranet" metric=0 publish=yes
Hieronder het resultaat na het commando netsh interface ipv6 show route
Querying active state...
Publish Type Met Prefix Idx Gateway/Interface Name
------- -------- ---- ------------------------ --- ---------------------
yes Manual 1 ::/0 5 tunnel yes Manual 0 2001:888:1953::/64 4 lan
Met het commando netsh interface ipv6 renew op je clients kun je een nieuw ipv6 adres opvragen. Dit lijkt heel erg op het ipconfig /renew commando om van de dhcp server een nieuw adres toegewezen te krijgen.
Misschien is het niet altijd wenselijk dat je autoconfiguration aan hebt staan. Zekers niet in een bedrijfs netwerk zodat mensen 'ff' hun notebook inpluggen. Misschien nog erger om op deze wijze je WiFi access point heel je straat van te voorzien van internet. Maar in mijn situatie is dat juist wenselijk....
Pagina 8
ipv6 tunnel xs4all windows 2003
ipv6 reverse dns zone met ZoneEdit.com
Middels hulp van the gathering is het nu ook gelukt om ipv6 reverse dns via zoneedit.com te gebruiken.
Reverse lookup zone aanmaken
Ga naar het xs4all service center en vervolgens naar het ipv6 configuratie scherm. In het blok met de naam Nameservers voor reverse DNS zone staat aan het einde ook dus je reverse DNS zone. Bij mij is dit 3.5.9.1.8.8.8.0.1.0.0.2.ip6.arpa. Deze zone moet je toevoegen bij Add Zones onder de optie Advanced Bulk Loader. De default mode (Add listed zones with specified defaults) is ok dus klik daarna op Bulk Add Zones. De reverse DNS zone is nu toegevoegd en verschijnt links bij je al bestaande forward zone. Je krijgt nu twee nameservers die je in moet voeren. Deze staan als het goed is nu bovenaan in het scherm als je je reverse zone selecteerd. Mocht dit niet het geval zijn dan klik je op View en dan staan ze onder het kopje Nameservers:. Geef deze nameservers op in het ipv6 configuratie scherm bij Nameserver 1 en 2 en klik vervolgens op Wijzig. Het kan een flink aantal uurtjes duren voordat xs4all naar de nameservers van zoneedit verwijst. Zodra dit uiteindelijk actief is verdwijnt de melding van het scherm als je de reverse zone selecteerd.
PTR records toevoegen
Om PTR records in te voeren bij zoneedit moet je naar het Advanced scherm gaan en daar PTR Records selecteren. Een ipv6 PTR record is nogal lang. Onderstaande voorbeeld is dus het PTR record wat verwijst naar mars.exyll.net. Op deze server draait deze website.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.5.9.1.8.8.8.0.1.0.0.2.ip6.arpa
Voordeel van een ipv6 PTR record is dat eigenlijk alle records altijd even lang zijn. Dit maakt het een stuk eenvoudiger om te zien of je een tik fout hebt gemaakt bij het invoeren.
ip6.int
Eventueel kun je ook een reverse lookup zone aanmaken voor de *.ip6.int variant. Dit is omdat nog niet alle huidige ipv6 omgevingen gebruik maken van de *.ip6.arpa postfix. Ik had alleen het probleem dat ik maar 2 zones onder één account kon aanmaken. Deze oplossing zal waarschijnlijk ook bij andere free DNS server providers te gebruiken zijn.
Dus als je geen gebruik maakt van: IPv6, Jammer
Als je ook mee wilt doen in het IPv6 netwerk en je internet provider
biedt geen IPv6, dan zou je eens op deze sites moeten kijken:
http://www.sixxs.net/ (TIP)
https://tb.ipv6.btexact.com/
http://www.tunnelbroker.net/
Download hier onder het laatste uitgebreide Service Pac 1
http://www.microsoft.com/downloads/details.aspx?familyid=E88CC382-8CE6-4739-97C0-1A52A6F005E4&displaylang=en
Extra nieuws IPv6 Windows XP
Een tijdje terug was bekend geworden dat de ipv6 stack op XP (en
2003) de eigen firewall niet werkt. Deze werkt alleen voor ipv4.
Gisteren heeft Microsoft de Advanced Networking Pack gereleased.
Dit is een upgrade voor de ipv6 stack waarmee NAT in combinatie met ipv6
goed werkt en zit er een simpele ipv6 firewall in.
Vooral het ontbreken van de firewall weerhield me om mijn ipv6 tunnel
continu actief te houden. Nu kan ik dat dus zonder problemen doen.
Helaas is de Advanced Networking Pack nog niet beschikbaar voor 2003.
Ook hebben ze de p2p SDK uitgebracht. Hiermee kun je eenvoudiger zelf
p2p applicaties ontwikkelen. Heb er nog niet naar gekeken maar misschien
kun je er wel eenvoudig een soort eDonkey netwerk mee maken.
- Microsoft en
IPv6
- IPv6
Internet Connection Firewall SDK
- Windows
XP Peer-to-Peer Software Development Kit
- Advanced
Networking Pack for Windows XP KB817778
- Overview
of the Advanced Networking Pack for Windows XP (KB817778)
- Advanced
Networking Pack for Windows XP F.A.Q.
|