1.实验背景:
公网客户端 | lvs调度器 | RS1 | RS2 |
---|---|---|---|
VMnet1:10.10.10.100 | VMnet1:10.10.10.11 | VMnet2:192.168.66.12 | VMnet2:192.168.66.13 |
– | VMnet2:192.168.66.11 | 网关:192.168.66.11 | 网关:192.168.66.11 |
2.设置四台机器IP、网关:
①公网客户端设置IP:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
▲修改以下信息:
IPADDR=10.10.10.100 #修改IP
ONBOOT=yes #设置开机自启
NETMASK=255.255.255.0 #设置子网掩码
BOOTPROTO=static #设置地址类型为static
# service network restart
②lvs调度器设置IP:
⑴第一张网卡:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
▲修改以下信息:
IPADDR=10.10.10.11 #修改IP
ONBOOT=yes #设置开机自启
NETMASK=255.255.255.0 #设置子网掩码
BOOTPROTO=static #设置地址类型为static
# service network restart
⑵第二张网卡:
# cp -a /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
# vim /etc/sysconfig/network-scripts/ifcfg-eth1
▲修改以下信息:
DEVICE=eth1 #修改网卡名
IPADDR=192.168.66.11 #修改IP
ONBOOT=yes #设置开机自启
NETMASK=255.255.255.0 #设置子网掩码
BOOTPROTO=static #设置地址类型为static
HWADDR= #删除MAC地址和UUID
UUID=
# service network restart
⑶RS1设置IP和网关:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
▲修改以下信息:
IPADDR=192.168.66.12 #修改IP
ONBOOT=yes #设置开机自启
NETMASK=255.255.255.0 #设置子网掩码
BOOTPROTO=static #设置地址类型为static
GATEWAY=192.168.66.11 #添加网关,指向lvs调度器
# service network restart
⑷RS2设置IP和网关:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
▲修改以下信息:
IPADDR=192.168.66.13 #修改IP
ONBOOT=yes #设置开机自启
NETMASK=255.255.255.0 #设置子网掩码
BOOTPROTO=static #设置地址类型为static
GATEWAY=192.168.66.11 #添加网关,指向lvs调度器
# service network restart
3.两台真实服务器均安装apache并启动:
# yum -y install httpd
# service httpd start
# chkconfig httpd on
4.两台真实服务器网页首页写入不同内容:(便于实验观察)
①RS1写入"PAGE 1":
# echo "PAGE 1" >> /var/www/html/index.html #向网页首页文件内写入PAGE 1
# service httpd restart
# curl localhost #访问查看效果
②RS2写入"PAGE 2":
# echo "PAGE 2" >> /var/www/html/index.html #向网页首页文件内写入PAGE 2
# service httpd restart
# curl localhost #访问查看效果
5.lvs调度器设置:
①lvs调度器开启路由转发:
# vim /etc/sysctl.conf #开启路由转发
▲修改以下信息:
net.ipv4.ip_forward = 1 #1代表开启,0代表关闭
# sysctl -p #刷新
②lvs调度器加载ipvs模块:
# modprobe ip_vs #加载ipvs模块
# cat /proc/net/ip_vs #查看进程是否加载成功
③lvs调度器安装ipvsadm管理工具:
# yum -y install ipvsadm
④lvs调度器添加调度策略:
# ipvsadm -A -t 10.10.10.11:80 -s rr
▲若要开启持久化则加-p选项
#添加TCP集群
#-A:添加一个新的集群
#10.10.10.11:80:lvs调度器公网网卡的地址信息
#-s:指定算法
# ipvsadm -a -t 10.10.10.11:80 -r 192.168.66.12:80 -m
#向集群内添加一台真实服务器
#10.10.10.11:80:lvs调度器公网网卡的IP
#-r:指定真实服务器
#192.168.66.12:80:RS1的地址信息
#-m:指NAT模式
# ipvsadm -a -t 10.10.10.11:80 -r 192.168.66.13:80 -m
#向集群内添加一台真实服务器
#10.10.10.11:80:lvs调度器公网网卡的IP
#-r:指定真实服务器
#192.168.66.13:80:RS2的地址信息
#-m:指NAT模式
# ipvsadm -Ln
#查看集群信息
如下图所示:
⑤永久记录调度策略:(此规则记录在内存中,重载会丢失,需要设置永久保存)
# service ipvsadm save #永久保存调度策略
# service ipvsadm restart #重启ipvsadm
# chkconfig ipvsadm on #设置ipvsadm开机自启
⑥lvs调度器开启防火墙并添加防火墙规则:
# service iptables start #开启防火墙
# chkconfig iptables on #设置防火墙开机自启
# iptables -L #查看防火墙现有规则
# iptables -F #清空防火墙现有规则
# iptables -t nat -A POSTROUTING -s 192.168.66.0/24(内网网段) -o eth0(lvs公网网卡名称) -j SNAT --to-source 10.10.10.11(调度器公网地址)
#匹配内网网段,把原地址改为出口地址
# iptables -t nat -L #查看防火墙nat规则
如下图所示:
⑦永久记录防火墙规则:
# service iptables save #永久保存防火墙规则
6.公网客户端测试:
# while 2>1; do curl 10.10.10.11; sleep 1s; done
#当2>1的条件成立时,每间隔1秒访问一次集群
如下图所示:
7.调度器检查当前连接信息:
# ipvsadm -Ln --stats #调度器检查当前连接信息
如下图所示:
1.实验背景:
客户端 | lvs调度器 | RS1 | RS2 |
---|---|---|---|
VMnet2:192.168.66.14 | VMnet2:192.168.66.11 | VMnet2:192.168.66.12 | VMnet2:192.168.66.13 |
– | eth0:0 192.168.66.100(vip) | lo:0 192.168.66.100 | lo:0 192.168.66.100 |
2.所有服务器,若是图形化界面,则需要关闭网卡守护进程:(NetworkManager服务)
# service NetworkManager stop #关闭网卡守护进程
# chkconfig NetworkManager off
3.设置所有真实服务器:
①所有真实服务器均设置回环网卡子接口:
# cd /etc/sysconfig/network-scripts/
# cp -a ifcfg-lo ifcfg-lo:0 #复制得到网卡子接口配置文件
# vim ifcfg-lo:0
▲修改以下信息:
DEVICE=lo:0 #修改设备名
IPADDR=192.168.66.100(虚拟IP) #修改为虚拟IP(vip)
NETMASK=255.255.255.255 #修改掩码,防止与他人通信
②所有真实服务器均修改当前ARP响应公告级别:
# vim /etc/sysctl.conf
▲在结尾处添加以下信息即可:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
# sysctl -p #刷新
③所有真实服务器均开启回环网卡子接口:
# ifup lo:0 #开启网卡子接口
# ifconfig #检查是否启动成功
④所有真实服务器均添加路由记录:
# /sbin/route add -host 192.168.66.100(虚拟IP) dev lo:0
#添加路由记录
# route -n
#查看路由记录是否添加成功
# echo "/sbin/route add -host 192.168.66.100(虚拟IP) dev lo:0" >> /etc/rc.local
#设置为开机自动添加此路由记录
⑤所有真实服务器安装并启动apache:
# yum -y install httpd
# service httpd start
# chkconfig httpd on
⑥两台真实服务器网页首页写入不同内容:(便于实验观察)
⑴RS1写入"PAGE 1":
# echo "PAGE 1" >> /var/www/html/index.html #向网页首页文件内写入PAGE 1
# service httpd restart
# curl localhost #访问查看效果
⑵RS2写入"PAGE 2":
# echo "PAGE 2" >> /var/www/html/index.html #向网页首页文件内写入PAGE 2
# service httpd restart
# curl localhost #访问查看效果
4.设置lvs调度器:
①调度器设置网卡子接口:
# cd /etc/sysconfig/network-scripts/
# cp -a ifcfg-eth0 ifcfg-eth0:0 #复制得到网卡子接口配置文件
# vim ifcfg-eth0:0
▲修改以下信息:
DEVICE=eth0:0 #修改设备名
IPADDR=192.168.66.100(虚拟IP) #修改为虚拟IP(vip)
NETMASK=255.255.255.0 #修改掩码为255.255.255.0
ONBOOT=yes #设置开机自启
BOOTPROTO=static #设置地址类型为static
HWADDR= #删除MAC地址和UUID
UUID=
②调度器开启网卡子接口:
# ifup eth0:0 #启动网卡子接口
# ifconfig #查看是否开启成功
③调度器修改网卡重定向功能:
# vim /etc/sysctl.conf #修改网卡重定向功能
▲在结尾处添加以下信息即可:
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# sysctl -p #刷新
④调度器安装安装ipvsadm管理工具:
# yum -y install ipvsadm
⑤调度器添加调度策略:
# ipvsadm -A -t 192.168.66.100:80(虚拟IP) -s rr
▲若要开启持久化则加-p选项
#添加TCP集群
#-A:添加一个新的集群
#192.168.66.100:80:lvs调度器虚拟IP
#-s:指定算法
# ipvsadm -a -t 192.168.66.100:80(虚拟IP) -r 192.168.66.12:80 -g
#向集群内添加一台真实服务器
#-r:指定真实服务器
#192.168.66.12:80:RS1的地址信息
#-g:指DR模式
# ipvsadm -a -t 192.168.66.100:80(虚拟IP) -r 192.168.66.13:80 -g
#向集群内添加一台真实服务器
#-r:指定真实服务器
#192.168.66.13:80:RS2的地址信息
#-g:指DR模式
# ipvsadm -Ln #查看集群信息
如下图所示:
⑥永久记录调度策略:(此规则记录在内存中,重载会丢失,需要设置永久保存)
# service ipvsadm save #永久保存调度策略
# service ipvsadm restart #重启ipvsadm
# chkconfig ipvsadm on #设置ipvsadm开机自启
5.公网客户端测试:
# while 2>1; do curl 192.168.66.100(虚拟IP); sleep 1s; done
#当2>1的条件成立时,每间隔1秒访问一次集群
6.调度器检查当前连接信息:
# ipvsadm -Ln --stats #调度器检查当前连接信息
如下图所示:
▲此处调度器不负责出站,所以调度器接收出站连接、分配给真实服务器的连接都为0