Handleiding

IPv6

Een prefix van je provider, een /64 per netwerk, en een firewall die er wel moet zijn.

IPv6 werkt anders dan IPv4: er is geen NAT. Elk apparaat krijgt een adres dat van buiten gewoon bestaat, en wat er binnenkomt wordt alleen door de firewall tegengehouden. Dat maakt IPv6 eenvoudiger te routeren en onvergeeflijker als je de firewall vergeet.

Waar het staat

Het onderdeel IPv6 staat standaard uit. Zet je het aan, dan krijg je in de wizard de vraag hoe IPv6 op WAN binnenkomt en of je de firewall wilt; de rest staat in geavanceerd.

Prefix delegation

De meeste providers geven je een /48 of /56 via DHCPv6. Kies DHCPv6 prefix delegation, wijs de WAN-interface aan en laat de gewenste prefix-lengte op /56 staan tenzij je weet dat je iets anders krijgt. Dat is een hint: je provider beslist. De tool schrijft een /ipv6 dhcp-client met request=prefix, een pool die ipv6-pool heet en pool-prefix-length=64.

Wil je dat de router zelf ook een adres op WAN krijgt, zet dan ook een WAN-adres opvragen aan. Veel providers doen adres en prefix samen, andere leveren alleen de prefix en werken verder met link-local. Heb je een vaste prefix afgesproken, kies dan statische prefix en vul prefix, WAN-adres en gateway in.

Adressen op je netwerken

Met adressen uitdelen op LAN en VLANs krijgt elke interface een ::1/64 uit de pool, met advertise=yes. Elk netwerk krijgt dus zijn eigen /64 uit dezelfde delegatie. Een /56 geeft je 256 stukken van /64, ruim genoeg voor kantoor, gasten, IoT en beheer. Krijg je maar een /64, dan is er maar één netwerk te voorzien en moet je kiezen.

Clients krijgen hun adres via router advertisements (SLAAC): de tool zet managed-address-configuration en other-configuration op no. Er wordt dus geen DHCPv6-server voor clients gegenereerd. Met router als DNS adverteren komt de router als RDNSS in die advertisements te staan, zodat clients hem ook voor DNS gebruiken.

De IPv6-firewall

De schakelaar IPv6-firewall zet de standaardregels van MikroTik neer: established en related toelaten, invalid droppen, ICMPv6 toelaten (dat is geen luxe, IPv6 kán niet zonder), DHCPv6 en IPsec toelaten, en alles droppen wat niet van het LAN komt. Daarnaast een adreslijst bad_ipv6 met reeksen die nooit door je router hoeven.

Omdat er geen NAT is, is een poort openzetten hier geen doorstuur maar een accept-regel. In de lijst extra toegestaan vanaf internet (IPv6) laat je het adresveld leeg voor de router zelf, of vult het IPv6-adres in van een apparaat binnen; in dat laatste geval komt de regel in de forward-chain te staan. Het apparaat moet dan wel een adres houden dat niet verandert, en bedenk dat je met één regel dat ene apparaat rechtstreeks aan internet hangt. De VLAN-isolatie en de matrix uit het onderdeel Firewall gelden ook voor IPv6.

Zet je IPv6 aan zonder firewall, dan geeft de tool een fout. Elk apparaat op je LAN is dan rechtstreeks vanaf internet bereikbaar.

Kies je in het firewall-onderdeel voor de letterlijke standaardregels van MikroTik, dan zitten de IPv6-regels daar al in en voegt dit onderdeel ze niet nog een keer toe. Heb je IPv6 helemaal niet aanstaan, dan schrijft het firewall-onderdeel de IPv6-basisregels alsnog mee: een apparaat zonder IPv6-regels is pas onveilig op het moment dat de stack na een update alsnog aangaat.

IPv6 echt uitzetten

De keuze IPv6 helemaal uit doet meer dan de stack uitzetten, omdat dat alleen niet genoeg is. Het script zet disable-ipv6=yes, geen forwarding, geen router advertisements accepteren, plus drop-regels in de IPv6-firewall voor input en forward. Die drop-regels blijven staan voor de dag dat een update de stack weer aanzet.

Met ook IPv6 blokkeren dat door de bridge en de switch-chip gaat aan komen er bridge-filterregels op mac-protocol=ipv6 bij, en regels voor de switch-chip: één per poort op chips met switch rules, of een ingress- en egress-regel op chips met een ACL-tabel. Beide staan in het script in een :do ... on-error, dus een chip die ze niet kent slaat ze over en zet een regel in de log in plaats van het script af te breken. Zonder die optie stopt alleen de router zelf met IPv6, terwijl je apparaten onderling en met een modem dat het wel aanbiedt gewoon doorgaan.

Wat je kunt controleren

  • /ipv6 address print toont per interface het adres. Je zoekt een adres dat met 2 of 3 begint op je LAN-interfaces, niet alleen fe80::.
  • /ipv6 dhcp-client print laat zien of de status bound is en welke prefix je hebt gekregen.
  • /ipv6 route print voor de default route, /ipv6 nd print voor de advertisements.
  • /ipv6 firewall filter print stats om te zien dat er regels zijn en dat ze tellen.
  • Op een client: heeft die een globaal adres, en komt ping6 naar buiten. Geen adres betekent meestal dat de advertisements niet aankomen, bijvoorbeeld doordat de VLAN-interface geen prefix uit de pool kreeg.

Waar mensen tegenaan lopen

Een gedelegeerde prefix is niet voor altijd. Wisselt hij, dan wijzen je statische AAAA-records en je accept-regels op adres opeens nergens meer naar. Vraag je provider of je prefix vast is; is dat niet zo, gebruik dan namen en accepteer dat je af en toe moet bijwerken.

Verder lezen: Firewall en NAT, WAN en internet en VLANs.

Meteen proberen? Open de configurator