LVS模式二:NAT(Network Address Translation)网络地址转换模式

一、LVS-NAT模式原理

LVS的转发主要通过修改IP地址 (NAT模式,分为源地址修改SNAT和目标地址修改DNAT)、修改目标MAC(DR模式)来实现。

NAT模式: 网络地址转换
NAT(Network Address Translation)是一种外网和内网地址映射的技术。NAT模式下,网络数据报的进出都要经过LVS的处理。LVS需要作为RS(真实服务器)的网关。当包到达LVS时,LVS做目标地址转换(DNAT),将目标IP改为RS的IP。RS接收到包以后,仿佛是客户端直接发给它的一样。RS处理完,返回响应时,源IP是RS IP,目标IP是客户端的IP。这时RS的包通过网关(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端看起来就仿佛是LVS直接返回给它的。客户端无法感知到后端RS的存在。
LVS模式二:NAT(Network Address Translation)网络地址转换模式_第1张图片

二、LVS—NAT模型的特性

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

缺陷:对Director Server压力会比较大,请求和响应都需经过director server

三、iptables之四表五链(理解数据包的流向)

四表:
filter表——过滤数据包
Nat表——用于网络地址转换(IP、端口)
Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表——决定数据包是否被状态跟踪机制处理

五链:
INPUT链——进来的数据包应用此规则链中的策略
OUTPUT链——外出的数据包应用此规则链中的策略
FORWARD链——转发数据包时应用此规则链中的策略
PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据 包出来的时侯都先由这个链处理)

四、LVS-NAT模式实现负载均衡的配置
环境:

server1: eth0 172.25.70.1(内网) eth1:172.25.254.100 (外网)
server2: eth0 172.25.70.2
server3: eth0 172.25.70.3
1、server1作为实现负载均衡的调度器

网络设置:
LVS模式二:NAT(Network Address Translation)网络地址转换模式_第2张图片
2、在server1添加ipvsadm策略

ipvsadm -A -t 172.25.254.100:80 -s wrr
ipvsadm -a -t 172.25.254.100:80 -r 172.25.70.2 -m -w 1
ipvsadm -a -t 172.25.254.100:80 -r 172.25.70.3 -m -w 1
ipvsadm -l
/etc/init.d/ipvsadm save

LVS模式二:NAT(Network Address Translation)网络地址转换模式_第3张图片
3、在server1开启路由机制

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -p

LVS模式二:NAT(Network Address Translation)网络地址转换模式_第4张图片
LVS模式二:NAT(Network Address Translation)网络地址转换模式_第5张图片
4、在server1加载NAT模块开启服务

modprobe iptable_nat 		#注:如果不加载此模块,也可以在第一次访问时成功,但是会在再次访问时出现延迟过长,或访问超
时现象
/etc/init.d/ipvsadm start  #开启服务

LVS模式二:NAT(Network Address Translation)网络地址转换模式_第6张图片
5、server2作为后端服务器

route add -net 0.0.0.0 gw 172.25.70.1
ip addr show
route -n

LVS模式二:NAT(Network Address Translation)网络地址转换模式_第7张图片

/etc/init.d/httpd start		#开启httpd服务

6、server3作为后端服务器

route add -net 0.0.0.0 gw 172.25.70.1
ip addr show
route -n
/etc/init.d/httpd start

LVS模式二:NAT(Network Address Translation)网络地址转换模式_第8张图片
测试:

用与外网ip 172.25.254.100相同的网络位的客户端测试:

curl 172.25.254.100

LVS模式二:NAT(Network Address Translation)网络地址转换模式_第9张图片
LVS的NAT模式的负载均衡成功实现。

你可能感兴趣的:(Linux企业部分,LVS,NAT)