13916729435 发表于 2019-1-4 10:57:28

RHEL6 搭建LVS/DR 负载均衡集群 案例

  搭建LVS/DR 负载均衡集群 案例
  

  实验拓扑图:
  http://s1.运维网.com/images/20180112/1515760936673488.jpg
  

  操作流程:
  Director Server :      192.168.4.50 pc50
  安装并启用ipvsadm
  配置辅助IP地址
  创建虚拟服务器,向虚拟服务器中加入节点
  
  Real Server:      192.168.4.51 pc51      192.168.4.52 pc52
  配置WEB 服务器
  配置辅助IP地址,调整内核参数
  
  Clinet :192.168.4.253 pc253
  连接虚拟服务器测试
  

  环境准备:
  配置yum源
  # service iptables stop    //关闭防火墙
  # chkconfig iptables off    //关闭开机自启
  # setenforce 0                  //设置SELinux 为宽松模式
  实施步骤:
   配置后端网站服务器pc51 / pc52
  
  运行网站服务并编写网页文件
      # yum -y install httpd
      # echo '192.168.4.51' > /var/www/html/test.html
      # echo "192.168.4.52" > /var/www/html/test.html
      # service httpd start
      # chkconfig httpd on
      # yum -y install elinks
      # elinks --dump http://localhost/test.html
      192.168.4.51
      # elinks --dump http://localhost/test.html
      192.168.4.52
  绑定VIP地址
  # ifconfig lo:1 192.168.4.252/32    //只拥有ip 就可以
  # ifconfig lo:1
  lo:1      Link encap:Local Loopback
  inet addr:192.168.4.252Mask:0.0.0.0
  UP LOOPBACK RUNNINGMTU:65536Metric:1
            *解绑lo:1 上 ip地址 (两种方法):
                #ifdown lo;ifup lo;
                #service network restart
  ARP 广播的问题:

  当客户端发起访问VIP 对应的域名的请求时,根据网络通信原理会产生ARP广播

  因为负载均衡器和真实的服务器在同一网络并且VIP 设置在集群中的每个节点上

  此时集群内的真实服务器会尝试回答来自客户端的ARP广播,就会产生文题,大家都称自己时VIP

  

  修改网路接口的运行参数
  内核参数说明:
  arp_ignore (定义回复ARP广播的方式)

  — 0 (默认值)回应所有本地地址ARP广播,本地地址可以配置在任意网络接口

  — 1 只回应配置在入站网卡接口上的任意IP地址的ARP广播

  arp_announce   

  — 0 (默认值) 使用配置在任意网卡接口上的本地IP地址

  — 2 对查询目标使用最适合的本地地址。在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址。首要是选择所有的网路接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址发现,将选择当前的发送网络接口或其他有可能接受到的ARP回应的网络接口来进行发送。
  # cd /proc/sys/net/ipv4/conf/
  # ls
  alldefaulteth0eth1eth2eth3lo
  //临时配置 重启动网络服务失效
  # echo 1 > lo/arp_ignore
  # cat lo/arp_ignore
  1
  # echo 2 > lo/arp_announce
  # cat lo/arp_announce
  2
  # echo 1 > all/arp_ignore
  # cat all/arp_ignore
  1
  # echo 2 > all/arp_announce
  # cat all/arp_announce
  2
   配置分发器 pc50
   装包 ipvsadm
    # mount /dev/cdrom /mnt/
    //安装 ipvsadm   rpm 包在光盘挂载文件下的LoadBalancer目录下
    #cd /mnt/LoadBalancer/
    #yum -y install ipvsadm-1.26-4.el6.x86_64.rpm
  配置VIP地址
  # ifconfig eth0:1 192.168.4.252/32
  # ifconfig eth0:1
  eth0:1    Link encap:EthernetHWaddr 64:52:02:32:01:01
  inet addr:192.168.4.252Bcast:255.255.255.255Mask:0.0.0.0
  UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
  创建虚拟服务
  # ipvsadm -A -t 192.168.4.252:80 -s rr
  # ipvsadm -L
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP192.168.4.252:http rr
  添加 real server 节点
  # ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.51:80 -g
  # ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.52:80 //不指定模式 默认为DR
  # ipvsadm -L
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP192.168.4.252:http rr
  -> 192.168.4.51:http            Route   1      0          0
  -> 192.168.4.52:http            Route   1      0          0
  保存配置,查看配置
  # service ipvsadm save//使配置永久生效
  # cat /etc/sysconfig/ipvsadm      //查看ipvsadm 配置
  -A -t 192.168.4.252:80 -s rr
  -a -t 192.168.4.252:80 -r 192.168.4.51:80 -g -w 1
  -a -t 192.168.4.252:80 -r 192.168.4.52:80 -g -w 1
  客户端访问
  访问VIP 地址 看是否能够实现负载均衡
  # ifconfig eth0 | grep HWaddr
  eth0      Link encap:EthernetHWaddr 64:52:02:32:01:01
  # ifconfig eth0 | grep HWaddr
  eth0      Link encap:EthernetHWaddr 64:52:02:32:02:01
  # ifconfig eth0 | grep HWaddr
  eth0      Link encap:EthernetHWaddr 64:52:02:32:03:01
  

  # arping -c 2 192.168.4.252
  ARPING 192.168.4.252 from 192.168.4.253 eth0
  Unicast reply from 192.168.4.252 0.820ms
  Unicast reply from 192.168.4.252 0.803ms
  Sent 2 probes (1 broadcast(s))
  Received 2 response(s)
  

  # elinks --dump http://192.168.4.252/test.html
  192.168.4.52
  # elinks --dump http://192.168.4.252/test.html
  192.168.4.51
  # elinks --dump http://192.168.4.252/test.html
  192.168.4.52
      //客户端 轮询到不同的后端真实服务器   

  

  # ipvsadm -Ln --stats
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port               Conns   InPktsOutPktsInBytes OutBytes
  -> RemoteAddress:Port
  TCP192.168.4.252:80               3       15      0   1272      0
  -> 192.168.4.51:80                     1      5         0      424          0
  -> 192.168.4.52:80                     2       10      0      848          0
  

  


  

  




页: [1]
查看完整版本: RHEL6 搭建LVS/DR 负载均衡集群 案例