← Alle handleidingen

Handleiding MikroTik

Wat je van ons krijgt

Vervang deze plaatsaanduidingen door de gegevens die je bij je bestelling van FixedIP.be kreeg.

PRIVATE_KEYde private key van je tunnels (geheim houden)
PORTde UDP-poort van onze tunnelservers
ENDPOINT_1het adres van onze tunnelserver in Antwerpen
SERVER_PUBLIC_KEY_1de public key van onze tunnelserver in Antwerpen
TUNNEL_IP_1het tunneladres van je router naar Antwerpen
SERVER_TUNNEL_IP_1het tunneladres aan onze kant in Antwerpen (gateway)
ENDPOINT_2het adres van onze tunnelserver in Zaventem
SERVER_PUBLIC_KEY_2de public key van onze tunnelserver in Zaventem
TUNNEL_IP_2het tunneladres van je router naar Zaventem
SERVER_TUNNEL_IP_2het tunneladres aan onze kant in Zaventem (gateway)
FIXED_IPje vaste IPv4-adres
FIXED_SUBNETje IPv4-subnet, bijvoorbeeld /29
FIRST_USABLEhet eerste bruikbare adres van je subnet
PREFIX_LENGTHde lengte van je subnet, bijvoorbeeld 29
IPV6_PREFIXje IPv6-subnet
IPV6_LANeen /64 uit je IPv6-subnet voor je netwerk
TUNNEL_IP6_1het IPv6-tunneladres van je router naar Antwerpen
SERVER_TUNNEL_IP6_1het IPv6-tunneladres aan onze kant in Antwerpen
TUNNEL_IP6_2het IPv6-tunneladres van je router naar Zaventem
SERVER_TUNNEL_IP6_2het IPv6-tunneladres aan onze kant in Zaventem
LAN_HOSThet interne adres van je server of NAS, bijvoorbeeld 192.168.1.10

Met deze handleiding zet je je vaste IP op een MikroTik-router met RouterOS 7. Je router bouwt twee tunnels op, één naar elke PoP, en schakelt automatisch over als er één wegvalt. Enkel het verkeer van je vaste IP loopt door de tunnels; al het andere verkeer blijft rechtstreeks via je eigen internetverbinding gaan.

Je krijgt het vaste IP binnen op de router en stuurt het door naar een toestel in je netwerk (bijvoorbeeld een NAS of server op LAN_HOST). Heb je meerdere adressen (een subnet)? Lees dan ook het stuk Meerdere adressen onderaan.

Alle commando's plak je in Terminal (WinBox of WebFig → New Terminal). Elke regel krijgt het label fixedip.be, zodat je alles later in één keer kan terugvinden of verwijderen.

1. Twee WireGuard-tunnels

Eén tunnel naar elke PoP, met dezelfde sleutel:

/interface/wireguard/add name=wg-fixedip-1 listen-port=13241 mtu=1420 private-key="PRIVATE_KEY" comment="fixedip.be"
/interface/wireguard/add name=wg-fixedip-2 listen-port=13242 mtu=1420 private-key="PRIVATE_KEY" comment="fixedip.be"

/interface/wireguard/peers/add interface=wg-fixedip-1 public-key="SERVER_PUBLIC_KEY_1" \
    endpoint-address=ENDPOINT_1 endpoint-port=PORT allowed-address=0.0.0.0/0,::/0 \
    persistent-keepalive=25s comment="fixedip.be"
/interface/wireguard/peers/add interface=wg-fixedip-2 public-key="SERVER_PUBLIC_KEY_2" \
    endpoint-address=ENDPOINT_2 endpoint-port=PORT allowed-address=0.0.0.0/0,::/0 \
    persistent-keepalive=25s comment="fixedip.be"

/ip/address/add address=TUNNEL_IP_1/32 network=SERVER_TUNNEL_IP_1 interface=wg-fixedip-1 comment="fixedip.be"
/ip/address/add address=TUNNEL_IP_2/32 network=SERVER_TUNNEL_IP_2 interface=wg-fixedip-2 comment="fixedip.be"

allowed-address=0.0.0.0/0 betekent enkel dat de tunnels verkeer naar elk adres mogen dragen. RouterOS legt daar zelf geen route voor aan: je gewone internetverkeer blijft dus waar het was.

Zet de tunnels niet in de interfacelijst WAN. Anders gaat de standaard masquerade-regel ook op de tunnels werken.

2. Je vaste IP op de router

Het vaste IP komt op een aparte, lege bridge. Zo hangt het aan geen van beide tunnels vast en blijft het bestaan, welke tunnel er ook actief is.

/interface/bridge/add name=lo-fixedip comment="fixedip.be"
/ip/address/add address=FIXED_IP/32 interface=lo-fixedip comment="fixedip.be"

3. Routering met automatische failover

Drie routeringstabellen:

  • fixedip: voor verkeer dat vertrekt vanaf je vaste IP. Voorkeur voor PoP 1; valt die weg (de router pingt het tunneladres aan onze kant), dan PoP 2.
  • fixedip-1 en fixedip-2: antwoorden gaan altijd terug via de tunnel waarlangs de verbinding binnenkwam.
/routing/table/add name=fixedip fib comment="fixedip.be"
/routing/table/add name=fixedip-1 fib comment="fixedip.be"
/routing/table/add name=fixedip-2 fib comment="fixedip.be"

/ip/route/add dst-address=0.0.0.0/0 gateway=SERVER_TUNNEL_IP_1 routing-table=fixedip distance=1 \
    check-gateway=ping comment="fixedip.be"
/ip/route/add dst-address=0.0.0.0/0 gateway=SERVER_TUNNEL_IP_2 routing-table=fixedip distance=2 \
    check-gateway=ping comment="fixedip.be"
/ip/route/add dst-address=0.0.0.0/0 gateway=wg-fixedip-1 routing-table=fixedip-1 comment="fixedip.be"
/ip/route/add dst-address=0.0.0.0/0 gateway=wg-fixedip-2 routing-table=fixedip-2 comment="fixedip.be"

Markeer de verbindingen die via een tunnel binnenkomen, en stuur hun antwoorden via diezelfde tunnel terug:

/ip/firewall/mangle/add chain=prerouting in-interface=wg-fixedip-1 connection-state=new \
    action=mark-connection new-connection-mark=fixedip-1 passthrough=yes comment="fixedip.be"
/ip/firewall/mangle/add chain=prerouting in-interface=wg-fixedip-2 connection-state=new \
    action=mark-connection new-connection-mark=fixedip-2 passthrough=yes comment="fixedip.be"
/ip/firewall/mangle/add chain=prerouting in-interface-list=LAN connection-mark=fixedip-1 \
    action=mark-routing new-routing-mark=fixedip-1 passthrough=no comment="fixedip.be"
/ip/firewall/mangle/add chain=prerouting in-interface-list=LAN connection-mark=fixedip-2 \
    action=mark-routing new-routing-mark=fixedip-2 passthrough=no comment="fixedip.be"
/ip/firewall/mangle/add chain=output connection-mark=fixedip-1 \
    action=mark-routing new-routing-mark=fixedip-1 passthrough=no comment="fixedip.be"
/ip/firewall/mangle/add chain=output connection-mark=fixedip-2 \
    action=mark-routing new-routing-mark=fixedip-2 passthrough=no comment="fixedip.be"

Tot slot de regels die bepalen welke tabel gebruikt wordt. De volgorde telt: eerst de markeringen, dan je vaste IP.

/routing/rule/add routing-mark=fixedip-1 action=lookup-only-in-table table=fixedip-1 comment="fixedip.be"
/routing/rule/add routing-mark=fixedip-2 action=lookup-only-in-table table=fixedip-2 comment="fixedip.be"
/routing/rule/add src-address=FIXED_IP/32 action=lookup-only-in-table table=fixedip comment="fixedip.be"

FastTrack slaat de mangle-regels over. Sluit de gemarkeerde verbindingen daarom uit van FastTrack:

/ip/firewall/filter/set [find action=fasttrack-connection] connection-mark=no-mark

4. Doorsturen naar je server

Stuur één poort door (hier HTTPS):

/ip/firewall/nat/add chain=dstnat dst-address=FIXED_IP protocol=tcp dst-port=443 \
    action=dst-nat to-addresses=LAN_HOST comment="fixedip.be"

Of stuur álle poorten door naar hetzelfde toestel (1-op-1):

/ip/firewall/nat/add chain=dstnat dst-address=FIXED_IP action=dst-nat to-addresses=LAN_HOST comment="fixedip.be"

Laat de router alleen verkeer uit de tunnels door dat je zelf hebt doorgestuurd, en zet die regels bovenaan:

/ip/firewall/filter/add chain=forward in-interface=wg-fixedip-1 connection-nat-state=!dstnat \
    action=drop comment="fixedip.be" place-before=0
/ip/firewall/filter/add chain=forward in-interface=wg-fixedip-2 connection-nat-state=!dstnat \
    action=drop comment="fixedip.be" place-before=0

De standaard input-regels van RouterOS laten niets van buiten het LAN toe, dus de router zelf is niet bereikbaar via je vaste IP.

5. Ook uitgaand met je vaste IP (optioneel)

Wil je dat je server ook naar buiten gaat met je vaste IP (bijvoorbeeld voor whitelisting bij een leverancier)?

/routing/rule/add src-address=LAN_HOST/32 action=lookup-only-in-table table=fixedip comment="fixedip.be"
/ip/firewall/nat/add chain=srcnat src-address=LAN_HOST out-interface=wg-fixedip-1 \
    action=src-nat to-addresses=FIXED_IP comment="fixedip.be"
/ip/firewall/nat/add chain=srcnat src-address=LAN_HOST out-interface=wg-fixedip-2 \
    action=src-nat to-addresses=FIXED_IP comment="fixedip.be"

Al het internetverkeer van LAN_HOST loopt dan via je vaste IP, en schakelt mee over als PoP 1 wegvalt. De andere toestellen in je netwerk merken niets.

6. IPv6

Je IPv6-subnet wordt naar beide tunnels gerouteerd. Geef de tunnels hun IPv6-tunneladres, zet een /64 op je LAN-bridge (IPV6_LAN) en stuur het verkeer vanuit je subnet door de tunnels, met dezelfde failover:

/ipv6/address/add address=TUNNEL_IP6_1/128 interface=wg-fixedip-1 advertise=no comment="fixedip.be"
/ipv6/address/add address=TUNNEL_IP6_2/128 interface=wg-fixedip-2 advertise=no comment="fixedip.be"
/ipv6/address/add address=IPV6_LAN::1/64 interface=bridge advertise=yes comment="fixedip.be"
/ipv6/route/add dst-address=::/0 gateway=SERVER_TUNNEL_IP6_1%wg-fixedip-1 routing-table=fixedip \
    distance=1 check-gateway=ping comment="fixedip.be"
/ipv6/route/add dst-address=::/0 gateway=SERVER_TUNNEL_IP6_2%wg-fixedip-2 routing-table=fixedip \
    distance=2 check-gateway=ping comment="fixedip.be"
/routing/rule/add src-address=IPV6_PREFIX action=lookup-only-in-table table=fixedip comment="fixedip.be"

De standaard IPv6-firewall laat geen inkomend verkeer naar je LAN toe. Open per toestel wat je wil bereiken, bijvoorbeeld:

/ipv6/firewall/filter/add chain=forward in-interface=wg-fixedip-1 dst-address=IPV6_LAN::10/128 \
    protocol=tcp dst-port=443 action=accept comment="fixedip.be" place-before=0
/ipv6/firewall/filter/add chain=forward in-interface=wg-fixedip-2 dst-address=IPV6_LAN::10/128 \
    protocol=tcp dst-port=443 action=accept comment="fixedip.be" place-before=0

Meerdere adressen

Heb je een subnet (FIXED_SUBNET) gekregen? Dan kan je het op twee manieren gebruiken:

  • Via je router (alle adressen bruikbaar): zet elk adres als /32 op lo-fixedip zoals in stap 2, en stuur elk adres met een eigen dst-nat-regel door naar een ander toestel, zoals in stap 4. Voeg de regel uit stap 3 toe voor het hele subnet (src-address=FIXED_SUBNET).
  • Rechtstreeks op je netwerk: zet het subnet op een eigen bridge of VLAN, zodat je publieke toestellen los staan van je thuisnetwerk. Het eerste bruikbare adres gaat naar de router; netwerk- en broadcastadres vallen weg.
/ip/address/add address=FIRST_USABLE/PREFIX_LENGTH interface=bridge-public comment="fixedip.be"
/routing/rule/add src-address=FIXED_SUBNET action=lookup-only-in-table table=fixedip comment="fixedip.be"

Bij de tweede manier heb je geen NAT nodig: de toestellen gebruiken hun publieke adres rechtstreeks. Bescherm ze met eigen forward-regels.

Controleren

/interface/wireguard/peers/print detail where comment="fixedip.be"
/ip/route/print where routing-table=fixedip
/ping 9.9.9.9 src-address=FIXED_IP count=3

Bij beide peers moet een recente last-handshake staan, en in de tabel fixedip is de route via PoP 1 actief. Test daarna van buitenaf, bijvoorbeeld met je gsm op mobiele data: https://FIXED_IP moet op je server uitkomen.

Failover testen: zet wg-fixedip-1 even uit (/interface/wireguard/disable wg-fixedip-1). Binnen een halve minuut neemt de route via PoP 2 het over en blijft je vaste IP bereikbaar. Zet de tunnel daarna weer aan.

Terugdraaien

/ip/firewall/filter/remove [find comment="fixedip.be"]
/ip/firewall/nat/remove [find comment="fixedip.be"]
/ip/firewall/mangle/remove [find comment="fixedip.be"]
/ipv6/firewall/filter/remove [find comment="fixedip.be"]
/routing/rule/remove [find comment="fixedip.be"]
/ip/route/remove [find comment="fixedip.be"]
/ipv6/route/remove [find comment="fixedip.be"]
/routing/table/remove [find comment="fixedip.be"]
/ip/address/remove [find comment="fixedip.be"]
/ipv6/address/remove [find comment="fixedip.be"]
/interface/wireguard/peers/remove [find comment="fixedip.be"]
/interface/wireguard/remove [find comment="fixedip.be"]
/interface/bridge/remove [find comment="fixedip.be"]

Zet FastTrack daarna terug zoals het was: /ip/firewall/filter/set [find action=fasttrack-connection] !connection-mark.

Problemen?

  • Geen handshake: controleer ENDPOINT_1/ENDPOINT_2, PORT en de sleutels. Laat uitgaand UDP-verkeer naar PORT toe als je een extra firewall voor je router hebt.
  • Beide routes in fixedip onbereikbaar: de router krijgt geen antwoord op zijn ping naar SERVER_TUNNEL_IP_1 en SERVER_TUNNEL_IP_2. Kijk of er een handshake is en of het network=-deel bij de tunneladressen klopt.
  • Handshake ok, maar pagina's laden niet of blijven hangen: verlaag de MTU naar 1360 op beide tunnels. Op 4G/5G en sommige glasvezel- of Starlink-verbindingen is 1420 te veel.
  • Van buitenaf niets bereikbaar: kijk of de FastTrack-regel connection-mark=no-mark heeft en of de dst-nat-regel pakketten telt (/ip/firewall/nat/print stats).

Kom je er niet uit? Mail ons op info@fixedip.be

Klaar voor je vaste IP?

Start vandaag nog en wees overal bereikbaar.