一什么是集群1.1集群ClusterCluster: 集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统二集群分类2.1Cluster常见的三种类型LBLoadBalancing负载均衡目标将大量的并发访问请求按照特定算法分摊给多台服务器处理以此提高整个系统的响应能力和吞吐量特点依赖前端的负载调度器来分发请求能处理高并发、高负载的场景HAHigh Availiablity高可用目标最大限度地减少服务中断时间确保关键业务或服务的连续性和稳定性特点通过“主从”或“双工”模式实现故障自动切换消除故障HPCHigh-performance computing超算天河一号等目标汇聚多台服务器的计算资源完成单台服务器无法胜任的复杂计算任务特点将计算任务拆分并行处理三lvs的作用LVSLinux Virtual Server的核心作用是实现一个高性能、高可用的负载均衡集群lvs集群体系结构VSVirtual Server调度器RSReal Server 真实业务主机CIPClient IP 客户端主机的ipVIP: Virtual serve IP VS外网的IP 对外开放的让客户访问的ipDIP: Director IP VS内网的IP 调度器负责访问内网的ipRIP: Real server IP 真实业务主机IP )工作原理 VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS根据调度算法来挑选RS四lvs的4种模式及原理4.1:lvs集群的类型lvs-nat 修改请求报文的目标IP,多目标IP的DNATlvs-dr 操纵封装新的MAC地址lvs-tun 在原请求IP报文之外新加一个IP首部lvs-fullnat 修改请求报文的源和目标IP4.2:nat模式原理:通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和 PORT实现转发特点请求报文和响应报文都必须经由Director转发Director易于成为系统瓶颈RIP和DIP应在同一个IP网络且应使用私网址RS的网关要指向DIP支持端口映射可修改请求报文的目标PORTVS必须是Linux系统RS可以是任意OS系统nat模式数据逻辑nat模式数据逻辑1.客户端发送访问请求请求数据包中含有请求来源cip访问目标地址VIP访问目标端口 9000port2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口3.RS1相应请求发送响应数据包包中的相应保温为数据来源RIP1响应目标CIP相应端口 9000port4.VS服务器接收到响应数据包改变包中的数据来源RIP1--VIP,响应目标端口 9000 --805.VS服务器把修改过报文的响应数据包回传给客户端 6.lvs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机所以lvs的调度机容易阻塞4.3:DR模式原理:LVS通过修改请求报文的目标MAC地址将请求在局域网内直接转发给选中的RS。RS直接将响应返回给客户端不经过LVS特点1.请求经过LVS响应直接返回性能最高2.LVS和RS必须在同一个物理网段3.不支持端口映射4.需在RS上配置VIP并抑制ARP响应DR模式数据传输过程1.客户端发送数据帧给vs调度主机帧中内容为客户端IP客户端的MACVIPVIP的MAC2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC此时帧中的数据为客户端IP客户端 的MACVIPRS1的MAC3.RS1得到2中的数据包做出响应回传数据包数据包中的内容为VIPRS1的MAC客户端IP客户端IP的 MAC4.4:TUN模式:转发方式不修改请求报文的IP首部源IP为CIP目标IP为VIP而在原IP报文之外再封装一个IP首部 源IP是DIP目标IP是RIP将报文发往挑选出的目标RSRS直接响应给客户端源IP是VIP目标IP 是CIP特点:1.DIP, VIP, RIP都应该是公网地址2.RS的网关一般不能指向DIP3.请求报文要经由Director但响应不能经由Director4.不支持端口映射5.RS的OS须支持隧道功能4.5: fullnet模式原理LVS同时修改请求报文的源IP和目标IPSNATDNAT将其转发给RS。响应报文也必须回到LVS再修改后返回特点1.VIP是公网地址RIP和DIP是私网地址且通常不在同一IP网络因此RIP的网关一般不会指向DIP2.RS收到的请求报文源地址是DIP因此只需响应给DIP但Director还要将其发往Client3.请求和响应报文都经由Director4.支持端口映射五lvs的13种算法5.1:静态调度算法1、RRroundrobin 轮询RS分别被调度当RS配置有差别时不推荐2、WRRWeighted RR加权轮询根据RS的配置进行加权调度性能差的RS被调度的次数少3、SHSource Hashing实现session sticky源IP地址hash将来自于同一个IP地址的请求始终发往 第一次挑中的RS从而实现会话绑定4、DHDestination Hashing目标地址哈希第一次轮询调度至RS后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS典型使用场景是正向代理缓存场景中的负载均衡如宽带运营商5.2:动态调度算法1、LCleast connections最少链接发适用于长连接应用Overhead负载值activeconns活动链接数 x 256inactiveconns非活 动链接数2、WLCWeighted LC权重最少链接默认调度方法Overhead(activeconns x 256inactiveconns)/weight3、SEDShortest Expection Delay初始连接高权重优先Overhead(activeconns1inactiveconns) x 256/weight 但是当node1的权重为1node2的权重为10经过运算前几次的调度都会被node2承接4、NQNever Queue第一轮均匀分配后续SED5、LBLCLocality-Based LC动态的DH算法使用场景根据负载状态实现正向代理6、LBLCRLBLC with Replication带复制功能的LBLC解决LBLC负载不均衡问题从负载重的复制 到负载轻的RS六lvs的多端口轮询问题解决方案为什么LVS在默认情况下会基于VIP:Port独立进行调度。这意味着同一个客户端的HTTP请求80端口和HTTPS请求443端口可能会被LVS分发到两台不同的后端服务器上。如果应用程序的会话状态如用户登录信息、购物车保存在单台服务器本地这就会导致“会话割裂”问题。解决方式利用火墙标记解决轮询错误1.启动RS的https服务#RS1: [rootRS1 ~]# dnf install mod_ssl -y [rootRS1 ~]# systemctl restart httpd #RS2: [rootRS2 ~]# dnf install mod_ssl -y [rootRS2 ~]# systemctl restart httpd2.在vsnode中添加https的轮询策略[rootvsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20 -g [rootvsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10 -g #默认20080先前已经配置了没有的原理和配置和200:443相同 [rootvsnode boot]# ipvsadm -A -t 192.168.0.200:443 -s rr [rootvsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.10:443 -g [rootvsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.20:443 -g #查询 [rootvsnode boot]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) 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 1 0 0 TCP 192.168.0.200:443 rr - 192.168.0.10:443 Route 1 0 0 - 192.168.0.20:443但此时未配置火墙会出现轮询重复的问题解决方式[rootvsnode boot]# iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666 #其中标记为6666为自定义的不强制要求 [rootvsnode boot]# ipvsadm -A -f 6666 -s rr [rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.10 -g [rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.20 -g此时查询将会解决[rootclient ~]# curl 192.168.0.200;curl -k https://192.168.0.200 RS2 - 192.168.0.20 RS1 - 192.168.0.10 #显示内容为echo 在RS1,2中写入index的七lvs的会话粘滞解决方案会话粘滞Session Stickiness是解决“来自同一客户端的请求应始终发往同一台后端服务器”问题的统称。LVS提供了更常用和通用的方法持久连接。设定ipvs调度策略[rootvsnode ~]# ipvsadm -A -f 6666 -s rr -p 1 #设定为-p 1,是为了更快的检测结果不强制要求一定要是1s左右 [rootvsnode ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn FWM 6666 rr persistent 1 - 192.168.0.10:0 Route 1 0 0 - 192.168.0.20:0#第一次访问 [rootclient ~]# curl 192.168.0.200 RS1 - 192.168.0.10 #在设定时间内再次尝试 [rootclient ~]# curl 192.168.0.200 RS1 - 192.168.0.10PS实验环境(以DR为例)虚拟机要求1台客户端client可以连接的NAT网卡1台路由负责在内部网络和外网访问NAT仅主机的卡1台调度器用于分发多台简单设置为2台RS服务器配置IP设定IP #客户端 172.25.254.99 #路由器 172.25.254.100 192.168.0.100 #vsnode 调度器 192.168.0.50 #RS1 192.168.0.10 #RS2 192.168.0.20 #配置ip是可以提前配置相关脚本或使用vim直接进入进行修改 #使用前记得检查查看ip a查看自己是否添加的先关的网卡和卡名是否和输入对应调度器配置#调度器 [rootvsnode ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection #添加修改 [connection] ideth0 typeethernet interface-nameeth0 [ipv4] methodmanual address1192.168.0.50/24,192.168.0.100 [rootvsnode ~]# cd /etc/NetworkManager/system-connections/ [rootvsnode system-connections]# cp -p eth0.nmconnection lo.nmconnection #设定lo拷贝只是为了方便配置 [rootvsnode system-connections]# vim lo.nmconnection [connection] idlo typeloopback interface-namelo [ipv4] methodmanual address1127.0.0.1/8 address2192.168.0.200/32 [rootRS1 system-connections]# nmcli connection reload #重新加载并连接 [rootRS1 system-connections]# nmcli connection up eth0 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/7 [rootRS1 system-connections]# nmcli connection up lo 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/8 #检测 rootvsnode system-connections]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 #(结果以自己设定的为准)客户端[rootclient ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0 [ipv4] methodmanual address1172.25.254.99/24,172.25.254.100 dns8.8.8.8; [rootclient ~]# nmcli connection reload [rootclient ~]# nmcli connection up eth0 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/5 [rootclient ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.25.254.100 0.0.0.0 UG 100 0 0 eth0 172.25.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0路由器[rootrouter ~]# systemctl disable --now ipvsadm.service [rootrouter ~]# ipvsadm -C #停止并清空 [rootrouter ~]# vmset.sh eth0 172.25.254.100 vsnode [rootrouter ~]# vmset.sh eth1 192.168.0.100 vsnode noroute #设定内核路由功能 [rootrouter ~]# echo net.ipv4.ip_forward1 /etc/sysctl.conf [rootrouter ~]# sysctl -p net.ipv4.ip_forward 1 #数据转发策略 [rootrouter ~]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100 #此处在vsnode.. [rootvsnode ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100RS:(RS1,RS2都需要进行配置[rootRS1 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100 [rootRS1 ~]# nmcli connection reload [rootRS1 ~]# nmcli connection up eth0 [rootRS1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 #在lo上设定vip [rootRS1 ~]# cd /etc/NetworkManager/system-connections/ [rootRS1 system-connections]# cp -p eth0.nmconnection lo.nmconnection [rootRS1 system-connections]# vim lo.nmconnection [connection] idlo typeloopback interface-namelo [ethernet] [ipv4] address1127.0.0.1/8 address2192.168.0.200/32 methodmanual [rootRS1 system-connections]# nmcli connection reload [rootRS1 system-connections]# nmcli connection up lo 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/6 #arp禁止响应 [rootrs2 ~]# echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore [rootrs2 ~]# echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore [rootrs2 ~]# echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce [rootrs2 ~]# echo 2 /proc/sys/net/ipv4/conf/all/arp_announce(记得修改后要重启如果不通分别查看每个是否能ping通互联能否转发vip配置等六七都可再次基础上操作或使用简化的1分发vs2RS进行操作
LVS相关知识点总结-一
一什么是集群1.1集群ClusterCluster: 集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统二集群分类2.1Cluster常见的三种类型LBLoadBalancing负载均衡目标将大量的并发访问请求按照特定算法分摊给多台服务器处理以此提高整个系统的响应能力和吞吐量特点依赖前端的负载调度器来分发请求能处理高并发、高负载的场景HAHigh Availiablity高可用目标最大限度地减少服务中断时间确保关键业务或服务的连续性和稳定性特点通过“主从”或“双工”模式实现故障自动切换消除故障HPCHigh-performance computing超算天河一号等目标汇聚多台服务器的计算资源完成单台服务器无法胜任的复杂计算任务特点将计算任务拆分并行处理三lvs的作用LVSLinux Virtual Server的核心作用是实现一个高性能、高可用的负载均衡集群lvs集群体系结构VSVirtual Server调度器RSReal Server 真实业务主机CIPClient IP 客户端主机的ipVIP: Virtual serve IP VS外网的IP 对外开放的让客户访问的ipDIP: Director IP VS内网的IP 调度器负责访问内网的ipRIP: Real server IP 真实业务主机IP )工作原理 VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS根据调度算法来挑选RS四lvs的4种模式及原理4.1:lvs集群的类型lvs-nat 修改请求报文的目标IP,多目标IP的DNATlvs-dr 操纵封装新的MAC地址lvs-tun 在原请求IP报文之外新加一个IP首部lvs-fullnat 修改请求报文的源和目标IP4.2:nat模式原理:通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和 PORT实现转发特点请求报文和响应报文都必须经由Director转发Director易于成为系统瓶颈RIP和DIP应在同一个IP网络且应使用私网址RS的网关要指向DIP支持端口映射可修改请求报文的目标PORTVS必须是Linux系统RS可以是任意OS系统nat模式数据逻辑nat模式数据逻辑1.客户端发送访问请求请求数据包中含有请求来源cip访问目标地址VIP访问目标端口 9000port2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口3.RS1相应请求发送响应数据包包中的相应保温为数据来源RIP1响应目标CIP相应端口 9000port4.VS服务器接收到响应数据包改变包中的数据来源RIP1--VIP,响应目标端口 9000 --805.VS服务器把修改过报文的响应数据包回传给客户端 6.lvs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机所以lvs的调度机容易阻塞4.3:DR模式原理:LVS通过修改请求报文的目标MAC地址将请求在局域网内直接转发给选中的RS。RS直接将响应返回给客户端不经过LVS特点1.请求经过LVS响应直接返回性能最高2.LVS和RS必须在同一个物理网段3.不支持端口映射4.需在RS上配置VIP并抑制ARP响应DR模式数据传输过程1.客户端发送数据帧给vs调度主机帧中内容为客户端IP客户端的MACVIPVIP的MAC2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC此时帧中的数据为客户端IP客户端 的MACVIPRS1的MAC3.RS1得到2中的数据包做出响应回传数据包数据包中的内容为VIPRS1的MAC客户端IP客户端IP的 MAC4.4:TUN模式:转发方式不修改请求报文的IP首部源IP为CIP目标IP为VIP而在原IP报文之外再封装一个IP首部 源IP是DIP目标IP是RIP将报文发往挑选出的目标RSRS直接响应给客户端源IP是VIP目标IP 是CIP特点:1.DIP, VIP, RIP都应该是公网地址2.RS的网关一般不能指向DIP3.请求报文要经由Director但响应不能经由Director4.不支持端口映射5.RS的OS须支持隧道功能4.5: fullnet模式原理LVS同时修改请求报文的源IP和目标IPSNATDNAT将其转发给RS。响应报文也必须回到LVS再修改后返回特点1.VIP是公网地址RIP和DIP是私网地址且通常不在同一IP网络因此RIP的网关一般不会指向DIP2.RS收到的请求报文源地址是DIP因此只需响应给DIP但Director还要将其发往Client3.请求和响应报文都经由Director4.支持端口映射五lvs的13种算法5.1:静态调度算法1、RRroundrobin 轮询RS分别被调度当RS配置有差别时不推荐2、WRRWeighted RR加权轮询根据RS的配置进行加权调度性能差的RS被调度的次数少3、SHSource Hashing实现session sticky源IP地址hash将来自于同一个IP地址的请求始终发往 第一次挑中的RS从而实现会话绑定4、DHDestination Hashing目标地址哈希第一次轮询调度至RS后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS典型使用场景是正向代理缓存场景中的负载均衡如宽带运营商5.2:动态调度算法1、LCleast connections最少链接发适用于长连接应用Overhead负载值activeconns活动链接数 x 256inactiveconns非活 动链接数2、WLCWeighted LC权重最少链接默认调度方法Overhead(activeconns x 256inactiveconns)/weight3、SEDShortest Expection Delay初始连接高权重优先Overhead(activeconns1inactiveconns) x 256/weight 但是当node1的权重为1node2的权重为10经过运算前几次的调度都会被node2承接4、NQNever Queue第一轮均匀分配后续SED5、LBLCLocality-Based LC动态的DH算法使用场景根据负载状态实现正向代理6、LBLCRLBLC with Replication带复制功能的LBLC解决LBLC负载不均衡问题从负载重的复制 到负载轻的RS六lvs的多端口轮询问题解决方案为什么LVS在默认情况下会基于VIP:Port独立进行调度。这意味着同一个客户端的HTTP请求80端口和HTTPS请求443端口可能会被LVS分发到两台不同的后端服务器上。如果应用程序的会话状态如用户登录信息、购物车保存在单台服务器本地这就会导致“会话割裂”问题。解决方式利用火墙标记解决轮询错误1.启动RS的https服务#RS1: [rootRS1 ~]# dnf install mod_ssl -y [rootRS1 ~]# systemctl restart httpd #RS2: [rootRS2 ~]# dnf install mod_ssl -y [rootRS2 ~]# systemctl restart httpd2.在vsnode中添加https的轮询策略[rootvsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20 -g [rootvsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10 -g #默认20080先前已经配置了没有的原理和配置和200:443相同 [rootvsnode boot]# ipvsadm -A -t 192.168.0.200:443 -s rr [rootvsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.10:443 -g [rootvsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.20:443 -g #查询 [rootvsnode boot]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) 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 1 0 0 TCP 192.168.0.200:443 rr - 192.168.0.10:443 Route 1 0 0 - 192.168.0.20:443但此时未配置火墙会出现轮询重复的问题解决方式[rootvsnode boot]# iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666 #其中标记为6666为自定义的不强制要求 [rootvsnode boot]# ipvsadm -A -f 6666 -s rr [rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.10 -g [rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.20 -g此时查询将会解决[rootclient ~]# curl 192.168.0.200;curl -k https://192.168.0.200 RS2 - 192.168.0.20 RS1 - 192.168.0.10 #显示内容为echo 在RS1,2中写入index的七lvs的会话粘滞解决方案会话粘滞Session Stickiness是解决“来自同一客户端的请求应始终发往同一台后端服务器”问题的统称。LVS提供了更常用和通用的方法持久连接。设定ipvs调度策略[rootvsnode ~]# ipvsadm -A -f 6666 -s rr -p 1 #设定为-p 1,是为了更快的检测结果不强制要求一定要是1s左右 [rootvsnode ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn FWM 6666 rr persistent 1 - 192.168.0.10:0 Route 1 0 0 - 192.168.0.20:0#第一次访问 [rootclient ~]# curl 192.168.0.200 RS1 - 192.168.0.10 #在设定时间内再次尝试 [rootclient ~]# curl 192.168.0.200 RS1 - 192.168.0.10PS实验环境(以DR为例)虚拟机要求1台客户端client可以连接的NAT网卡1台路由负责在内部网络和外网访问NAT仅主机的卡1台调度器用于分发多台简单设置为2台RS服务器配置IP设定IP #客户端 172.25.254.99 #路由器 172.25.254.100 192.168.0.100 #vsnode 调度器 192.168.0.50 #RS1 192.168.0.10 #RS2 192.168.0.20 #配置ip是可以提前配置相关脚本或使用vim直接进入进行修改 #使用前记得检查查看ip a查看自己是否添加的先关的网卡和卡名是否和输入对应调度器配置#调度器 [rootvsnode ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection #添加修改 [connection] ideth0 typeethernet interface-nameeth0 [ipv4] methodmanual address1192.168.0.50/24,192.168.0.100 [rootvsnode ~]# cd /etc/NetworkManager/system-connections/ [rootvsnode system-connections]# cp -p eth0.nmconnection lo.nmconnection #设定lo拷贝只是为了方便配置 [rootvsnode system-connections]# vim lo.nmconnection [connection] idlo typeloopback interface-namelo [ipv4] methodmanual address1127.0.0.1/8 address2192.168.0.200/32 [rootRS1 system-connections]# nmcli connection reload #重新加载并连接 [rootRS1 system-connections]# nmcli connection up eth0 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/7 [rootRS1 system-connections]# nmcli connection up lo 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/8 #检测 rootvsnode system-connections]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 #(结果以自己设定的为准)客户端[rootclient ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0 [ipv4] methodmanual address1172.25.254.99/24,172.25.254.100 dns8.8.8.8; [rootclient ~]# nmcli connection reload [rootclient ~]# nmcli connection up eth0 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/5 [rootclient ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.25.254.100 0.0.0.0 UG 100 0 0 eth0 172.25.254.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0路由器[rootrouter ~]# systemctl disable --now ipvsadm.service [rootrouter ~]# ipvsadm -C #停止并清空 [rootrouter ~]# vmset.sh eth0 172.25.254.100 vsnode [rootrouter ~]# vmset.sh eth1 192.168.0.100 vsnode noroute #设定内核路由功能 [rootrouter ~]# echo net.ipv4.ip_forward1 /etc/sysctl.conf [rootrouter ~]# sysctl -p net.ipv4.ip_forward 1 #数据转发策略 [rootrouter ~]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100 #此处在vsnode.. [rootvsnode ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100RS:(RS1,RS2都需要进行配置[rootRS1 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100 [rootRS1 ~]# nmcli connection reload [rootRS1 ~]# nmcli connection up eth0 [rootRS1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.100 0.0.0.0 UG 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 #在lo上设定vip [rootRS1 ~]# cd /etc/NetworkManager/system-connections/ [rootRS1 system-connections]# cp -p eth0.nmconnection lo.nmconnection [rootRS1 system-connections]# vim lo.nmconnection [connection] idlo typeloopback interface-namelo [ethernet] [ipv4] address1127.0.0.1/8 address2192.168.0.200/32 methodmanual [rootRS1 system-connections]# nmcli connection reload [rootRS1 system-connections]# nmcli connection up lo 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/6 #arp禁止响应 [rootrs2 ~]# echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore [rootrs2 ~]# echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore [rootrs2 ~]# echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce [rootrs2 ~]# echo 2 /proc/sys/net/ipv4/conf/all/arp_announce(记得修改后要重启如果不通分别查看每个是否能ping通互联能否转发vip配置等六七都可再次基础上操作或使用简化的1分发vs2RS进行操作