网站开发培训机构排名wordpress 二维码
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:36
当前位置: 首页 > news >正文
网站开发培训机构排名,wordpress 二维码,官网网站建设需求,wordpress 404设置目录 前言系统性能扩展方式集群Cluster分布式集群与分布式 四层转发与七层转发的区别 LVS#xff08;Linux virual server#xff09;一、LVS介绍LVS相关概念 二、LVS集群结构体系1. 负载均衡层#xff08;Load Balancer#xff09;2. 服务器群组层#xff08;Server Pool… 目录 前言系统性能扩展方式集群Cluster分布式集群与分布式 四层转发与七层转发的区别 LVSLinux virual server一、LVS介绍LVS相关概念 二、LVS集群结构体系1. 负载均衡层Load Balancer2. 服务器群组层Server Pool/Server Array3. 后端共享存储层Backend Storage/Shared Storage 三、lvs的调度算法lvs调度算法类型lvs静态调度算法lvs动态调度算法 四、LVS集群的类型五、NAT模式1.NAT模式介绍2.NAT模式数据逻辑3.NAT模式实验详解Ⅰ、实验环境Ⅱ、配置命令 六、DR模式1.DR模式介绍2.DR模式特点3.DR模式数据逻辑4.DR模式实验详解Ⅰ、实验环境Ⅱ、配置实验环境Ⅲ、解决vip问题Ⅳ、配置详情 七、TUN模式1.TUN模式介绍2.TUN模式数据逻辑 八、fullnat模式九、防护墙标签解决轮询错误问题问题引出问题解决 十、ipvsadm命令常用选项 前言
系统性能扩展方式
集群Cluster
Cluster: 集群是为了解决某个特定问题将堕胎计算机组合起来形成的单个系统
Cluster常见的三种类型 LBLoadBalancing负载均衡由多个主机组成每个主机只承担一部分访问 HAHighAvailiablity高可用SPOFsingle Point Of failure MTBF:Mean Time Between Failure 平均无故障时间正常时间 MTTR:Mean Time To Restoration repair平均恢复前时间故障时间 AMTBF/MTBFMTTR (0,1)99%, 99.5%, 99.9%, 99.99%, 99.999% SLAService level agreement服务等级协议是在一定开销下为保障服务的性能和可用性服 务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。在 常规的领域中总是设定所谓的三个9四个9来进行表示当没有达到这种水平的时候就会有一 些列的惩罚措施而运维最主要的目标就是达成这种服务水平。 停机时间又分为两种一种是计划内停机时间一种是计划外停机时间而运维则主要关注计划外 停机时间 HPCHigh-performance computing高性能计算国家战略资源不在课程范围内
分布式
分布式存储:CephGlusterFsFastDFSMogileFs 分布式计算:hadoopSpark 分布式常见应用
分布式应用-服务按照功能拆分使用微服务分布式静态资源–静态资源放在不同的存储集群上分布式数据和存储–使用key-value缓存系统分布式计算–对特殊业务使用分布式计算比如Hadoop集群
集群与分布式
集群 同一个业务系统部署在多台服务器上集群中每一台服务器实现的功能没有差别数据 和代码都是一样的分布式 一个业务被拆成多个子业务或者本身就是不同的业务部署在多台服务器上。分布式 中每一台服务器实现的功能是有差别的数据和代码也是不一样的分布式每台服务器功能加起 来才是完整的业务分布式是以缩短单个任务的执行时间来提升效率的而集群则是通过提高单位时间内执行的任务数 来提升效率对于大型网站访问用户很多实现一个群集在前面部署一个负载均衡服务器后面几台服务器 完成同一业务。如果有用户进行相应业务访问时负载均衡器根据后端哪台服务器的负载情况决 定由给哪一台去完成响应并且台服务器垮了其它的服务器可以顶上来。分布式的每一个节点 都完成不同的业务如果一个节点垮了那这个业务可能就会失败
四层转发与七层转发的区别
四层转发 四层转发是指在传输层TCP/IP层进行负载均衡是基于传输层的负载均衡常用的设备包括硬件负载均衡器如F5、Cisco等和软件负载均衡器如Nginx、HAProxy等。它主要根据传输层的源IP地址、目标IP地址、源端口和目标端口等信息来进行负载均衡。四层转发可以实现基于网络协议和端口的负载均衡但无法深入到应用层进行更精细的流量分发。
七层转发 七层转发是指在应用层进行负载均衡它可以深入到应用层的协议和数据进行分析和处理是基于应用层的负载均衡常用的设备包括应用交付控制器ADC如F5 BIG-IP等和应用层负载均衡软件如Nginx、HAProxy等。。七层转发可以根据HTTP请求头、URL、Cookie等信息进行负载均衡从而实现更精细的流量分发和更灵活的策略配置。七层转发可以根据具体的应用需求进行定制化配置适用于复杂的应用场景。
LVSLinux virual server
一、LVS介绍
LVSLinux Virtual Server是一个开源的负载均衡软件可以用于在Linux系统上构建高可用、高性能的应用服务器集群。
LVS基于Linux内核的IP负载均衡技术通过将客户端请求导向一组后端服务器称为真实服务器从而实现对客户端请求的负载均衡。LVS支持多种负载均衡算法如轮询、权重、哈希等可以根据实际需求选择最合适的算法。
LVS的架构包括调度器负载均衡器、虚拟服务器和真实服务器。调度器负责接收客户端请求并根据负载均衡算法将请求发送给合适的虚拟服务器。虚拟服务器是一个虚拟的IP地址和端口可以对外提供服务。真实服务器是实际处理客户端请求的服务器可以是一台或多台。
LVS相关概念 VSVirtual Server RSReal Server CIPClient IP VIP: Virtual serve IP VS外网的IP DIP: Director IP VS内网的IP RIP: Real server IP 访问流程CIP – VIP DIP – RIP 二、LVS集群结构体系
LVSLinux Virtual Server集群的体系结构通常被划分为三个主要层次负载均衡层、服务器群组层或称为服务器池、以及后端共享存储层。
- 负载均衡层Load Balancer 功能 作为整个集群系统的前端负责接收来自客户端的请求并根据预设的调度算法将请求分发到后端的服务器群组中。 组成 通常由一个或多个负载调度器Director Server组成这些调度器上安装了LVS模块用于实现负载均衡功能。此外还可能包含备份调度器Backup Load Balancer以确保在主调度器故障时能够接替其工作。 特点 调度器通过IP负载均衡技术或基于内容的请求分发技术将请求转发到最合适的服务器上。同时调度器还负责监控后端服务器的健康状况并在检测到故障时将其从调度列表中剔除。
- 服务器群组层Server Pool/Server Array 功能 由一组实际运行应用服务的服务器组成这些服务器负责处理来自负载均衡层转发的请求并返回响应数据。 组成 服务器群组可以包含多种类型的服务器如WEB服务器、MAIL服务器、FTP服务器、DNS服务器等。这些服务器通过高速的LAN或WAN相连接以确保数据的高效传输。 特点 服务器群组中的服务器可以根据需要动态增加或减少以适应不同的负载需求。同时服务器之间的负载均衡和容错机制可以确保系统的高可用性和稳定性。
- 后端共享存储层Backend Storage/Shared Storage
功能 为服务器群组提供一个共享的存储区使得所有服务器都能够访问相同的数据和服务。 组成 通常由磁盘阵列设备或分布式文件系统组成以提供高可用性和可扩展的存储解决方案。 特点 共享存储层可以确保数据的一致性和完整性同时减少数据复制和更新的开销。此外它还可以支持多种数据访问协议和接口以满足不同应用的需求。
—————–
| 负载均衡层 |
| (Load Balancer)|
| —- —- |
| | LB1| | LB2| |LB2为备份
| —- —- |
—————– | | 转发请求 v
—————–
| 服务器群组层 |
| (Server Pool/ |
| Server Array) |
| —- —- |
| | RS1| | RS2| |
| —- —- |
| … … |
| —- —- |
| | RSN| | RSN1| |
| —- —- |
—————– | | 访问共享数据 v
—————–
| 后端共享存储层 |
| (Backend Storage)|
| ———— |
| | 磁盘阵列/ | |
| | 分布式FS | |
| ———— |
—————–三、lvs的调度算法 lvs调度算法类型 ipvs scheduler根据其调度时是否考虑各RS当前的负载状态被分为两种静态方法和动态方法 静态方法 仅根据算法本身进行调度不考虑RS的负载情况 动态方法 主要根据每RS当前的负载状态及调度算法进行调度Overheadvalue较小的RS将被调度 lvs静态调度算法 1、RR roundrobin 轮询 RS分别被调度当RS配置有差别时不推荐 2、WRR Weighted RR加权轮询根据RS的配置进行加权调度性能差的RS被调度的次数少 3、SH Source Hashing实现session sticky源IP地址hash将来自于同一个IP地址的请求始终发往 第一次挑中的RS从而实现会话绑定 4、DH Destination Hashing目标地址哈希第一次轮询调度至RS后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS典型使用场景是正向代理缓存场景中的负载均衡如宽带运营商 lvs动态调度算法 主要根据RS当前的负载状态及调度算法进行调度Overheadvalue较小的RS会被调度 1、LC least connections最少链接发 适用于长连接应用Overhead负载值activeconns活动链接数 x 256inactiveconns非活 动链接数 2、WLC Weighted LC权重最少链接 默认调度方法Overhead(activeconns x 256inactiveconns)/weight 3、SED Shortest Expection Delay, 初始连接高权重优先Overhead(activeconns1inactiveconns) x 256/weight 但是当node1的权重为1node2的权重为10经过运算前几次的调度都会被node2承接 4、NQ Never Queue第一轮均匀分配后续SED 5、LBLC Locality-Based LC动态的DH算法使用场景根据负载状态实现正向代理 6、LBLCR LBLC with Replication带复制功能的LBLC解决LBLC负载不均衡问题从负载重的复制 到负载轻的RS 四、LVS集群的类型 lvs-nat 修改请求报文的目标IP,多目标IP的DNAT lvs-dr 操纵封装新的MAC地址 lvs-tun在原请求IP报文之外新加一个IP首部 lvs-fullnat 修改请求报文的源和目标IP 五、NAT模式 1.NAT模式介绍 本质是多目标IP的DNAT通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发 RIP和DIP应在同一个IP网络且应使用私网地址;RS的网关要指向DIP 请求报文和响应报文都必须经由Director转发Director易于成为系统瓶颈 支持端口映射可修改请求报文的目标PORT VS必须是Linux系统RS可以是任意OS系统 2.NAT模式数据逻辑 1.客户端发送访问请求请求数据包中含有请求来源cip访问目标地址VIP访问目标端口9000port 2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口 3.RS1相应请求发送响应数据包包中的相应保温为数据来源RIP1响应目标CIP相应端口9000port 4.VS服务器接收到响应数据包改变包中的数据来源RIP1–VIP,响应目标端口9000–80 5.VS服务器把修改过报文的响应数据包回传给客户端 6.lvs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机所以lvs的调度机容易阻塞 3.NAT模式实验详解 1.Director 服务器采用双网卡一个是桥接网卡连接外网一个是仅主机网卡与后端Web服务器相连 2.Web服务器采用仅主机网卡与director相连 3.Web服务器网关指向192.168.0.100 4.后端web服务器不需要连接外网 Ⅰ、实验环境 主机名角色IPLVS调度器vs192.168.0.100/24vip 172.25.254.100/24webserver1真实服务器1RS192.168.0.10/24GW 192.168.0.100webserver2真实服务器2RS192.168.0.20/24GW 192.168.0.100client测试机本地 Ⅱ、配置命令 0.webserver1、webserver2配置 #webserver1 网卡配置 [rootwebserver1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0[ipv4] address1192.168.0.10⁄24,192.168.0.100 methodmanual#webserver1 http配置 [rootwebserver1 ~]# yum install httpd -y [rootwebserver1 ~]# echo this is 192.168.0.10 /var/www/html/index.html#webserver2 同理 [rootwebserver2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0[ipv4] address1192.168.0.20⁄24,192.168.0.100 methodmanual[rootwebserver2 ~]# yum install httpd -y [rootwebserver2 ~]# echo this is 192.168.0.20 /var/www/html/index.html1.在lvs中启用内核路由功能 [rootlvs ~]# sysctl -a | grep ip_forward #查看打开内核路由功能的命令 net.ipv4.ip_forward 0 # 0表示关闭1表示打开 net.ipv4.ip_forward_update_priority 1 net.ipv4.ip_forward_use_pmtu 0[rootlvs ~]# echo net.ipv4.ip_forward 1 /etc/sysctl.conf #修改配置文件 [rootlvs ~]# sysctl -p #加载参数 net.ipv4.ip_forward 12.在lvs中安装ipvsadm [rootlvs ~]# yum install ipvsadm -y3,在lvs中添加调度策略 [rootlvs ~]# ipvsadm -A -t 172.25.254.100:80 -s rr [rootlvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m [rootlvs ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m4.查看策略 [rootlvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.25.254.100:80 rr- 192.168.0.10:80 Masq 1 0 0 - 192.168.0.20:80 Masq 1 0 0 [rootlvs ~]# cat /proc/net/ip_vs IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn TCP AC19FE64:0050 rr - C0A80014:0050 Masq 1 0 3 - C0A8000A:0050 Masq 1 0 2 [rootlvs ~]# cat /proc/net/ip_vs_conn Pro FromIP FPrt ToIP TPrt DestIP DPrt State Expires PEName PEData TCP AC19FE01 C777 AC19FE64 0050 C0A8000A 0050 TIME_WAIT 9 TCP AC19FE01 C779 AC19FE64 0050 C0A8000A 0050 TIME_WAIT 9 TCP AC19FE01 C778 AC19FE64 0050 C0A80014 0050 TIME_WAIT 9 TCP AC19FE01 C776 AC19FE64 0050 C0A80014 0050 TIME_WAIT 9 TCP AC19FE01 C77A AC19FE64 0050 C0A80014 0050 TIME_WAIT 9 5.保存规则 [rootlvs ~]# ipvsadm -Sn /etc/sysconfig/ipvsadm [rootlvs ]# cat /etc/sysconfig/ipvsadm -A -t 172.25.254.100:80 -s rr -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 1 -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m -w 1 6.测试 (在本地shell下) [C:]\( for /L %i in (1,1,4) do (curl 172.25.254.100)C:\Users\21116\Documents\NetSarang Computer\7\Xshell\Sessions(curl 172.25.254.100 ) % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 21 100 21 0 0 7945 0 --:--:-- --:--:-- --:--:-- 10500 this is 192.168.0.10C:\Users\21116\Documents\NetSarang Computer\7\Xshell\Sessions(curl 172.25.254.100 ) % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 21 100 21 0 0 8070 0 --:--:-- --:--:-- --:--:-- 10500 this is 192.168.0.20C:\Users\21116\Documents\NetSarang Computer\7\Xshell\Sessions(curl 172.25.254.100 ) % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 21 100 21 0 0 7933 0 --:--:-- --:--:-- --:--:-- 10500 this is 192.168.0.10C:\Users\21116\Documents\NetSarang Computer\7\Xshell\Sessions(curl 172.25.254.100 ) % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 21 100 21 0 0 7903 0 --:--:-- --:--:-- --:--:-- 10500 this is 192.168.0.20 六、DR模式 1.DR模式介绍 DRDirect Routing直接路由LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发源MAC是DIP所在的接口的MAC目标MAC是某挑选出的RS的RIP所在接口的MAC地址源IP/PORT以及目标IP/PORT均保持不变 在DR模式中RS接收到访问请求后不需要回传给VS调度器直接把回传数据发送给client所以RS和vs上都要有vip 2.DR模式特点 1.Director和各RS都配置有VIP 2.确保前端路由器将目标IP为VIP的请求报文发往Director 3.在前端网关做静态绑定VIP和Director的MAC地址 在RS上使用arptables工具 arptables -A IN -d \)VIP -j DROP arptables -A OUT -s \(VIP -j mangle --mangle-ip-s \)RIP在RS上修改内核参数以限制arp通告及应答级别 /proc/sys/net/ipv4/conf/all/arp_ignore /proc/sys/net/ipv4/conf/all/arp_annou4.RS的RIP可以使用私网地址也可以是公网地址RIP与DIP在同一IP网络 5.RIP的网关不能指向DIP以确保响应报文不会经由Director 6.RS和Director要在同一个物理网络 7.请求报文要经由Director但响应报文不经由Director而由RS直接发往Client 8.不支持端口映射端口不能修改 9.RS可使用大多数OS系统 3.DR模式数据逻辑 1.客户端发送数据帧给vs调度主机帧中内容为客户端IP客户端的MACVIPVIP的MAC 2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC此时帧中的数据为客户端IP客户端的MACVIPRS1的MAC 3.RS1得到2中的数据包做出响应回传数据包数据包中的内容为VIPRS1的MAC客户端IP客户端IP的MAC 4.DR模式实验详解 1.Director服务器采用双IP桥接网络一个是VPP一个DIP 2.Web服务器采用和DIP相同的网段和Director连接 3.每个Web服务器配置VIP 4.每个web服务器可以出外网 Ⅰ、实验环境 主机名ipvip角色client172.25.254.10 vmware NATnull测试主机routerNAT-eth0:172.25.254.100仅主机eth1:192.168.0.10null路由器lvs192.168.0.200GW 192.168.0.10 仅主机lo:192.168.0.100调度器webserver1192.168.0.101GW 192.168.0.10 仅主机lo:192.168.0.100web服务器1webserver2192.168.0.102, GW 192.168.0.10 仅主机lo:192.168.0.100web服务器2 Ⅱ、配置实验环境 #在客户端主机中为nat模式网卡 [rootclient ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0[ipv4] address1172.25.254.10⁄24,172.25.254.2 methodmanual dns114.114.114.114; [rootclient ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.25.254.2 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#在路由主机中设定双网卡eth0为nat网卡eth1为仅主机网卡 [rootrouter ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0[ipv4] address1172.25.254.100⁄24,172.25.254.2 methodmanual dns114.114.114.114; [rootrouter ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection [connection] ideth1 typeethernet interface-nameeth1[ipv4] address1192.168.0.10⁄24 methodmanual [rootrouter ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.25.254.2 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 192.168.0.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1#对于dr调度器设定网卡为仅主机模式 [rootlvs ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection [connection] ideth1 typeethernet interface-nameeth1[ipv4] address1192.168.0.200⁄24,192.168.0.10 methodmanual [rootlvs ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.10 0.0.0.0 UG 100 0 0 eth1 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth1#对于RS1 RS2的设定网卡为仅主机模式 [rootwebserver1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0[ipv4] address1192.168.0.101⁄24,192.168.0.10 methodmanual [rootwebserver1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.10 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————————————————————————————— [rootwebserver2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection [connection] ideth0 typeethernet interface-nameeth0[ipv4] address1192.168.0.102⁄24,192.168.0.10 methodmanual [rootwebserver2 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.10 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Ⅲ、解决vip问题 DR模型中各主机上均需要配置VIP解决地址冲突的方式有三种 (1)在前端网关做静态绑定 (2)在各RS使用arptables (3)在各RS修改内核参数来限制arp响应和通告的级别 限制响应级别:arp_ignore 0:默认值表示可使用本地任意接口上配置的任意地址进行响应1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时才给予响应 限制通告级别:arp_announce 0:默认值把本机所有接口的所有信息向每个接口的网络进行通告1:尽量避免将接口信息向非直接连接网络进行通告2:必须避免将接口信息向非本网络进行通告 Ⅳ、配置详情 1.在lvs 和 rs 中设定vip [rootlvs ~]# ip addr add dev lo 192.168.0.100⁄32 [rootwebserver1 ~]# ip addr add dev lo 192.168.0.100⁄32 [rootwebserver2 ~]# ip addr add dev lo 192.168.0.100⁄322.在RS1和RS2中解决响应问题 [rootwebserver1 ~]# echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore [rootwebserver1 ~]# echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore [rootwebserver1 ~]# echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce [rootwebserver1 ~]# echo 2 /proc/sys/net/ipv4/conf/all/arp_announce [rootwebserver2 ~]# echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore [rootwebserver2 ~]# echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore [rootwebserver2 ~]# echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce [rootwebserver2 ~]# echo 2 /proc/sys/net/ipv4/conf/all/arp_announce3.在lvs中配置策略 [rootlvs ~]# ipvsadm -A -t 192.168.0.100:80 -s wrr [rootlvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.101:80 -g -w 1 [rootlvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.102:80 -g -w 2 [rootlvs ~]# 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.100:80 wrr- 192.168.0.101:80 Route 1 0 0 - 192.168.0.102:80 Route 2 0 0 4.在client中测试效果 [rootclient ~]# for i in {1..10}docurl 192.168.0.100done webserver1 192.168.0.101 webserver2 192.168.0.102 webserver2 192.168.0.102 webserver1 192.168.0.101 webserver2 192.168.0.102 webserver2 192.168.0.102 webserver1 192.168.0.101 webserver2 192.168.0.102 webserver2 192.168.0.102 webserver1 192.168.0.101七、TUN模式 1.TUN模式介绍 LVS-TUN模式它的连接调度和管理与VS/NAT中的一样利用ip隧道技术的原理即在原有的客户端请求包头中再加一层IP Tunnel的包头ip首部信息不改变原来整个请求包信息只是新增了一层ip首部信息再利用路由原理将请求发给RS server不过要求的是所有的server必须支持”IPTunneling”或者”IP Encapsulation”协议。 2.TUN模式数据逻辑 整个请求过程示意 这里假设CIP的CIP地址为202.10.1.100 DIR的Eth1的ip地址为202.10.1.101 Eth0的ip地址为:192.168.1.100⁄24 ,RIP1的Eth0地址为:192.168.1.10⁄24,Eth1的ip地址为:10.10.10.10⁄24,下面的就讲讲请求细节 ① client向目标vip发出请求DIR接收。此时IP包头及数据帧头信息如下 src ipsrc portdst ipdst port202.10.1.1010011202.10.1.10180 ② DIR根据负载均衡算法选择一台active的RSRIP1利用ip tunnel技术将此RIP1所在网卡的ip地址作为目标ip地址将DIP作为源地址重封装一层IP首部并记录到hash表中DIR将请求包发送给RIP1。此时IP包头及数据帧头信息如下 src ipdst ipsrc ipsrc portdst ipdst port192.168.1.100192.168.1.10202.10.1.1010011202.10.1.10180 ③RIP1(192.168.1.10)收到DIR发过来的请求后拆开后发现请求包中里面还有一层ip包头并且该ip包头的目标IP(VIP)与本地loopback口地址匹配于是处理这个报文。随后重新封装报文通过自己的网关将响应报文发送给客户端此时IP包头及数据帧头信息如下 src ipsrc portdst ipdst port202.10.1.10180202.10.1.1010011 LVS/TUN模式就是利用ip tunnel技术原理在不改变原有的ip包头首部信息的基础上再封装一层ip首部信息再利用路由的原理将请求转交给后端RS server所以所有的server都必须支持ip tunnel隧道 相比LVS/DR模式LVS/TUN对网络的消耗比较大因为要支持ip tunnel的开销所以这也是为什么DR模式是三种模式中效率最高的一种模式。 八、fullnat模式 fullnat通过同时修改请求报文的源IP地址和目标IP地址进行转发 CIP – DIP VIP – RIP 1.VIP是公网地址RIP和DIP是私网地址且通常不在同一IP网络因此RIP的网关一般不会指向DIP 2.RS收到的请求报文源地址是DIP因此只需响应给DIP但Director还要将其发往Client 3.请求和响应报文都经由Director 4.支持端口映射 注意此类型kernel默认不支持 九、防护墙标签解决轮询错误问题 问题引出 以http和https为例当我们在RS中同时开放80和443端口那么默认控制是分开轮询的这样我们就出现了一个轮询错乱的问题 当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上 在RS1和RS2中安装mod_ssl并重启apache yum install mod_ssl -y systemctl restart httpd在lvs中设置调度因为我们要调度80和443两个端口所以我们需要设定两组策略 [rootlvs ~]# ipvsadm -C [rootlvs ~]# ipvsadm -A -t 192.168.0.100:80 -s rr [rootlvs ~]# ipvsadm -A -t 192.168.0.100:443 -s rr [rootlvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.101:80 -g [rootlvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.102:80 -g [rootlvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.102:80 -g [rootlvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.101:80 -g[rootlvs ~]# 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.100:80 rr- 192.168.0.101:80 Route 1 0 0 - 192.168.0.102:80 Route 2 0 0
TCP 192.168.0.100:443 rr- 192.168.0.101:443 Route 1 0 0 - 192.168.0.102:443 Route 1 0 0 当我们使用client测试时发现两次连续访问会轮询到同一个服务器上 [rootclient ~]# curl http://192.168.0.100;curl -k https://192.168.0.100 webserver2 192.168.0.102 webserver2 192.168.0.102 [rootclient ~]# curl http://192.168.0.100;curl -k https://192.168.0.100 webserver1 192.168.0.101 webserver1 192.168.0.101 [rootclient ~]# curl http://192.168.0.100;curl -k https://192.168.0.100 webserver2 192.168.0.102 webserver2 192.168.0.102问题解决 MARK target 可用于给特定的报文打标记 其中:value 可为0xffff格式表示十六进制数字借助于防火墙标记来分类报文而后基于标记定义集群服务:可将多个不同的应用使用同一个集群服务进行调度 实现方法 1.在Director(lvs)主机打标记 iptables -t mangle -A PREROUTING -d \(vip -p \)proto -m multiport –dports \(portl,\)port2,..-i MARK –set-mark NUMBER2.ipvsadm使用 -f 基于火墙标记 ipvsadm -A -f NUMBER [options]例在lvs中设置端口标签将80和443设为整体 [rootlvs ~]# iptables -t mangle -A PREROUTING -d 192.168.0.100 -p tcp -m multiport –dports 80,443 -j MARK –set-mark 123 [rootlvs ~]# iptables -t mangle -nL #查看规则 Chain PREROUTING (policy ACCEPT) target prot opt source destination
MARK tcp – 0.0.0.0/0 192.168.0.100 multiport dports 80,443 MARK set 0x7bChain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination
再设置调度规则 [rootlvs ~]# ipvsadm -A -f 123 -s rr [rootlvs ~]# ipvsadm -a -f 123 -r 192.168.0.101 -g [rootlvs ~]# ipvsadm -a -f 123 -r 192.168.0.102 -g [rootlvs ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn FWM 123 rr- 192.168.0.101:0 Route 1 0 0 - 192.168.0.102:0 Route 1 0 0 client测试 [rootclient ~]# curl http://192.168.0.100;curl -k https://192.168.0.100 webserver2 192.168.0.102 webserver1 192.168.0.101 [rootclient ~]# curl http://192.168.0.100;curl -k https://192.168.0.100 webserver2 192.168.0.102 webserver1 192.168.0.101 [rootclient ~]# curl http://192.168.0.100;curl -k https://192.168.0.100 webserver2 192.168.0.102 webserver1 192.168.0.101十、ipvsadm命令常用选项 ipvsadm -A|E -t|u|f 集群服务地址 [-s 调度算法] [-p 超时时间] [-M 掩码] [-b 标志]ipvsadm -D -t|u|f 集群服务地址ipvsadm -Cipvsadm -Ripvsadm -S [-n]ipvsadm -a|e -t|u|f 集群服务地址 -r 真实服务器地址 [选项]ipvsadm -d -t|u|f 集群服务地址 -r 真实服务器地址ipvsadm -L|l [options]ipvsadm -Z [-t|u|f 集群服务地址]ipvsadm –set 超时时间ipvsadm –start-daemon 主或备 [–mcast-interface 组播接口] [–syncid SID]ipvsadm –stop-daemon 主或备ipvsadm -h–add-service -A 添加一个集群服务需要使用选项–edit-service -E 编辑一个集群服务需要使用选项–delete-service -D 删除指定集群服务需要使用选项–clear -C 删除所有集群服务包括真实服务器转发策略规则–restore -R 从标准输入中恢复策略规则–save -S 保存策略规则到标准输出–add-server -a 添加一个真实服务器需要使用选项–edit-server -e 编辑一个真实服务器需要使用选项–delete-server -d 删除一个真实服务器需要使用选项–list -L|-l 查看集群服务列表包括真实服务器转发策略规则–zero -Z 计数器清零。清除连接数、包转发等数量统计信息–tcp-service -t 集群服务地址 允许集群服务使用的传输协议为TCP。IP:Port–udp-service -u 集群服务地址 允许集群服务使用的传输协议为UDP。IP:Port–fwmark-service -f 防火墙标识 使用一个整数值来防火墙标识集群服务而不是地址、端口和协议使用它我们可以通过结合IPtables将多个以调度器为目标的端口定义成一个防火墙标识由ipvsdam通过此项关联标识则可以实现对一个IP多端口调度即实现后端服务器可以开放多个服务–scheduler -s scheduler 指定集群服务使用的调度算法rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq默认为wlc–persistent -p 超时时间 开启持久化服务开启它则表示在指定时间内来自同一IP的请求都会转发到后端同一台真实服务器上–netmask -M 网络掩码 使用网络掩码来屏蔽持久化来源IP的地址范围默认值为255.255.255.255即所有来源IP请求都会享受持久化服务–real-server -r 真实服务器地址 指定真实服务器的主机IP与端口–gatewaying -g 指定真实服务器转发工作模式使用DR模式默认–ipip -i 指定真实服务器转发工作模式使用TUN模式–masquerading -m 指定真实服务器转发工作模式使用NAT模式–weight -w 权重值 指定真实服务器的权重值
- 上一篇: 网站开发培训合肥wordpress后台多媒体不显示缩
- 下一篇: 网站开发培训机构排名建设监理收录网站
相关文章
-
网站开发培训合肥wordpress后台多媒体不显示缩
网站开发培训合肥wordpress后台多媒体不显示缩
- 技术栈
- 2026年03月21日
-
网站开发培训班百度怎样做网站
网站开发培训班百度怎样做网站
- 技术栈
- 2026年03月21日
-
网站开发能赚多少钱合肥有多少做网站的
网站开发能赚多少钱合肥有多少做网站的
- 技术栈
- 2026年03月21日
-
网站开发培训机构排名建设监理收录网站
网站开发培训机构排名建设监理收录网站
- 技术栈
- 2026年03月21日
-
网站开发培训是不是坑廊坊百度推广公司地址
网站开发培训是不是坑廊坊百度推广公司地址
- 技术栈
- 2026年03月21日
-
网站开发培训训开通微信公众号要钱吗
网站开发培训训开通微信公众号要钱吗
- 技术栈
- 2026年03月21日






