hiddenboy
10-04-2008, 08:15 PM
یک سناریو معمول برای load balancing پهنای باند همانند شکل زیر است
http://www.pnu-club.com/imported/2008/10/5.png
دراینجا ما دو تامین کننده پهنای باند داریم که هدفمون این هست تا ترافیک رو بین این دو تقسیم کنیم.
اولین مرحله جداسازی دسترسی ها (Split access) میباشد :
موضوع قابل توجه در این مرحله چگونگی جواب دادن به مسیر میباشد بطوریکه ترافیکی وارد شده از طرف یک تامین کننده پهنای باند نهایتا از همان هم خارج شود.
ابتدا دو جدول جدید بنام های T1 و T2 ایجاد میکنیم.این جدول ها در فایل etc/iproute2/rt_tables/ ساخته میشوند :
Echo 300 T1 >> /etc/iproute2/rt_tables
Echo 400 T2 >> /etc/iproute2/rt_tables
حال مسیرها رو به طریق زیر ایجاد میکنیم :
Ip route add 192.168.0.0 dev eth0 src 192.168.0.2 table T1
Ip route add default via 192.168.0.1 table T1
Ip route add 192.168.1.0 dev eth1 src 192.168.1.2 table T1
Ip route add default via 192.168.1.1 table T1
همه چیز همانند وقتی است که یک تامین کننده داریم با این تفاوت که مسیرهایی که برای gatewayها میسازیم باید در جدول های جدا از هم باشند.
یک کار خوب توی این مرحله مسیردهی ترافیک برای شبکه همسایه از طریق اینترفیسی است که به اون متصل هست.(مثلا زمانیکه شما میخواین از سایت یکی از تامین کننده ها استفاده کنید.)
Ip route add 192.168.0.0 dev eth0 src 192.168.0.2
Ip route add 192.168.1.0 dev eth1 src 192.168.1.2
الان دیگه باید رول های مسریابی رو ایجاد کنیم (فکرمی کنید این رول ها چکاری انجام میدن؟*) :
Ip rule add from 192.168.0.2 table T1
Ip rule add from 192.168.1.2 table T2
*.اگر یادتان باشد گفتیم مهمتر مسئله این است که ترافیک وارد شده از یک تامین کننده از همان هم خارج شود, دستورات بالا این امر را ممکن میسازد.
رسیدیم به جای اصلی و باحال قضیه که Load balancing باشه:
Ip route add default scope global nexthop via 192.168.0.1 dev eth0 weight 1 nexthop via 192.168.1.1 dev eth1 weight 1
این دستور ترافیک رو بین تامین کننده تقسیم میکند و از آنجایی که weight هر دو 1 میباشد پس ترافیک برابری از هر دو خارج میشود.
پارامتر weight باعث میشود تا یکی از تامین کننده ها بر دیگری برتری پیدا کند.
نکته مهم :
توجه داشته باشید که بالانس کردن هم چندان بدون نقص نیست چونکه بر اساس مسیر میباشد و مسیر ها هم کش میشوند.بدین معنی که مسیر به سایتهایی که اغلب مود استفاده قرار میگیرند همیشه از طریق یک تامین کننده که اولین بار مسیردهی از طریق آن انجام گرفته صورت میپذیرد.(این مشکل بسادگی قابل حل میباشد, بنظر شما راه حل چیست؟:))
منبع :
http://lartc.org/howto/lartc.rpdb.multiple-links.html
& Persianadmin
(javascript:history.go(-1))
http://www.pnu-club.com/imported/2008/10/5.png
دراینجا ما دو تامین کننده پهنای باند داریم که هدفمون این هست تا ترافیک رو بین این دو تقسیم کنیم.
اولین مرحله جداسازی دسترسی ها (Split access) میباشد :
موضوع قابل توجه در این مرحله چگونگی جواب دادن به مسیر میباشد بطوریکه ترافیکی وارد شده از طرف یک تامین کننده پهنای باند نهایتا از همان هم خارج شود.
ابتدا دو جدول جدید بنام های T1 و T2 ایجاد میکنیم.این جدول ها در فایل etc/iproute2/rt_tables/ ساخته میشوند :
Echo 300 T1 >> /etc/iproute2/rt_tables
Echo 400 T2 >> /etc/iproute2/rt_tables
حال مسیرها رو به طریق زیر ایجاد میکنیم :
Ip route add 192.168.0.0 dev eth0 src 192.168.0.2 table T1
Ip route add default via 192.168.0.1 table T1
Ip route add 192.168.1.0 dev eth1 src 192.168.1.2 table T1
Ip route add default via 192.168.1.1 table T1
همه چیز همانند وقتی است که یک تامین کننده داریم با این تفاوت که مسیرهایی که برای gatewayها میسازیم باید در جدول های جدا از هم باشند.
یک کار خوب توی این مرحله مسیردهی ترافیک برای شبکه همسایه از طریق اینترفیسی است که به اون متصل هست.(مثلا زمانیکه شما میخواین از سایت یکی از تامین کننده ها استفاده کنید.)
Ip route add 192.168.0.0 dev eth0 src 192.168.0.2
Ip route add 192.168.1.0 dev eth1 src 192.168.1.2
الان دیگه باید رول های مسریابی رو ایجاد کنیم (فکرمی کنید این رول ها چکاری انجام میدن؟*) :
Ip rule add from 192.168.0.2 table T1
Ip rule add from 192.168.1.2 table T2
*.اگر یادتان باشد گفتیم مهمتر مسئله این است که ترافیک وارد شده از یک تامین کننده از همان هم خارج شود, دستورات بالا این امر را ممکن میسازد.
رسیدیم به جای اصلی و باحال قضیه که Load balancing باشه:
Ip route add default scope global nexthop via 192.168.0.1 dev eth0 weight 1 nexthop via 192.168.1.1 dev eth1 weight 1
این دستور ترافیک رو بین تامین کننده تقسیم میکند و از آنجایی که weight هر دو 1 میباشد پس ترافیک برابری از هر دو خارج میشود.
پارامتر weight باعث میشود تا یکی از تامین کننده ها بر دیگری برتری پیدا کند.
نکته مهم :
توجه داشته باشید که بالانس کردن هم چندان بدون نقص نیست چونکه بر اساس مسیر میباشد و مسیر ها هم کش میشوند.بدین معنی که مسیر به سایتهایی که اغلب مود استفاده قرار میگیرند همیشه از طریق یک تامین کننده که اولین بار مسیردهی از طریق آن انجام گرفته صورت میپذیرد.(این مشکل بسادگی قابل حل میباشد, بنظر شما راه حل چیست؟:))
منبع :
http://lartc.org/howto/lartc.rpdb.multiple-links.html
& Persianadmin
(javascript:history.go(-1))