Roel's Praathoek - IPv6 experimenten

Tunnel voor IPv6

Ik ben van ISP gewisseld en daar zat voor het opnieuw opzetten van de IPv6 tunnel een uitdaging in. IPv4 werkte na het omnummeren van m'n interne netwerk weer snel (ik had een paar systemen met een statisch IP-adress). De IPv6 tunnel naar HE.net kwam niet op. Voor het omnummeren heb ik ook nog een nieuwe mogelijkheid van de VDSL router gebruikt om een IPv4 adres vast aan een MAC-adres te koppelen, zodat ik geen statische adressen op m'n webserver en tunnel PC meer nodig had. Een goede beslissing, want dat bleek ik later sowieso nodig te hebben. Wat de tunnel betreft, na wat zoeken en lezen bleek dat ik was vergeten om bij tunnelbroker.net mijn nieuwe IPv4 adres op te geven.

Bij het aanpassen van het tunnel endpoint in de tunnel configuratie kreeg ik de melding dat het opgegeven tunnel endpoint niet te pingen was. Een uitdaging, want het nieuwe modem liet dat niet. Ik kon niets aan de firewall veranderen, dus kon de ping-blokkade niet opheffen. Met een truukje is het uiteindelijk wel gelukt en nu doet de IPv6 tunnel het weer.

 

Ik vond via google geen directe oplossing, behalve een verhaal over het plaatsen van een eigen router (dat is wat rigoreus) en workaround voor gaming via de DMZ-mode. Beide artikelen gaven niet de oplossing, maar wel genoeg informatie om verder te komen. Met DMZ-mode wordt alles naar een interne IPv4 doorgestuurd en dat gaat buiten de firewall om. Bij een testje bleek dat dit ook voor ICMP werkte. De truuk voor het 'aanzetten' van ICMP op het IPv4 tunnelendpoint is de DMZ-mode te activeren. De opgegeven DMZ host zal de ping requests dan afhandelen en de reply sturen. Het nieuwe IPv4 tunnelendpoint kon nu geactiveerd worden en de IPv6 tunnel was gerepareerd. Daarna de DMZ-mode weer uitgezet, want die was niet meer nodig.

Thuisnetwerk

M'n thuisnetwerk is voorzien van IPv6. Ik gebruik een enkel IPv6 /64 subnet op het thuis-LAN. Inkomend http(s) verkeer wordt doorgelaten voor webservers. ICMP wordt gedeeltelijk toegestaan, je kan pingen en de benodigde administratieve zaken voor IPv6 mogen. Vanaf het interne netwerk kan je via een webbrowser (voor http(s) verkeer) het internet op.

Thuisnetwerk met IPv6 via een tunnel

Zolang je ISP geen native IPv6 levert, is de andere mogelijkheid om IPv6 via een z.g. tunnel op je thuisnetwerk te krijgen. Je moet daarvoor wel opzoek naar (meestal een bedrijf) dat deze dienst aan je wil leveren. Ik ken twee bekende IPv6 tunnelleveranciers, waar je als technisch geinteresseerde gebruiker, zo'n tunnel kan aansluiten. Ik gebruik een tunnnel van Hurricane Electric via hun IPv6 Tunnel Broker site. De andere is SixXS maar daarvan vond ik de aanvraag procedure en benodigde software destijds te ingewikkeld.

Elders op deze pagina staat meer info over hoe ik de tunnel heb geconfigureerd. Mijn tunnel-endpoint-machine routeert het IPv6 verkeer tussen mijn thuis-LAN en de tunnel. De firewall (met iptables6) blokkeert alles, behalve uitgaand http (poort 80) en https (poort 443) verkeer (met een statefull firewall rule) en binnenkomend verkeer voor m'n webserver (met een statische rule).

Thuisnetwerk met IPv6 via de ISP

Als je ISP IPv6 levert, zal je die waarschijnlijk IPv6 en IPv4 samen doen. In mijn geval merkte ik dat na het omschakelen naar KPN internet via glasvezel, de experiabox een IPv6 op m'n thuisnetwerk adverteerde. Ik had natuurlijk wel het IPv6 Enable vinkje aangevinkt, maar eerder had dat geen effect. Nu er een IPv6 prefix wordt geadverteerd, heeft dat tot gevolg dat de aangesloten devices, tenminste die, die IPv6 snappen, een publiek IPv6 addres krijgen. Dat IPv6 adres is vanaf het internet nog niet te bereiken (veilig), daar moet je nog wat extra voor instellen (zie later) op de experiabox.

Webserver

De site www.roheve.nl heeft een IPv6 adres en een AAAA record in de DNS. Ook de webserver zelf heeft IPv6 en daarmee is de site IPv6 enabled.

Mailserver

Mijn domein roheve.nl is mail enabled. Toen Google Apps (tegenwoordig heet dat Google for bussiness) nog free-accounts had, heb ik me daar eens aangemeld. Dat kwam later mooi uit voor mail op m'n eigen domein. Door enkele DNS records te configureren, koppel je een google-mailbox aan je eigen domein-naam en dat betekent dat je mail via je eigen domein kan gebruiken zonder zelf een mailserver te draaien. Aangezien Google een pionier op IPv6 gebied is, is de mailbox ook IPv6 enabled.

Gereedschap

    IPv6 tool sites

  • Scanner

    Online IPv6 TCP/UDP Port Scanner

Werking

Hoe ik het allemaal geconfigureerd heb, moet ik nog een keer beschrijven. Samengevat heb ik een IPv6 tunnel op een PC met ubuntu linux die tevens als router en firewall werkt. Andere machines op het thuisnetwerk krijgen via radvd de IPv6 prefix van het LAN binnen en bepalen daarmee hun eigen IPv6 address via de z.g. stateless address configuration.

    Achtergrond Info

    Hieronder een link met een vrij goede samenvatting van hoe ik m'n ipv6 tunnel en router heb gebouwd. Ik kwam dit pas recent tegen, maar het lijkt sterk op mijn werkwijze. Omdat het zo goed overeenkomt, hier de link.

  • How2tunnel

    Give your LAN “native” IPv6 using Ubuntu and a Hurricane Electric tunnel

De IPv6 tunnel

Voor de tunnel heb ik me aangemelden bij HE. Je kan uit een aantal tunnelservers bij internet knooppunten kiezen. Ik heb gekozen voor de PoP in Amsterdam, die zowel geografisch als qua IPv4 routering dichtbij is. Als je een tunnel aanvraagt krijg je twee IPv6 blokken, één voor de tunnel zelf en één voor je thuisnetwerk. Bij de tunnelserver hoort ook een IPv4 addres, het z.g. endpoint.

Ik gebruik ubuntu linux en heb de tunnel geconfigreerd in /etc/network/interfaces.

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:470:1f14:116b::2
        netmask 64
        endpoint 216.66.84.46
        ttl 255
        gateway 2001:470:1f14:116b::1
	up ip -6 addr change 2001:470:1f14:116b::2/64 dev he-ipv6 preferred_lft 0

De laatste regel van deze configuratie zorgt ervoor dat het lokale tunnel-addres niet gebruikt wordt bij uitgaand verkeer vanaf de tunnel-machiner, maar een ander ipv6 adres. Bij de tunnel-machine is dat een ipv6 adres dat op eth0 is geconfigureerd met de prefix van het thuisnetwerk.

$ ip -f inet6 addr show he-ipv6
4: he-ipv6:  mtu 1458 
    inet6 2001:470:1f14:116b::2/64 scope global deprecated

De tunnel machine heeft geen 'privacy' IPv6 adres, de rest wel. Ik vermoed dat dit komt omdat er op deze machine statische adressen zijn geconfigureerd of omdat de machine als router is geconfigureerd of omdat hier de radvd service draait.

IPv6 in je thuisnetwerk

Zo, nu heb je IPv6, wat nu. Een computer met IPv6 werkt niet anders dan een met alleen IPv4. Bij het rondstruinen op internet merk je geen verschil, je webbrowser zal IPv6 gebruiken waar dat kan en anders terugvallen op IPv4. Als een website nog geen IPv6 heeft, maar wel een IPv4 addres heeft, is er niets aan de hand en werkt het gewoon. Omdat de IPv4 adressen bijna allemaal al uitgegeven zijn, heerst er schaarste (bij je ADSL of kabel internet krijg je er maar 1 op je aansluiting thuis). IPv6 adressen zijn er echter genoeg en je krijgt standaard minstens een heel IPv6 /64 blok per aansluiting, dus genoeg voor al je apparaten thuis.

Mijn Raspberi Pi in de meterkast heeft een IPv6 adres en is daarmee vanaf het internet benaderbaar. Dat is natuurlijk omdat ik de firewall verteld heb dat je dat mag en alleen voor web-verkeer. Heb je alleen IPv4, is de RPi onvindbaar, heb je IPv6, dan kom je er wel bij.

privacy adressen

Ik heb mijn thuismachines meestal geconfigureerd om de privacy extention te gebruiken. Normaal wordt bij Stateless address autoconfiguration voor de laatste 64-bit van het IPv6 adres een EUI-64 address gegenereerd op basis van het MAC adres van de netwerkkaart. Dat betekent dat zo'n IPv6 adres vast aan je computer zit gekoppeld en dat maakt het makkelijk traceerbaar. Als je de privacy extentions gebruikt, wordt er een z.g. temporary address gegenereerd, wat tevens voor uitgaand IPv6 verkeer gebruikt word. Dit temporary address is een random 64-bit getal, dat bovendien na een enige tijd weer wordt veranderd. Het resultaat is dat je IPv6 adres niet elke dag hetzelfde is en je daardoor moeilijker te traceren bent op internet.

Voor een thuisnetwerk zal echter de ipv6 prefix altijd gelijk blijven, dus het is wel bekend bij welke aansluiting, en dus in welk huis, de computer staat. Kortom, zo annoniem is zo'n 'private address' nu ook weer niet. Het is natuurlijk wel moeilijker te bepalen via welke computer en al helemaal niet wie er dan achter de computer zit, maar al die trackende bedrijven identificeren je dan gewoon op basis van de prefix en al die andere kleine verschillen tussen computers en mensen bij het gebruik van internet. Dit is niet anders dan je huidige IPv4 adres, wat voor ADSL aansluitingen ook traceeerbaar is naar je huisaansluiting.

DNS hosting

Omdat je bij he allerlei testjes kan doen voor een 'IPv6 certificering' en ik al een tijdje vrij ver was bij de testjes, maar ik bij gebrek aan een IPv6 nameserver bij mijn domein provider niet verder kan, heb ik een lokale 'bind' geconfigureerd (die ik niet extern gebruik). Daarnaast heb ik voor mijn domein een zone geconfigureerd op de Hurricane Electric Free DNS service, zodat ik geen inkomend DNS verkeer op m'n 'dunne' ADSL krijg. Ik had al eerder m'n ipv6 reverse lookup geconfigureerd, maar heb nu ook m'n echte forward domain toegevoegd.

42

Answer to the Ultimate Question of Life, the Universe, and Everything.

World IPv6 Launch

HE logo