实验原理
*原理:*
客户端访问路由器上的公有IP,通过路由器上的防火器规则,将数据包做公有IP的转换,映射到负载均衡服务器中,我们包防火墙上的规则叫做内网穿透或者端口映射。负载均衡服务器通过Mac地址来进行数据包的转发(没有改目标IP(负载均衡服务器IP)),应用服务器的IP要有一个和负载均衡的IP一样,回环接口:lo网卡,自己形成一个单独的广播域(自己一个网段)。
一、实验准备
7-1 #测试机
ens33 vmnat10 192.168.10.110 gw:192.168.10.130
7-3 #路由器
ens33 vmnat10 192.168.10.130
ens36 vmnat11 192.168.11.130
#开启路由转发
7-4调度器
ens33 vmnat11 192.168.11.140 DIP
ens33:0 vmnat11 192.168.11.200 VIP
7-6 #真实服务器一
ens33 vmnat11 192.168.11.160 gw:192.168.11.130
7-7 #真实服务器二
ens33 vmnat11 192.168.11.170 gw:192.168.11.130
二、实验操作
1.在7-3机器上开启路由转发
[root@localhost ~]# vim /etc/sysctl.conf
#添加
net.ipv4.ip_forward = 1
#刷新
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
2.在7-4上配子网卡
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
#修改ip
cp -a ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
#修改名字 ip 子网掩码
#连接到xshell
#在测试机10.110上测试
[root@localhost ~]# curl 192.168.11.160
160
[root@localhost ~]# curl 192.168.11.170
170
3.配置调度器
[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# ipvsadm -a -t 192.168.11.200:80 -r 192.168.11.160 -g
[root@localhost ~]# ipvsadm -a -t 192.168.11.200:80 -r 192.168.11.170 -g
#先不要测试
不然会导致路由只访问真实机
关闭路由重定向 #调度器上修改
[root@localhost ~]# vim /etc/sysctl.conf
#添加
net.ipv4.conf.all.send_redirects = 0
[root@localhost ~]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
4.应用服务器配置和调度服务器相同的VIP
#两台真实机都要改
[root@localhost html]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -a ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.11.200
NETMASK=255.255.255.255
[root@localhost network-scripts]# systemctl restart network
#真实服务器
[root@localhost network-scripts]# vim /etc/sysctl.conf
#添加
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@localhost network-scripts]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
#测试
#目标IP
[root@localhost ~]# curl 192.168.11.200
5.在路由器上写防火墙规则
目标地址转换
[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.10.130 -p tcp --dport 80 -j DNAT --to-destination 192.168.11.200
[root@localhost ~]# iptables -t nat -L -n
#在测试机上测试
[root@localhost ~]# curl 192.168.10.130
源地址转换规则:
#生产环境中要写不然数据回不来
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.11.200 -p tcp --sport 80 -o ens33 -j SNAT --to-source 192.168.10.130