LVS的原理
请看这篇博客:https://blog.csdn.net/weixin_38044888/article/details/97794685
NAT模式详解
NAT模式实验
实验环境准备
主机 | 服务 |
---|---|
真实主机localhost | 客户端 |
server1 | DS(Director Sever——LVS调度器) |
server2 | RS(Real Server——后端真实提供服务的虚拟机) |
server3 | RS(Real Server——后端真实提供服务的虚拟机) |
注意:我们所有的虚拟机server1-3的实验环境都是rhel7.5版本。
server1(DS)
- 清除之前TUNEL模式的影响。
modprobe -r ipip
ipvsadm -C
- 给DS添加一块网卡eth1,用于与外网通信(实际上就是把VIP添加到这个网卡上),并激活网卡。
ip addr add 172.25.254.200/24 dev eth1
ip link set up eth1
- 开启内核路由转发功能。
server1收到请求VIP的数据包,因为是公网的IP,这时需要通过内核路由转发到内网的RS上。
所以我们前面就需要两块网卡,一个用于接受外网请求,一个用于与RS通信。
而Linux默认内核禁止数据包转发,开启其内核转发功能即可。
sysctl -a | grep ip_forward # 查看是否开启
vim /etc/sysctl.conf
写入:
net.ipv4.ip_forward = 1
systemctl restart network # 重启网络
sysctl -a | grep ip_forward # 再次查看是否开启
- 添加ipvsadm策略为NAT模式。
-m
ipvsadm -A -t 172.25.254.200:80 -s rr
# 说明:-A 添加策略 -t 指定VIP:端口 -s 指定调度算法 rr轮询
ipvsadm -a -t 172.25.254.200:80 -r 172.25.66.2:80 -m
ipvsadm -a -t 172.25.254.200:80 -r 172.25.66.3:80 -m
# 说明: -t 指定VIP:端口 -r 指定rs:端口 -m 指定模式为NAT模式
注意:因为我们这里使用了内核路由转发,所以,这里的VIP和内网的ip不要在同一网段,否则会路由失败。
server2与server3(Real Server)
- 需要修改RS的默认网关为DS同一网段的IP,用于返回的数据包。
方法1:直接修改网卡的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改网关为:
GATEWAY=172.25.66.1
# 修改完成和后,重启网络。
systemctl restart network
方法2:使用route命令
route add default gw 172.25.66.1
- 查看是否生效:
[root@server2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.66.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.25.66.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
真实主机上测试
[root@localhost images]# curl 172.25.254.200
server2
[root@localhost images]# curl 172.25.254.200
server3
[root@localhost images]# curl 172.25.254.200
server2
[root@localhost images]# curl 172.25.254.200
server3
发现已经轮询访问,说明我们的lvs的NAT模式已经生效。