前言
Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。
优点是节省IP 地址,能对内部进行伪装。
缺点是效率低,因为返回给请求方的流量经过转换器。
实验环境
server1 172.25.64.1/172.25.254.250 调度器 版本企业六
server2 172.25.64.2 后端真实服务器 版本企业六
server3 172.25.64.3 后端真实服务器 版本企业六
allen 172.25.254.64 客户端 版本企业七
NAT模式的部署
调度器server1
1、实验前提 调度器(server1)已经配置好ipvsadm
不明白的可以先阅读《企业项目实战----LVS负载均衡(DR模式)》一文,链接:点击此处阅读
2、配置网卡
总共需要两块网卡。
配置两个IP,一个连接内网,一个连接外网。
此处:
172.25.254.250/24 ----连接外网
172.25.64.1/24 ---------连接内网
3、.添加NAT模式策略
[root@server1 network-scripts]# ipvsadm -A -t 172.25.254.250:80 -s rr
[root@server1 network-scripts]# ipvsadm -a -t 172.25.254.250:80 -r 172.25.64.2:80 -m
[root@server1 network-scripts]# ipvsadm -a -t 172.25.254.250:80 -r 172.25.64.3:80 -m
[root@server1 network-scripts]# ipvsadm -l #查看策略
[root@server1 network-scripts]# /etc/init.d/ipvsadm save #保存
4、开启路由机制
[root@server1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@server1 ~]# sysctl -p #刷新
5、导入模块
[root@server1 ~]# modprobe iptable_nat
注:如果不加载此模块,也可以在第一次访问时成功,但是会在再次访问时出现延迟过长,或访问超时现象
配置服务器server2与server3
给服务器server2和server3添加网关:
网关为调度器内网IP
server2:
[root@server2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.64.2
PREFIX=24
GATEWAY=172.25.64.1 #建立局部网关
[root@server2 ~]# /etc/init.d/network restart
[root@server2 ~]# route -n #查看网关
server3:
测试:
选择一台172.25.254.网段的主机访问curl 172.25.254.250(调度器外网IP),反复刷新网页,轮询出现两台服务器网页,则说明负载均衡成功!
可以看到,客户端只有172.25.254.网段的IP。
客户端访问:
实现负载均衡!