前期准备:
两台服务器 note01(lvs服务器) note02(real sever)
1 首先在note01配置子网卡:
ifconfig eth0:2 192.168.64.100/24
:2意思是eth0的子接口,随便一个数字就可以,/24意为 255.255.255.0的另一种写法 也可以写成netmask 255.255.255.0
2 配置note01 转发方式:
echo 1 > /proc/sys/net/ipv4/ip_forward
默认为0 意思为如果没有对应请求的IP,会将数据包丢弃,1为不会丢弃,而是通过路由来去转发请求。
3 配置note02(real sever) 的响应,通告级别,禁止响应对VIP的ARP广播请求
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
4 配置note02 的环回IP:
ifconfig lo:5 192.168.64.100 netmask 255.255.255.255
注意,这里:5与上边一样,可以随便写,但是后边必须写成netmask 255.255.255.255
这里为什么是4个255? 因为网关192.168.64.0 是通过IP和 这个掩码进行云算计算出来的,如果这里也写成3个255,就会出现两个192.168.64.0,而lo环回接口要比eth0接口更为接近os内核,所以请求不会返回,而是直接进入环回接口,所以客户端可以发送请求,但是不会收到响应。
第3 4 步顺序一定一定一定不能颠倒,否则还没有配置好接口就已经通告出去了,就不会起作用。
5 为了检验lvs,我使用httpd服务进行一个简单验证,真实情况肯定就是在realsever上开启项目啦!
在note02 上执行
yum install httpd -y
安装httpd服务
进入目录/var/www/html
cd /var/www/html vi index.html
在index.html中写入from 192.168.64.134(note02的真实IP)进行验证
执行命令
service httpd start
客户端验证:rip:80 可以正常显示
vip:80不能正常显示
6
配置lvs vip note01
yum install ipvsadm -y
ipvsadm -A -t 192.168.64.100:80 -s rr
// rr为轮询机制 如果配置多台realsever 则请求平均分配 -t 基于tcp协议
ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.134 -g
//-g :dr 模型 -t基于tcp协议
ipvsadm -ln
7
浏览器刷新,访问vip:
ipvsadm -lnc
//查看note01 会有很多记录 (偷窥)
netstat -natp
//查看note01 没有记录 (说明请求直接跳过lvs 之后客户端会直接与realserver建立连接)
如果能正常访问 则说明配置lvs成功,其实lvs就相当于一个路由的功能