RouterOS configuratie (internet IPv6 en IPv4)
Doel
Dit is de basis RouterOS configuratie die alleen internet afhandelt maar dit doorvoert op IPv4 en IPv6. Met deze configuratie sluit je de glasvezel aan op poort 1 en je hebt LAN verbinding op poort 2,3,4,5. De router verwacht dat het VLAN6 verkeer op poort 1 TAGGED wordt afgeleverd. Het LAN verkeer komt untagged op de LAN-poorten direkt bruikbaar voor pc's, laptops, etc. Zowel IPv4 als IPv6. Dit is een hele simpele maar doeltreffende configuratie die als basis zal dienen voor verdere uitbreiding.
Deze configuratie werkt met XS4ALL, aangezien deze provider een IPv6 subnet ter beschikking stelt aan alle abonnees. KPN levert geen IPv6.
Ben je op zoek naar de IPv4 variant van deze configuratie? Klik dan hier.
Schematisch overzicht
Configuratie
Let op dat vanaf hier de beschreven configuratie er van uit gaat dat het systeem GEEN huidige configuratie heeft. Dus ook niet de 'default configuration' die bij 1e installatie wordt aangeboden. Verwijder deze indien nodig. Je kunt het beste met WinBOX verbinden op MAC-adres van de router op poort 2.
# Bruikbaar voor een XS4ALL fiber verbinding (IPv4 en IPv6)
# Alleen internet configuratie.
#
# Export voor RouterOS versie 6.43 en hoger
#
# Laatste wijziging: 19 januari 2019
#
#
# Poort 1 (ether1) = FIBER connectie
#
/interface ethernet
set [ find default-name=ether1 ] arp=proxy-arp l2mtu=1598 loop-protect=off
#
# Poort 2 (ether2) = LAN
#
set 1 arp=enabled auto-negotiation=yes \
disabled=no full-duplex=yes l2mtu=1598 \
mtu=1500 name=ether2 speed=1Gbps
#
# VLAN 6 = internet, deze koppelen we aan de fysieke interface ether1-gateway.
#
/interface vlan
add interface=ether1 loop-protect=off name=vlan1.6 vlan-id=6
#
# PPPoE profiel definitie.
# Twee profielen, eentje met alleen IPv4 en eentje met IPv4 en IPv6.
/ppp profile
set *0 only-one=yes use-compression=yes use-upnp=no use-ipv6=no
add name=default-ipv6 only-one=yes use-compression=yes use-upnp=no use-ipv6=yes
# PPPOE CLIENT, deze koppelen we aan de VLAN6 interface die eerder gemaakt is.
# Let op dat we deze client koppelen aan het profiel waar IPv6 aangezet is. Dit zorgt ervoor dat
# PPPoE het IPv6 verkeer niet zal filteren.
/interface pppoe-client
add add-default-route=yes allow=pap disabled=no interface=vlan1.6 \
keepalive-timeout=20 max-mru=1500 max-mtu=1500 name=pppoe-client \
password=1234 profile=default-ipv6 user=1234@provider
#
# BGP, alleen maar even om zeker te zijn dat het disabled is.
#
/routing bgp instance
set default disabled=yes
#
# Bridges, ofwel verzameling switchpoorten die bij elkaar horen.
#
# De bridge-local is de bridge voor de LAN kant van het netwerk. Let op: poort 1 zit (daarom) niet in de LAN bridgepoort!
/interface bridge
add name=bridge-local arp=proxy-arp
/interface bridge port
add bridge=bridge-local interface=ether2
add bridge=bridge-local interface=ether3
add bridge=bridge-local interface=ether4
add bridge=bridge-local interface=ether5
# Lokaal IPv4 adres van de router. Pas dit aan naar het IP adres in de reeks die je gebruikt (of laat het zo)
#
/ip address
add address=192.168.10.250/24 disabled=no interface=bridge-local network=192.168.10.0
# De DNS van Google, lekker betrouwbaar. Stel deze dmv remote requests als caching server open voor het LAN.
#
/ip dns
set allow-remote-requests=yes cache-max-ttl=1d cache-size=2048KiB \
max-udp-packet-size=4096 servers=8.8.8.8,8.8.4.4
#
# De 3 standaard rules voor de firewall. Dit zijn geen veilige rules, alles staat open, maar
# bedoeld om de basis functionaliteiten te laten werken.
#
/ip firewall filter
add action=accept chain=input disabled=no in-interface=pppoe-client protocol=icmp
add action=accept chain=input connection-state=related disabled=no
add action=accept chain=input connection-state=established disabled=no
#
# BELANGRIJK: nu volgen enkele drastische voorbeeld firewall rules om de router vanaf internet te beschermen op IPv4
#
# Bedenk: input rules = verkeer naar de router zelf.
# Denk hierbij aan de webinterface, SSH toegang, een DNS server, VPN, etc.
#
# Onderstaande regels zorgen dat bijvoorbeeld de webinterface en de ssh poort niet van buitenaf te bereiken zijn.
# Ook sluit je een eventuele DNS server af voor de buitenwereld.
# Neem je de volgende twee regels niet mee in je eigen configuratie dan krijg je vanzelf bericht van KPN
# dat je verbinding is geblokkeeerd vanwege een "open DNS" of soortgelijke reden. Dan heb je geen internet meer.
# Voorkom dit dus vooral en neem deze basis firewall regels mee in je configuratie.
#
add action=reject chain=input in-interface=pppoe-client protocol=tcp reject-with=icmp-port-unreachable
add action=reject chain=input in-interface=pppoe-client protocol=udp reject-with=icmp-port-unreachable
#
# De NAT regel om vanaf LAN het internet te kunnen gebruiken, vervang evt het src adres door je eigen LAN IP reeks.
#
/ip firewall nat
add action=masquerade chain=srcnat comment="Needed for internet" \
out-interface=pppoe-client src-address=192.168.0.0/16
## Een basis DHCP server voor het LAN
#
/ip pool
add name=thuisnetwerk ranges=192.168.10.40-192.168.10.99
/ip dhcp-server
add address-pool=thuisnetwerk authoritative=yes disabled=no interface=bridge-local \
lease-time=1h30m name=dhcp-thuis
/ip dhcp-server config
set store-leases-disk=15m
/ip dhcp-server network
add address=192.168.10.0/24 dns-server=192.168.10.250 domain=thuis.local gateway=\
192.168.10.250
#
# Algemene andere dingetjes
#
/ip upnp
set allow-disable-external-interface=no enabled=no show-dummy-rule=no
/ip upnp interfaces
add disabled=no interface=bridge-local type=internal
add disabled=no interface=pppoe-client type=external
/system clock
set time-zone-name=Europe/Amsterdam
#########################################
# Hier zijn de specifieke toevoegingen voor IPv6
#
# XS4ALL doet aan PD, ofwel Prefix Delegation.
# Dit betekent dat XS4ALL een subnet beschikbaar stelt maar zich niet bemoeit
# met het uitgeven van IP adressen aan lokale apparatuur.
# De eerste taak is bij XS4ALL op te vragen welk
# subnet hiervoor is gereserveerd en hier een adress pool voor te maken.
/ipv6 dhcp-client
add add-default-route=yes interface=pppoe-XS4ALL pool-name=0 \
pool-prefix-length=48 request=prefix use-peer-dns=no
# Het hele subnet staat ter beschikking. XS4ALL wijst niet een adres toe aan de router. Dit kun je zelf doen.
# Op onderstaande wijze pak je het 1e adres uit de pool en deze wijs je toe aan de LAN bridge, wat overeenkomt
# met het adres aan de router geven.
/ipv6 address
add address=::1 from-pool=0 interface=bridge-LAN
# De router heeft nu een IPv6 verbinding en adres. Onderstaande aktiveert de IPv6 firewall: blokkeer alles behalve DHCP naar de router.
/ipv6 firewall filter
add action=accept chain=input connection-state=established in-interface=pppoe-client
add action=accept chain=input connection-state=related in-interface=pppoe-client
add action=accept chain=input in-interface=pppoe-client protocol=icmpv6
add action=accept chain=input comment="DHCPv6 for public addresses" \
dst-address=fe80::/64 dst-port=546 in-interface=pppoe-client \
log-prefix=DHCPv6 protocol=udp
add action=reject chain=input in-interface=pppoe-client log=no reject-with=\
icmp-port-unreachable
# De volgende firewall regels blokkeert ook standaard het verkeer naar andere IPv6 apparaten achter de router. Er is geen sprake van NAT
# dus ook geen bescherming door NAT. Alles wat je niet blokkeert, gaat door de router gewoon door naar bv. je laptop of printer.
add action=accept chain=forward connection-state=related in-interface=pppoe-client
add action=accept chain=forward connection-state=established in-interface=pppoe-client
add action=reject chain=forward in-interface=pppoe-client reject-with=icmp-no-route
# Een echte DHCP server is een niet gewenst principe van IPv6. Met Neighbour Discovery kan een router het netwerk bekend maken aan clients.
# Met onderstaande regels blokkeren we de standaard instelling en introduceren we een ND op het LAN. Het resultaat is dat andere apparaten
# een IPv6 adres kunnen pakken uit het toegewezen subnet.
/ipv6 nd
set [ find default=yes ] disabled=yes
add advertise-mac-address=no hop-limit=64 interface=bridge-LAN