> 其它学习 > 网络基础 >

Lvs-NAT模式

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
 
 
 
 
 
 
 
 
 



(责任编辑:IT)