IPv6 (ook bekend als IPng “IP next generation”) is de nieuwe versie van het welbekende IP-protocol (ook bekend als IPv4). Net zoals de andere huidige *BSD-systemen, bevat FreeBSD de referentie-implementatie van KAME IPv6. Het FreeBSD-systeem wordt dus geleverd met alles wat nodig is om met IPv6 te experimenteren. Deze sectie richt zich op het ingesteld en draaiend krijgen van IPv6.
In de vroege jaren 1990 werden mensen zich bewust van de snel krimpende adresruimte van IPv4. De uitbreidingssnelheid van het Internet baarde twee grote zorgen:
Geen adresruimte meer. Tegenwoordig is dit niet zo'n
probleem meer aangezien RFC1918 voor privé-adresruimte
(10.0.0.0/8
,
172.16.0.0/12
, en
192.168.0.0/16
) en Network
Address Translation (NAT) worden gebruikt.
De regels in de routeertabellen werden te groot. Dit is tegenwoordig nog steeds een probleem.
IPv6 behandelt deze en vele andere zaken:
128-bits adresruimte. Met andere woorden, er zijn theoretisch 340.282.366.920.938.463.463.374.607.431.768.211.456 adressen beschikbaar. Dit betekent dat er ongeveer 6,67 * 10^27 IPv6-adressen per vierkante meter op onze planeet beschikbaar zijn.
Routers zullen alleen netwerkaggregatie-adressen in hun routeertabellen opslaan en dus de gemiddelde ruimte van een routeertabel verkleinen tot 8192 regels.
IPv6 heeft ook vele andere nuttige eigenschappen zoals:
Automatische adresconfiguratie (RFC2462)
Anycast-adressen (“ééen-van-velen”)
Verplichte multicast-adressen
IPsec (IP security)
Versimpelde structuur van de headers
Mobiele IP
Overgangsmechanismen voor IPv6 naar IPv4
Bekijk voor meer informatie:
IPv6-overzicht op playground.sun.com
Er zijn verschillende soorten IPv6-adressen: unicast, anycast, en multicast.
Unicast-adressen zijn de bekende adressen. Een pakket dat naar een unicast-adres wordt verzonden arriveert precies op de interface dat bij dat adres hoort.
Anycast-adressen zijn syntactisch niet van unicast-adressen te onderscheiden maar ze adresseren een groep interfaces. Een pakket dat bestemd is voor een anycast-adres zal bij de dichtstbijzijnde interface arriveren (in router-metrieken). Anycast-adressen mogen alleen door routers worden gebruikt.
Multicast-adressen identificeren een groep interfaces. Een pakket dat bestemd is voor en multicast-adres zal bij alle interfaces die bij de multicast-groep horen arriveren.
Het broadcast-adres van IPv4 (gewoonlijk xxx.xxx.xxx.255
) wordt in IPv6 met
multicast-adressen uitgedrukt.
IPv6-adres | Prefixlengte (bits) | Beschrijving | Opmerkingen |
---|---|---|---|
:: | 128 bits | niet gespecificeerd | cf. 0.0.0.0 in IPv4 |
::1 | 128 bits | teruglusadres | cf. 127.0.0.1 in
IPv4 |
::00:xx:xx:xx:xx | 96 bits | ingebouwd IPv4 | De laagste 32 bits zijn het IPv4-adres. Ook “IPv4 compatibel IPv6-adres” genoemd. |
::ff:xx:xx:xx:xx | 96 bits | IPv4-afgebeeld IPv6-adres | De laagste 32 bits zijn het IPv4-adres. Voor hosts die geen IPv6 ondersteunen. |
fe80:: -
feb:: | 10 bits | link-lokaal | cf. teruglusadres in IPv4 |
fec0:: -
fef:: | 10 bits | site-lokaal | |
ff:: | 8 bits | multicast | |
001 (base 2) | 3 bits | globale unicast | Alle globale unicast-adressen worden vanuit deze pool toegewezen. De eerste 3 bits zijn “001”. |
De canonieke vorm wordt weergegeven als: x:x:x:x:x:x:x:x
, waarbij elke
“x” een 16-bits hexadecimale waarde is.
Bijvoorbeeld FEBC:A574:382B:23C1:AA49:4592:4EFE:9982
Vaak bevat een adres lange deelstrings van allen nullen,
daarom kan per adres één zo'n deelstring worden
afgekort als “::”. Ook kunnen maximaal drie
voorlopende “0”'s per hexadecimaal viertal worden
weggelaten. Bijvoorbeeld, fe80::1
komt overeen met de canonieke
vorm fe80:0000:0000:0000:0000:0000:0000:0001
.
Een derde vorm is het schrijven van de laatste 32 bits in de
bekende (decimale) IPv4-stijl met punten “.” als
scheidingstekens. Bijvoorbeeld, 2002::10.0.0.1
komt overeen met de
(hexadecimale) canonieke representatie 2002:0000:0000:0000:0000:0000:0a00:0001
wat weer hetzelfde is als 2002::a00:1
.
Op dit punt dient de lezer het volgende te begrijpen:
#
ifconfig
fe80::200:21ff:fe03:8e1%rl0
is een automatisch ingesteld link-lokaal adres. Het is als deel
van de automatische instelling vanuit het MAC-adres
aangemaakt.
Kijk voor verdere informatie over de structuur van IPv6-adressen op RFC3513.
Er zijn momenteel vier manieren om met andere IPv6-hosts en -netwerken te verbinden:
Er waren twee soorten DNS-records voor IPv6. De IETF heeft A6-records overbodig verklaard. AAAA-records zijn nu de standaard.
AAAA-records gebruiken gaat rechttoe-rechtaan. Wijs de hostnaam toe aan het nieuwe IPv6-adres dat net ontvangen is door het volgende aan de DNS-bestand voor primaire zones toe te voegen:
Vraag het aan de DNS-provider indien de
DNS-zones niet zelf worden geserveerd. De
huidige versies van bind (versie 8.3
en 9) en dns/djbdns
(met de
IPv6-patch) ondersteunen AAAA-records.
Deze instellingen helpen bij het configureren van een
machine in het LAN die als cliënt in plaats van router
dienst zal doen. Om rtsol(8) automatisch de interface
tijdens het opstarten te laten configureren op
FreeBSD 9.X
en nieuwer dient het volgende
aan rc.conf
toegevoegd te worden:
Voeg voor FreeBSD 8.X
en ouder het
volgende toe:
Voeg het volgende toe om statisch een IP-adres zoals
2001:471:1f11:251:290:27ff:fee0:2093
aan de interface fxp0
toe te
voegen voor FreeBSD 9.X
:
64
"Zorg ervoor dat prefixlen 64
wordt
vervangen door de juiste waarde voor het subnet van de
computer.
Voeg voor FreeBSD 8.X
het volgende
toe:
Voeg het volgende aan /etc/rc.conf
toe om een standaardrouter 2001:471:1f11:251::1
toe te
wijzen:
Deze paragraaf helpt bij het opvolgen van de aanwijzingen
die de tunnelprovider heeft gegeven en ze om te zetten in
instellingen die blijven na een herstart. Om de tunnel
tijdens het opstarten te herstellen kan het volgende in
/etc/rc.conf
gebruikt worden:
Noem de generieke tunnelinterfaces die zullen worden
ingesteld, bijvoorbeeld gif0
:
Om de interface met een lokaal eindpunt
MIJN_IPv4_ADRES
in te stellen naar
een ver eindpunt
VER_IPv4_ADRES
:
MIJN_IPv4_ADRES VER_IPv4_ADRES
"Voeg het volgende toe om het IPv6-adres dat is toegewezen
als het eindpunt van de IPv6-tunnel te gebruiken voor
FreeBSD 9.X
en nieuwer:
MIJN_TOEGEWEZEN_IPv6_TUNNEL_EINDPUNT_ADRES
"Voeg voor FreeBSD 8.X
en eerder het
volgende toe:
MIJN_TOEGEWEZEN_IPv6_TUNNEL_EINDPUNT_ADRES
"Nu hoeft alleen de standaardroute voor IPv6 ingesteld te worden. Dit is de andere kant van de IPv6-tunnel:
MIJN_IPv6_VER_TUNNEL_EINDPUNT_ADRES
"Deze sectie helpt bij het instellen van rtadvd(8) om de standaard IPv6-route te adverteren.
Het volgende is nodig in /etc/rc.conf
om rtadvd(8) aan te zetten:
Het is belangrijk om de interface te specificeren waarop het
IPv6-routerverzoek plaatsvindt. Om bijvoorbeeld rtadvd(8)
te vertellen om fxp0
te
gebruiken:
Nu dient het instellingenbestand
/etc/rtadvd.conf
aangemaakt te worden.
Hier is een voorbeeld:
Vervang fxp0
door de interface die
gebruikt gaat worden.
Vervang vervolgens 2001:471:1f11:246::
met de prefix van uw
toewijzing.
Indien een /64
subnet is
toegewezen, hoeft er verder niets veranderd te worden. In
andere gevallen dient de juiste waarde voor
prefixlen#
gebruikt te worden.