Na de overgang van een Netgear-router naar een MikroTik RB5009 waren mijn websites (adagia.eu en positievesamenwerking.nl) niet meer bereikbaar via IPv6. IPv4 werkte nog wel. Dit artikel beschrijft de diagnose, de oorzaak en de volledige oplossing inclusief alle console-opdrachten. Het bericht is geschreven met hulp van Mistral.
Oude situatie
In de oorspronkelijke opzet fungeerde hetFritz!Box 5490 modem in combinatie met een router van Netgear (R8000) als één netwerk, waarin alle apparaten zich bevonden binnen hetzelfde IP-subnet (bijv. 192.168.1.x). De Synology DS923+, IP-camera’s, IoT-apparaten en gebruikersdevices deelden hetzelfde broadcast-domein. Dit betekende dat al het verkeer – inclusief continue datastromen van camera’s en IoT – ongefilterd over hetzelfde netwerk liep. Er was geen logische scheiding of prioritering, wat kon leiden tot instabiliteit, verminderde prestaties en verhoogde security-risico’s, zeker gezien de aanwezigheid van publiek toegankelijke services (web/mail). Dat is lastig met thuiswerken als de verbinding slecht wordt op het moment dat je juist iets wilt zeggen.
Nieuwe situatie
In de nieuwe architectuur wordt de MikroTik RB5009UPr+S+IN (met 8 LAN poorten met PoE+) ingezet als centrale router met VLAN-segmentatie. De router is verbonden met de 2,5Gbps poort van het (nieuwe) FritzBox 5590 modem. Het netwerk is logisch opgesplitst in meerdere subnetten: een servernetwerk (VLANa) voor NAS en kritische diensten, een IoT-netwerk (VLANb) voor apparaten zoals camera’s en smart devices, een gebruikersnetwerk (VLANc) voor laptops en mobiele apparaten, en een gastnetwerk (VLANd). De Ubiquiti UniFi U6 Pro access points distribueren deze VLAN’s via gescheiden SSID’s. Om de VLAN’s te distribueren van de router naar de access points heb ik een Ubiquiti UniFi Switch Lite 8 PoE aangeschaft met 8 LAN poorten (4 daarvan met PoE+). Hierdoor wordt verkeer gecontroleerd gerouteerd en gefilterd via firewallregels, waardoor IoT-apparaten geen directe toegang hebben tot kritieke systemen. Deze opzet resulteert in een stabiele en veiligere netwerkinfrastructuur die beter aansluit op het gebruik voor web- en mailhosting, 40+ Docker workloads en intensief netwerkverkeer.
De MikroTik beheert vijf VLANs: NAS (VLANa), IoT (VLANb), gebruikers (VLANc), gasten (VLANd) en camera’s (VLANe). Het netwerk migreert van een vlak (flat) thuisnetwerk zonder segmentatie naar een gestructureerde VLAN-architectuur met duidelijke scheiding tussen gebruikers, servers en IoT. Dit verhoogt stabiliteit, veiligheid en beheersbaarheid aanzienlijk. Voor meer details over de migratie van het netwerk verwijs ik naar een ander blogbericht hierover. Dit bericht gaat over de configuratie van IPv6 op de router.
Op VLAN10 staat een **Synology DS923+** die via Webstation meerdere websites host. De DS923 heeft IPv4-adres `192.168.x.x` en was vóór de migratie ook bereikbaar via IPv6 (`2a10:3781:x:x:x:x:x:x`).

Diagnose
De eerste stap was controleren wat de MikroTik überhaupt wist van IPv6:
[admin@MikroTik] > /ipv6 address print
Flags: D - DYNAMIC; L - LINK-LOCAL
# ADDRESS INTERFACE ADVERTISE
1 DL fe80::d2ea:x:x:x/64 VLANa no
2 DL fe80::d2ea:x:x:x/64 VLANb no
7 DL fe80::d2ea:x:x:x/64 ether2 no
Uitsluitend `fe80::` link-local adressen — geen enkel globaal IPv6-adres. Ook `/ipv6 route print` liet geen default route zien richting internet.
[admin@MikroTik] > /ipv6 route print
DAc fe80::/64 ether2 main 0
DAc fe80::/64 VLAN10 main 0
Geen ::/0 default route — IPv6-verkeer naar internet kon nergens heen. Via /ipv6 neighbor print bleek de Fritzbox wel zichtbaar als router (flag R) op zijn link-local adres:
22 DR address=fe80::e208:x:x:xinterface=ether2
mac-address=E0:08:55:x:x:xstatus="stale"
Oorzaak: De MikroTik had geen DHCPv6-client op de WAN-interface (`ether2`). Hierdoor ontving hij nooit een IPv6-prefix van de Fritzbox en bouwde hij geen globaal adres op. Inkomend IPv6-verkeer bereikte de Fritzbox maar werd niet doorgestuurd.
Stap 1 — Fritzbox instellen voor prefix delegation
De Fritzbox had prefix delegation (DHCPv6-PD) niet aanstaan. Dit instellen via Thuisnetwerk → Netwerk → IPv6-adressen:
DHCPv6-server instelling wijzigen naar:
“DNS-server en IPv6-prefix (IA_PD) toewijzen”
Dit zorgt ervoor dat de Fritzbox een prefix-blok delegeert aan downstream routers die erom vragen via DHCPv6.
IPv6-route toevoegen via Thuisnetwerk → Netwerk → IPv6-routes:
– IPv6-netwerk: `2a10:3781:x:x::`
– Prefixlengte: `64`
– Gateway: `2a10:3781:x::2`
– IPv6-route actief: ✅ aanvinken
Stap 2 — MikroTik DHCPv6-client activeren
Nu de Fritzbox klaarstaat om een prefix te delegeren, moet de MikroTik er ook om vragen:
[admin@MikroTik] > /ipv6 dhcp-client add \
interface=ether2 \
request=prefix \
pool-name=wan-ipv6-pool \
pool-prefix-length=64 \
add-default-route=yes \
comment="WAN IPv6 via Fritzbox"
Na ~10 seconden controleren of de client een prefix heeft ontvangen:
[admin@MikroTik] > /ipv6 dhcp-client print detail
0 interface=ether2 status=bound
dhcp-server-v6=fe80::e208:x:x:x
pool-name="wan-ipv6-pool"
prefix=2a10:3781:x:x::/62, 1h52m38s
[admin@MikroTik] > /ipv6 pool print
# NAME PREFIX PREFIX-LENGTH
0 D wan-ipv6-pool 2a10:3781:x:fcx62 64
Status is `bound` — de Fritzbox heeft het blok 2a10:3781:x:x::/62 gedelegeerd. Let op: dit is niet het subnet van het oude DS923-adres (dce:1::). Het nieuwe subnet wordt abc:cd::.
Stap 3 — Adressen en routes configureren
Eventuele tijdelijke statische adressen verwijderen en VLAN10 configureren met het nieuwe subnet:
[admin@MikroTik] > /ipv6 address remove [find address="2a10:3781:x::2/64"]
[admin@MikroTik] > /ipv6 address remove [find address="2a10:3781:x:x::1/64"]
[admin@MikroTik] > /ipv6 address add \
address=2a10:3781:x:x::1/64 \
interface=VLANa \
advertise=yes
Resultaat controleren:
[admin@MikroTik] > /ipv6 route print
0 As+ ::/0 fe80::e208:x:x:x%ether2 main 1 ← default route actief
DAd+ ::/0 fe80::e208:x:x:x%ether2 main 1 ← DHCP-route
DAd 2a10:3781:x:x::/62 main 1 ← gedelegeerd blok
DAc 2a10:3781:x:x::/64 VLANa main 0 ← VLANa subnet
[admin@MikroTik] > /ping 2a00:1450:400e:813::200e count=3
SEQ HOST SIZE TTL TIME
0 2a00:1450:400e:813::200e 56 118 3ms807us echo reply
1 2a00:1450:400e:813::200e 56 118 3ms623us echo reply
2 2a00:1450:400e:813::200e 56 118 3ms653us echo reply
sent=3 received=3 packet-loss=0%
IPv6-routing naar internet werkt.
Stap 4 — Nieuw IPv6-adres DS923 vaststellen
Door `advertise=yes` op VLAN10 kondigt de MikroTik het nieuwe prefix aan via SLAAC. De DS923 pikt dit automatisch op:
root@DS923:~# ip -6 addr show dev eth2
inet6 2a10:3781:x:x:x:x:x:x/64 scope global dynamic
valid_lft 2591924sec preferred_lft 604724sec
inet6 2a10:3781:x:x:x:x:x:x/64 scope global deprecated
valid_lft 2591924sec preferred_lft 0sec ← oud adres, niet meer actief
inet6 fe80::x:x:x:x/64 scope link
Het EUI-64 suffix (:x:x:x:x) blijft gelijk — alleen het vierde blok wijzigt van `x:1` naar `x:fc`.
Stap 5 — AAAA-records bijwerken
De DNS-records bij de domeinregistrar moeten worden aangepast naar het nieuwe adres.

Verificatie via externe DNS nadat de wijzigingen zijn doorgevoerd:
root@DS923:~# nslookup -type=AAAA adagia.eu 8.8.8.8
Name: adagia.eu
Address: 2a10:3781:x:x:x:x:x:x
Direct testen zonder te wachten op lokale DNS-propagatie:
root@DS923:~# curl -6 --resolve adagia.eu:443:2a10:3781:x:x:x:x:x:x\
https://adagia.eu
HTTP 200 OK ✓
Beide websites zijn weer volledig bereikbaar via IPv6.
Samenvatting van de oorzaken

Stap 6 — AdGuard DNS-herschrijving bijwerken
AdGuard Home herschreef adagia.eu alleen naar het IPv4-adres (192.168.x.x). Bij een IPv6-verzoek gaf AdGuard geen antwoord terug, waardoor interne IPv6-toegang niet werkte terwijl externe toegang al wel functioneerde.
Oplossing: voeg onder Filters → DNS-herschrijvingen een tweede regel toe naast de bestaande IPv4-regel:
- Domein:
adagia.eu→2a10:3781:x:x:x:x:x:x - Domein:
*.adagia.eu→2a10:3781:x:x:x:x:x:x
Herhaal dit voor elk domein dat een herschrijvingsregel heeft. Let op: als de gedelegeerde prefix ooit wisselt, moeten zowel de AAAA-records bij de registrar als deze AdGuard-regels worden bijgewerkt.
Stap 7 — IPv6-firewall instellen op de MikroTik
Na het werkend krijgen van IPv6 was er nog geen firewall actief waardoor al het inkomende IPv6-verkeer ongehinderd door kwam. De volgende regels zijn toegevoegd via de MikroTik console:
/ipv6 firewall filter add chain=input action=accept connection-state=established,related comment="Bestaande verbindingen"
/ipv6 firewall filter add etcetera....
De IPv6-firewall is nu volledig en correct geconfigureerd. Volgorde en inhoud kloppen precies.
Stap 8 — IPv6 instellen voor gebruikers op het netwerk
We gaan VLANxx een subnet geven uit de gedelegeerde pool en de bijbehorende firewall-regels toevoegen.
Stap 1 — Adres op VLAN30 configureren
Uit de pool 2a10:3781:x:x::/62 is 2a10:3781:xx:xx::/64 nog vrij:
/ipv6 address add address=2a10:3781:xx:xx::x/64 interface=VLANc advertise=yes
Stap 2 — Firewall: VLAN30 internet toegang toestaan
Dit moet vóór de algemene drop-regel (22) maar ná de VLAN-isolatieregels:
/ipv6 firewall filter add chain=forward action=accept in-interface=VLANc out-interface=ether2 comment="VLANc internet toegang" place-before=22
Stap 3 — Controleren
/ipv6 address print
/ipv6 firewall filter print
Na uitvoering moeten apparaten op VLANxx automatisch een adres ophalen via SLAAC uit het subnet 2a10:3781:xx:xx::/64. Vervolgens testen op test-ipv6.run of ipv6.test-ipv6.com vanaf een apparaat in VLANxx.
Korte samenvatting van wat er nu actief is:
- Input-chain (regels 0–3): de router zelf is afgeschermd — alleen bestaande verbindingen, ICMPv6 en link-local verkeer komen door.
- Forward-chain (regels 4–22): bestaande verbindingen en ICMPv6 altijd door, alle diensten op de DS923 bereikbaar van buitenaf, NAS heeft uitgaand internet, alle VLAN-isolatie gespiegeld aan de IPv4-regelset, en als vangnet blokkeert regel 22 al het overige.
- De IPv6-configuratie is nu volledig afgerond:
-
- ✅ DHCPv6-client op MikroTik
- ✅ Prefix delegation via Fritzbox
- ✅ VLAN10 adverteert prefix via SLAAC
- ✅ DS923 heeft globaal IPv6-adres
- ✅ AAAA-records bijgewerkt
- ✅ AdGuard herschrijvingsregels bijgewerkt
- ✅ IPv6-firewall input-chain
- ✅ IPv6-firewall forward-chain met diensten en VLAN-isolatie
Aandachtspunten voor de toekomst
Lease-tijd van de gedelegeerde prefix. De prefix `2a10:3781:x:x::/62` heeft een lease-tijd van ~2 uur. Als de Fritzbox opnieuw opstart of de verbinding verbreekt, kan de prefix wijzigen. Overweeg een langere lease in te stellen of de DS923 een vast adres te geven via statische toewijzing in de MikroTik.
Dynamische DNS als de prefix wisselt. Als de prefix wisselt, moeten de AAAA-records opnieuw worden bijgewerkt. Een script op de DS923 dat het huidige IPv6-adres monitort en automatisch de DNS bijwerkt kan dit in de toekomst automatiseren.
IPv6-firewallregels op de MikroTik. De MikroTik heeft momenteel geen IPv6-firewallregels. Nu forward-verkeer werkt, is het verstandig om regels toe te voegen die inkomend verkeer beperken tot poorten 80 en 443 voor de DS923.
