您的位置:首页 > 其它

Contos7搭建LVS的NAT模式

2020-07-21 17:12 134 查看

1、NAT原理

①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP(客户端IP),后面统称为CIP),目标地址为VIP(负载均衡器前端地址,后面统称为VIP)。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的目标IP地址改为了后端服务器的RIP地址并将报文根据算法发送出去。
③.报文送到Real Server后,由于报文的目标地址是自己,所以会响应该请求,并将响应报文返还给LVS。
④.然后lvs将此报文的源地址修改为本机并发送给客户端。
注意在NAT模式中,Real Server的网关必须指向LVS,否则报文无法送达客户端
优点:网络隔离更安全、节约IP地址
缺点:director很可能成为系统性能瓶颈,所有的请求director都需要处理应答

2、部署NAT
2.1准备3主机
Director server 外网IP:192.168.112.128 内网IP:192.168.171.11
Real server 1:192.168.171.12
Real server 2:192.168.171.13

2.2环境准备
关闭所有主机的selinux和防火墙
setenforce 0
sed -i -r “/^SELINUX=/c SELINUX=disabled” /etc/selinux/config
systemctl && systemctl stop firewalld
systemctl && systemctl disable firewalld

2.3DS主机操作
方式一:手动部署
启动路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
安装ipvsadm
yum install -y ipvsadm
配置转发规则
ipvsadm -A -t 192.168.112.128:80 -s rr
ipvsadm -a -t 192.168.112.128:80 -r 192.168.171.12:80 -m
ipvsadm -a -t 192.168.112.128:80 -r 192.168.171.13:80 -m
查看规则
ipvsadm -ln

方式二:执行脚本部署
vim /root/tool/lvs_nat.sh
#!/bin/bash
#安装ipvsadm
yum -y install ipvsadm &>/dev/null
if [ $? -eq 0 ]
then
echo “ipvsad安装成功!”
fi
sleep 3
#ds服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects #ens33根据实际情况修改
#ds设置 nat 防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.171.0/24 -j MASQUERADE
#director设置 ipvsadm
/usr/sbin/ipvsadm -C
/usr/sbin/ipvsadm -A -t 192.168.112.128:80 -s wrr
/usr/sbin/ipvsadm -a -t 192.168.112.128:80 -r 192.168.171.12:80 -m -w 1
/usr/sbin/ipvsadm -a -t 192.168.112.128:80 -r 192.168.171.13:80 -m -w 1
echo “执行完毕!”

为脚本添加执行权限
chmod +x /root/tool/lvs_nat.sh
执行脚本
/root/tool/lvs_nat.sh

2.4RS主机操作
rs1主机操作:
yum install -y httpd
systemctl start httpd
echo “web01” > /var/www/html/index.html
route add -net 192.168.112.0/24 gw 192.168.171.11
可能会报找不到route命令,需要安装net-tools包
yum -y install net-tools
rs2主机操作:
yum install -y httpd
systemctl start httpd
echo “web02” > /var/www/html/index.html
route add -net 192.168.112.0/24 gw 192.168.171.11
2.5测试访问
curl http://10.10.10.11

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: