文章目录
=====================================================
LVM/NAT工作模式基础知识
LVS/NAT模式
实验说明:
- 虚拟机网络使用NAT模式
- client、调度器、Real Server都使用虚拟机或使用真实服务器
- 虚拟机上网卡使用半虚拟化驱动,如果半虚拟化驱动异常,可以使用default/rtl8139
1、LVS/NAT网络拓朴
主机名 | ip | 系统 | 用途 |
---|---|---|---|
client | 192.168.0.105 桥接 | mac | 客户端 |
lvs-server | 192.168.0.108 桥接 192.168.72.130 仅主机 | centos7.5 | 分发器 |
real-server1 | 192.168.72.128 仅主机 | centos7.5 | web1 |
real-server2 | 192.168.72.129 仅主机 | centos7.5 | web2 |
# 配置real-server (两服务器相同)
[root@real-server1 ~]# yum install httpd -y
[root@real-server1 ~]# echo lvs-web1 > /var/www/html/index.html
[root@real-server1 ~]# systemctl start httpd
[root@real-server1 ~]# ip route add default via 192.168.72.130 # 配置默认路由
# 配置lvs-server 开启路由转发,为了让两个网卡可以通信
[root@lvs-server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs-server ~]# sysctl -p //确保打开路由转发
[root@lvs-server ~]# yum install ipvsadm -y
设置集群调度算法,(便于验证,此处使用轮询算法):
[root@lvs-server ~]# ipvsadm -A -t 192.168.0.108:80 -s rr
设置后端服务器:
[root@lvs-server ~]# ipvsadm -a -t 192.168.0.108:80 -r 192.168.72.128:80 -m
[root@lvs-server ~]# ipvsadm -a -t 192.168.0.108:80 -r 192.168.72.129:80 -m
查看ipvsadm规则:
[root@lvs-server ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.108:80 rr
-> 192.168.72.128:80 Masq 1 0 7
-> 192.168.72.129:80 Masq 1 0 7
这些规则没有保存在配置文件,重启失效
# 做开启启动
[root@lvs-server ~]# systemctl enable ipvsadm
Created symlink from /etc/systemd/system/multi-user.target.wants/ipvsadm.service to /usr/lib/systemd/system/ipvsadm.service.
[root@lvs-server ~]# ipvsadm -Ln > /etc/sysconfig/ipvsadm
# 测试
[root@client ~]# elinks -dump http://192.168.0.108/
[root@client ~]# ab -c 1000 -n 1000 http://192.168.0.108/
LVM/NAT工作模式实验操作
1、环境准备
三台纯净的Centos虚拟机,客户端没有要求
client 10.11.67.31 CIP
用于访问lvs_server,验证负载均衡是否成功
lvs-server 10.11.67.47 VIP
lvs-server 192.168.138.131 DIP
lvs-server添加两块网卡,一块桥接,一块nat,并且开启路由转发功能,让两块网卡可以通信,如果需要做本地域名解析,先做好本地域名解析
http-server-1 192.168.138.133 RIP
http-server-2 192.168.138.132 RIP
http-server要添加到DIP的默认路由
2、http-server-1配置
yum -y install httpd
echo "lvs-web1" > /var/www/index.html
systemctl srart httpd
ip route add default via 192.168.138.131
ip r 命令可以查看路由表,如果实验过程中有错误,查看路由表,如果添加的默认路由失效,再次添加一次
3、http-server-2配置
yum -y install httpd
echo "lvs-wed2" > /var/www/index.html
systemctl start httpd
ip route add default via 192.168.138.131
ip r 命令可以查看路由表,如果实验过程中有错误,查看路由表,如果添加的默认路由失效,再次添加一次
3、lvs-server配置
本地域名解析
vim /etc/hosts
10.11.67.47 lvs-server-vip
192.168.138.131 lvs-server-dip
192.168.138.133 http-server-1-rip
192.168.138.132 http-server-2-rip
开启路由转发模式
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
ipvsadm配置
yum -y install ipvsadm
添加虚拟服务器记录
ipvsadm -A -t lvs-server-vip:80 -s rr
ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.11.67.47:80 rr
添加真实服务器记录
ipvsadm -a -t lvs-server-vip:80 -r http-server-1-rip:80 -m
ipvsadm -a -t lvs-server-vip:80 -r http-server-2-rip:80 -m
ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.11.67.47:80 rr
-> 192.168.138.132:80 Masq 1 0 0
-> 192.168.138.133:80 Masq 1 0 0
4、客户端client访问验证
浏览器访问验证刷新验证不明显,用elinks,模拟浏览器访问验证
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web2
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web1
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web2
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web1
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web2
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web1
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web2
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web1
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web2
[root@3bb37bd89747 /]# elinks --dump 10.11.67.47
lvs-web1