LVS-DR模型

caroly 2020年03月17日 120次浏览

LVS-DR模型

负载均衡服务器LVS配置

此操作在地址为『240.131』的虚拟机上进行

一、配置虚拟机RIP

准备4台虚拟机,并配置4台虚拟机的网络:eth0配置在一个网段,DIP(转发的网络地址)、RIP(后端真实主机IP地址)在一个网段。

网络配置

查看4台虚拟机的网络配置,确保它们的网卡都在同一局域网络,设置为『240.131』、『240.132』、『240.133』、『240.134』。

第一台主机做负载均衡服务器LVS,DIP为『192.168.240.131』。其余三台虚拟机eth0对应的IP就是RIP。

二、配置LVS的VIP(虚拟服务器地址)

ifconfig eth0:8 192.168.240.150 netmask 255.255.255.0

此条命令也可以写成如下形式

ifconfig eth0:8 192.168.240.150/24

一个255转换为二进制是八个1,三个255就是24个二进制1,可以简写为『/24』,表示从左向右有24个『1』作为掩码位。

再次查看LVS的网络配置,在eth0下多了个子接口『eth0:8』,地址为『240.150』,广播地址为『240.255』。

网络配置

三、开启转发功能

出于安全考虑,Linux系统默认是禁止数据包转发的。所以转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的IP地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。

先查看一下文件内容:

cat /proc/sys/net/ipv4/ip_forward

可以看到输出结果为0,即收到不是自己的包会丢弃。

不能用『vi』修改该文件,会报错。必须用重定向把『1』覆盖到这个文件中

echo 1 > /proc/sys/net/ipv4/ip_forward

内核转发功能立刻开启,无需重新加载该文件或重启。

RS(真实服务器)配置

此操作在地址为『240.132』、『240.133』的虚拟机上进行

一、调整响应级别
  • arp_ignore:定义接收到ARP请求时候的响应级别。
    • 0:只要本地配置的有相应地址,就给予响应。
    • 1:仅在请求的目标(MAC)地址配置请求到达的接口上的时候,才给予响应。
  • arp_announce:定义将自己地址向外通告时的通告级别。
    • 0:将本地任何接口上的任何地址向外通告。
    • 1:试图仅向目标网络通告与其网络匹配的地址。
    • 2:仅向与本地接口上地址匹配的网络进行通告。

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

这几个文件是内核的映射文件,覆盖后立即生效。也就是说此配置为临时配置,重启后恢复为『0』。

二、配置隐藏VIP

隐藏的VIP需要配置在环回接口的子接口

ifconfig lo:2 192.168.240.150 netmask 255.255.255.255

网络配置

此处配置为四个『255』,避免两个网卡的网络号相同。数据包到达两个网卡,如果网络号相同,会优先选择离内核近的环回接口进行转发,环回接口没有物理网线连接,数据包将发不出去。

服务安装

此操作在地址为『240.132』、『240.133』的虚拟机上进行

yum install httpd -y

安装完后,在页面目录新建一个『html』主页,写入该服务器的地址『192.168.240.132/133』。

vi /var/www/html/index.html

保存退出后分别启动服务。

service httpd start

此时可以在物理机的浏览器验证RS的80端口,确保可以访问到。

负载均衡配置

此操作在地址为『240.131』的虚拟机上进行

安装Linux下的LVS管理工具『ipvsadm』,LVS工作于内核空间,『ipvsadm』提供用户空间的接口。

yum install ipvsadm -y

基本用法如下,分别用于设置虚拟服务算法和后端真实服务器

ipvsadm 选项 服务器地址 -s 算法

ipvsadm 选项 服务器地址 -r 真实服务器地址 [工作模式][权重]......

安装完后添加虚拟服务,调度算法为轮询

ipvsadm -A -t 192.168.240.150:80 -s rr

当前连接情况

让80端口请求通过直连路由转发给两个后端真实服务器

ipvsadm -a -t 192.168.240.150:80 -r 192.168.240.132 -g

ipvsadm -a -t 192.168.240.150:80 -r 192.168.240.133 -g

当前连接情况

配置完后内核立即生效。

结果分析

在物理机的浏览器中访问 192.168.240.150 即可看到效果。

也可以在地址为『240.134』的虚拟机上查看效果

curl 192.168.240.150

请求结果

查看当前ipvs模块中记录的连接

ipvsadm -lnc

连接记录