LVS—NAT模式

一.简介

    1.特点

    1)NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点

    2)只需要在LB上配置一个公网IP地址就可以了。

    3)每台内部的节点服务器的网关地址必须是调度器LB的内网地址。

    4)NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

    2.数据传输过程

    1)客户端请求数据,目标IP为VIP

    2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。

    3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。

    4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。

    5)客户端收到的就只能看到VIP\DIP信息。

 

二.配置步骤

实验环境

主机名ip组成部分
server1172.25.14.1负载调度器LB
server2172.25.14.2RealServer
server3172.25.14.3RealServer
  • rhel6.5
  • iptables and selinux  disabled
  • VIP:172.25.14.100  
  • 网络yum源http://172.25.14.250/rhel6.5
  • server2,server3已安装httpd

server1:

1.配置yum源

[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.14.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]          ##添加负载均衡相关数据包,添加完成后才能下载ipvsadm
name=LoadBalancer
baseurl=http://172.25.14.250/rhel6.5/LoadBalancer          
enabled=1
gpgcheck=0
[root@server1 ~]# yum clean all

2.安装ipvsadm

[root@server1 ~]# yum install ipvsadm -y

3.调度器server1添加一块网卡eth1,并且设置一个外网ip

[root@server1 ~]# ip addr add 172.25.254.100/24 dev eth1
[root@server1 ~]# ip link set up eth1       #激活网卡eth1

 

4.打开内核的路由功能

  • 因为在调度器收到客户端的请求后,请求是一个外网的ip地址,需要将外网ip转换为内网ip地址,才能将数据包发送到后端服务器server2,server3(内网),所以需要打开内核的路由功能。
[root@server1 ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
[root@server1 ~]# vim /etc/sysctl.conf
[root@server1 ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1

5.添加调度策略

[root@server1 ~]# ipvsadm -A -t 172.25.254.100:80 -s rr           ##-A表示添加调度策略,rr表示轮询模式
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.14.2:80 -m  ##-a表示添加后端服务器,-m表示nat模式
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.14.3:80 -m
[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  foundation100.ilt.example.co rr
  -> server2:http                 Masq    1      0          0         
  -> server3:http                 Masq    1      0          0         

server2,server3:

1.添加网关(因为NAT模式下数据包是需要原路返回的,要经过调度器返回客户端)

[root@server2 ~]# route add default gw 172.25.14.1
[root@server3 ~]# route add default gw 172.25.14.1

2.开启httpd服务

[root@server2 ~]# /etc/init.d/httpd start
[root@server3 ~]# /etc/init.d/httpd start

测试:

访问调度器的外网ip,server2与server3被轮询调度(进行测试的主机,需要和实验中添加的外网ip在同一网段)

查看调度记录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值