企业——LVS-TUN模式负载均衡构建配置

####企业——LVS-TUN模式负载均衡构建配置###

 client ->vs ->Rs -> client     ##隧道模式 

 IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。

1.LVS-TUN简介

   LVS是Linux Virtual Server的简称,在实际环境中经常作为B/S结构的网络应用中的负载均衡器来使用,工作在7层网络模型中的,网络层,也就是通常说的IP层,由于数据的处理是在Linux内核完成的,所以相对反向代理服务器来说,性能一般会高一些

   TUN是IP Tunneling,IP隧道的简称,它将调度器收到的IP数据包封装在一个新的IP数据包中,转交给应用服务器,然后世纪服务器的返回数据,将不通过调度器,而将直接返回给用户

2.原理详情

1)客户请求数据包,目的地址VIP(调度器的IP地址)发送到调度器上

2)调度器接收到客户请求包,进行IP Tunnel封装,在原有的报文上添加新的报文,然后发送给服务器

3)服务器根据新添加的报文收到请求包,然后解开IP Tunnel信息,得到客户的请求包并且进行响应处理

4)响应处理完毕后,服务器使用自己的公网路线,将这个响应数据包发送给客户端,源IP地址还是VIP地址

3.实验环境

   iptables和selinux关闭

   rhel6.5

   VS: vm1 172.25.254.1  隧道的IP:172.25.254.100

   RS: vm2 172.25.254.2  

   RS: vm3 172.25.254.3  

 上一个LVS—DR模式的VIP可能会有影响,因此需要删除原有的VIP。或者是添加新的模块   modprobe ipip 

<1>VS

   (1)配置网络

   vim /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR1=172.25.254.1

   /etc/init.d/network restart

      

      

   2)开启ipvsadm服务,添加隧道

 ip addr add 172.25.254.100/24 dev tunl0  ##添加隧道,并且为隧道添加对外暴露的VIP。

 ip link set up tunl0  ##激活隧道

   /etc/init.d/ipvsadm start

   ipvsadm -ln  ##查看现有的LVS的策略

   ipvsadm -C  ##清除现有的LVS策略

   ipvsadm -ln

         

  为 server1 (即LVS调度器)重新添加策略

   pvsadm -A -t 172.25.254.100:80 -s rr

   ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -i    ## -i 表示隧道模式

   ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -i  ## -i 表示隧道模式

   ipvsadm -ln   ##查看新加入的策略

       

   vim /etc/sysctl.conf       ##开启地址转换功能

net.ipv4.ip_forward = 1

   sysctl -p

      

<2>RS

   vm2,3上的操作都是一样的

 

 ip addr add 172.25.0.1/24 dev tun10  ##添加隧道

 ip link set up dev tun10  ##开启隧道

 sysctl -a |grep rp_filter   ##关闭反向,将参数为1的都改为0

  net.ipv4.conf.all.rp_filter = 0

  net.ipv4.conf.all.arp_filter = 0
  net.ipv4.conf.default.rp_filter = 1
  net.ipv4.conf.default.arp_filter = 0
  net.ipv4.conf.lo.rp_filter = 1
  net.ipv4.conf.lo.arp_filter = 0
  net.ipv4.conf.eth0.rp_filter = 1
  net.ipv4.conf.eth0.arp_filter = 0
  net.ipv4.conf.tunl0.rp_filter = 1
  net.ipv4.conf.tunl0.arp_filter = 0

 sysctl -w net.ipv4.conf.default.rp_filter=0   ##修改参数的命令

 vim /etc/sysctl.conf    ##重新加载后,有一个参数始终不为0,需要在文件中修改

  net.ipv4.ip_forward = 1

  net.ipv4.conf.default.rp_filter = 0

 sysctl -p  ## 使修改的参数生效

   vim /var/www/html/index.html

  <h1>vm2/3-westos.com</h1>

   /etc/init.d/httpd start

<3>客户端测试

   curl 172.25.0.1  ##出现轮询的效果

  <h1>vm2-westos.com</h1>

  <h1>vm3-westos.com</h1>

原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9721249.html