
Waar haalt Windows Vista zijn IPv6 adres vandaan?
Windows Vista -en vele andere OS-en- zijn tegenwoordig uitgerust met een IPv6 stack. Als je een netwerk wilt bouwen met IPv6, dan zul je moeten begrijpen hoe een besturingssystemen zoals Windows Vista aan zo’n nummertje kan komen. In dit stappenplan wordt uitgelegd wat er allemaal gebeurt als een besturingssysteem met een IPv6 stack opstart, maar ook allerlei nieuwe lastige woordjes worden behandeld -waarschijnlijk heeft Google je daarom naar deze weblog verwezen-. Windows Vista -en vele andere OS-en- zijn tegenwoordig uitgerust met een IPv6 stack. Als je een netwerk wilt bouwen met IPv6, dan zul je moeten begrijpen hoe een besturingssystemen zoals Windows Vista aan zo’n nummertje kan komen. In dit stappenplan wordt uitgelegd wat er allemaal gebeurt als een besturingssysteem met een IPv6 stack opstart, maar ook allerlei nieuwe lastige woordjes worden behandeld -waarschijnlijk heeft Google je daarom naar deze weblog verwezen-. Stap 1: Computer -met bijv. Windows Vista- wordt aangezet -vermoedelijk makkelijkste stap om te begrijpen-. Stap 2: The TCP/IP stack wordt gestart en gaat op zoek naar één -of meerdere- IP nummers, afhankelijk van de geselecteerde protocols. In het geval van IPv4 heb je 2 mogelijkheden: Statisch of Dynamisch, oftewel je hebt ooit eerder handmatig een IP adres ingetypt of er moet een IP adres worden verkregen middels een DHCP Server. In het geval van IPv6 heb je wederom 2 mogelijkheden: idem dito..
Statisch is simpel en daar gaan we het verder ook niet over hebben. Stap 3: Op dit moment wordt auto-configuration gestart. Dit betekent dat de host zelf gaat proberen om een IPv6 adres te genereren. Het eerste adres dat gegenereerd wordt is een link-local adres. Voor het creëren van een link-local adres heeft de host geen hulp van anderen nodig. Het link-local adres is daarom erg vergelijkbaar met APIPA in IPv4. Een link-local adres is een fe80::/10 adres, dit betekent dat een link-local adres altijd te herkennen is aan zijn prefix -dat is dus altijd fe80-. Voor de rest van het link-local adres kan gebruik worden gemaakt van het MAC adres van de betreffende Netwerkkaart. Dit MAC adres is dan ook terug te vinden in het link-local adres. Het gecreëerde adres krijgt nu de status tentative en mag niet gebruikt worden. Stap 4: Vervolgens wordt onderzocht of het zelfgemaakte adres al gebruikt wordt door een andere machine. Een soort van PING volstaat om dit te achterhalen. Als het link-local adres niet uniek blijkt te zijn, dan gaan we over op het echte handenwerk. De eindgebruiker mag dan namelijk zelf een IP-adres bedenken. We gaan er in dit geval van uit dat het gemaakte link-local adres uniek is. Stap 5: Omdat het link-local adres uniek is op het netwerk, mag het ook daadwerkelijk gebruikt worden. Het adres krijgt daarom ook de status preferred.
Het link-local adres is het eerste adres dat aan de netwerkkaart wordt toegekend. Het volgende adres is een site-local of global adres. Een site-local adres is een adres in de range fc00::/7 en mag vergeleken worden met het 10.x.x.x adres in IPv4 -of 192.168.x.x-. Het is uniek binnen de organisatie maar niet op het Internet. Het global adres is wel uniek op het Internet en heeft geen vaste prefix. Stap 6: Om een site-local of global adres te krijgen zal de host eerst aan de router moeten vragen hoe aan een adres te komen. Deze vraag wordt gesteld middels een router solicitation. Als de router niet bekend is met IPv6 zal deze geen antwoord geven, de host zal dan proberen om direct contact op te nemen met een DHCP Server. De werkwijze is hier dan analog aan IPv4. Is de router wel bekend met IPv6, dan zal de router antwoorden met een router advertisement. Hierin zijn een aantal zaken opgenomen, waaronder de O-Flag en de M-Flag. De mogelijkheden van deze vlaggetjes zijn hieronder uitgewerkt.
M-Flag | O-Flag | Managed Address Configuration | Other Stateful Configuration |
0 -false- | 0 -false- | Router advertisement | Handmatig of niets |
0 -false- | 1 -true- | Router advertisement | DHCP |
1 -true- | 0 -false- | DHCP | Handmatig of niets |
1 -true- | 1 -true- | DHCP | DHCP |
Met de M-Flag wordt aangeduid of de host zijn IP adres van de router of van een DHCP Server behoort te krijgen. Met de O-Flag wordt aangeduid of de host zijn settings -default gateway e.d.- van de DHCP Server moet krijgen of niet. In gevalletje ‘niet’ zal de host geen extra settings krijgen, tenzij deze al van te voren handmatig zijn ingevoerd. Als een host zijn IP adres en gegevens van een router krijgt wordt er over een stateless host gesproken. Een host die zijn IP adres en gegevens van de DHCP server krijgt is stateful. Zoals je hierboven ziet zijn er ook twee opties waarbij de host zowel stateful als stateless is.