IPv6
Adressering, header, pakketgrootte, autoconfiguratie en VyOS-configuratie van het nieuwe Internet Protocol.
1Waarom IPv6? Verschillen met IPv4

IPv6 (vroeger "IP next generation") is de opvolger van IPv4. IPv5 bestaat wel: een experimenteel streaming-protocol (ST2), nooit gebruikt als opvolger.
2Adressen: soorten en notatie
Een IPv6-adres hoort bij een interface, niet bij een node. Eén interface heeft meerdere adressen (link-local + globaal + multicast...). Een subnet-prefix hoort bij een link.
3Notatie en inkorten
Voorkeurvorm: 8 groepen van 4 hex-cijfers, gescheiden door : (8 x 16 bit = 128 bit). Kleine/hoofdletters maakt niet uit.
Per groep mag je de nullen vooraan weglaten: 0DB8 → DB8, 0000 → 0, 0008 → 8.
- Prefix met lengte:
2001:6A8:540::/48. Masker is altijd een prefixlengte, geen dotted mask. - Mixvorm IPv4/IPv6:
x:x:x:x:x:x:d.d.d.d, bv.::FFFF:129.144.52.38of::13.1.68.3(IPv4-compatibel adres: 80 bits nul, 16 bits nul, 32 bits IPv4). - Hiërarchie: RIPE NCC
2001:600::/23→ BELNET2001:6A8::/32→ KdG2001:6A8:540::/48→ student-subnet2001:6A8:540:101::/64. Provider geeft meestal een /48, je geeft aan clients een /64.
4Speciale adressen: link-local, unique local, loopback, zones
5APIPA-equivalent, zones en de dissectie van fe80::250:56ff:fec0:8%1
Probleem zones: pc met 2 netwerkkaarten, beide met link-local (fe80::1 en fe80::2), en je wil fe80::3 bereiken. Link-local adressen zijn op elke link hetzelfde formaat, dus het OS weet niet langs welke kaart. Oplossing: zones, een postfix %zone-id die de interface of link aanduidt.
6IPv6 header en extension headers
Next Header wijst naar de volgende header.
7TTL wordt Hop Limit, checksum en ICMPv6
- Checksum: de IPv6-header heeft geen checksum meer (minder werk voor routers). Hogere lagen (TCP/UDP/ICMPv6) moeten zelf checksummen, bij UDP nu verplicht, en ze omvatten de pseudo-header (bron, doel, protocol).
- ICMPv6 is verplicht voor elke IPv6-node. Het regelt foutmeldingen, ping, autoconfig en buren (vervangt ARP en IGMP).
8Pakketgrootte, MTU en fragmentatie
- MTU = Maximum Transmission Unit: grootste pakket (in octets) dat over een link past. Path MTU = kleinste link-MTU op het hele pad.
- Fragmentatie = een te groot pakket opsplitsen in kleinere stukken die de ontvanger weer samenvoegt.
- IPv6 eist een link-MTU van minimaal 1280 octets. Ethernet-default is 1500. Een link die dat niet haalt moet zelf (laag 2) fragmenteren.
- Een node moet na reassembly pakketten van minstens 1500 kunnen ontvangen.
- Met Fragment header is de max. payload 1280 - 40 (IPv6 header) - 8 (Fragment header) = 1232 octets.
- Routers onderweg mogen fragmenteren
- Header-velden Identification, Flags, Fragment offset in elke header
- Router belast met opsplitsen en CPU-werk
- Min. MTU 576 (68)
- Enkel de bron fragmenteert (Fragment header)
- Fragmentinfo alleen aanwezig wanneer nodig
- Routers sturen enkel door: sneller
- Min. MTU 1280, aanbevolen 1500
Met de MTU van de eigen link (bv. 1500).
9Autoconfiguratie: stateless, stateful en mobiel
Doel: plug and play. Een host krijgt zonder handwerk een adres, prefix, gateway en DNS.
Host vormt fe80:: + interface ID (EUI-64 uit MAC, of random wegens privacy, RFC 3041/privacy extensions). Zonder router blijft dit werken.
Daarmee zegt de router: "vraag je adres aan een DHCPv6-server". O-flag = enkel de overige info (DNS...) via DHCPv6, adres blijft SLAAC.
- Privacy extensions (RFC 3041): vervang het MAC-gebaseerde interface ID door een willekeurige, wisselende waarde, zodat je toestel niet door het MAC-adres te volgen is.
- Op Windows toont
ipconfigmeestal een tijdelijk adres naast het stabiele adres.
10QoS: Traffic Class, Flow Label en beveiliging
- QoS (Quality of Service) = bepaalde verkeerssoorten (VoIP, video) voorrang/gegarandeerde kwaliteit geven.
- Traffic Class (8 bit): klasse/prioriteit per pakket. Opvolger van Type of Service.
- Flow Label (20 bit): label voor één verkeersstroom (zelfde bron/doel/applicatie). Routers kunnen zo alle pakketten van die stroom hetzelfde behandelen zonder in de upper-layer header te kijken, ook als die versleuteld is. Dient voor QoS en realtime-diensten. Nog experimenteel, nodes die het niet ondersteunen zetten het op 0.
11Overgang IPv4 naar IPv6
12Praktisch: IPv6 op VyOS
Interface-adressen instellen (globaal, EUI-64, of autoconfig):
configure
# Autoconfiguratie: interface krijgt adres via RA (SLAAC)
set interfaces ethernet eth1 ipv6 address autoconf
# Vast globaal adres
set interfaces ethernet eth1 address '2001:1111:1111:4567::1/64'
# EUI-adres (MAC wordt ingevuld)
set interfaces ethernet eth1 ipv6 address eui64 'fc00:1111:1111::/64'
commit
saveDHCPv6-server (stateful). Let op: dit is géén Router Advertisement. Het geeft enkel adressen en opties; de M/O-flag in de RA verwijst hiernaar.
# Adresbereik (leasebereik)
set service dhcpv6-server shared-network-name LAN subnet 2001:1111:1111:4567::/64 address-range start 2001:1111:1111:4567::100 stop 2001:1111:1111:4567::200
# Domain search
set service dhcpv6-server shared-network-name LAN subnet 2001:1111:1111:4567::/64 domain-search kdg.be
# DNS (Google)
set service dhcpv6-server shared-network-name LAN subnet 2001:1111:1111:4567::/64 name-server 2001:4860:4860::8844Router Advertisements (RA) sturen: de router laat zijn prefix en flags weten (ICMPv6 type 134, doel FF02::1 all nodes). De RS komt van de client (type 133, doel FF02::2).
# Prefix adverteren (meestal /48 van provider, /64 voor clients)
set interfaces ethernet eth0 ipv6 router-advert send-advert true
set interfaces ethernet eth0 ipv6 router-advert prefix 2001:1111:1111:4567::/64
# Flags per prefix
set interfaces ethernet eth0 ipv6 router-advert prefix 2001:1111:1111:4567::/64 on-link-flag true
set interfaces ethernet eth0 ipv6 router-advert prefix 2001:1111:1111:4567::/64 autonomous-flag true
set interfaces ethernet eth0 ipv6 router-advert prefix 2001:1111:1111:4567::/64 valid-lifetime 2592000
set interfaces ethernet eth0 ipv6 router-advert prefix 2001:1111:1111:4567::/64 preferred-lifetime 604800
# Algemene RA-opties
set interfaces ethernet eth0 ipv6 router-advert managed-flag true
set interfaces ethernet eth0 ipv6 router-advert other-config-flag true
set interfaces ethernet eth0 ipv6 router-advert cur-hop-limit 64
set interfaces ethernet eth0 ipv6 router-advert default-lifetime 1800
set interfaces ethernet eth0 ipv6 router-advert reachable-time 0
set interfaces ethernet eth0 ipv6 router-advert retrans-timer 0
set interfaces ethernet eth0 ipv6 router-advert link-mtu 1500
set interfaces ethernet eth0 ipv6 router-advert default-preference high
set interfaces ethernet eth0 ipv6 router-advert name-server 2001:4860:4860::8888# RA's ontvangen op een VyOS-router zelf (als root)
sysctl -w net.ipv6.conf.eth0.accept_ra=2# Windows
C:\> ipconfig
C:\> route print -6
::/0 fe80::20a:42ff:feb0:5400 default route
::1/128 On-link loopback
2001:db8::/64 On-link lokaal subnet
fe80::/64 On-link link-local
ff00::/8 On-link multicast
# Linux
ip -6 addr
ip -6 route
ping -6 fe80::3%eth0Nog niet klaar? Je kan altijd terugkomen.