Het grote IPv6 topic
Zoals recentelijk weer op de frontpage hebben kunnen lezen zijn de IPv4 adressen weer eens op aan het raken. Hoewel het koffiedik kijken is wanneer dit echt het geval is zal het er toch wel een keer aan zitten te komen. De enige logische oplossing is IPv6 te gaan gebruiken.Omdat er nogal wat vragen, onduidelijkheden en misverstanden zijn heb ik dit stukje tekst maar eens geschreven om wat duidelijkheid te verschaffen. Ik zal de TS hier en daar aanpassen uitbreiden als daar behoefte aan is. Het doel van dit topic is gewoon een beetje lullen over IPv6 en alles wat er mee te maken heeft.
Geschiedenis
IPv4 is ontwikkeld in het begin van de jaren 80 In die tijd leek het meer dan voldoende om slechts 32 bits te gebruiken voor de adressering van IPv4 hosts. Toen de IETF in 1992 doorhad dat de IPv4 adresruimte niet meer zou voldoen op de lange termijn is er begonnen met de ontwikkeling van IPv6 met als belangrijkste verbetering een 128 bits adresruimte voor de hostsTechniek
IPv6 hoeveel adressen zijn er, link local adressen, hoe ziet het eruit etc etc hier vind je de antwoorden.Adresruimte
de IPv6 adres ruimte is enorm en er worden vaak rekensommetjes gemaakt met hoeveel adressen er per aardbewoner zijn. Dit is echter erg kort door de bocht en wordt gedaan door mensen die gewoon graag domme sommetjes maken maar IPv^6 eigenlijk niet begijpen.Het rekensommetje klopt niet omdat met IPv6 heeft elk interface hetzelfde subnetmasker van /64. Dit houdt in dat er op elk netwerk segment er 2^64 host adresseringen mogelijk zijn. Nu zal er zelden de noodzaak zijn om meer dan 500 hosts op een segment te hebben en zeker niet 2^64 hosts. Op het 1e gezicht lijkt hier nog steeds een zeer groot deel van de mogelijke adresruimte verspild te worden.
Wordt dan dezelfde fout gemaakt als met IPv6 door grote delen van de ruimte onbenut te laten? Ja en nee. Er wordt zeer veel weggegooid op dit moment, maar omdat er nog steeds 2^64 unieke subnetten mogelijk zijn is de ruimte nog steeds meer dan we ooit nodig zullen hebben. Waarom er zoveel meer host aanduidingen mogelijk zijn dan praktisch wordt later uitgelegd.
Notatie
IPv6 wordt opgeschreven in een hexadecimaal formaat. Waarbij 8 keer 16 bits worden gegroupeerd. Voorbeelden- 2001:0610:060f:046f:0000:0000:0000:0002
- fe80:0000:0000:0000:0240:63ff:fecb:a124
- 2001:0610:f63e:0066:0000:0000:0000:0001
- 2001:610:60f:46f::2
- fe80::240:63ff:fecb:a124
- 2001:610:f63e:66::1
adrestypes
IPv6 kent drie adrestypes- Link-local
- Site-Local
- Global
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| eth0.100 Link encap:Ethernet HWaddr 00:40:63:cb:a1:24 inet addr:192.168.100.254 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::240:63ff:fecb:a124/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:830614 errors:0 dropped:0 overruns:0 frame:0 TX packets:800904 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:189127004 (180.3 MiB) TX bytes:589053667 (561.7 MiB) eth0.101 Link encap:Ethernet HWaddr 00:40:63:cb:a1:24 inet addr:192.168.101.254 Bcast:192.168.101.255 Mask:255.255.255.0 inet6 addr: fe80::240:63ff:fecb:a124/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:565476 errors:0 dropped:0 overruns:0 frame:0 TX packets:865214 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:75546743 (72.0 MiB) TX bytes:720818300 (687.4 MiB) |
Deze adressen worden automatisch aangemaakt op basis van het mac-adres van het desbetreffende interface. Om van de 48 bits van het MAC een 64 bits hostaanduiding te maken wordt de waarde fffe tussengevoegd. Tevens wordt het 6e bit van het 1e byte van mijn mac adres op 1 gezet.
In het voorbeeld is mijn MAC 00:40:63:cb:a1:24 en mijn hostdeel van mijn link-local adres is is dus 240:63ff:fecb:a124 geworden.
Omdat in theorie elk MAC adres uniek is kan elke host een uniek adres krijgen.
Site-local was oorsponkelijk bedacht om dezelfde functie van te vervullen als de huidige RFC 1918 adressen (10.0.0.0/8 172.16.0.0/12 en 192.168.0.0/16). Gelukkig werd op tijd ingezien dat dit toch niet zo handig was en is dit ondertussen al weer afgeschaft. Ze waren te herkennen omdat ze begonnen met fec0.
Global adressen worden gebruikt voor machines die elkaar moeten kunnen bereiken via het internet. Op dit moment worden hier voor adressen uitgedeeld uit het 2001::/16 subnet. Via een tunnelbroker kan je hier een /48 subnet uit krijgen zodat je je eigen netwerk volledig kan voorzien van IPv6 adressering. Omdat zoals hierboven al is uitgelegd heeft elk subnet een /64 masker dat betekent dat je dus in je eigen thuisnetwerkje maar liefst 2^16 netwerken kan aanmaken met een /48 subnet.
Het host deel van je global IPv6 adres kan je zelf te bepalen, maar je kan dit net zoals je Link-local adres gewoon laten bepalen aan de hand van je MAC-adres. Voor een PC is dit prima maar voor een server erg onpraktisch omdat als je de NIC vervangt dus ook je IPv6 adres verandert. Dit is uiteraard erg onhandig.
IPv6 en DHCP
DHCP bestaat nog wel in IPv6 maar is niet meer nodig om een host een adres toe te wijzen. Het link-local adres bepaalt de host aan de hand van zijn MAC-adres en de fe80::/64 prefix.Het global adres wordt bepaald met behulp van de router-advertisements van de default gateway op een netwerk. In deze advertisements zitten een aantal waardes waarvan de IPv6 prefix de belangrijkste is. Met behulp van deze prefix geeft een host zichzelf een global IPv6 adres.
Toekomst
eeehmm ff denken.IPv6 op jouw PC
Hoe krijg je het voor elkaar om jouw PC te connecten op het internet met IPV6Linux
Mijn relevante configs op debian./etc/network/interfaces
code:
1
2
3
4
5
6
7
8
9
10
11
| iface eth0.101 inet6 static address 2001:61F:63e:65::1 netmask 64 auto sixxs iface sixxs inet6 v4tunnel address 2001:61F:600:46f::2 netmask 64 endpoint 192.87.102.107 ttl 64 up ip link set mtu 1280 dev sixxs up ip route add default via 2001:61F:600:46f::1 dev sixxs |
Hierin is 65 het subnet wat ik heb gekozen binnen het /48 subnet wat ik heb gekozen. Ik heb gekozen voor 65 omdat dat in decimaal hetzelfde is als 101 wat mijn VLAN id is.
/etc/radvd.conf
code:
1
2
3
4
5
6
7
8
9
10
| interface eth0.101 { AdvSendAdvert on; prefix 2001:61F:63e:65::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; }; |
Als laatste forwarding op IPv6 aanzetten.
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
dit zou voldoende moeten zijn. om alle hosts op je lokale netwerk van een uniek IPv6 adres te voorzien.
Windows
Links
- Sixxs IPv6 Tunnel broker gratis een IPv6 tunnel aanvragen en eventueel zelfs een /48 subnet.
- Hurricane Nog een IPv6 Tunnel broker.
- Wikipedia IPv6 info op Wikipedia
- Microsoft Microsoft IPv6 site.
- Xs4all IPv6 Page Zit je bij XS4All dan kan je een /48 ipv6 subnet krijgen en een tunnel naar een IPv6 tunnel broker.
- IPv6 Community Portal voor van alles en nog wat voor IPv6
[Voor 6% gewijzigd door TrailBlazer op 26-08-2008 21:21]