Difference between revisions of "Ipv6"

From PostgreSQL_wiki
Jump to: navigation, search
(Meer dan alleen meer adressen)
 
(87 intermediate revisions by the same user not shown)
Line 1: Line 1:
  +
Status:<br/>
  +
Webhuis zit midden in het proces van documenteren van ipv6. De ipv6 pagina's zijn daarom nog in ontwikkeling en aan veranderingen onderhevig.
 
* [[ipv4 - ipv6]] De migratie van ipv4 naar ipv6.
 
* [[ipv4 - ipv6]] De migratie van ipv4 naar ipv6.
 
* [[ipv6 tunneling]] Totdat de ISP's het ipv6 licht hebben gezien.
 
* [[ipv6 tunneling]] Totdat de ISP's het ipv6 licht hebben gezien.
  +
* [[applicaties ipv6]] De readyness van applicaties.
= Configuratie =
 
  +
= ipv6 adressering =
De interface heeft:
 
  +
De voorraad ipv4 adressen raakt op. Een ipv4 adres bestaat uit vier bytes, of 32 bits, en daaar zijn ongeveer 4 × 10<sup>9</sup> adressen mogelijk. Een ipv6 adres bestaat uit 16 bytes, of 128 bits en daar zijn ongeveer 3,4 × 10<sup>38</sup> adressen mee mogelijk.
* Een ipv4 adres;
 
  +
== Meer dan alleen meer adressen ==
* Een extern ipv6 adres;
 
  +
* http://tldp.org/HOWTO/Linux+IPv6-HOWTO
* Een lokaal ipv6 adres (autoconfigured).
 
  +
* http://community.roxen.com/developers/idocs/rfc/rfc4193.html
  +
* http://www.rfc-ref.org/RFC-TEXTS/4193/chapter4.html
  +
* http://tools.ietf.org/html/draft-troan-multihoming-without-nat66-01
  +
* http://www.nttv6.net/dass/
  +
* http://isoc.org/wp/ispcolumn/?p=85
  +
* http://madduck.net/docs/ipv6/
  +
* http://www.faqs.org/rfcs/rfc3041.html
  +
* http://www.faqs.org/rfcs/rfc4193.html
  +
* http://www.simpledns.com/private-ipv6.aspx
  +
* http://www.policyrouting.org/PolicyRoutingBook/ONLINE/CH09.web.html
  +
* http://lists.litech.org/pipermail/radvd-devel-l/2006-October/000245.html
  +
* http://wiki.mandriva.com/en/Docs/SysAdmin/Networking/IPV6#radvd
  +
* http://www.gentoo-wiki.info/IPV6_And_Freebox
  +
* http://debian6to4.gielen.name/
  +
  +
= Digitaal zei u? =
  +
Mensen hebben over het algemeen tien vingers en dat is de basis onder ons rekenkundig stelsel. Het is tot op de dag van vandaag nog niet gelukt om computers met tien vinders te bouwen, zodat er weinig anders over blijft dan de verkeerde angelsaksische interpretatie van getalstelsels te volgen. Digit komt van het latijns digitus, of vinger. Digit staat in het angelsaksisch taalgebied voor een getal op basis van het tientallig stelsel en digital voor electronische weergave op basis van het binaire of tweetallig stelsel.
  +
== Nibbles en het hexadecimale talstelsel ==
  +
Binaire getallen zijn erg lang en zeer moeilijk leesbaar, een 256 tallig stelsel is ondoenlijk en net zo onleesbaar. Deze combinatie van feiten leidt to de onmogelijkheid om deze waarden op een voor mensen begrijpelijke wijze weer te geven.<br/>
  +
Wat te doen?<br/>
  +
Het hexadecimale talstelsel is een compromis, moeilijk leesbaar maar wel op basis van 2-machten. De weergave van de configuratie van de netwerk interface is een combinatie van decimale en hexadecimale getallen.
 
<pre>
 
<pre>
 
eth0 Link encap:Ethernet HWaddr 00:16:3e:0f:4b:d4
 
eth0 Link encap:Ethernet HWaddr 00:16:3e:0f:4b:d4
Line 11: Line 34:
 
inet6 addr: 2001:1af8:4200:b060:216:3eff:fe0f:4bd4/64 Scope:Global
 
inet6 addr: 2001:1af8:4200:b060:216:3eff:fe0f:4bd4/64 Scope:Global
 
inet6 addr: fe80::216:3eff:fe0f:4bd4/64 Scope:Link
 
inet6 addr: fe80::216:3eff:fe0f:4bd4/64 Scope:Link
  +
</pre>
  +
De netwerk interface heeft:
  +
* Een hardware adres;
  +
* Een ipv4 adres;
  +
* Een extern ipv6 adres;
  +
* Een lokaal ipv6 adres (autoconfigured).
  +
Het mac adres heeft altijd en hexadecimale notatie. In de hexadecimale notatie hakken we elke byte in twee stukken, de zogeheten nibbles, de vier hoogste en vier laagste bits. Vier bits hebben een waardebereik van nul tot vijftien, zestien verschillende waarden in totaal. Dat is het [http://nl.wikipedia.org/wiki/Hexadecimaal hexadecimale talstelsel ]. De combinatie van twee nibbles levert 256 waarden in totaal.<br/>
  +
Makkelijk toch?
   
  +
= Configuratie =
  +
ipv6 maakt het voor mensen een beetje moeilijker door alles hexadecimaal weer te geven. Een ipv6 adres bestaat uit 128 bits oftewel 16 bytes, de waarde van een byte ligt tussen de 0 en 255.
  +
== Adres notatie ==
  +
Een ipv6 adres bestaat als vanouds bij ipv4 uit twee delen, een netwerkdeel en een deel - de node - voor een specifiek station of apparaat. Een ipv6 adres is moeilijk leesbaar, omdat de representatie van het adres hexadecimaal is. ipv6 kent spelregels in de notatie, die afwijken van de vertrouwde manier bij ipv4.<br/>
  +
* Voorloopnullen mag je weglaten, dat was al zo
  +
* Twee groepen van 16 bits gelijk aan 0 mag je in zijn geheel weg laten, dat is nieuw.
  +
* Je mag meerdere aaneengesloten paren van 16 bits die nul zijn weglaten, dat is ook nieuw.
  +
* Het OS vertaalt twee aaneengesloten dubbele punten door zovel bits toe te voegen totdat het totaal weer 128 bits is
  +
* Het Mac adres of hardware adres van de ethernet interface komt terug in het node gedeelte van het ipv6 adres
  +
Zo zou ipv4 er stukken moeilker uitzien als zo'n adres een hexadecimale notatie zou hebben, toch is daar bij ipv6 voor gekozen. Voorbeelden:
  +
{| class="wikitable" style="text-align:right;" border="1"
  +
! ipadres !! hexadecimaal !! verkort
  +
|-
  +
| 10.0.0.1 || 0a:00:00:01 || a::1
  +
|-
  +
| 194.151.143.206 || c2:95:8f:ce || c2:95:8f:ce
  +
|}
  +
=== Het Mac adres in het ip-adres ===
  +
Om het makkelijk te maken zie je het hardware of mac adres in het ipv6 adres terug.
  +
<pre>
  +
Ethernet: 00:16:3e:0f:4b:d4
  +
  +
Ethernet: 00: 16:3e: 0f:4b:d4
  +
Node: 02 16:3e ff:fe 0f:4b d4
  +
Verschil: 02 ff fe
 
</pre>
 
</pre>
  +
In het voorbeeld van het Scope Link adres van hierboven is de notatie de verkorte versie van het feitelijk adres:
== Pingen ipv6 ==
 
  +
<pre>
De ping6 werkt iets anders dan ping. ping6 naar een global address gaat goed.<br/>
 
Vanaf 2001:1af8:4200:b060:216:3eff:fe0f:4bd4
+
Verkort: fe80::216:3eff:fe0f:4bd4
martin@webserver:~$ ping6 2001:1af8:4200:b060:216:3eff:fe0f:4bd4
+
Feitelijk: fe80:0000:0000:0000:0216:3eff:fe0f:4bd4
  +
</pre>
PING 2001:1af8:4200:b060:216:3eff:fe0f:4bd4(2001:1af8:4200:b060:216:3eff:fe0f:4bd4) 56 data bytes
 
  +
De definitie van het netwerk waarin het adres zich bevindt werkt net even iets anders en meer rechtstreeks dan bij ipv4. Het getal achter de slash slaat op het aantal bits van links af dat tot het netwerk behoort.<br/>
64 bytes from 2001:1af8:4200:b060:216:3eff:fe0f:4bd4: icmp_seq=1 ttl=64 time=0.000 ms
 
  +
<pre>
martin@webserver:~$ ping6 2001:1af8:4200:b060:206:5bff:fe39:84d4
 
  +
Verkort: fe80::216:3eff:fe0f:4bd4/64
PING 2001:1af8:4200:b060:206:5bff:fe39:84d4(2001:1af8:4200:b060:206:5bff:fe39:84d4) 56 data bytes
 
  +
Feitelijk: fe80:0000:0000:0000:0216:3eff:fe0f:4bd4/64
64 bytes from 2001:1af8:4200:b060:206:5bff:fe39:84d4: icmp_seq=1 ttl=64 time=4.00 ms
 
  +
</pre>
Echter de ping naar het autoconfigured ipv6 adres op eth0 werkt alleen met de toevoeging van de interface in de opdracht.
 
  +
Dus in het voorbeeld van hierboven zijn de eerste vier groepen van 16 bits het netwerk adres en de laatste vier groepen het node adres.
martin@webserver:~$ ping6 -Ieth0 fe80::206:5bff:fe39:84d4
 
  +
<pre>
PING fe80::206:5bff:fe39:84d4(fe80::206:5bff:fe39:84d4) from fe80::216:3eff:fe0f:4bd4 eth0: 56 data bytes
 
  +
Netwerk: fe80:0000:0000:0000:
64 bytes from fe80::206:5bff:fe39:84d4: icmp_seq=1 ttl=64 time=4.00 ms
 
  +
Node: 0216:3eff:fe0f:4bd4
  +
Compleet: fe80:0000:0000:0000:0216:3eff:fe0f:4bd4/64
  +
</pre>
  +
Voor het publieke ipv6 ip-adres:
  +
<pre>
  +
ip-adres: 2001:1af8:4200:b060:216:3eff:fe0f:4bd4/64
  +
Netwerk: 2001:1af8:4200:b060
  +
Node: 0216:3eff:fe0f:4bd4
  +
Compleet: fe80:0000:0000:0000:0216:3eff:fe0f:4bd4/64 Scope:Global
  +
</pre>
  +
=== Name server lookups ===
  +
Name Server configuratie staat bij [[ Webhuis_bouwstenen | Serving names ]], maar de specifieke afwijkingen voor ipv6 zijn hier uitgewerkt.<br/>
  +
==== Het AAAA record ====
  +
Het AAAA record wijkt systematisch af van de A record triviaal:
  +
<pre>
  +
Voor adres 2001:1af8:4200:b060:216:3eff:fe0f:4bd4
  +
www IN AAAA 2001:1af8:4200:b060:216:3eff:fe0f:4bd4
  +
Maar voor adres
  +
</pre>
  +
==== Reverse Lookup ====
  +
Reverse lookups zijn minder eenvoudig.
  +
2001:1af8:4200:b060:216:3eff:fe0f:4bd4
  +
  +
== Adres types ==
  +
* http://www.ripe.net/ipv6-address-types/
  +
=== link local ===
  +
Alleen voor lokaal gebruik. Adressen van dit type beginnen met:
  +
<pre>
  +
fe8x: <- momenteel de enige in gebruik
  +
fe9x:
  +
feax:
  +
febx
  +
</pre>
  +
=== site local ===
  +
Dit adres type is depricated. Het kan voor Webhuis wel dienen als type voor lokale netwerken in complexe vpn omgevingen.
  +
<pre>
  +
fecx: <- meest gebruikt
  +
fedx:
  +
feex:
  +
fefx:
  +
</pre>
  +
=== unique local unicast ===
  +
Webhuis onderzoekt dit type adres primair voor de locale klant vpn netwerken. In dit type genereer je een unieke global id voor het netwerkdeel van het ip adres. Een voorbeeld vind je hier: http://www.simpledns.com/private-ipv6.aspx
  +
<pre>
  +
Prefix/L: fd
  +
Global ID: b42d136729
  +
Subnet ID: 31e6
  +
Combined/CID: fdb4:2d13:6729:31e6::/64
  +
IPv6 addresses: fdb4:2d13:6729:31e6:xxxx:xxxx:xxxx:xxxx
  +
</pre>
  +
  +
=== global ===
  +
=== multicast ===
  +
=== anycast ===
  +
  +
== Adres ranges ==
  +
=== ipv6 notatie ipv4 adres ===
  +
De representatie van een ipv4 netwerk in ipv6 is als volgt:
  +
<pre>
  +
0:0:0:0:0:ffff:a.b.c.d/96
  +
</pre>
  +
  +
== Adres ranges ==
  +
=== ipv6 notatie ipv4 adres ===
  +
De representatie van een ipv4 netwerk in ipv6 is als volgt:
  +
<pre>
  +
0:0:0:0:0:ffff:a.b.c.d/96
  +
</pre>
  +
  +
== Adres ranges ==
  +
  +
= Webhuis nummerplan =
  +
Webhuis heeft ook voor ipv6 een uitgewerkt netwerkplan, dat het fundament is onder het [http://wiki.webhuis.nl/mediawiki/index.php VPN-WAN]. Webhuis gebruikt hiervoor adressen uit de klasse unique local unicast adressen, die beginnen met de nog ongebruikte combinatie "fc". De opbouw van het adres is als volgt:
  +
<pre>
  +
fcln:1234:1a01:abcd:0212:34ff:fe56:789a
  +
| | | | | | |
  +
| | | | | | |
  +
| | | | | | +-> Node of host volgens EUI-64 standaard
  +
| | | | | |
  +
| | | | | +-> Subnet, beginnend van links af
  +
| | | | |
  +
| | | | +-> Volgnummer klant in postcode gebied
  +
| | | |
  +
| | | +-> Alfabetische deel van de postcode ( hexadecimaal A = 01 Z = 1a , nullen uitschrijven )
  +
| | |
  +
| | +-> Voor Nederland het numerieke deel van de postcode
  +
| |
  +
| +-> Landcode, bijvoorbeeld hexadecimaal 1f = 31 decimaal voor nederland
  +
|
  +
+-> Voorloop combinatie voor klasse unique local unicast adressen
  +
</pre>
  +
Webhuis bouwt in principe kleine subnetten, dus de prefix is /120. Voorbeeld:<br/>
  +
fc1f:6871:410:1:1:0:1/120
  +
  +
= Routing =
  +
== Basale firewall ==
  +
Dit is een voorbeeld van een stateful firewall
  +
<pre>
  +
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  +
ip6tables -A FORWARD -i eth0 -s 2a01:5d8:xxxx:xxxx::/64 -j ACCEPT
  +
ip6tables -A FORWARD -j DROP
  +
</pre>
  +
  +
= DHCP en DNS =
  +
 
<hr/>
 
<hr/>
Terug naar: [[Uwork bouwstenen]]
+
Terug naar: [[Webhuis bouwstenen]]

Latest revision as of 22:19, 19 August 2010

Status:
Webhuis zit midden in het proces van documenteren van ipv6. De ipv6 pagina's zijn daarom nog in ontwikkeling en aan veranderingen onderhevig.

ipv6 adressering

De voorraad ipv4 adressen raakt op. Een ipv4 adres bestaat uit vier bytes, of 32 bits, en daaar zijn ongeveer 4 × 109 adressen mogelijk. Een ipv6 adres bestaat uit 16 bytes, of 128 bits en daar zijn ongeveer 3,4 × 1038 adressen mee mogelijk.

Meer dan alleen meer adressen

Digitaal zei u?

Mensen hebben over het algemeen tien vingers en dat is de basis onder ons rekenkundig stelsel. Het is tot op de dag van vandaag nog niet gelukt om computers met tien vinders te bouwen, zodat er weinig anders over blijft dan de verkeerde angelsaksische interpretatie van getalstelsels te volgen. Digit komt van het latijns digitus, of vinger. Digit staat in het angelsaksisch taalgebied voor een getal op basis van het tientallig stelsel en digital voor electronische weergave op basis van het binaire of tweetallig stelsel.

Nibbles en het hexadecimale talstelsel

Binaire getallen zijn erg lang en zeer moeilijk leesbaar, een 256 tallig stelsel is ondoenlijk en net zo onleesbaar. Deze combinatie van feiten leidt to de onmogelijkheid om deze waarden op een voor mensen begrijpelijke wijze weer te geven.
Wat te doen?
Het hexadecimale talstelsel is een compromis, moeilijk leesbaar maar wel op basis van 2-machten. De weergave van de configuratie van de netwerk interface is een combinatie van decimale en hexadecimale getallen.

eth0      Link encap:Ethernet  HWaddr 00:16:3e:0f:4b:d4  
          inet addr:85.17.171.111  Bcast:85.17.171.127  Mask:255.255.255.192
          inet6 addr: 2001:1af8:4200:b060:216:3eff:fe0f:4bd4/64 Scope:Global
          inet6 addr: fe80::216:3eff:fe0f:4bd4/64 Scope:Link

De netwerk interface heeft:

  • Een hardware adres;
  • Een ipv4 adres;
  • Een extern ipv6 adres;
  • Een lokaal ipv6 adres (autoconfigured).

Het mac adres heeft altijd en hexadecimale notatie. In de hexadecimale notatie hakken we elke byte in twee stukken, de zogeheten nibbles, de vier hoogste en vier laagste bits. Vier bits hebben een waardebereik van nul tot vijftien, zestien verschillende waarden in totaal. Dat is het hexadecimale talstelsel . De combinatie van twee nibbles levert 256 waarden in totaal.
Makkelijk toch?

Configuratie

ipv6 maakt het voor mensen een beetje moeilijker door alles hexadecimaal weer te geven. Een ipv6 adres bestaat uit 128 bits oftewel 16 bytes, de waarde van een byte ligt tussen de 0 en 255.

Adres notatie

Een ipv6 adres bestaat als vanouds bij ipv4 uit twee delen, een netwerkdeel en een deel - de node - voor een specifiek station of apparaat. Een ipv6 adres is moeilijk leesbaar, omdat de representatie van het adres hexadecimaal is. ipv6 kent spelregels in de notatie, die afwijken van de vertrouwde manier bij ipv4.

  • Voorloopnullen mag je weglaten, dat was al zo
  • Twee groepen van 16 bits gelijk aan 0 mag je in zijn geheel weg laten, dat is nieuw.
  • Je mag meerdere aaneengesloten paren van 16 bits die nul zijn weglaten, dat is ook nieuw.
  • Het OS vertaalt twee aaneengesloten dubbele punten door zovel bits toe te voegen totdat het totaal weer 128 bits is
  • Het Mac adres of hardware adres van de ethernet interface komt terug in het node gedeelte van het ipv6 adres

Zo zou ipv4 er stukken moeilker uitzien als zo'n adres een hexadecimale notatie zou hebben, toch is daar bij ipv6 voor gekozen. Voorbeelden:

ipadres hexadecimaal verkort
10.0.0.1 0a:00:00:01 a::1
194.151.143.206 c2:95:8f:ce c2:95:8f:ce

Het Mac adres in het ip-adres

Om het makkelijk te maken zie je het hardware of mac adres in het ipv6 adres terug.

Ethernet:  00:16:3e:0f:4b:d4 

Ethernet:  00: 16:3e:      0f:4b:d4 
Node:      02  16:3e ff:fe 0f:4b d4
Verschil:  02        ff fe

In het voorbeeld van het Scope Link adres van hierboven is de notatie de verkorte versie van het feitelijk adres:

Verkort:   fe80::216:3eff:fe0f:4bd4
Feitelijk: fe80:0000:0000:0000:0216:3eff:fe0f:4bd4

De definitie van het netwerk waarin het adres zich bevindt werkt net even iets anders en meer rechtstreeks dan bij ipv4. Het getal achter de slash slaat op het aantal bits van links af dat tot het netwerk behoort.

Verkort:   fe80::216:3eff:fe0f:4bd4/64
Feitelijk: fe80:0000:0000:0000:0216:3eff:fe0f:4bd4/64

Dus in het voorbeeld van hierboven zijn de eerste vier groepen van 16 bits het netwerk adres en de laatste vier groepen het node adres.

Netwerk:   fe80:0000:0000:0000:
Node:                          0216:3eff:fe0f:4bd4
Compleet:  fe80:0000:0000:0000:0216:3eff:fe0f:4bd4/64

Voor het publieke ipv6 ip-adres:

ip-adres:  2001:1af8:4200:b060:216:3eff:fe0f:4bd4/64
Netwerk:   2001:1af8:4200:b060
Node:                          0216:3eff:fe0f:4bd4
Compleet:  fe80:0000:0000:0000:0216:3eff:fe0f:4bd4/64 Scope:Global

Name server lookups

Name Server configuratie staat bij Serving names , maar de specifieke afwijkingen voor ipv6 zijn hier uitgewerkt.

Het AAAA record

Het AAAA record wijkt systematisch af van de A record triviaal:

Voor adres 2001:1af8:4200:b060:216:3eff:fe0f:4bd4
www     IN      AAAA    2001:1af8:4200:b060:216:3eff:fe0f:4bd4
Maar voor adres 

Reverse Lookup

Reverse lookups zijn minder eenvoudig. 2001:1af8:4200:b060:216:3eff:fe0f:4bd4

Adres types

link local

Alleen voor lokaal gebruik. Adressen van dit type beginnen met:

fe8x:  <- momenteel de enige in gebruik
fe9x:
feax:
febx

site local

Dit adres type is depricated. Het kan voor Webhuis wel dienen als type voor lokale netwerken in complexe vpn omgevingen.

fecx:  <- meest gebruikt
fedx:
feex:
fefx:

unique local unicast

Webhuis onderzoekt dit type adres primair voor de locale klant vpn netwerken. In dit type genereer je een unieke global id voor het netwerkdeel van het ip adres. Een voorbeeld vind je hier: http://www.simpledns.com/private-ipv6.aspx

Prefix/L:	  fd
Global ID:	  b42d136729
Subnet ID:	  31e6
Combined/CID:	  fdb4:2d13:6729:31e6::/64
IPv6 addresses:	  fdb4:2d13:6729:31e6:xxxx:xxxx:xxxx:xxxx

global

multicast

anycast

Adres ranges

ipv6 notatie ipv4 adres

De representatie van een ipv4 netwerk in ipv6 is als volgt:

0:0:0:0:0:ffff:a.b.c.d/96

Adres ranges

ipv6 notatie ipv4 adres

De representatie van een ipv4 netwerk in ipv6 is als volgt:

0:0:0:0:0:ffff:a.b.c.d/96

Adres ranges

Webhuis nummerplan

Webhuis heeft ook voor ipv6 een uitgewerkt netwerkplan, dat het fundament is onder het VPN-WAN. Webhuis gebruikt hiervoor adressen uit de klasse unique local unicast adressen, die beginnen met de nog ongebruikte combinatie "fc". De opbouw van het adres is als volgt:

fcln:1234:1a01:abcd:0212:34ff:fe56:789a
| |  |    |    | |  |
| |  |    |    | |  |
| |  |    |    | |  +-> Node of host volgens EUI-64 standaard
| |  |    |    | |
| |  |    |    | +-> Subnet, beginnend van links af
| |  |    |    |
| |  |    |    +-> Volgnummer klant in postcode gebied
| |  |    |
| |  |    +-> Alfabetische deel van de postcode ( hexadecimaal A = 01 Z = 1a , nullen uitschrijven )
| |  |
| |  +-> Voor Nederland het numerieke deel van de postcode
| |
| +-> Landcode, bijvoorbeeld hexadecimaal 1f = 31 decimaal voor nederland
|
+-> Voorloop combinatie voor klasse unique local unicast adressen

Webhuis bouwt in principe kleine subnetten, dus de prefix is /120. Voorbeeld:
fc1f:6871:410:1:1:0:1/120

Routing

Basale firewall

Dit is een voorbeeld van een stateful firewall

ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -i eth0 -s 2a01:5d8:xxxx:xxxx::/64 -j ACCEPT
ip6tables -A FORWARD -j DROP

DHCP en DNS


Terug naar: Webhuis bouwstenen