MikroTik Load Balancing — Çift Hat ve Failover Yönetimi
PCC, ECMP ve Nth yöntemleriyle MikroTik load balancing konfigürasyonu. Failover ekleme, DNS sorunları ve test yöntemleri. ISP müşterisi: fiber + yedek VDSL senaryosu.
PCC, ECMP ve Nth yöntemleriyle MikroTik load balancing konfigürasyonu. Failover ekleme, DNS sorunları ve test yöntemleri. ISP müşterisi: fiber + yedek VDSL senaryosu.
İçindekiler ▾
- Failover mu, Load Balance mı?
- Senaryo
- Yöntem 1: PCC (Per Connection Classifier) — Önerilen
- Adım 1: Interface Listesi
- Adım 2: IP Adresleri (DHCP veya statik)
- Adım 3: Mangle Kuralları — PCC
- Adım 4: Policy Route
- Adım 5: NAT
- Yöntem 2: ECMP
- Yöntem 3: Nth
- Failover Ekleme
- Netwatch ile Hat İzleme
- DNS Sorunları
- DNS Leak
- Sticky Connection (Bankalar, E-devlet)
- Test ve Doğrulama
- Torch ile Trafik İzleme
- Routing Table Kontrolü
- Hat Kesme Testi
- Bandwidth Testi
- Yaygın Hatalar
- ”Bir hat düşünce tüm bağlantılar kesildi”
- “VoIP bağlantısı kesildi ama hat çalışıyor”
- “PCC kuralları çalışmıyor”
- Kapasite Hesabı
İki internet hattın var — biri fiber, biri yedek VDSL. Normal şartlarda sadece fiber kullanıyorsun, yedek hat atıl bekliyor. Load balancing ile her iki hattı aktif kullanır, biri düşünce diğerine otomatik geçersin. Doğru yapılmadığında ise banka girişleri kesilir, VoIP sorun çıkarır, asimetrik routing baş ağrıtır.
Failover mu, Load Balance mı?
| Özellik | Failover | Load Balance |
|---|---|---|
| Hat kullanımı | Sadece aktif hat | Her iki hat |
| Bant genişliği kazancı | ❌ | ✅ |
| Yük dağıtımı | ❌ | ✅ |
| Yüksek erişilebilirlik | ✅ | ✅ (failover eklenirse) |
| Karmaşıklık | Düşük | Orta-Yüksek |
| Asimetrik routing riski | Düşük | Yönetilmeli |
Senaryo
- WAN1: ether1 — Fiber, 100 Mbps (ana hat)
- WAN2: ether2 — VDSL, 25 Mbps (yedek/ek hat)
- LAN: bridge-lan — 192.168.88.0/24
- Hedef: Normal çalışmada ikisi birlikte, biri düşünce diğerine tam geçiş
Yöntem 1: PCC (Per Connection Classifier) — Önerilen
PCC her bağlantıyı hash hesaplayarak belirli bir hatta atar. Aynı oturum süresince aynı hat kullanır — asimetrik routing sorunu olmaz.
Adım 1: Interface Listesi
/interface list
add name=WAN
add name=LAN
/interface list member
add interface=ether1 list=WAN comment="WAN1 — Fiber"
add interface=ether2 list=WAN comment="WAN2 — VDSL"
add interface=bridge-lan list=LAN
Adım 2: IP Adresleri (DHCP veya statik)
# Fiber hattı (örnek)
/ip address add address=83.45.12.10/30 interface=ether1 comment="WAN1 IP"
/ip route add gateway=83.45.12.9 distance=1 comment="WAN1 GW"
# VDSL hattı
/ip address add address=176.89.21.100/30 interface=ether2 comment="WAN2 IP"
/ip route add gateway=176.89.21.97 distance=2 comment="WAN2 GW (yedek)"
Adım 3: Mangle Kuralları — PCC
/ip firewall mangle
# Established/related bağlantılar: geldikleri hattı kullan
add chain=prerouting action=accept connection-state=established,related \
in-interface=ether1 comment="WAN1 established — mark inherit"
add chain=prerouting action=accept connection-state=established,related \
in-interface=ether2 comment="WAN2 established — mark inherit"
# Yeni bağlantıları iki hata dağıt (PCC ile)
# per-connection-classifier: src-dst-address — kaynak+hedef IP hash
add chain=prerouting action=mark-connection new-connection-mark=conn-wan1 \
in-interface=bridge-lan \
per-connection-classifier=both-addresses:2/0 \
passthrough=yes comment="PCC: WAN1 grubuna düşen bağlantılar"
add chain=prerouting action=mark-connection new-connection-mark=conn-wan2 \
in-interface=bridge-lan \
per-connection-classifier=both-addresses:2/1 \
passthrough=yes comment="PCC: WAN2 grubuna düşen bağlantılar"
# Connection mark → route mark
add chain=prerouting action=mark-routing new-routing-mark=route-wan1 \
connection-mark=conn-wan1 in-interface=bridge-lan \
passthrough=no
add chain=prerouting action=mark-routing new-routing-mark=route-wan2 \
connection-mark=conn-wan2 in-interface=bridge-lan \
passthrough=no
Adım 4: Policy Route
/ip route
add gateway=83.45.12.9 routing-table=route-wan1 comment="WAN1 policy route"
add gateway=176.89.21.97 routing-table=route-wan2 comment="WAN2 policy route"
Adım 5: NAT
/ip firewall nat
add chain=srcnat action=masquerade out-interface=ether1 comment="NAT WAN1"
add chain=srcnat action=masquerade out-interface=ether2 comment="NAT WAN2"
Yöntem 2: ECMP
ECMP (Equal-Cost Multi-Path) routing tablosuna birden fazla eşit maliyetli rota ekler. RouterOS paketleri round-robin ile dağıtır.
/ip route
add gateway=83.45.12.9 distance=1 comment="WAN1 — ECMP"
add gateway=176.89.21.97 distance=1 comment="WAN2 — ECMP (aynı distance)"
Dezavantaj: Oturumlar farklı hatlara düşebilir. Bankacılık, e-devlet gibi IP’yi kontrol eden siteler oturumu kesebilir.
Yöntem 3: Nth
Paket bazlı round-robin. Her N paket bir hatta gönderilir:
/ip firewall mangle
add chain=prerouting action=mark-connection new-connection-mark=conn-wan1 \
nth=2,1 in-interface=bridge-lan passthrough=yes
add chain=prerouting action=mark-connection new-connection-mark=conn-wan2 \
nth=2,2 in-interface=bridge-lan passthrough=yes
| Yöntem | Oturum Kalıcılığı | Dağıtım Doğruluğu | Karmaşıklık |
|---|---|---|---|
| PCC | ✅ Mükemmel | ✅ İyi | Orta |
| ECMP | ❌ Yok | ✅ İyi | Düşük |
| Nth | ⚠️ Zayıf | ⚠️ Paket bazlı | Düşük |
Failover Ekleme
Load balance yapılandırmasına failover ekle — bir hat düşünce diğerine geçsin:
Netwatch ile Hat İzleme
/tool netwatch
# WAN1 kontrolü — Google DNS'e ping
add host=8.8.8.8 interval=30s timeout=5s \
up-script="
/ip route set [find comment=\"WAN1 GW\"] distance=1
/ip firewall mangle set [find comment=\"PCC: WAN1 grubuna düşen bağlantılar\"] disabled=no
:log info \"WAN1 UP — normal routing\"" \
down-script="
/ip route set [find comment=\"WAN1 GW\"] distance=3
/ip firewall mangle set [find comment=\"PCC: WAN1 grubuna düşen bağlantılar\"] disabled=yes
:log warning \"WAN1 DOWN — WAN2'ye geçildi\""
# WAN2 kontrolü
add host=8.8.4.4 interval=30s timeout=5s \
up-script="
/ip route set [find comment=\"WAN2 GW\"] distance=2
:log info \"WAN2 UP\"" \
down-script="
/ip route set [find comment=\"WAN2 GW\"] distance=4
:log warning \"WAN2 DOWN\""
Dikkat: Netwatch pingi hangi hattan gönderdiğini belirt, aksi halde ikincil hat üzerinden ping atsın diye yanlış hatta ping gönderebilir.
/tool netwatch
set [find host=8.8.8.8] src-address=83.45.12.10 # WAN1 IP'si
set [find host=8.8.4.4] src-address=176.89.21.100 # WAN2 IP'si
DNS Sorunları
DNS Leak
Bir hat üzerinden trafik gönderilirken DNS sorgusu diğer hattan gidebilir. Çözüm: her hat için ayrı DNS:
/ip dns
set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes
# Veya ISP DNS'lerini kullan:
# WAN1 ISP: 212.156.24.200
# WAN2 ISP: 88.255.5.5
Sticky Connection (Bankalar, E-devlet)
Bazı siteler kaynak IP’nin değişmesini engeller. Çözüm: bu sitelerin IP’leri için her zaman aynı hattı kullan:
/ip firewall address-list
add address=204.152.184.0/23 list=sticky-wan1 comment="Visa/Mastercard"
add address=193.255.0.0/16 list=sticky-wan1 comment="Türk bankacılık"
/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=route-wan1 \
dst-address-list=sticky-wan1 in-interface=bridge-lan passthrough=no \
comment="Bankacılık — her zaman WAN1"
Test ve Doğrulama
Torch ile Trafik İzleme
# WAN1 üzerindeki gerçek zamanlı trafik
/tool torch interface=ether1
WAN1 ve WAN2’de eşit oranda trafik akıyor mu kontrol et.
Routing Table Kontrolü
/ip route print
# Her iki gateway aktif ve distance değerleri doğru mu?
# Policy route tabloları
/ip route print routing-table=route-wan1
/ip route print routing-table=route-wan2
Hat Kesme Testi
- WAN1 cable’ı çek
- Netwatch log’unu izle:
WAN1 DOWN — WAN2'ye geçildimesajı gelmeli - İnternete erişim devam ediyor mu kontrol et
- Cable’ı geri tak:
WAN1 UP — normal routingmesajı gelmeli - Her iki hat tekrar aktif mi kontrol et
# Log izleme
/log print follow where topics~"netwatch"
Bandwidth Testi
İki hat varken toplam bant genişliği artıyor mu?
# Zabbix veya Torch ile her hattın kullanımını ölç
/tool bandwidth-test address=8.8.8.8 direction=download
Yaygın Hatalar
”Bir hat düşünce tüm bağlantılar kesildi”
Route table temizlenmedi veya mangle kuralları güncellenmedi. Netwatch down-script’i distance’ı yeterince yükseltmeli:
# distance=3 yetmeyebilir, 10 kullan
/ip route set [find comment="WAN1 GW"] distance=10
“VoIP bağlantısı kesildi ama hat çalışıyor”
VoIP oturumu farklı bir hatta marklansa ve o hat düşse, oturum kesilir. Çözüm: VoIP trafiğini her zaman tek bir hata sabitle:
/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=route-wan1 \
protocol=udp dst-port=5060,10000-20000 in-interface=bridge-lan \
comment="VoIP — her zaman WAN1"
“PCC kuralları çalışmıyor”
Mangle kurallarının connection-state=new kontrolü yapıyor olduğunu doğrula. Established bağlantılar farklı chain’den geçmeli:
/ip firewall mangle print
# Established/related kuralları PCC kurallarından önce mi?
Kapasite Hesabı
| Senaryo | Toplam Kapasite | Pratik Not |
|---|---|---|
| Fiber 100 + VDSL 25 | ~125 Mbps | PCC’de dengeli dağılım olmaz |
| 2× Fiber 100 | ~200 Mbps | PCC ile dengeli |
| 2× Fiber 100 + failover | 200 Mbps, yedekli | Optimal kurulum |
İki farklı hız hattında PCC, yavaş hattı daha az kullanacak şekilde ayarlanabilir:
# 75/25 dağıtım: WAN1 3 birim, WAN2 1 birim
# per-connection-classifier=both-addresses:4/0 → WAN1 (0,1,2)
# per-connection-classifier=both-addresses:4/3 → WAN2 (3)
Pratik ipucu: Load balancing konfigürasyonu canlı ağda test etmeden önce lab ortamında dene. Kural sırası yanlışsa tüm internet erişimini kesmek mümkün. Safe mode açarak çalış veya console erişimini açık tut.
Kaynaklar
- PCC (Per Connection Classifier) bağlantıları belirli bir WAN'a sabitler — MikroTik RouterOS Documentation — PCC (2025)
- İnternet kesintisinin KOBİ'lere saatlik maliyeti ortalama 8.000-74.000 dolar — Gartner Downtime Cost Analysis (2023)
- Dual-WAN failover ile plansız kesinti süreleri %95 azaltılabilir — Fortinet SD-WAN Report (2024)
Sıkça Sorulan Sorular
MikroTik'te load balancing ile failover aynı anda kullanılabilir mi? +
Evet. PCC + Netwatch kombinasyonu bunu sağlar. Normal çalışmada iki hat arası trafik dağıtılır. Bir hat düşünce Netwatch tetiklenir, mangle ve route kuralları güncellenir, tüm trafik çalışan hata geçer.
PCC mi ECMP mi seçmeli? +
PCC her bağlantıyı belirli bir hatta 'yapıştırır' — aynı oturum süresince aynı hat kullanır. ECMP round-robin yapar, oturumlar farklı hatlara dağılabilir (bankaların güvenlik sistemleriyle sorun çıkarabilir). Genel kullanım için PCC daha güvenli.
Asimetrik routing neden sorun yaratır? +
İstek bir hattan gidip cevap başka hattan gelirse firewall connection tracking'i bozabilir ve bağlantı kesilir. PCC bu sorunu önler — aynı oturumun gidişi ve dönüşü aynı hattan geçer.
İki hattı aynı anda kullanmak ISP sözleşmesine aykırı mı? +
Genel olarak değil — iki farklı ISP'den hat alıyorsun ve her birini kendi trafiği için kullanıyorsun. Ama bazı ISP'lerin sözleşmelerinde NAT veya bağlantı paylaşımı kısıtlamaları olabilir. Kontrol etmek iyi pratik.
Profesyonel Destek mi Lazım?
Bu konuda yardıma ihtiyacın varsa yanındayız. Kurulum, konfigürasyon ve sorun giderme için ulaş.