LVS-NAT原理及实现

1 重点理解NAT方式的实现原理和数据包的改变

这里写图片描述
(a)当用户的请求到达调度器时,请求报文会先到内核空间的PREROUTING链上。此时报文的源IP为CIP,目标IP为VIP
(b)PREROUTING检查发现数据包的目标IP是本机,就将数据包送至INPUT链。
(c)IPVS工作在INPUT链上,当数据包抵达INPUT链后,IPVS会检查数据包所请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器RIP,然后将数据包送往POSTROUTING链。此时报文的源IP为CIP,目标IP为RIP。
(d)POSTROUTING链通过选路,将数据包转发给Real Server
(e)Real Server对比发现目标IP是自己,就会接受这个请求报文,开始构建响应报文发回给调度器。源IP为RIP,目标IP为CIP
(f)调度器在响应客户端前,会将报文的源IP地址修改为自己的VIP,然后响应给客户端。此时报文的源IP为VIP,目标IP为CIP

2 LVS-NAT模型的特性

  • RS应该使用私有地址,RS的网关必须指向DIP
  • DIP和RIP必须要在同一网段中
  • 请求报文和响应报文都需要经过调度器,高负载场景中,调度器容易成为性能瓶颈。
  • 支持端口映射
  • RS可以使用任意操作系统

3 实现

directory:
[root@server1 ~]# ipvsadm -A -t 172.25.56.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.56.100:80 -r 172.25.254.2:80 -m
[root@server1 ~]# ipvsadm -a -t 172.25.56.100:80 -r 172.25.254.3:80 -m
[root@server1 ~]# ip addr add 172.25.56.100/24 dev eth0

[root@server1 ~]# echo "1" >/proc/sys/net/ipv4/ip_forward
#指令中,参数值为1时启用ip转发,为0时禁止ip转发,在NAT模式下此操作是必须的。

Real server2/3:
route add default gw 172.25.254.1
/etc/init.d/httpd start

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36462472/article/details/80454913