IPv6

Toen in 1996 de tekeningen voor Ipv6 waren afgerond, ging men er van uit dat het binnen 10 jaar in productie zou draaien (samen met IPv4). Daarmee zou iedereen voorbereid zijn op het opraken van de IPv4 adressen. Nu we inmiddels 14 jaar verder zijn, is het percentage IPv6 geschikte netwerken echter nog steeds minimaal. Pas nu het laatste jaar het opraken van IPv4 echt in zicht begint te komen, beginnen bedrijven pas haast te krijgen.

Wat is IPv6?

Een IPv4 adres bestaat uit 32 bits en bevat alleen numerieke karakters (bijvoorbeeld: 82.94.214.0). Een IPv6 adres daarentegen bevat 128 bits en is opgebouwd uit hexadecimale tekens. Het stelsel loopt dus van 0 tot en met F (bijvoorbeeld 2001:db8:1f70::999:de8:7648:6e8). Voor elke aardbewoner zijn er ongeveer 50.000 quadriljoen beschikbaar. De twee duidelijke verschillen met Ipv4 zijn dus: 128 in plaats van 32 bits en hexadecimaal in plaats van decimaal. Daarnaast zijn er achter de schermen nog een aantal wijzigingen.

Byte en IPv6

Binnen Byte is besloten om naast IPv4 ook IPv6 te gaan gebruiken. Niet omdat we geen IPv4 adressen meer hebben, maar om goed voorbereid te zijn op de toekomst als dat wel het geval is. Die implementatie is nog lastiger dan op het eerste lijkt.

We proberen bij Byte zoveel mogelijk processen te automatiseren. Met IPv4 gaat dat prima! Of dat ook blijft werken met IPv6 weten we echter nog niet. Bij het toevoegen van de eerste IPv6 adressen in de database, ging er namelijk al direct een script mailen met waarschuwingen: een goed begin ;)

Omdat de impact van de implementatie op dit moment nog niet goed in te schatten is, kunnen we IPv6 natuurlijk nog niet direct in productie nemen naast ons IPv4 platform! Om het goed te kunnen testen, moeten we dus een ontwikkelomgeving bouwen die 100% gelijk is aan het IPv4 platform maar waar ook IPv6 draait. Dat betekent dat we 2 extra loadbalancers gaan inzetten en hier een aantal servers aan zullen toevoegen om vervolgens te kunnen gaan testen. Echter, servers met alleen IPv6, dat schiet nog niet echt op.  Als we alleen IPv6 zouden draaien kunnen apparaten die alleen ipv4 spreken de door ons gehoste sites niet meer kunnen vinden. Oftewel: we moeten een nieuw IPv4 platform bouwen waar we ook IPv6 op gaan draaien.

Interne netwerk van Byte ook IPv6?

Gaat Byte het het interne netwerk dan ook IPv6 enabled maken? Een ander groot verschil ten opzichte van IPv4 is bijvoorbeeld dat NATten (Network Address Translation) ‘niet meer bestaat’. Er zijn genoeg IPv6 adressen om iedere machine een eigen publiek IP te geven en NATten wordt als ‘bad practice’ beschouwd in combinatie met IPv6. Intern hebben we gesproken over de implementatie van IPv6. De eerste reactie  was “Maar dan kunnen we het IP adres niet meer onthouden!”. Iets wat erg handig is voor de momenten dat DNS niet meer werkt.

Byte heeft een /64 block Ipv6 adressen gekregen (18,446,744,073,709,551,616 adressen). Dat zijn er ruim voldoende om de komende jaren vooruit te kunnen en een (ruim) IP-plan te bedenken. We zouden bijvoorbeeld de laatste 32 bits van het IPv6 adres, het IPv4 adres kunnen laten zijn. Het enige wat er dan extra onthouden hoeft te worden, is de prefix. Het kan,  maar mooier is het om het zo simpel mogelijk voor iedereen te houden. Hiertoe zullen we radvd (Linux IPv6 Router Advertisement Daemon) gebruiken. Deze kent IP’s toe op basis van het MAC-adres. Zo hoeft er niemand na te denken (MAC-adressen slaan we per server op in een database) en zijn IP’s altijd uniek.

IPv6 Extern..

Wat doen we met de externe IPv6-adressen? Gaan we iedere klant, iedere site, ieder subdomein een eigen IPv6 adres geven? De ruimte is er, dus waarom niet? Ieder extern IP wordt gebind (in leken termen: gekoppeld) op de loadbalancer en vanaf daar doorgestuurd naar de ‘realserver’. Als we iedere klant een eigen IPv6 geven, zouden we vele duizenden IP’s moeten gaan binden (koppelen) op de loadbalancer. Afgezien van dat het kan, is het wel de vraag of we dat willen. Het vergt namelijk veel capaciteit van de server wat weer ten kosten van stabiliteit en snelheid zou kunnen gaan.

Natuurlijk zouden we weer met shared IP’s kunnen werken en dedicated voor SSL certificaten, maar dan missen we het primaire doel van IPv6, niet meer hoeven te NATten! Tests zullen laten zien of de loadbalancer goed kan omgaan  met extreem veel IP’s binden op de network interface.

Planning

Eind november hebben we alle hardware bij elkaar om een nieuw test-loadbalancer-koppel op te tuigen, alle software wijzigingen doorgevoerd en dan  kunnen we gaan testen…

Gelukkig.. De software die wij standaard zullen gaan gebruiken op onze loadbalancer kan sinds kort IPV6 ‘spreken’ (6 maanden) …  We gaan de nodige bugs dus nog wel vinden! Wanneer we IPv6 aan klanten aanbieden is nog even de vraag.

  • http://www.piozum.com Jan-Pieter van den Heuvel (Piozum)

    Ah, goed om te horen dat Byte hiermee aan de slag gaat. Zodra we kunnen testen hoor ik dat natuurlijk graag!

  • Willem

    Leep! NATten not done? Een groot voordeel van NAT is dat je je interne netwerk structuur kunt verbergen voor de buitenwereld. Maar daar zijn vast andere trucjes op te verzinnen. Ander groot voordeel: uitgaande IPs (evt.) per klant zodat bij misbruik direct de boef getraceerd kan worden.
    Goed uitzoek- en uitleg werk Roy!

  • http://www.byte.nl Roy

    Ha! Dat verbergen werkt goed, maar is eigenlijk niet de bedoeling. NAT is ooit bedacht om zo het verbruik van routable IP’s in te dammen; zonder NAT hadden we al veel eerder het IPv4-is-op probleem gehad.

    De filosofie is dat routable IPv6-IPs niet slecht zijn en de bescherming die NAT biedt opgevangen moet worden met firewalls…

  • Mark Kerssens

    @Willem, mocht je echt willen ‘NATten’ dan zijn er altijd nog ‘Unique Local Adresses’ die niet routeerbaar zijn op het internet. Zeg maar een gelijkwaardig tegenhanger van 10.0.0.0/8, 172.16.0.0/12 en 192.168.0.0/16.

    Zie RFC4193 voor meer informatie.

    @Byte goed om te zien dat jullie er ook nu mee gaan spelen.

    Mvg,
    Mark

  • http://www.gxjansen.com Guido Jansen

    Als we https://twitter.com/#!/IPv4Countdown mogen geloven hebben we nog 102 dagen. Dat gaat toch best wel rap, dan mag dat testen wel vaart krijgen…

  • http://www.byte.nl Roy

    In mijn nieuwe artikel vertel ik meer over hoe Byte hier mee omgaat: http://www.byte.nl/blog/2011/02/03/paniek-help-ipv4-is-op/