一.NAT模式
- Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点
- 优点是节省IP 地址,能对内部进行伪装
- 缺点是效率低,因为返回给请求方的流量经过转换器
二.实验环境(RHEL6.5版本)
1.各主机信息如下表
主机名 | IP |
---|---|
server1 | 172.25.4.1(内网) ;172.25.254.10(外网) |
server2 | 172.25.4.2 |
server3 | 172.25.4.3 |
2.server2与server3安装apache,在默认发布目录/var/www/html下编写发布文件
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html
<h1>www.westos.org server2</h1>
[root@server3 html]# vim index.html
[root@server3 html]# cat index.html
<h1>www.westos.org server3</h1>
三.NAT模式的部署
实验前提调度器(server1)以配置好ipvsadm:配置步骤请查看博文:
https://blog.csdn.net/y_yang666/article/details/86922742
1.配置server1:
1).添加网卡,给新网卡添加外网ip:172.25.254.100
2).添加NAT模式策略
[root@server1 ~]# ipvsadm -A -t 172.25.254.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.4.2:80 -m
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.4.3:80 -m
[root@server1 ~]# /etc/init.d/ipvsadm save ##保存策略
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
[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 172.25.254.100:http rr
-> server2:http Masq 1 0 0
-> server3:http Masq 1 0 0
3).开启路由机制
[root@server1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@server1 ~]# sysctl -p ##刷新机制
net.ipv4.ip_forward = 1
4).加载nat模块:modprobe iptable_nat
注:如果不加载此模块,也可以在第一次访问时成功,但是会在再次访问时出现延迟过长,或访问超时现象
2.配置server2与server3
给服务器添加网关(172.25.4.1)
[root@server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
IPADDR="172.25.4.3"
NETMASK="255.255.255.0"
ONBOOT="yes"
GATEWAY="172.25.4.1"
[root@server3 ~]# /etc/init.d/network restart ##重起网络
[root@server3 ~]# route -n ##查看网关
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.25.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 172.25.4.1 0.0.0.0 UG 0 0 0 eth0
server2与server3是同样的操作