LVS实验构建
LVS-DR 模式构建
实验架构图
DR模式的特点:
- 集群节点必须在一个网络中
- 真实服务器网关指向路由器
- RIP既可以是私网地址,又可以是公网地址
- 负载调度器只负责入站请求
- 大大减轻负载调度器压力,支持更多的服务器节点
构建过程
负载调度器 Drectory
#关闭网卡守护进程
service NetworkManager stop
chkconfig NetworkManager off
#拷贝eth0网卡子接口充当集群入口接口
cd /etc/sysconfig/network-scripts/
cp -a ifcfg-eth0 ifcfg-eth0:0
vim !$
#删除mac/uuid和网卡类型
DEVICE=eth0:0
IPADDR=10.10.10.100
NETMASK=255.255.255.0
ifup eth0:0 #开启子接口
#关闭网卡重定向功能
vim /etc/sysctl.conf
#添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
sysctl -p #刷新
#重载ipvs模式
modprobe ip_vs
#安装ipvsadm命令行工具
yum -y install ipvsadm
ipvsadm -v #查看当前ipvs集群内容
ipvsadm -A -t 虚拟IP:80 -s rr 添加ipvs TCP集群
ipvsadm -a -t 虚拟IP:80 -r 网站:80 -g #添加ipvsadm集群子节点
# -a 添加节点
# -r 指定真实服务器
# -g 代表的是DR模式
#执行命令:
ipvsadm -A -t 10.10.10.100:80 -s rr #rr轮询算法,
ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.12:80 -g
ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.13:80 -g
[root@011 ~]# ipvsadm -Ln #检查
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.10.100:80 rr
-> 10.10.10.12:80 Route 1 0 0
-> 10.10.10.13:80 Route 1 0 0
#保存ipvs集群内容至文件,进行持久化存储
service ipvsadm save
#设置为开机自启
chkconfig ipvsadm on
真实服务器 RS1 RS2
#关闭网卡守护进程
service NetworkManager stop && chkconfig NetworkManager off
#拷贝环回网卡子接口
cp -a ifcfg-lo ifcfg-lo:0
vim !$
DEVICE=lo:0
IPADDR=10.10.10.100
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 #刷新
#开启环回网卡子接口
ipup lo:0
#添加路由记录,当访问虚拟iP(vip)时交给lo:0网卡
route add -host 10.10.10.100 dev lo:0
#新建html测试页面,实验中使用不同的页面,生产环境应是相同网页
echo "this is server 1" >> /var/www/html/index.html
echo "this is server 2" >> /var/www/html/index.html
#开启httpd服务
service httpd start
验证
浏览器访问负载调度器的eth0子接口eth0:0 的IP时,负载调度器使用轮询算法,将访问的页面负载到RS1和RS2上
[root@011 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 10.10.10.100:80 20 104 0 9645 0
-> 10.10.10.12:80 10 51 0 4690 0
-> 10.10.10.13:80 10 53 0 4955 0
LVS-NAT 模式构建
实验架构图
NAT模式特点:
- 集群节点必须在一个网络中
- 真实服务器必须将网关指向负载调度器
- RIP通常都是私有IP,仅用于各个集群节点通信
- 负载调度器必须位于客户机和真实服务器之间,充当网关
- 支持端口映射
- 负载调度器操作系统必须是Linux系统,真实服务器可以使用任何系统
构建过程
负载调度器
#关闭网卡守护进程
service NetworkManager stop && chkconfig NetworkManager off
#开启路由转发功能
net.ipv4.ip_forward = 1
sysctl -p
#开启防火墙
service iptables start
chkconfig iptables on
#添加防火墙记录,当源地址是"内网网段",并且出口网卡为"eth0"时进行SNAT转换,转换源为外网卡地址
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source 20.20.20.11
service iptables save #保存防火墙规则配置
#安装ipvsadm命令行工具
yum -y install ipvsadm
#添加ipvsadm tcp集群
ipvsadm -A -t 20.20.20.11:80 -s rr
#添加ipvsadm节点
ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.12:80 -m
ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.13:8080 -m
#检查
[root@011 ~]# service ipvsadm status
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 20.20.20.11:80 rr
-> 10.10.10.12:80 Masq 1 0 0
-> 10.10.10.13:8080 Masq 1 0 0
#ipvs持久化
service ipvsadm save
#设为开机自启
chkconfig ipvsadm on
真实服务器 RS1 RS2
#关闭网卡守护进程
service NetworkManager stop && chkconfig NetworkManager off
#配置网关为负载调度器的eth1网卡IP(内网IP)
echo "GATEWAT=10.10.10.11" >> /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart #重启网络
#指定网关至负载调度器
route add default gw 10.10.10.11
#编写html的测试页面开启apache服务
service httpd start
#RS2 编辑apache配置文件的监听端口
vim /etc/httpd/conf/httpd.conf
Listen 8080
service httpd restart #重启服务
#验证:
[root@013 local]# curl 127.0.0.1:8080
this is server 2