[教程]ubuntu server 10.4下LVS-DR实验

in 系统架构

目标:负载均衡器LVS(ip为:192.168.3.10,虚拟IP为:192.168.3.100),实机两台分别为rs2(ip为:192.168.3.20),rs3(ip为192.168.3.30),这三台机器都安装一块网块,实机上安装apache。在一客户端cs(ip为:192.168.3.1)上访问http://192.168.3.100,会轮流访问两台实机,则实验成功。

对于虚拟IP的机器,没有必要安装其它软件的,只需要安装ipvsadm 个就可以了,而对于Real Server来说,由于要访问网页,所以需要安装apache的,注意配置中的端口信息,硬件和软件配置最好一样.

1. 配置LVS机器:
在ubuntu server 10.4 默认安装是没有安装ipvsadm软件包的,在网上看了很多教程,都要编辑内核,但现在2.6.32内核已经不需要再编辑了。
#sudo apt-get install ipvsadm
会提示 please run dpkg –reconfigure ipvsadm
#sudo dpkg–reconfigure ipvsadm (dpkg与-reconfigure是连到一起中间没空格)

#sudo ifconfig eth0:0 192.168.3.100 netmask 255.255.255.255 broadcast 192.168.3.100
#sudo route add –host 192.168.3.100 dev eth0:0
#sudo ipvsadm –A –t 192.168.3.100:80 –s rr
#sudo ipvsadm –a –t 192.168.3.100:80 –r 192.168.3.20 –g
#sudo ipvsadm –a –t 192.168.3.100:80  -r 192.168.3.30 –g
#sudo ipvsadm –save
*:这里rr表示ipvsadm的8种算法中的轮询,做实验选这个算法,效果比较明显。
eth0:0 中后面的0表示第一个ip,一个网卡可以绑定多个ip,从0开始,依次类推 eth0:1,eth0:2...
-g 就是lvs的三种模式中的LVS-DR模式。
-i 就是遂道LVS-TUN.
为什么eth0:0的broadcast就是它的IP,因为他的netmask为/32.(the VIP is a /32 addr, so the brd addr is the VIP, not x.x.x.255.)
对于ifconfig这个命令不熟悉的话,可以参考:http://blog.haohtml.com/index.php/archives/4545
修改/etc/sysctl.conf

net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=1
net.ipv4.conf.default.send_redirects=1
net.ipv4.conf.eth0.send_redirects=1
#sudo sysctl -p
2. 配置实机rs2,rs3为如下

#sudo ifconfig lo:0 192.168.3.100 netmask 255.255.255.255 broadcast 192.168.3.100
#sudo route add –host 192.168.3.100 dev lo:0
修改/etc/sysctl.conf
net.ipv4.ip_forward=0
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
#sudo sysctl –p
把rs2,rs3的/var/www下的index.html的内容修改为“this is rs2”,”this is rs3”,当访问时区别访问的是那台机器,查看实验是否成功(如果没有安装apache,安装教程请参考这里:http://blog.haohtml.com/index.php/archives/4522)。
在实验过程中:刚开始没有修改实机rs2,rs3下的/etc/sysctl.conf,在访问http://192.168.3.100时,有时能轮流的访问rs2,rs3,有时不能,修改后,发现效果很好,达到实验目标。为什么要修改可以参考以下http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.arp_problem.html的内容,专门讲解了关于LVS的 ARP ,也有专门讲解了在LVS-DR模式中ARP问题及如何去解决ARP问题,也有arp_ingnore,arp_announce具体的意思。要想深入学习LVS,必须要看这个LVS-HOWTO
以下这个博客也很好的讲解了LVS,可以参考。
*:
用firefox浏览器,在地址栏中输入:about:config,找到network.http.keep-alive 把值修改为false,利于查看实验结果。 我测试的时候发现每刷新两次ip会更换一次,对于配置信息暂时还不明白,所以也不清楚是怎么回事了,有兴趣的可以试一下了.

本文出自 “匠人” 博客,请务必保留此出处http://xuchengji.blog.51cto.com/160472/326059

0 Comments