NAT(Network Address Translation)网络地址转换模式
一.NAT模式的数据走向:
client–>vs–>rs–>vs–>clent(原路返回)
用户请求为客户端IP到调度器的虚拟IP,(CIP-VIP)—->LVS调度DIRECTOR,在此处调度器会将报文再次封装一个RS的IP头,即此时的数据包是((CIPVIP)+RIP),调度器将再次封装后的数据发到RS,—>用户请求到达RS,
RS解包数据相应处理再发回调度器,由调度器返回客户端。此阶段RS也会在本地LO回环接口上绑定VIP别名并抑制ARP相应,因此RS发送到调度器DIRECTOR的数据包是VIP-CIP,不会是RIP-CIP。
NAT模式下,RS响应后的数据包封装成(VIP-CIP),为什么调度器能收到?是因为NAT模式下,调度器IP必须是RS的网关,RS响应后的数据包必须通过调度器返回客户端。该模式调度器负载较大,一般不用。
二.配置NAT模式的LVS:
1.在server1上加一块网卡eth1,给该网卡加上外网ip,激活网卡
ip addr add 172.25.254.100/24 dev eth1
ip link set up eth1
2.在server1添加ipvsadm策略
ipvsadm -A -t 172.25.254.100:80 -s wrr
ipvsadm -a -t 172.25.254.100:80 -r 172.25.75.2 -m -w 1
ipvsadm -a -t 172.25.254.100:80 -r 172.25.75.3 -m -w 1
ipvsadm -l
/etc/init.d/ipvsadm save
3.在server1开启路由机制
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
4.在server1加载NAT模块开启服务
modprobe iptable_nat #注:如果不加载此模块,也可以在第一次访问时成功,但是会在再次访问时出现延迟过长,或访问超
时现象
/etc/init.d/ipvsadm start #开启服务
5.server2,server3作为后端服务器
route add -net 0.0.0.0 gw 172.25.75.1
ip addr show
route -n
测试: