Deel dit onderwerp alstublieft!

Load Balancing met Mikrotik

🔀Load balancing met MikroTik router

load balancing met mikrotik

🛈 Let op:

Deze configuratie en screenshots zijn gemaakt met MikroTik RouterOS v7.19.3 op een RB5009UPr+S+ Gebruik je een andere oudere versie? Sommige schermen of instellingen kunnen dan afwijken.

1️⃣ Wat is load balancing?

Load balancing is het verdelen van netwerkverkeer over meerdere internet verbindingen. Een MikroTik router kan via load balancing automatisch bepalen welke verbinding wordt gebruikt voor uitgaand verkeer. Dit zorgt voor een efficiënter gebruik van beschikbare bandbreedte en verhoogt de netwerk beschikbaarheid.

Waarom load balancing gebruiken?

  • 🛡️ Redundantie: Als één internetverbinding uitvalt, blijft het netwerk bereikbaar via de andere lijn.
  • ⚡Efficiëntie: Verkeer wordt verdeeld over beide verbindingen, waardoor de totale beschikbare bandbreedte optimaal wordt benut.
  • 💰 Kostenbeheersing: Door verschillende providers te combineren, kan gekozen worden voor de beste prijs kwaliteit verhouding en extra zekerheid.
  • 🔄 Continuïteit: Kritische toepassingen blijven online, ook bij storingen op één van de lijnen.

⚖️ Verschil tussen load balancing en failover

  • ⚖️ Load balancing: Verkeer wordt actief verdeeld over meerdere verbindingen (bijvoorbeeld 50/50 of volgens een bepaalde verhouding).
  • 🆘 Failover: Alleen bij uitval van de hoofdverbinding wordt automatisch overgeschakeld naar de tweede verbinding.

❗Let op

Bij load balancing is het belangrijk te weten dat één enkele sessie zoals een download meestal maar via één WAN verbinding loopt.

Praktische aandachtspunten bij load balancing

  • 🔒 Sommige (bank)diensten werken niet goed als het externe IP-adres verandert tijdens de sessie.
  • ⚙️ Load balancing vereist een correcte configuratie van NAT, mangle rules en routing op de MikroTik router.
  • 🧪 Test altijd met een eenvoudige setup (zoals beschreven in de basisconfiguratie) voordat geavanceerde scenario’s worden toegevoegd.

🎯Belangrijk aandachtspunt bij load balancing: online diensten en bank sessies

Veel instanties en online diensten, zoals banken, accepteren het niet wanneer netwerkverkeer van één en dezelfde sessie opeens via verschillende internet verbindingen of uitgaande IP-adressen verloopt.

Waarom?

  • Banken en financiële diensten monitoren actief het bron-IP-adres van een sessie.
  • Wanneer het IP-adres tijdens een actieve sessie wisselt zoals soms bij load balancing, kan dit worden geïnterpreteerd als een mogelijke beveiligingsdreiging, zoals account overname of een man-in-the-middle aanval.
  • Het gevolg: de sessie wordt vaak direct geblokkeerd of je moet opnieuw inloggen voor veiligheid.

Zowel in praktijkervaring als in de documentatie van banken en grote cloud providers (zoals Microsoft, Google, AWS) wordt bevestigd dat een IP-adres wissel tijdens een sessie tot onderbrekingen of blokkades leidt. MikroTik documentatie, maar ook handleidingen van andere load balancers (FortiGate, pfSense, Ubiquiti) waarschuwen hiervoor. MikroTik zegt hierover: Per‑packet verdeelt pakketten van één sessie over meerdere verbindingen leidt vaak tot IP-wissel in sessies, wat bank websites blokken.

🔒 Conclusie & aanbevelingen: Load balancing en bankverkeer

Veel banken en beveiligde websites zoals overheidsportalen, boekhoudsoftware, webmail, en SaaS platforms controleren het publieke IP-adres waarmee een sessie wordt gestart. Dit gebeurt uit veiligheidsoverwegingen: een plotselinge IP-wijziging tijdens een actieve sessie wordt vaak gezien als een poging tot kaping of een man in the middle aanval.Bij load balancing via meerdere internet verbindingen zonder correcte mangle-rules kan het volgende gebeuren:

  • Verkeer van één werkstation wordt tijdens de sessie via verschillende WAN’s gestuurd.
  • De website ziet opeens een ander IP-adres voor dezelfde sessie.
  • De bank blokkeert de sessie automatisch, of vraagt opnieuw in te loggen.
  • Dit zorgt voor frustratie, storingen of zelfs het blokkeren van accounts.

Hoe voorkom je problemen met load balancing en bankverkeer?

  1. Gebruik altijd Per Connection Load Balancing (PCC): Met PCC blijft één sessie van begin tot eind over dezelfde WAN verbinding lopen, zolang de verbinding niet uitvalt.
  2. Sluit bank en andere gevoelige diensten uit van load balancing: Maak een address-list voor de bank domeinen of  IP’s  en forceer hun verkeer over één specifieke WAN route. Zo blijft het IP-adres altijd gelijk voor deze sessies.
  3. Controleer de logica van je NAT/mangle regels: Fouten in deze regels kunnen onbedoeld toch IP wissels veroorzaken. Controleer altijd via log, Torch, of Connection tracking.
  4. Communiceer met eind gebruikers: Leg kort uit waarom bank verkeer soms niet werkt bij load balancing, zodat gebruikers weten dat dit geen router fout is, maar een beveiligingsmaatregel van de bank.

⚙️ Basisconfiguratie van de MikroTik router

/interface bridge
add name=bridge_LAN1
add name=bridge_LAN2
/interface ethernet
set [ find default-name=ether1 ] name=ether1_WAN1
set [ find default-name=ether2 ] name=ether2_WAN2
set [ find default-name=ether3 ] name=ether3_LAN1
set [ find default-name=ether4 ] name=ether4_LAN1
set [ find default-name=ether5 ] name=ether5_LAN2
set [ find default-name=ether6 ] name=ether6_LAN2
/interface list
add name=WAN
add name=LAN
add name=MGMT
/ip pool
add name=dhcp_pool_lan1 ranges=192.168.100.20-192.168.100.254
add name=dhcp_pool_lan2 ranges=192.168.200.20-192.168.200.254
/interface bridge port
add bridge=bridge_LAN2 interface=ether5_LAN2
add bridge=bridge_LAN2 interface=ether6_LAN2
add bridge=bridge_LAN1 interface=ether4_LAN1
add bridge=bridge_LAN1 interface=ether3_LAN1
/interface list member
add interface=ether1_WAN1 list=WAN
add interface=ether2_WAN2 list=WAN
add interface=bridge_LAN1 list=LAN
add interface=bridge_LAN2 list=LAN
add interface=bridge_LAN1 list=MGMT
/ip address
add address=192.168.100.1/24 interface=bridge_LAN1 network=192.168.100.0
add address=192.168.200.1/24 interface=bridge_LAN2 network=192.168.200.0
/ip dhcp-server
add address-pool=dhcp_pool_lan1 interface=bridge_LAN1 lease-time=5m name=dhcp_lan1
add address-pool=dhcp_pool_lan2 interface=bridge_LAN2 lease-time=5m name=dhcp_lan2
/ip dhcp-server network
add address=192.168.100.0/24 dns-server=192.168.100.1,1.1.1.1 domain=lan.1 gateway=192.168.100.1
add address=192.168.200.0/24 dns-server=192.168.200.1,8.8.8.8 domain=lan.2 gateway=192.168.200.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.100.1 name=ns1.home type=A
add address=192.168.200.1 name=ns2.home type=A
/ip firewall nat
add action=masquerade chain=srcnat comment="Nat masquerade verkeer van LAN1" out-interface-list=WAN src-address=192.168.100.0/24
add action=masquerade chain=srcnat comment="Nat masquerade verkeer van LAN2" out-interface-list=WAN src-address=192.168.200.0/24
/system clock
set time-zone-name=Europe/Brussels

Deze configuratie vormt het vaste vertrekpunt voor alle verdere load balancing scenario’s. De opzet is overzichtelijk en schaalbaar, zodat iedere netwerkomgeving eenvoudig kan worden uitgebreid of aangepast.


🏠 Netwerkstructuur

De configuratie bestaat uit twee gescheiden LAN-segmenten, elk met een eigen bridge en IP-range:
  • LAN1: bridge_LAN1 met subnet 192.168.100.0/24
  • LAN2: bridge_LAN2 met subnet 192.168.200.0/24

Beide LAN’s zijn verbonden via eigen fysieke poorten, zodat het netwerk logisch en fysiek gescheiden is. Wil je de bovenstaande code gebruiken kan je deze kopieren en plakken in het new terminal venster van je MikroTik router.

🌐 WAN-interfaces

De router beschikt over twee WAN-interfaces:
  • ether1_WAN1 en ether2_WAN2

Deze interfaces zijn bedoeld voor verbinding met twee verschillende internetproviders of verbindingstypes (bijvoorbeeld kabel + 4G).

🖧 Bridge-configuratie

Voor elk LAN-segment is een aparte bridge aangemaakt:
  • Poorten ether3_LAN1 en ether4_LAN1 zijn toegevoegd aan bridge_LAN1.
  • Poorten ether5_LAN2 en ether6_LAN2 zijn toegevoegd aan bridge_LAN2.

Deze indeling zorgt ervoor dat beide LAN’s onafhankelijk van elkaar kunnen functioneren en elk een eigen DHCP-server en IP-bereik gebruiken.

📝 Interface lists

Drie interface lists zijn aangemaakt:
  • WAN: bevat de WAN-interfaces
  • LAN: bevat beide bridges
  • MGMT: bevat bridge_LAN1 voor beheerdoeleinden

🗂️ DHCP-servers en adressen

Voor beide LAN-segmenten is een aparte DHCP-server geconfigureerd met een uniek IP-pool en korte lease time (handig bij testen of wijzigingen):
  • LAN1: 192.168.100.1 als gateway en DNS-server
  • LAN2: 192.168.200.1 als gateway en DNS-server

Externe DNS (zoals 1.1.1.1 en 8.8.8.8) wordt meegegeven als fallback voor clients.

🔀 NAT-regels

Voor elk LAN-segment is een aparte NAT-regel toegevoegd. Dit zorgt ervoor dat alle uitgaande verbindingen via beide WAN’s correct naar het internet worden vertaald (masquerade):
  • NAT-regel voor LAN1 192.168.100.0/24.
  • NAT-regel voor LAN2 192.168.200.0/24.

Deze basisconfiguratie is bewust eenvoudig gehouden, zodat iedere load balancing methode hierop kan voortbouwen. Door deze heldere scheiding van LAN, WAN en management is het netwerk optimaal voorbereid op uitbreiding, segmentatie, en verdere beveiliging. Wil je meer weten over het beveiligen van je router lees na het lezen van deze blogpost de blogpost:  MikroTik apparaten beveiligen.

🎬 Video: Basisconfiguratie MikroTik router
In deze video wordt stap voor stap uitgelegd hoe je de basisconfiguratie van de MikroTik router opzet. Alle onderwerpen uit deze handleiding worden visueel behandeld.

👉 Bekijk de video over de basisconfiguratie

⚖️ Policy Based Routing (PBR) met MikroTik router

Policy Based Routing (PBR) maakt het mogelijk om het uitgaande verkeer van verschillende netwerken te sturen via specifieke internet verbindingen.
Met deze configuratie bepaalt de beheerder zelf welk netwerk gebruikt maakt van welke ISP, ongeacht de standaard gateway-instellingen.
In onderstaand voorbeeld wordt verkeer van LAN1 altijd via WAN1 naar het internet geleid, terwijl verkeer van LAN2 uitgaand via WAN2 gaat. Deze aanpak is ideaal voor situaties waar bijvoorbeeld een prive netwerk gescheiden moet worden van een gastnetwerk, of waar zakelijk en recreatief verkeer volledig gescheiden moeten blijven. PBR biedt maximale controle, stabiliteit en flexibiliteit, en is universeel inzetbaar in uiteenlopende netwerk omgevingen.

❗Opgelet

Zoals al aangehaald bouwen we voort op de bovenstaande basisconfiguratie. Heb je deze nog niet geconfigureerd? Doe dit eerst voordat je aan de policy based routing configuratie begint.

🔀Load balancing met MikroTik PBR (policy based routing)

Nu de aandachtspunten bekend zijn, kan gestart worden met de configuratie van Policy Based Routing op de MikroTik router. In onderstaande stappen wordt uitgelegd hoe elk LAN segment via een eigen WAN verbinding toegang tot het internet krijgt. Deze methode is gebaseerd op het gebruik van mangle rules en aangepaste routing markeringen in RouterOS v7. Volg onderstaande configuratiestappen om Policy Based Routing correct toe te passen op basis van de eerder beschreven basisconfiguratie.

🆚 Routing tables: RouterOS v6 vs RouterOS v7

RouterOS v6

Routing tables zijn impliciet. Er wordt vooral gewerkt met zogeheten routing marks in mangle regels. Voor elke routing mark maak je in /ip route een route aan met het veld routing mark=....

  • Je hoeft geen routing tables aan te maken in een apart menu.
  • Alles blijft bij /ip route en /ip firewall mangle.
Voorbeeld (v6):
/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/24 action=mark-routing new-routing-mark=to_WAN1
/ip route
add dst-address=0.0.0.0/0 gateway= routing-mark=to_WAN1

RouterOS v7

  • Routing tables zijn expliciet en  moeten eerst worden aangemaakt. Met de introductie van het nieuwe routing framework zijn routing tables nu objecten in /routing table die je vooraf definieert.
  • Mangle-rules verwijzen naar deze tables via new routing-mark.
  • Routes maak je aan in /ip route met het veld routing-table=... in plaats van routing-mark=....

Voorbeeld (v7):

/routing table
add name=to_WAN1
/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/24 action=mark-routing new-routing-mark=to_WAN1
/ip route
add dst-address=0.0.0.0/0 gateway= routing-table=to_WAN1
Hierdoor is het beheer flexibeler, maar je moet altijd routing tables expliciet aanmaken vóór gebruik in routes.

Samengevat:

RouterOS v6: Routing mark direct aanmaken en gebruiken, geen aparte table definitie.
RouterOS v7: Routing tables expliciet aanmaken, mangle koppelt markering aan de juiste table, route wijst naar een routing table.

⚠️ Let op

De configuratie op deze pagina is specifiek geschreven voor RouterOS v7. Gebruik je een oudere versie v6, dan zijn de commando’s en routing tabel logica anders opgebouwd. Indien je een PBR configuratie met RouterOS v6 wil zien bekijk dan de video die ik heb gemaakt.

🛠️ Stap-voor-stap: Policy Based Routing configureren (RouterOS v7)

Routing tables aanmaken

RouterOS v7 vereist dat je expliciet routing tables aanmaakt voordat je deze kunt gebruiken voor policy-based routing. Elke table vertegenwoordigt een aparte set routes, bijvoorbeeld voor elk WAN.
/routing table
add name=to_WAN1 fib
add name=to_WAN2 fib

Nu zijn er twee routing tables: één voor verkeer dat via WAN1 gaat en één voor verkeer via WAN2. Wat is FIB? FIB staat voor Forwarding Information Base. Alleen routing tables met fib=yes worden daadwerkelijk gebruikt om verkeer te routeren. 

Mangle-regels om verkeer te markeren

Met een mangle-rule kun je aangeven welk verkeer een speciale markering krijgt met een zogeheten routing-mark. Deze markering vertelt RouterOS om voor dat verkeer een alternatieve routing table te gebruiken.

/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/24 action=mark-routing new-routing-mark=to_WAN1 comment="Stuur LAN1-verkeer via WAN1"
add chain=prerouting src-address=192.168.200.0/24 action=mark-routing new-routing-mark=to_WAN2 comment="Stuur LAN2-verkeer via WAN2"
Hiermee krijgt al het verkeer van LAN1 (192.168.100.0/24) de markering to_WAN1 en van LAN2 (192.168.200.0/24) de markering to_WAN2.

🌐 Waarop letten bij het verbinden van WAN-interfaces met DHCP-client

Zet ‘Add Default Route’ uit

  • Laat de DHCP-client geen default gateway toevoegen, want je regelt de default routes zelf via Policy Based Routing.
  • Anders kan verkeer onverwacht via de verkeerde WAN lopen.

Zet ‘Use Peer DNS’ uit

  • Sta niet toe dat de DHCP-client de DNS-instellingen van de provider overneemt.
  • Gebruik altijd vaste publieke DNS-servers zie vorig onderwerp om consistentie te behouden.

Waarom geen DNS via DHCP-client?

Standaard kan de DHCP-client op de WAN-interface automatisch een DNS-server ontvangen van de internetprovider. Bij PBR is dit niet aangeraden, om verschillende redenen.

/ip dhcp-client set [find interface=ether1_WAN1] use-peer-dns=no
/ip dhcp-client set [find interface=ether2_WAN2] use-peer-dns=no
/ip dns set servers=1.1.1.1,8.8.8.8 allow-remote-requests=yes

🔀Routes toevoegen aan de juiste tables

Nu je verkeer is gemarkeerd, moet je voor elke routing-mark een bijbehorende default route aanmaken. Hiermee weet de router over welke WAN het verkeer moet vertrekken. Commando’s (vervang GATEWAY1 en GATEWAY2 door de echte gateways, bv. 192.0.2.1 of een DHCP-acquired adres):

/ip route
add dst-address=0.0.0.0/0 gateway=gateway1 routing-table= to_WAN1 comment="Default route voor LAN1 via WAN1"
add dst-address=0.0.0.0/0 gateway=gateway2 routing-table=to_WAN2 comment="Default route voor LAN2 via WAN2"

Veelgemaakte fouten voorkomen bij deze load balancing configuratie

  • Verkeerde gateway? Controleer het adres goed — als je via DHCP werkt, gebruik het adres van de provider.
  • NAT vergeten: Zonder NAT kunnen clients wel route krijgen, maar geen verbinding maken.
  • Verkeerde volgorde: Eerst routing tables, dan mangle, dan routes — anders krijg je errors in RouterOS v7.

Klaar! Je MikroTik router verdeelt nu elk LAN-segment over de gewenste WAN-verbinding met policy based routing.

Binnenkort

Daar load balancing configureren op de Mikrotik op verschillende manieren kan worden uitgevoerd maakt het steeds interessant. Ik zal hier dan ook nog verschillende manieren van load balancing bijplaatsen. Ik heb hier in deze voorbeelden Policy Based Routing laten zien maar er zijn uiteraard nog de automatische. Deze komen binnenkort ook aan bod. Indien je bonding configureert op je router of switch zoals hier tussen de Synology NAS en een Zyxel switch creëer je ook een vorm van load-balancing maar niet alle bonding opties ondersteunen dit. Dit is ook mooi meegenomen is het niet?

MikroTik PCC load balancing en failover

Blijf op de hoogte van nieuwe video tutorials

Deze website maakt gebruik van cookies. Door deze site te blijven gebruiken, accepteert u het gebruik van deze cookies.