首页 > 其他分享 >2-部署LVS-DR

2-部署LVS-DR

时间:2024-05-11 15:41:28浏览次数:17  
标签:4.15 LVS 部署 lo ipvsadm 192.168 net DR eth0

2.部署LVS-DR

主机 IP
client eth0 :192.168.4.10/24
proxy eth0:0 :192.168.4.15/24
eth0 :192.168.4.5/24
web1 lo:0 :192.168.4.15/32
eth0 :192.168.4.100/24
web2 lo:0 :192.168.4.15/32
eth0 :192.168.4.200/24

DR原理

通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址,源IP/PORT,以及目标IP/PORT均保持不变

DR搭建思路

服务器集群

1.修改lo:0的地址为VIP

2.修改/etc/sysctl.conf,防止地址冲突

3.添加路由:访问vip的报文交给lo:0口处理

调度器

1.修改eth0:0的地址为VIP

2.安装ipvsadm,配置调度规则

配置web1和web2

配置IP
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes
nmcli connection up eth0

vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.4.15        # VIP,即客户访问的IP
NETMASK=255.255.255.255    # 必须为32
NETWORK=192.168.4.15       # 网络地址
BROADCAST=192.168.4.15     # 广播地址

提供web服务
yum -y install httpd
echo "192.168.4.100" > /var/www/html/index.html
systemctl restart httpd

防止地址冲突

cat <<EOF>> /etc/sysctl.conf
# LVS - ARP # 标识,提示用
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
EOF

sysctl -p 

systemctl restart network
systemctl stop firewalld
setenforce 0

添加路由

route add -host VIP地址 dev lo:0
echo "route add -host VIP地址 dev lo:0" >> /etc/rc.d/rc.local

配置proxy

为了防止冲突,VIP必须要配置在网卡的虚拟接口

图形化才有
service NetworkManager stop
chkconfig NetworkManager off

vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.4.15     # VIP
NETMASK=255.255.255.0

systemctl restart network

关闭广播功能(这是优化,可以不做)

vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0

sysctl -p

安装lvs

yum -y install ipvsadm

ipvsadm -C

ipvsadm -A -t 192.168.4.15:80 -s wrr
ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.100 -g -w 1
ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.200 -g -w 1

ipvsadm -Ln
service ipvsadm save
ipvsadm-save -n > /etc/sysconfig/ipvsadm

测试

客户端使用curl命令反复连接http://192.168.4.5,查看访问的页面是否会轮询到不同的后端真实服务器。

健康检查

默认LVS不带健康检查功能,需要自己手动编写动态检测脚本

参考脚本:

判断真实地址通不通,

如果通:查看在不在集群中,不在就添加

若不通:从集群中移除

vim check.sh
#!/bin/bash
net=192.168.4
VIP=192.168.4.15
while :
do
  for i in 100 200
    do
      curl $net.$i &> /dev/null
      if [ $? -eq 0 ];then
        ipvsadm -Ln | grep -q $i || ipvsadm -a -t $VIP:80 -r $net.$i
      else
        ipvsadm -Ln | grep -q $i && ipvsadm -d -t $VIP:80 -r $net.$i:80
      fi
    done
done &

标签:4.15,LVS,部署,lo,ipvsadm,192.168,net,DR,eth0
From: https://www.cnblogs.com/lixunblogs/p/18167145

相关文章

  • 3-LVS工作模式
    3.LVS工作模式NAT  TUN  DRhttps://blog.csdn.net/weixin_40470303/article/details/80541639NAT1.LVS服务器配两块网卡,一块连公网与用户通信,一块连内网与集群通信2.负载路由器充当网关3.支持端口映射,后端真实服务器的地址可能不是80,而是80804.集群节点处于一个网络......
  • RFSOC ZU47DR+KU15P CPCI 信号处理卡
    CPCI信号处理单元,作为新一代大带宽信号处理平台,可实现宽带信号采集、处理和回放等功能,可进行高性能大带宽并行计算,适用于雷达、电子对抗等应用场合。更多信息请加weixin-pt890111获取其主要特性为:标准6U-CPCI板型;板载1片RFSOC,型号为ZU47DR-E1156;板载1片FPGA,型号......
  • KubeKey 部署 K8s v1.28.8 实战
    在某些生产环境下,我们仅需要一个原生的K8s集群,无需部署KubeSphere这样的图形化管理控制台。在我们已有的技术栈里,已经习惯了利用KubeKey部署KubeSphere和K8s集群。今天,我将为大家实战演示如何在openEuler22.03LTSSP3上,利用KubeKey部署一套纯粹的K8s集群。实......
  • 以docker-compose方式部署halo
    1.安装****dockercurl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun安装完成后,使用以下命令启动dockersystemctlstartdocker接下来,使用以下命令将docker设置为开机自启;并重启服务使得更改生效systemctlenabledockersystemctlreboot可以通......
  • 使用 Docker 部署 VS Code in The Browser
    1)介绍GitHub:https://github.com/coder/code-server在日常学习工作中,Vscode已成为我们首选的代码编辑器。然而,其局限性在于当我们从家到公司移动时,难以保持连续的编码体验。针对这一痛点,虽然市面上已有如VisualStudioCodespaces、Cloudstudio和CloudIDE等在线编辑器(Web......
  • android中Room数据库的基本使用
    简介:还在使用原生的sqllite?有这么清爽且稳如狗的room为啥不用呢?Room是Google官方推荐使用的数据库,相比较某些优秀数据库框架来说,不用过于担心某天库会停止维护,且访问数据库非常流畅,并且提供了与常规的ORM框架一样,通过添加编译期注解来进行表和字段的配置,譬如@Database、@Dao、@E......
  • RustDesk 自建服务器部署和使用教程
    RustDesk是一个强大的开源远程桌面软件,是中国开发者的作品,它使用Rust编程语言构建,提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了,GitHub星星数量达到了惊人的64k!与TeamViewer、ToDesk等专有远程访问解决方案相比,RustDesk作为一个开源......
  • 阿里2面:你们部署多少节点?1000W并发,当如何部署?
    阿里2面:你们部署多少节点?1000W并发,当如何部署? 文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技......
  • Linux Debian12 部署MySql 并建立外部连接
    一.下载MySql下载最新软件包。也可以在命令界面下使用下载最新的发行包。wgethttps://repo.mysql.com/mysql-apt-config_0.8.29-1_all.deb下载完成后,使用命令进行安装dpkg-imysql-apt-config_0.8.29-1_all.deb执行完后会跳转到安装MySql配置界面​ TAB进行保......
  • [转帖]Java程序在K8S容器部署CPU和Memory资源限制相关设置
    https://developer.aliyun.com/article/700701  简介: 背景在k8sdocker环境中执行Java程序,因为我们设置了cpu,memory的limit,所以Java程序执行时JVM的参数没有跟我们设置的参数关联,导致JVM感知到的cpu和memory是我们k8s的worknode上的cpu和memory大小。背景在......