首页 > 其他分享 >LVS-DR群集

LVS-DR群集

时间:2022-11-22 18:45:16浏览次数:28  
标签:ARP LVS 群集 IP 地址 192.168 Server MAC DR

目录 :

1、数据包流向分析

2、DR模式的特点

3、实验

LVS-DR群集

ARP:IP解析MAC   0 0   0   响应报文 源IP --> VIP 目的IP --> CIP 发送响应报文需要经过网关路由器的转发,就需要先对网关IP进行ARP请求获取网关接口的MAC地址(因为主机在发送报文给对目标主机首先需要查询本地的ARP缓存表中有没有目标IP和目标MAC的对应关系,如果有则直接单播发送,如果没有则要先进行ARP广播探测请求解析到目标IP所对应的MAC地址) ARP请求报文 源IP --> VIP 源MAC --> 节点服务器MAC地址 目的IP --> 网关IP 目的MAC --> FF-FF-FF-FF-FF-FF-FF 广播地址   导致的问题: 网关的ARP缓存表 VIP --> 调度器MAC地址 被更新成 节点服务器MAC地址 (此时会造成网关的ARP缓存表的紊乱) 节点服务器物理网卡的IP -> 节点服务器MAC地址   LVS负载均衡群集 --DR模式

数据包流向分析:

(1] 客户端发送请求到 Director Server (负载均衡器) ,请求的数据报文 (源IP 是 CIP,目标 IP 是 VIP) 到达内核空间。 (2) Director Server 利 Real Server在同一个网络中,数据通过二层数据链路层来传输。 (3) 内核空间判断数据包的目标IP是本机VIP,此时IPVS (IP虚拟服务器) 比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。 (4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。 (5) Real Server 直接将响应报文传送到客户端。  

DR模式的特点:

(1) Director Server 和 Real Server 必须在同一个物理网络中。 (2) Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP 进行直接访问。 (3) Director Server作为群集的访问入口,但不作为网关使用。 (4) 所有的请求报文经由 Director Server,但回复响应报文不能经过Director Server。 (5) Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。 (6)Real Server 上的lo接口配置VIP的IP地址 重点: /etc/sysctl.conf arp_igore=1 防止网关路由器发送ARP广播时调度器和节点服务器都进行响应,导致ARP缓存表絮乱不对非本地物理网卡IP的ARP请求进行响应,因为VIP时承载lo:0 arp_announce=2 系统不使用响应数据包源IP地址 (VIP) 来作为本机进行ARP请求报文的源IP地址,而是用发送报文的物理网卡的IP地址作为ARP请求报文的源IP地址,这样可以防止网关路由器接受到源IP地址为VIP地址的ARP请求报文后有更新ARP缓存表,导致外网再发送请求时,数据包到不了 调度器。  

实验:

DR模式 LVS负载均衡群集部署 DR 服务器:192.168.63.100 Web 服务器1:192.168.63.130 Web 服务器2:192.168.63.150 vip:192.168.63.188 客户端:192.168.63.110 1.配置负载调度器(192.168.63.100) systemctl stop firewalld.service setenforce 0 modprobe ip_vs cat /proc/net/ip_vs yum -y install ipvsadm (1)配置虚拟 IP 地址(VIP:192.168.63.188) cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens33:0 #若隧道模式,复制为ifcfg-tunl0 vim ifcfg-ens33:0 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.63.188 NETMASK=255.255.255.255 ifup ens33:0 ifconfig ens33:0 (2)调整 proc 响应参数 #由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。 vim /etc/sysctl.conf net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0 sysctl -p (3)配置负载分配策略 ipvsadm-save > /etc/sysconfig/ipvsadm systemctl start ipvsadm ipvsadm -C ipvsadm -A -t 192.168.63.188:80 -s rr ipvsadm -a -t 192.168.63.188:80 -r 192.168.80.130:80 -g #若隧道模式,-g替换为-i ipvsadm -a -t 192.168.80.188:80 -r 192.168.80.150:80 -g ipvsadm ipvsadm -ln #查看节点状态,Route代表 DR模式 2.部署共享存储(NFS服务器:192.168.63.110) systemctl stop firewalld.service setenforce 0 yum -y install nfs-utils rpcbind mkdir /opt/kgc /opt/benet chmod 777 /opt/kgc /opt/benet vim /etc/exports /usr/share *(ro,sync) /opt/kgc 192.168.63.0/24(rw,sync) /opt/benet 192.168.63.0/24(rw,sync) systemctl start rpcbind.service systemctl start nfs.service 3.配置节点服务器(192.168.63.130、192.168.63.150) systemctl stop firewalld.service setenforce 0 (1)配置虚拟 IP 地址(VIP:192.168.63.188) #此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。 cd /etc/sysconfig/network-scripts/ cp ifcfg-lo ifcfg-lo:0 vim ifcfg-lo:0 DEVICE=lo:0 ONBOOT=yes IPADDR=192.168.63.188 NETMASK=255.255.255.255 #注意:子网掩码必须全为 1 ifup lo:0 ifconfig lo:0 route add -host 192.168.63.188 dev lo:0 vim /etc/rc.local /sbin/route add -host 192.168.63.188 dev lo:0 chmod +x /etc/rc.d/rc.local (2)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突 vim /etc/sysctl.conf ...... net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求 net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 sysctl -p 或者 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 -p yum -y install nfs-utils rpcbind httpd systemctl start rpcbind systemctl start httpd --192.168.63.130--- mount.nfs 192.168.63.110:/opt/kgc /var/www/html echo 'this is kgc web!' > /var/www/html/index.html --192.168.80.150--- mount.nfs 192.168.63.110:/opt/benet /var/www/html echo 'this is benet web!' > /var/www/html/index.html 4.测试 LVS 群集 在客户端使用浏览器访问 http://192.168.63.188/

 

 

 

 

标签:ARP,LVS,群集,IP,地址,192.168,Server,MAC,DR
From: https://www.cnblogs.com/qfrg/p/16916085.html

相关文章

  • ebpf-2——Android中的eBPF程序
    一、简介1.Android从9.0版本开始全面支持eBPF,其主要用在流量统计上。此外,eBPF可以与内核的kprobe/tracepoints/skfilter等模块相结合,hook内核事件从而监控相应的系统......
  • Android开发 内容提供者ContentProvider
    前言ContentProvider内容提供者属于Android四大组件之一,是用来让App将一些共享数据提供给外部操作的组件。一般情况下是配合数据库使用,将数据库内容外露给外部进行增......
  • Apache Cassandra 的 Spring Data(数据)
    版本4.0.0SpringDataforApacheCassandra项目将核心Spring概念应用于使用CassandraColumnar数据存储开发解决方案。“模板”作为存储和查询文档的高级抽象提供。......
  • Apache Cassandra 的 Spring Data(数据)(二)
    8.简介参考文档的这一部分解释了SpringDataforApacheCassandra提供的核心功能。CassandraSupport引入了Cassandra模块功能集。反应式Cassandra支持解释了反应式......
  • Apache Cassandra 的 Spring Data(数据)(三)
    13.反应式Cassandra存储库本章概述了ApacheCassandra的反应式存储库支持所处理的特性。它建立在Cassandra 存储库中解释的核心存储库基础架构之上,因此您应该对其中......
  • Apache Cassandra 的 Spring Data(数据)附录(四)
    附录A:命名空间引用元素​​<repositories/>​​该元素触发了Spring数据存储库基础结构的设置。最重要的属性是,它定义了要扫描Spring数据存储库接口的包。请参阅“​​......
  • android开发Installed Build Tools revision 33.0.0 is corrupted. Remove and instal
    InstalledBuildToolsrevision33.0.0iscorrupted.RemoveandinstallagainusingtheSDKManager.在你的androidsdk安卓目录中找到buildtools目录中的d8.bat,......
  • antdv drawer 在界面中做抽屉父级不被撑开 bug
    问题描述*.当放置于容器内时-无法与平级共享父级,而是定位与父级之上,且其外边无法被自动撑开*.被超出隐藏无法将元素定位于弹窗左侧效果图constwidth=300;<divc......
  • 自动增加 Android App 的版本号
    一般的C#应用程序中都有一个AssemblyInfo.cs文件,其中的AssemblyVersionattribute就可以用来设置该应用程序的版本号。譬如,[assembly:AssemblyVersion("1.0.*")]......
  • LVS负载均衡群集
    目录:1、企业群集分类1.1负载均衡群集1.2高可用群集1.3高性能群集2、负载均衡架构3、工作模式3.1地址转换(NAT)3.2IP隧道(TUN)3.3直接路由(DR)......