本篇文档主要是记录NAT模式实现过程,以及各配置步骤的原理。“lvs三种模式工作原理”中描述了LVS的NAT、DR、TUN三种模式的工作原理。
NAT模式是通过director将报文目标IP地址修改,发送给RS,RS将响应报文返回给director,通过director将报文返回给客户端。
部署环境
director需要两个网卡,一个配置VIP,接受客户端请求报文和发送real server的响应报文;一个配置DIP,用来转发VIP接受到的请求报文和接受real server的响应报文。
LVS服务器(DS) | DIP:192.168.1.1 | VIP:172.30.100.111 |
nginx1服务器(RS) | RIP:192.168.1.2 | 网关:192.168.1.1 |
nginx2服务器(RS) | RIP:192.168.1.3 | 网关:192.168.1.1 |
LVS服务器配置
VIP地址正常配置为与客户端通信的公网地址;DIP可以使用私网IP
DIP不需要指定网关,它只是用来作为RS的网关。
NAT模式是把请求报文的目标VIP修改为RIP,然后转发给real server。所以整个director的功能有点像路由器。centos默认是不开启转发功能,所以需要激活ip转发功能。
echo 1 >> /proc/sys/net/ipv4/ip_forward # 开启ip转发功能
后端服务器配置
两台real server的RIP必须与DIP是同一网段,并且要把网关设置为DIP
ipvs规则配置
NAT模式支持端口映射,即客户端请求web80端口,lvs可以映射到后端服务的8080端口。
ipvsadm -A -t 172.30.100.111:80 -s wrr # 添加虚拟服务,指定IP、端口、算法 ipvsadm -a -t 172.30.100.111:80 -r 192.168.1.2:8080 -m -w 2 # 添加nginx1服务器,指定端口,指定NAT模式,指定权重为2 ipvsadm -a -t 172.30.100.111:80 -r 192.168.1.3:8080 -m -w 1 # 添加nginx2服务器,指定端口,指定NAT模式,指定权重为1
验证