Lvs-NAT模式

本文深入解析LVS负载均衡的工作原理,包括数据包在内核空间的流转过程,重点介绍NAT模式的特点、配置步骤及注意事项。通过实例展示如何设置LVS-NAT模式,实现服务器集群的高效负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lvs原理    

Lvs-NAT模式注意事项   

Lvs-Nat模式图解  

Lvs配置

保存ipvsadm策略方法

测试:


Lvs原理

    当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。
    当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。
    LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将经过INPUT链送至用户空间,交给用户空间的进程来处理。
    如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
    最后经由POSTROUTING链发往后端服务器。

 

Lvs-NAT模式注意事项

两块网卡

RS应该使用私有地址    RS的网关必须指向DIP DIP和RIP必须在同一个网段内

请求和响应报文都需要经过Director Server

支持端口映射 RS可以使用任意操作系统

缺陷:对Director Server压力会比较大,请求和响应都需经过director server  高负载场景中,Director Server易成为性能瓶颈

Lvs-Nat模式图解

Lvs配置

sercer4作为调度器,添加两块网卡,内网ip 172.25.100.4    外网ip为172.25.254.4

server8(172.25.100.8)  网关指向DIP即172.25.100.6

server9(172.25.100.9)  网关指向DIP即172.25.100.6

补充:在添加虚拟网卡时,添加完直接ifconfig查看并不能直接查看到。方法如下:

复制一份eth0的配置文件

更改里面的设备名称和ip地址

重启网络 ok

server4作为调度器

开启路由转发功能,使得真实服务器可以访问外网

[root@server4 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

查看策略:

[root@server4 ~]# sysctl -p
net.ipv4.ip_forward = 1   查看到已经打开
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0

测试:

两台加了网关的后端服务器可以ping通DIP(172.25.254.4)

 

servre8, server9 作为后端服务器

两台机器添加临时的网关指令

[root@server9 ~]# route add default gw 172.25.100.4

设置策略:

[root@server4 ~]# ipvsadm -C
[root@server4 ~]# ipvsadm -A -t 172.25.254.4:80 -s wrr
[root@server4 ~]# ipvsadm -a -t 172.25.254.4:80 -r 172.25.100.6 -m -w 1
[root@server4 ~]# ipvsadm -a -t 172.25.254.4:80 -r 172.25.100.8 -m -w 1
补充:m代表nat模式,-w设置权重 wrr加权轮叫调度算法
[root@server4 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.4:80 wrr
  -> 172.25.100.6:80              Masq    1      0          0         
  -> 172.25.100.8:80              Masq    1      0          0  

[root@server4 ~]# echo "1" >/proc/sys/net/ipv4/ip_forward  //开启ip转发功能

//临时开启:sysctl -w net.ipv4.ip_forward=1

保存ipvsadm策略方法

service ipvsadm save //保存lvs规则到/etc/sysconfig/ipvsadm中

当重启后,可以service ipvsadm reload加载出来

补充:当然可以重定向保存到任何文件

ipvsadm -S >/etc/hi

重启

ipvsadm -R </etc/hi

iptables5五条链不了解这5条链是当数据包流向这台服务器的时候,数据包在服务器内核中的流向

开启后端http服务

后端 server8,server9

开启http服务发布页面分别为server8‘s page ; server9's  page   

测试

[root@server4 ~]# curl http://172.25.254.4
server6'page
[root@server4 ~]# curl http://172.25.254.4
server8's  page
[root@server4 ~]# curl http://172.25.254.4
server6'page
[root@server4 ~]# curl http://172.25.254.4
server8's  page
 

增大测试量

[root@server4 ~]# ab -n 10000 -c 200 http://172.25.254.4/index.html

[root@server4 ~]# ipvsadm -L -n --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  172.25.254.4:80                    82      409      409    29237    45036
  -> 172.25.100.6:80                    41      205      205    14645    22534
  -> 172.25.100.8:80                    41      204      204    14592    22502

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值