LVS - linux 搭建LVS-DR模式

Posted 斯普润布特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS - linux 搭建LVS-DR模式相关的知识,希望对你有一定的参考价值。

                LVS - linux 搭建LVS-DR模式

两台服务器配置虚拟节点和环回路由

  • Direct配置,配置虚拟ip

  • 关闭网络配置管理器,避免网络接口冲突
systemctl stop NetworkManager 
systemctl disable NetworkManager

  • 安装 ipvsadm
    • yum install ipvsadm

  • 测试
    • ipvsadm -Ln

  • 配置虚拟环回,响应路由,Routing配置

  • 切换到网卡配置文件目录: cd /etc/sysconfig/network-scripts
  • 创建环回子配置文件:cp ifcfg-lo ifcfg-lo:1

  • 配置环回子配置文件
DEVICE=lo:1
IPADDR=192.168.50.199
NETMASK=255.255.255.255
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
  • 查看ip配置

 两台服务器配置arp

  • arp配置参数
    • arp-ignore:ARP响应的级别(处理请求)
      • 0:只要本级配置了ip,就能响应请求
      • 1:请求的目标地址到达对应的网络接口才会响应
    • arp-announce:ARP通告行为(返回响应)
      • 0:本机上任何网络接口都向外通告,所有的网卡都能接收到通告
      • 1:尽量避免本网卡与不匹配的目标通告
      • 2:至在本网卡通告
  • 配置文件目录:/etc
  • 编辑配置文件 vim sysctl.conf

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
#所有入为1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
#所有出为2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
  • 把接收到的数据报文让lo去响应 
    • route add -host 192.168.50.177 dev lo:1
  •  配置为开机自启
    • echo "route add -host 192.168.50.177 dev lo:1" >> /etc/rc.local

  •  设置LVS节点,反向代理的入口
    • ipvsadm -A -t 192.168.50.177:80 -s rr -p 5
    • -A:添加集群
    • -t:tcp协议
    • ip地址:设定集群访问的ip,也就是LVS的虚拟ip
    • -s:设置负载均衡的算法,rr表示轮询/wrr表示加权轮询/sh表示源地址散列/dh表示目标地址散列
    • -p:设置连接持久化的时间
  • 添加代理的真实服务器并查看关联状态
    • ipvsadm -A -t 192.168.50.177:80 -s rr -p 5

    • ipvsadm -a -t 192.168.50.177:80 -r *.*.*.160:80 -g (对应真实ip)

    • ipvsadm -a -t 192.168.50.177:80 -r *.*.*.87:80 -g(对应真实ip)

    • ipvsadm -Ln

    • -a:添加真实服务器

    • -t:tcp协议

    • -r:真实服务器的ip地址

    • -g:设定DR模式

  •  保存规则库
    • ipvsadm -S
  • 查看当前状态
    • ipvsadm -Ln --stats

  • LVS基本操作命令 
    • listener(-t添加tcp -u添加udp)
      • 添加:ipvsadm -A -t 192.168.50.60:80 -s rr
      • 修改:ipvsadm -E -t 192.168.50.60:80 -s wrr
      • 删除:ipvsadm -D -t 192.168.50.60:80
    • real server(DR模式)
      • 添加:ipvsadm -a -t 192.168.50.60:80 -r 10.110.38.146:8080 -g -w 20
      • 修改:ipvsadm -e -t 192.168.50.60:80 -r 10.110.38.146:8080 -g -w 10
      • 删除:ipvsadm -d -t 192.168.50.60:80 -r 10.110.38.146:8080
    • 清空所有配置
      • ipvsadm -C
    • 查看规则
      • ipvsadm -Ln
    • 查看当前状态
      • ipvsadm -Ln --stats
    • 保存规则(重启后不会时效)
      • ipvsadm -S
    • 查看持久化连接
      • ipvsadm -Ln --persistent-conn
    • 查看连接请求过期时间以及请求源ip和目标ip
      • ipvsadm -Lnc
    • 查看过期时间
      • ipvsadm -Ln --timeout
    • 详细帮助文档
      • man ipvsadm
  • 测试
    • 前提条件,在在87和160服务器上分别部署了nginx,也分别开启LVS
    • vip192.168.50.177,回环192.168.50.199

  • 访问虚拟ip192.168.50.177,代理到nginx

  •  当停掉任意一节点的LVS,均可正常访问

  • LVS全部宕机,服务无法访问

 

以上是关于LVS - linux 搭建LVS-DR模式的主要内容,如果未能解决你的问题,请参考以下文章

LVS负载均衡群集部署之——DR模式的介绍及搭建步骤

LVS负载均衡群集部署——DR模式的介绍及搭建步骤

LVS-DR模式 搭建过程详解

搭建LVS-DR模式- 为两台RS配置虚拟IP

Keepalived+LVS-DR模式高可用负载均衡集群的搭建

LVS:Linux虚拟服务器,LVS-NAT模式+LVS-DR模式