Баланс на натоварването между два гейтуейа с Mikrotik
Има няколко условя:
- да използвате Mikrotik;
- да имате два интернет доставчика.
Идеята на разпределението на натоварването между два гейтуейа е да разпределяме натоварването, така че да преминават през различни мрежи и по този начин да дадем на потребителите максимална скорост и възможност да ползват Интернет на воля ... Да предложим на потребителите на спокойствие и да ги оставим да мислет за работа, а не колко бавно се зарежда търсенето им в google.com
Е ако някой има желание, то винаги може да си тества системата за да види как работи и да разполага сам с един интернет доставчик, т.е предложен ми е един гейтуей... просто трябва да намери/направи друг ...
Картинката изглежда по следния начин:

Добавяме необходимите IP адреси (по един на всеки от интерфейсите на машината ни):
ip address - отиваме в съответната секция
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=ether1 comment="" disabled=no
add address=10.22.35.15/24 network=10.22.35.0 broadcast=10.22.35.255 interface=ether2 comment="" disabled=no
add address=80.70.20.39/9 network=80.0.0.0 broadcast=80.127.255.255 interface=ether3 comment="" disabled=no
192.168.0.1 е за локалната ни мрежа, 10.22.35.15, 80.70.20.39 са IP адреси на двата мрежови интерфейса, които се свързват към съответния гейтуей.
ip firewall mangle - отиваме в съответната секция
add chain=prerouting in-interface=ether1 connection-state=new nth=1 action=mark-connection new-connection-mark=odd passthrough=yes comment="" disabled=no
Чрез горното правило взимаме всеки втори пакет, които отваря нова сесия и го маркираме с маркера за връзка "odd". Поради тази проичина всички всички пакети принадлежащи на тази сесия, ще носят същия маркер. След това чрез passthrough=yes пропускаме пакетите към следващото правило.
add chain=prerouting in-interface=ether1 connection-mark=odd action=mark-routing new-routing-mark=odd passthrough=no comment="" disabled=no
Чрез горното правило, маркираме всички пакети, които са на "odd" връзката с рутинг маркера "odd". Чрез passthrough=no прекратяваме други подобни операции във веригата.
Следващите две правила правят същото със останалата част от трафика.
add chain=prerouting in-interface=ether1 connection-state=new nth=1 action=mark-connection new-connection-mark=even passthrough=yes comment="" disabled=no
add chain=prerouting in-interface=ether1 connection-mark=even action=mark-routing new-routing-mark=even passthrough=no comment="" disabled=no
"odd" трафикът се натва към 10.22.35.15, а останания - "even", към 80.70.20.39
ip firewall nat
add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.22.35.15 to-ports=0-65535 comment="" disabled=no
add chain=srcnat connection-mark=even action=src-nat to-addresses=80.70.20.39 to-ports=0-65535 comment="" disabled=no
И правилата за рутиране:
- за "odd" трафика използваме гейтуей 10.22.35.16
- за "even" - 80.70.20.40
- трафика за самия рутер - през 80.70.20.40
ip route
add dst-address=0.0.0.0/0 gateway=10.22.35.16 scope=255 target-scope=10 routing-mark=odd comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=80.70.20.40 scope=255 target-scope=10 routing-mark=even comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=80.70.20.40 scope=255 target-scope=10 comment="" disabled=no
14.11.2007. 23:54
Добри на 19.07.2008. 20:11
Схемата е същата.
Просто за едини интерфейс не задавате статично IP, а пускате DHCP клиента за да си взима по DHCP.
Аз в момента използвам същото - един статичен IP адрес и един динамичен.
Надявам се да се ориентирате.
Само внимавайте с улавянето на трафика. При версия 3 "улавянето на половината трафик" nth се задава по различен начин.
Ако изпратите един мейл мисля че мога да ви изпратя цялата конфигурация.
Възможно ли е да посочите как ще изглежда горната картинка с два Интернет доставчика - като единият е: БТК АДСЛ с динамичен адрес и втория: друг доставчик със статичен IP адрес. Как би се променило конфигурирането на рутера? Благодаря Ви предварително.
Добри на 31.01.2008. 18:24
По този начин - http://wiki.mikrotik.com/wiki/Load_Balancing_Persistent
(с постоянни сесии - пакетите на всеки потребител се маркират и пропускат само през единя GW) и съчетаването му с този: http://wiki.mikrotik.com/wiki/Two_gateways_failover_with_load_balancing (при отказ на едиян GW всичко се пренасочва към другия - проверката е с ping, мисля чe бешче ако 2 pingа през 5s. са неуспешни всичко се прехвърля през другия GW).
Това реши всички проблеми и сега няма оплаквания и почти никакъв downtime.
p.s поставих и трафик шейпър и така връзката е отлична през цялото време.
Инел Чука на 30.01.2008. 21:41
Здравейте , приложих това http://wiki.mikrotik.com/wiki/Load_Balancing.
Забелязах същия проблем . Ако може да помогнете с баланса . Как по точно го постигнахте .
Благодаря ви предварително .
Добри на 19.01.2008. 17:15
За съжаление обаче опита показа, че този начин на баланс, т.к причинява проблеми при връзката към някои уеб сайтове, използващи сесии и високо ниво на сигурност.Това е така, т.к клиентските машини зад рутера в един момент се виждат през едно IP, а в друг - през другото.Макар че се постига максимална скорост при използване на връзката на двата доставчика, то горния проблем е доса сериозен. За това използвам баланс с посточнни сесии, при който пакетите от дадено src IP се маркиерат и пропускат само през единия GW.+алгоритъм за отказоустойчивост на някой от GW, то всичо е наред без прекъсване. До момента нямам забележки към новия метод. Uptime 15 d.
Предишна статия: Да направиш нещо, което да помага
Следваща статия: Windows XP SP3
Напиши коментар
* = задължителни полета