Mikrotik 4 WAN Load Balancing using PCC method


در این مثال از یک روتربرد RB750 استفاده شده که چهار پورت آن به چهار مودم DSL و پورت پنجم به شبکه محلی متصل شده. خطوط DSL دارای سرعت‌های نابرابر هستند.
بر اساس تجربیات شخصی، اگر درخواست‌های کاربران توسط یک روتربرد کانفیگ شده بر اساس PCC مدیریت شود،یک “توازن بار” خوب خواهیم داشت.
با استفاده از “ src-address as classifier” دیگر خبری از مشکلاتی مانند لینک های شکسته شده، مشکلات استریمینگ و HTTPS و موارد مشابه نخواهد بود.
وقتی تعداد کانکشن های ایجاد شده از طرف کاربران بیشتر و بیشتر شود، توازن بار با استفاده از تکنیک PCC بسیار موثر خواهد بود.
پیشنهاد می‌شود برای بهبود زمان پاسخگویی و تجربه وبگردی بهتر از پروکسی سرور اسکوئید استفاده کنید.

می‌توانید به جای گزینه src-address از
both addresses and ports
استفاده کنید. در تئوری این عمل باعث بهبود پهنای باند می‌شود ولی این امکان وجود خواهد داشت که برخی از سایت‌های بانکی و انجمن های اینترنتی دچار مشکل شوند.
این امر به این دلیل اتفاق می‌افتد که یک درخواست HTTP تعداد زیادی کانکشن ایجاد می‌کند و این همه‌ی کانکشن‌ها از یکGateway عبور نخواهند کرد و بین Gateway های موجود پخش خواهند شد و این باعث شکسته شدن ارتباط با سایت‌های HTTPS خواهد شد.

/ip address

add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local

add address=192.168.1.2/24 network=192.168.1.0 broadcast=192.168.1.255 interface=WAN1

add address=192.168.2.2/24 network=192.168.2.0 broadcast=192.168.2.255 interface=WAN2

add address=192.168.3.2/24 network=192.168.3.0 broadcast=192.168.3.255 interface=WAN3

add address=192.168.4.2/24 network=192.168.4.0 broadcast=192.168.4.255 interface=WAN4
 

/ip firewall mangle

add chain=input in-interface=WAN1 action=mark-connection new-connection-mark=WAN1_conn

add chain=input in-interface=WAN2 action=mark-connection new-connection-mark=WAN2_conn

add chain=input in-interface=WAN3 action=mark-connection new-connection-mark=WAN3_conn

add chain=input in-interface=WAN4 action=mark-connection new-connection-mark=WAN4_conn

add chain=output connection-mark=WAN1_conn action=mark-routing new-routing-mark=to_WAN1

add chain=output connection-mark=WAN2_conn action=mark-routing new-routing-mark=to_WAN2

add chain=output connection-mark=WAN3_conn action=mark-routing new-routing-mark=to_WAN3

add chain=output connection-mark=WAN4_conn action=mark-routing new-routing-mark=to_WAN4

add chain=prerouting dst-address=192.168.1.0/24 action=accept in-interface=Local

add chain=prerouting dst-address=192.168.2.0/24 action=accept in-interface=Local

add chain=prerouting dst-address=192.168.3.0/24 action=accept in-interface=Local

add chain=prerouting dst-address=192.168.4.0/24 action=accept in-interface=Local

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/2 action=mark-connection new-connection-mark=WAN3_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/3 action=mark-connection new-connection-mark=WAN4_conn passthrough=yes

add chain=prerouting connection-mark=WAN1_conn in-interface=Local action=mark-routing new-routing-mark=to_WAN1

add chain=prerouting connection-mark=WAN2_conn in-interface=Local action=mark-routing new-routing-mark=to_WAN2

add chain=prerouting connection-mark=WAN3_conn in-interface=Local action=mark-routing new-routing-mark=to_WAN3

add chain=prerouting connection-mark=WAN4_conn in-interface=Local action=mark-routing new-routing-mark=to_WAN4
 

/ip route

add dst-address=0.0.0.0/0 gateway=192.168.1.1 routing-mark=to_WAN1 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-mark=to_WAN2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.3.1 routing-mark=to_WAN3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.4.1 routing-mark=to_WAN4 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.2.1 distance=2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.3.1 distance=3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=192.168.4.1 distance=4 check-gateway=ping

/ip firewall nat

add chain=srcnat out-interface=WAN1 action=masquerade

add chain=srcnat out-interface=WAN2 action=masquerade

add chain=srcnat out-interface=WAN3 action=masquerade

add chain=srcnat out-interface=WAN4 action=masquerade

Now Configure DNS server so users can resolve hostnames:

/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=5000KiB max-udp-packet-size=512 servers=221.132.112.8,8.8.8.8

PCC با لینک های با سرعت‌های نابرابر:

اگر شما لینک‌های ورودی نابرابر دارید، مثلا اگر لینک‌های ۱ و ۲ و ۳ سرعتی برابر ۴ مگابیت باشند و لینک چهارم ۸ مگابیت باشد، و شما بخواهید روتر را مجبور کنید از به دلیل سرعت بیشتر لینک چهارم، از آن بیشتر استفاده کند، باید رول های بیشتری بنویسید.
برای لینک‌ چهارم دوتا مارک در منگل تعریف کنید.به طور مثال:

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/2 action=mark-connection new-connection-mark=WAN3_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/3 action=mark-connection new-connection-mark=WAN4_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/4 action=mark-connection new-connection-mark=WAN4_conn passthrough=yes

 

PCC با Gateway های یکسان:

قسمت زیر را :

/ip route

 add dst-address=0.0.0.0/0 gateway=1.2.3.4 routing-mark=to_wan-ISP1 check-gateway=ping

 add dst-address=0.0.0.0/0 gateway=1.2.3.4 routing-mark=to_wan-ISP2 check-gateway=ping

با این تعویض کنید:

/ip route

 add dst-address=0.0.0.0/0 gateway=1.2.3.4%eth1-ISP routing-mark=to_wan-ISP1 check-gateway=ping

 add dst-address=0.0.0.0/0 gateway=1.2.3.4%eth2-ISP routing-mark=to_wan-ISP2 check-gateway=ping

 

نتایج عملی به دست آمده:


 


 

 

 


 


 

منبع: http://aacable.wordpress.com