热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Linux332】LVS的DR配置详解(ipvsadm+arptables)

文章目录1.DR简



文章目录


  • 1. DR简介
  • 2. ipvsadm用法
    • 2.1 ipvsadm参数
    • 2.2 ipvsadm 关于查看结果的解释

  • 3. DR基本配置
    • 3.1 实验环境
    • 3.2 Director Server 配置
    • 3.3 Real Server 配置
    • 3.4 测试访问


1. DR简介

在很多Internet服务中,例如ftp和http,请求的流量往往远远小于回应的流量,VS/DR方式利用这种非对称的特点,只负责调度请求,而Real Server直接将相应的报文返回给客户机。

VS/DR方式是通过改写请求报文中的MAC地址部分来实现的。Director和RealServer必需在物理上有一个网卡通过不间断的局域网相连。 RealServer上绑定的VIP配置在各自Non-ARP的网络设备上(如lo或tunl),Director的VIP地址对外可见,而 RealServer的VIP对外是不可见的。RealServer的地址即可以是内部地址,也可以是真实地址。

在实现VS/DR的方式中,我们配置了两台Router来模拟这种非对称路由的情况,RouterA地址为192.168.0.251, RouterB地址为192.168.0.252。当客户机访问Director时,由RouterA进入,当RealServer返回给客户机信息时,由RouterB出去,根据实际情况您也可以只使用一台或使用多台Router。只要能确保客户发送信息到Director,而且RealServer可以发送信息到客户即可


【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片

2. ipvsadm用法


2.1 ipvsadm参数






ipvsadm 参数


-A
增加一台新的虚拟服务器


-E
编辑内核虚拟服务器表中的一条虚拟服务器记录


-D
删除内核虚拟服务器表中的一条虚拟服务器记录


-C
清除内核虚拟服务器表中的所有记录


-R
恢复虚拟服务器规则


-S
保存虚拟服务器规则,输出为-R 选项可读的格式


-a
在一个虚拟服务器中增加一台新的真实服务器


-e
编辑一条虚拟服务器记录中的某条真实服务器记录


-d
删除一条虚拟服务器记录中的某条真实服务器记录


-L或-l
显示内核虚拟服务器表


-Z
虚拟服务表计数器清零


-c
显示LVS 目前的连接


-n
输出IP 地址和端口的数字形式


-t
说明虚拟服务器提供的是tcp 的服务


-u
说明虚拟服务器提供的是udp 的服务


-f
说明是经过iptables 标记过的服务类型


-s
使用的调度算法
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
默认的调度算法是:wlc


-p
同一个客户的多次请求,被同一台RS处理
timeout 的默认值为300 秒


-r
真实的服务器


-g
指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)


-i
指定LVS 的工作模式为隧道模式


-m
指定LVS 的工作模式为NAT 模式


-w
真实服务器的权值


-h
显示帮助


其他选项

--set tcp tcpfin udp:设置连接超时值
--start-daemon:启动同步守护进程
#后面可以是master或backup,
#用来说明LVS Router是master或是backup。
#在这个功能上也可以采用keepalived的VRRP 功能。
--stop-daemon:停止同步守护进程
--mcast-interface interface:指定组播的同步接口
--timeout:显示tcp tcpfin udp 的timeout 值
--daemon:显示同步守护进程状态
--stats:显示统计信息
--rate:显示速率信息
--sort:对虚拟服务器和真实服务器排序输出



2.2 ipvsadm 关于查看结果的解释



ipvsadm -ln:查看添加的规则

Forward :转发方式
Weight:权重
ActiveConn:活动连接数
InActConn:非活动连接数


ipvsadm -ln -c:查看当前的IPVS连接

pro:协议
expire:还有多长时间过期
state:TCP状态
source:源地址:随机端口
virtual:虚拟集群服务
destination:被lvs-server调度到的RealServer


ipvsadm -ln --stats:查看自规则生效以来的ipvs统计信息

Conns:已经转发过的连接数
InPkts:流入包个数
OutPkts:流出包个数
InBytes:进入流量(字节)
OutBytes:流出流量(字节)


ipvsadm -ln --rate:查看速率信息

CPS:每秒的连接数
InPPS:每秒流入包个数
OutPPS:每秒流出包个数
InBPS:每秒进入流量(字节)
OutBPS:每秒流出流量(字节)



3. DR基本配置


3.1 实验环境





  1. 防火墙状态:Dead
  2. selinux状态:Disabled




  1. vim /etc/sysctl.conf:LVS在VS/NAT、VS/DR和VS/TUN3种方式下均需要打开ip_forward功能

net.ipv4.ip_forward = 1

  1. sysctl -p:可以使配置立即生效,并且重启电脑或network服务后,此设置仍然保存


【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片


Director Server: 负载均衡服务器

  1. hostname:server1
  2. IPADDR0:192.168.43.17
  3. IPADDR1:192.168.17.1(DIP)
  4. GATEWAY:192.168.43.1
  5. VIP:192.168.17.100

Real Server: 真实服务器

  1. server2:192.168.17.2
  2. server3:192.168.17.3



3.2 Director Server 配置





  1. hostname:server1
  2. IPADDR0:192.168.43.17
  3. IPADDR1:192.168.17.1(DIP)
  4. GATEWAY:192.168.43.1
  5. VIP:192.168.17.100




  • 安装ipvs

yum install -y ipvsadm

  • 绑定VIP

ip addr add 192.168.17.100/24 dev 设备名

  • 设置ipvs规则

ipvsadm -A -t 192.168.17.100:80 -s rr:添加集群(指定rr调度算法)

ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.2:80 -g:添加RS到集群(tcp服务)

ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.3:80 -g

  • 保存规则

service ipvsadm save

  • 显示虚拟服务器表

ipvsadm -ln

【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片
【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片

3.3 Real Server 配置




  • 开启地址转换


  1. vim /etc/sysctl.conf:打开ip_forward功能

net.ipv4.ip_forward = 1

  1. sysctl -p


  • 添加VIP

ip addr add 192.168.17.100/24 dev 网卡设备

  • 安装Apache

yum install httpd -y

  • 编辑默认发布页面

echo server2 > /var/www/html/index.html

echo server3 > /var/www/html/index.html

  • 开启httpd服务

systemctl enable --now httpd

3.4 测试访问




  • 使用两次curl命令查看效果:发现在清除缓存后再次测试可能出现不经过调度去直接访问服务器的情况

curl 192.168.17.100

【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片
【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片

  • 解决方法:【在RS主机


  1. yum install -y arptables_jf:安装arptables

  2. arptables -A INPUT -d 172.25.17.100 -j DROP

  3. arptables -A OUTPUT -s 172.25.17.100 -j mangle --mangle-ip-s 192.168.17.X



【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片
【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片

(删除arptables规则用arptables -F即可)

  • 清除缓存后,测试成功!

【Linux33-2】LVS的DR配置详解(ipvsadm+arptables) - 文章图片



推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
author-avatar
yulongguxiang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有