banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Cấu hình Load balancing và Bandwith Manager trên Centos  XML
  [Question]   Cấu hình Load balancing và Bandwith Manager trên Centos 11/08/2011 08:09:24 (+0700) | #1 | 244891
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
-Hiện tại công ty có nhu cầu load balancing và quản lý băng thông trên nền centos cho 2 đường line thuộc 2 ISP khác nhau. Em muốn các anh nào đã có kinh nghiệm, xin hãy chia sẽ cho em.
-Chú ý: Không sử dụng giải pháp phần cứng, chỉ sử dụng giải pháp phần mềm.
Em cảm ơn!
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Cấu hình Load balancing và Bandwith Manager trên Centos 11/08/2011 12:29:35 (+0700) | #2 | 244896
phuongnvt
Member

[Minus]    0    [Plus]
Joined: 09/02/2011 03:35:39
Messages: 332
Offline
[Profile] [PM]
- bạn định làm LB cho đường truyền hay cho dịch vụ vậy ?

- nếu bạn dự định làm LB cho đường truyền thì mình khuyên bạn nên chọn giải pháp LB trên thiết bị phần cứng đi.Mình nghĩ bạn đang lo lắng về giá của thiết bị LB, nếu đúng như vậy thì mình nghĩ bạn nên yên tâm đi.Hiện nay các nhà sản xuất thường hướng tới các doanh nghiệp vừa và nhỏ (SMB) nhiều hơn nên giá của các thiết bị LB cũng khá mềm,ví dụ như dòng draytek (draytek 2950,3300......),dòng planet,dòng peplink ......đa số các dòng này thường được các doanh nghiệp tại việt nam chọn rất nhiều,độ ổn định cũng rất cao nữa.

- cty bạn có bao nhiêu user vậy ? đang chạy những dịch vụ nào ?
Nhiều người nhận được lời khuyên, song chỉ có những người khôn mới sử dụng lời khuyên đó


[Up] [Print Copy]
  [Question]   Cấu hình Load balancing và Bandwith Manager trên Centos 11/08/2011 20:23:46 (+0700) | #3 | 244931
myquartz
Member

[Minus]    0    [Plus]
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
[Profile] [PM]
Người xài CentOS hiếm có khó tìm, nên mình share ở đây cho riêng người dùng ... CentOS.

Mấy cái script sau đây có tác dụng tạo ra bảng định tuyến được load balance tại 1 Internet Gateway chạy CentOS 5.6, với giả định rằng các kênh Internet là pppoe phổ biến tại VN. Cái này đã chạy thực tế và nói chung khá ... ổn. 10.0.0.0/8 là subnet của bạn (thay bằng IP nào tuỳ bạn). Chú ý các dấu nháy xuôi ' và ngược ` nhé. Các file script đều phải có quyền execute.

Một lưu ý nữa là trong các file ifcfg-pppx, phải đặt tham số DEFROUTE=no. Nếu không nó phá hỏng bảng định tuyến cân bằng tải.

Các file /etc/ppp/ppp0-weight.conf, /etc/ppp/ppp1-weight.conf ... chứa nội dung:
Code:
WEIGHT=2

Đây chính là "trọng lượng" của các kênh pppx (mặc định = 1 nếu ko có file định nghĩa), càng to thì càng được dồn lưu lượng nhiều. Việc NAT không nằm trong các script, bạn phải tự config.

cat /etc/ppp/ip-up.local
Code:
#!/bin/sh

#echo "Starting up pppd $1 $2 $3 $4 $5 $6"
table=`/usr/bin/perl -e '\$ARGV[0] =~ /ppp(\d)/ and print \$1+200' $1`

/sbin/ip route add 0.0.0.0/0 table $table dev $1
/sbin/ip rule add from $4 table $table
/sbin/ip rule add from $4 to 10.0.0.0/8 table main

exec /etc/ppp/ip-lb-up.local $1


cat /etc/ppp/ip-lb-up.local
Code:
#!/bin/sh

echo "Starting up load balancing for $1." >> /var/log/ppp.local.log
#get weight for this connection.
if [ -e "/etc/ppp/$1-weight.conf" ] ; then
	. /etc/ppp/$1-weight.conf
else
	WEIGHT=1
fi
#Get current list of default route.
DEFRT=`ip route list match 0/0`

echo "Current default routes:" >> /var/log/ppp.local.log
echo $DEFRT >> /var/log/ppp.local.log

#No default route, add it.
if [ "$DEFRT" == "" ] ; then
	ip route add default dev $1
	echo "weight $WEIGHT" > /etc/ppp/default-weight
	exit;
fi

#Check if the dev is in route?
echo "$DEFRT" | grep $1
if [ $? == 0 ] ; then
	echo "$1 is in route already" >> /var/log/ppp.local.log
	exit;
fi

#Check if the default route is multiple already
echo "$DEFRT" | grep 'nexthop'
if [ $? == 1 ] ; then
	OLDWEIGHT=`cat /etc/ppp/default-weight`
	DEFRT=`echo "$DEFRT" | sed 's/default/default nexthop/'`
	DEFRT="$DEFRT $OLDWEIGHT"
fi

#remove invalid options
DEFRT=`echo "$DEFRT" | sed 's/\n//g' | sed 's/proto static//g' | sed 's/scope link//g'`

ip route replace $DEFRT nexthop dev $1 weight $WEIGHT 2>> /var/log/ppp.local.log

#Save default route for restore later.
ip route list match 0/0 > /etc/ppp/default-lb-routes

echo "Done." >> /var/log/ppp.local.log



cat /etc/ppp/ip-down.local
Code:
#!/bin/sh

#echo "Shutting down pppd $1 $2 $3 $4 $5 $6"
table=`/usr/bin/perl -e '\$ARGV[0] =~ /ppp(\d)/ and print \$1+200' $1`

/sbin/ip route del 0.0.0.0/0 table $table dev $1
/sbin/ip rule del from $4 table $table
/sbin/ip rule del from $4 to 10.0.0.0/8 table main

exec /etc/ppp/ip-lb-down.local $1


cat /etc/ppp/ip-lb-down.local
Code:
#!/bin/sh

echo "Stopping load balancing for $1." >> /var/log/ppp.local.log
echo "LB-Routes:" >> /var/log/ppp.local.log
cat /etc/ppp/default-lb-routes >> /var/log/ppp.local.log

#Save default route for restore later.
grep -v "$1" /etc/ppp/default-lb-routes > /tmp/routes
DEFRT=`cat /tmp/routes`
cp -f /tmp/routes /etc/ppp/default-lb-routes

echo "Removed LB-Routes:" >> /var/log/ppp.local.log
echo $DEFRT >> /var/log/ppp.local.log

#No default route, remove the file.
if [ "$DEFRT" == "" ] ; then
	echo "No entry in default-lb-routes"
	rm -f /etc/ppp/default-lb-routes
	exit;
fi

#remove invalid options
DEFRT=`echo "$DEFRT" | sed 's/\n//g' | sed 's/proto static//g' | sed 's/scope link//g'`

if [ "$DEFRT" != "" ] ; then
	#Re-add the routes.
	#ip route del default
	ip route replace $DEFRT 2>> /var/log/ppp.local.log
fi

echo "Stop done." >> /var/log/ppp.local.log
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|