LVS的NAT模式搭建
1. NAT模式原理图
NAT(Network Address Translation)⽹络地址转换模式
当⽤户请求到达Director Server,此时请求的数据报⽂会先到内核空间的PREROUTING链。 此时报⽂的源IP为CIP,⽬标IP为VIP PREROUTING检查发现数据包的⽬标IP是本机,将数据包送⾄INPUT链 IPVS⽐对数据包请求的服务是否为集服务,若是,修改数据包的⽬标IP地址为后端服务器IP,然后将数据包发⾄POSTROUTING链。 此时报⽂的源IP为CIP,⽬标IP为RIP POSTROUTING链通过选路,将数据包发送给Real Server
Real Server⽐对发现⽬标为⾃⼰的IP,开始构建响应报⽂发回给Director Server。 此时报⽂的源IP为RIP,⽬标IP为CIP Director Server在响应客户端前,此时会将源IP地址修改为⾃⼰的VIP地址,然后响应给客户端。 此时报⽂的源IP为VIP,⽬标IP为CIP 2. LVS-NAT模型的特性
RS应该使⽤私有地址,RS的⽹关必须指向DIP
鸟笼的制作DIP和RIP必须在同⼀个⽹段内
请求和响应报⽂都需要经过Director Server,⾼负载场景中,Director Server易成为性能瓶颈
⽀持端⼝映射
RS可以使⽤任意操作系统
缺陷:对Director Server压⼒会⽐较⼤,请求和响应都需经过director server
3. 配置NAT模式的LVS
1.在server1上加⼀块⽹卡eth1,给该⽹卡加上外⽹ip,激活⽹卡
其中,172.25.254.1 作为内⽹地址,与真实服务器交流
172.25.8.110 作为对外的地址,接收客户端的请求
[root@server1 ~]# ip addr add 172.25.8.110/24 dev eth1
[root@server1 ~]# ip link set up eth1
[root@server1 ~]# ip addr show
2.在server1添加ipvsadm策略
[root@server1 ~]# ipvsadm -A -t 172.25.8.110:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.8.110:80 -r 172.25.254.2:80 -m
[root@server1 ~]# ipvsadm -a -t 172.25.8.110:80 -r 172.25.254.3:80 -m
[root@server1 ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP server1:http rr
-> server2:http Masq 1 0 0
-> server3:http Masq 1 0 0
[root@server1 ~]#
3.在server1开启路由机制
[root@server1 ~]# sysctl -a |grep ip_forward
net.ipv4.ip_forward = 0
辐照灭菌设备
net.ipv4.ip_forward_use_pmtu = 0
[root@server1 ~]# vim /f
[root@server1 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@server1 ~]#划线仪
4.在server1加载NAT模块开启服务
[root@server1 ~]# modprobe iptable_nat
立方体拼图
[root@server1 ~]#
5.server2,server3作为后端服务器,需要安装httpd服务,设定⽹关为调度器的对内ip
[root@server2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.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.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[root@server2 ~]# cat /var/www/html/index.html
聚光体
i am server2
[root@server2 ~]#
[root@server3 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.254.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.254.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[root@server3 ~]# cat /var/www/html/index.html
i am server3
[root@server3 ~]#
真机测试:
[kiosk@foundation8 ~]$ curl 172.25.8.110
i am server3
[kiosk@foundation8 ~]$ curl 172.25.8.110
i am server2
[kiosk@foundation8 ~]$ curl 172.25.8.110
i am server3
[kiosk@foundation8 ~]$ curl 172.25.8.110
i am server2
[kiosk@foundation8 ~]$ curl 172.25.8.110
i am server3
[kiosk@foundation8 ~]$ curl 172.25.8.110
i am server2
[kiosk@foundation8 ~]$