LVS部署DR集群

介绍

DR(Direct Routing):直接路由,是LVS默认的模式,应用最广泛.
通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址.
整个过程中源IP/PORT,以及目标IP/PORT均保持不变.

原理

首先,DR 模式下,调度器(Director)和真实服务器(Real Server)处于同一个局域网内.它们都拥有自己的物理网络接口,并且都被配置了相同的 VIP(Virtual IP,虚拟 IP 地址)

当客户端向调度器发送请求时,调度器会依据预先设定的负载均衡算法,从可用的真实服务器中挑选出一台适合处理该请求的服务器.

接着,调度器会对数据包进行修改.它会将数据包的目标 MAC 地址更改为所选真实服务器的 MAC 地址.

随后,调度器将修改后的数据包直接发送到局域网中.

由于真实服务器与调度器在同一网络环境中,所以真实服务器能够接收到这个数据包.

真实服务器在收到数据包后,会进行检查.当发现数据包的目标 IP 地址正是自己配置的 VIP 时,就会对该数据包进行处理.

处理完毕后,真实服务器直接将响应数据包发送给客户端,而不再通过调度器进行中转.

实验图

在这里插入图片描述

说明

Client(客户端):测试主机,网络(NAT)
Router(路由器):作为客户端网关(NAT),作为LVS,Server1,Server2网关(仅主机),开启内核路由功能
LVS(调度器):集群调度器,网络(仅主机),环回(VIP)
Server1,Server2(服务器):集群服务器,网络(仅主机),环回(VIP)

部署

客户端

# 假设网卡名字为eth0
vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=172.25.254.200/24,172.25.254.100
method=manual

nmcli connection reload
nmcli connection up eth0 

路由器

# 打开路由内核功能
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf;sysctl -p

# 假设(NAT)网卡名字为eth0
vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=172.25.254.100/24
method=manual



# 假设(仅主机)网卡名字为eth1
vim /etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.0.100/24
method=manual

nmcli connection reload
nmcli connection up eth0
nmcli connection up eth1

调度器

# 假设(仅主机)网卡名字为eth0
vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.50/24,192.168.0.100
method=manual


# 设置VIP
ip addr add dev lo 192.168.0.200/32 # 注意掩码 32,临时添加VIP,重启后失效

# 安装	IPVS	管理工具  
dnf install ipvsadm -y

# 添加策略,分配权重,使用轮询算法
ipvsadm -A -t 192.168.0.200:80 -s rr # VIP
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1 # VIP + 服务器IP
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2 # VIP + 服务器IP

# 查看策略是否添加成功
ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80 rr
  -> 192.168.0.10:80              Route   1      0          0         
  -> 192.168.0.20:80              Route   2      0          0   

nmcli connection reload
nmcli connection up eth0      

服务器

# 假设为HTTP服务器,端口:80
# Server1 : 假设(仅主机)网卡名字为 eth0
vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.10/24,192.168.0.100
method=manual

# Server2 : 假设(仅主机)网卡名字为 eth0
vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.20/24,192.168.0.100
method=manual

# 均安装HTTP服务,均添加VIP
yum install httpd -y
ip addr add dev lo 192.168.0.200/32 # 注意掩码 32

# 均关闭防火墙,SElinux
systemctl stop firewalld;systemctl mask firewalld
grubby --update-kernel ALL--args selinux=0

# 均修改index.html
echo Server - 192.168.0.10 > /var/www/html/index.html # Server1
echo Server - 192.168.0.20 > /var/www/html/index.html # Server2

# 创建Non-ARP环境 临时配置,重启失效
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# 均使网卡生效,服务生效
nmcli connection reload
nmcli connection up eth0
systemctl enable --now httpd.service

配置要点

  • LVS、Server
    • 网关、VIP、网卡模式、网段均相同
  • Client、Router处于同一网段(公网)中
    • Router需要开启路由内核功能

测试

客户端

for i in {1..10}; do curl 192.168.0.200; done
Server - 192.168.0.20
Server - 192.168.0.10
Server - 192.168.0.20
Server - 192.168.0.10
Server - 192.168.0.20
Server - 192.168.0.10
Server - 192.168.0.20
Server - 192.168.0.10
Server - 192.168.0.20
Server - 192.168.0.10
# 可以看见调度器根据算法,平均地将请求发送给后端服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值