当前位置: 代码网 > 服务器>服务器>Linux > LVS的DR模式部署实例

LVS的DR模式部署实例

2026年01月27日 Linux 我要评论
一、部署前提1.准备至少 3 台 linux 服务器(1 台 director,2 台及以上 real server),均为 centos/rhel 或 ubuntu 系统。2.所有服务器处于同一局域

一、部署前提

1.准备至少 3 台 linux 服务器(1 台 director,2 台及以上 real server),均为 centos/rhel 或 ubuntu 系统。

2.所有服务器处于同一局域网,关闭防火墙和 selinux(或配置对应规则)。

3.规划 ip 地址

  • director:公网 / 内网 ip(如 192.168.1.100) + vip(如 192.168.1.200
  • real server 1:内网 ip(如 192.168.1.101) + vip(回环地址)
  • real server 2:内网 ip(如 192.168.1.102) + vip(回环地址)

二、所有节点基础配置

1.关闭防火墙和 selinux

# centos/rhel 7+
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/^selinux=.*/selinux=disabled/' /etc/selinux/config

# ubuntu
ufw disable

2.安装 ipvsadm 工具(lvs 管理工具)

# centos/rhel
yum install -y ipvsadm

# ubuntu
apt update && apt install -y ipvsadm

三、 director 节点配置

1.配置 vip

给 director 的网卡(如 eth0)绑定 vip:

# 临时配置(重启失效)
ip addr add 192.168.1.200/32 dev eth0

# 永久配置(centos/rhel,写入网卡配置文件)
cat >> /etc/sysconfig/network-scripts/ifcfg-eth0:0 << eof
type=ethernet
bootproto=static
name=eth0:0
device=eth0:0
ipaddr=192.168.1.200
netmask=255.255.255.255
onboot=yes
eof

# 重启网卡
ifup eth0:0

2.配置 lvs 规则

使用 ipvsadm 创建虚拟服务,指定调度算法(如 rr 轮询),并添加 real server:

# 清除原有规则
ipvsadm -c

# 添加虚拟服务(vip:80,tcp协议,rr调度算法)
ipvsadm -a -t 192.168.1.200:80 -s wrr

# 添加 real server,指定 dr 模式(-g)
ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101 -g -w 1
ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102 -g -w 1

# 保存规则(重启后生效)
ipvsadm -s > /etc/sysconfig/ipvsadm
systemctl enable --now ipvsadm
  • 调度算法可选:rr(轮询)、wrr(加权轮询)、lc(最小连接数)等。
  • -g 表示 dr 模式,这是 dr 部署的关键参数。

3.开启 ip 转发(可选)

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

四、 real server 节点配置(所有 rs 执行相同操作)

1.配置 vip 回环地址

避免 vip 冲突,需在回环网卡 lo 上绑定 vip,并设置子网掩码为 255.255.255.255

# 临时配置
ip addr add 192.168.1.200/32 dev lo
ip link set lo up

# 永久配置(centos/rhel)
cat >> /etc/sysconfig/network-scripts/ifcfg-lo:0 << eof
type=ethernet
bootproto=static
name=lo:0
device=lo:0
ipaddr=192.168.1.200
netmask=255.255.255.255
onboot=yes
eof

# 重启网卡
ifup lo:0

2.禁止 arp 广播 vip

这是 dr 模式的核心配置,目的是让 real server 不对外响应 vip 的 arp 请求,仅 director 响应 arp:

# 临时生效
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# 永久生效(写入 sysctl.conf)
cat >> /etc/sysctl.conf << eof
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
eof

sysctl -p
  • arp_ignore=1:只响应目标 ip 是本地网卡 ip 的 arp 请求。
  • arp_announce=2:发送 arp 时,使用网卡的真实 ip 作为源 ip,而非 vip。

3.部署后端服务

在 real server 上部署 web 服务(如 nginx、apache),用于测试:

# 安装 nginx
yum install -y nginx
systemctl enable --now nginx

# 编写测试页面(区分不同 rs)
# rs1
echo "real server 1 - 192.168.1.101" > /usr/share/nginx/html/index.html
# rs2
echo "real server 2 - 192.168.1.102" > /usr/share/nginx/html/index.html

五、测试验证

1.在客户端(同一网段或能访问 vip 的机器)访问 http://192.168.1.200

2.多次刷新页面,会交替显示 real server 1real server 2 的内容,说明 lvs dr 模式生效。

3.在 director 节点查看 lvs 状态:

ipvsadm -ln

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com