LVS中nat模式与dr模式配置(rhel9.3)

          LVS(Linux Virtual Server)是Linux平台上的一种高效、可伸缩的服务器集群技术,主要用于实现负载均衡。LVS是Linux内核的一部分,它通过在Linux操作系统中集成虚拟服务器功能来实现。LVS可以将来自客户端的请求分发到后端的多个真实服务器上,从而提高系统的整体处理能力、可靠性和可扩展性。

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集群的类型

  • lvs-nat:         修改请求报文的目标IP,多目标IPDNAT
  • lvs-dr           操纵封装新的MAC地址
  • lvs-tun:         在原请求IP报文之外新加一个IP首部
  • lvs-fullnat     修改请求报文的源和目标IP

nat模式

  • 本质是多目标IPDNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RSRIP
  • PORT实现转发
  • RIPDIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
  • 请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
  • 支持端口映射,可修改请求报文的目标PORT
  • VS必须是Linux系统,RS可以是任意OS系统

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 的调度机容易阻塞
客户请求到达 vip 后进入 PREROUTING, 在没有 ipvs 的时候因该进入本机 INPUT, IPVS 存在后访问请求在通
PREROUTING 后被 ipvs 结果并作 nat 转发
因为 ipvs 的作用点是在 PREROUTING INPUT 链之间,所以如果在 prerouting 中设定规则会干扰 ipvs 的工
作。所以在做 lvs 时要把 iptables 的火墙策略全清理掉。

实验配置(rhel9.3)

实验所使用3台虚拟机模拟vs主机(lvs-nat )与rs1(web1),rs2(web2)
                                        
                                                默认关闭三台虚拟机防火墙!!!
vm中虚拟网络编辑器注意仅主机vm1与vm8的网段请勿记混
配置网络脚本
vs主机(lvs-nat )基础配置
1,添加仅主机模式网卡
2,此主机以提前修改网卡生成名称,请自行查看修改
eth0(nat模式)配置        192.168.110.50
eth1 (仅主机模式)配置        192.168.206.100
删除后重新启动该网卡
3,打开内核路由功能

net.ipv4.ip_forward = 0
 

        这个参数控制IPv4数据包转发是否启用。当设置为0时,表示禁用IP转发。这意呀着,如果Linux系统接收到一个目的地址不是本机地址的数据包,它将不会尝试将该数据包转发到另一个网络接口。这通常用于防止系统意外地成为路由器或网关。如果你想要你的Linux系统能够转发数据包(例如,作为一个路由器或网关),你需要将这个参数设置为1

rs1(web1)基础配置
1,修改网络适配器模式
2,网络配置         192.168.206.10
3,修改网关为 vs主机的eth1网卡ip地址
4,重启该网卡
5,下载httpd
6,方便之后观察效果

7,启用服务
rs2(web2)基础配置
1,修改网络适配器模式
2,网络配置         192.168.206.20
3,修改网关为 vs主机的eth1网卡ip地址
4,重启该网卡
5,下载httpd
6,方便之后观察效果
7,启用服务
测试web1,2是否设置成功(在lvs主机中测试)
在vs主机上开始lvs-nat模式配置
1,下载ipvsadm
2, IPVS 中添加一个虚拟服务

具体来说,它做了以下几件事情:

  • -A:这个选项用于添加一个新的虚拟服务到 IPVS 表中。

  • -t 192.168.110.50:80:这里指定了虚拟服务的 IP 地址和端口号。在这个例子中,IP 地址是 192.168.110.50,端口号是 80,通常用于 HTTP 服务。这意味着所有发往这个 IP 地址和端口的请求都会被 IPVS 捕获并可能转发给后端的真实服务器。

  • -s rr:这个选项指定了调度算法,rr 代表轮询(Round Robin)。轮询调度算法会按顺序将请求依次转发到后端服务器列表中的下一个服务器,直到列表末尾,然后又从头开始。这是一种简单的负载均衡算法,可以确保每个后端服务器接收到大致相等数量的请求。

总结来说,这条命令在 IPVS 系统中创建了一个新的虚拟服务,监听 192.168.110.8680 端口,并使用轮询调度算法来分配进来的请求到后端服务器。然而,请注意,仅仅添加虚拟服务是不够的,你还需要添加后端真实服务器到 IPVS 表中,并指定它们如何接收和处理这些请求。这通常通过 ipvsadm -a 命令来完成,其中会指定后端服务器的 IP 地址、端口号以及相关的权重等参数。

3,添加一个真实服务器
  • -a:这个选项用于向 IPVS 表中添加一个真实服务器到已存在的虚拟服务。

  • -t 192.168.110.50:80:指定虚拟服务的 IP 地址和端口号。在这个例子中,IP 地址是 192.168.110.50,端口号是 80,这通常用于 HTTP 服务。

  • -r 192.168.206.10:指定要添加的真实服务器的 IP 地址。在这个例子中,真实服务器的 IP 地址是 192.168.206.10

  • -m:这个选项指定了转发方法,m 代表 NAT(网络地址转换)模式。在 NAT 模式下,IPVS 会修改进入的数据包的目标 IP 地址和端口号,将它们指向后端真实服务器的 IP 地址和端口号(如果后端服务器使用非标准端口,则也需要指定)。然后,从真实服务器返回的数据包会被 IPVS 捕获,并且源 IP 地址和端口号会被修改为虚拟服务的 IP 地址和端口号,再发送回客户端。这样,客户端就只会与虚拟服务的 IP 地址通信,而不会知道后端真实服务器的存在。

4,检查是否成功
5,也可以修改权重,更改访问方式
        wrr         加权轮询(Weighted Round Robin, WRR)
6,新效果

DR模式

        DR: Direct Routing ,直接路由, LVS 默认模式 , 应用最广泛 , 通过为请求报文重新封装一个 MAC 首部进行 转发,源MAC DIP 所在的接口的 MAC ,目标 MAC 是某挑选出的 RS RIP 所在接口的 MAC 地址;源 IP/PORT,以及目标 IP/PORT 均保持不变

DR模式数逻辑

DR 模式中, RS 接收到访问请求后不需要回传给 VS 调度器,直接把回传数据发送给 client ,所以 RS vs上都要有vip

DR模式数据传输过程

        1.客户端发送数据帧给 vs 调度主机帧中内容为客户端 IP+ 客户端的 MAC+VIP+VIP MAC
        2.VS调度主机接收到数据帧后把帧中的 VIP MAC 该为 RS1 MAC ,此时帧中的数据为客户端 IP+ 客户端 的MAC+VIP+RS1 MAC
        3.RS1得到 2 中的数据包做出响应回传数据包,数据包中的内容为 VIP+RS1 MAC+ 客户端 IP+ 客户端 IP 的MAC

DR模式的特点

1.Director 和各 RS 都配置有 VIP
2. 确保前端路由器将目标 IP VIP 的请求报文发往 Director
3. 在前端网关做静态绑定 VIP Director MAC 地址
        在RS 上使用 arptables 工具
        在RS 上修改内核参数以限制 arp 通告及应答级别
4.RS RIP 可以使用私网地址,也可以是公网地址; RIP DIP 在同一 IP 网络;
5.RIP 的网关不能指向 DIP ,以确保响应报文不会经由 Director
6.RS Director 要在同一个物理网络
7. 请求报文要经由 Director ,但响应报文不经由 Director ,而由 RS 直接发往 Client
8. 不支持端口映射(端口不能修败)
9.RS 可使用大多数 OS 系统

实验配置(rhel9.3)

实验主要难点是网络配置,请仔细检查网络配置是否正确
实验所使用五台虚拟机模拟 
客户端 client                 单网卡 nat 192.168.110.20
路由器 router                双网卡 nat 192.168.110.10 仅主机 192.168.206.200
lvs主机 lvs-dr                双网卡 仅主机 192.168.206.40 仅主机 192.168.206.100
re主机1 webserver1     双网卡 仅主机 192.168.206.10 仅主机 192.168.206.100
re主机2 webserver1     双网卡 仅主机 192.168.206.20 仅主机 192.168.206.100
                                        
                                                默认关闭五台虚拟机防火墙!!
客户端 client 基础配置

各主机基础配置

1,客户端 client 单网卡 nat 192.168.110.20

【1】网络配置

【2】修改网关

2,路由器 router 双网卡 nat 192.168.110.10 仅主机 192.168.206.200

【1】加网卡

【2】网络配置

eth0 ---NAT

eth1 ---仅主机

【3】开启内核路由功能

3,lvs主机 lvs-dr 双网卡 仅主机 192.168.206.40 仅主机 192.168.206.100

【1】添加网卡

【2】网络配置

eth0--仅主机

eth1--仅主机

【3】开启内核路由

【4】下载ipvsadm\

4,re主机1 webserver1 双网卡 仅主机 192.168.206.10 仅主机 192.168.206.100

【1】添加网卡

【2】网络配置

eth0

eth1

【3】httpd下载使用

【4】限制响应级别,限制通告级别

5,re主机2 webserver1 双网卡 仅主机 192.168.206.20 仅主机 192.168.206.100

【1】加网卡

【2】配置网络

eth0

eth1

【3】httpd下载使用

【4】限制响应级别,限制通告级别

6,在lvs-dr检测httpd是否成功

7,检验ip配置是否正确(在client上做)

8,在系统中添加一个新的虚拟服务,该服务的 IP 地址为 192.168.206.100,使用加权轮询(WRR)算法来进行负载均衡

LVS 是一种用于构建高可用性和高可扩展性的网络服务器的技术,它通过在网络层(IP 层)进行负载均衡来实现。

命令 ipvsadm -A -t 192.168.206.100 -s wrr 的具体含义如下:

  • ipvsadm:这是调用 IPVS 管理器的命令。

  • -A:这个选项用于添加一个新的虚拟服务。这意味着你正在为某个 IP 地址和端口组合配置一个新的负载均衡器。

  • -t 192.168.206.100:这里的 -t 选项后面跟的是虚拟服务的 IP 地址和端口(尽管在这个命令中没有直接指定端口,所以默认是 TCP/IP 服务的标准端口,如 HTTP 的 80)。192.168.206.100 是这个虚拟服务的 IP 地址,客户端将向这个 IP 地址发送请求。

  • -s wrr:这个选项指定了虚拟服务的调度算法。在这个例子中,使用的是 wrr(加权轮询)算法。加权轮询算法会根据后端服务器的权重来分配请求,权重越高的服务器接收到的请求越多。这种算法允许管理员根据服务器的性能来分配负载,以实现更优的负载均衡效果。

9,向已存在的虚拟服务中添加一个真实服务器

命令 ipvsadm -a -t 192.168.206.100:80 -r 192.168.206.10 -g -w 1 的含义如下:

  • ipvsadm:这是调用 IPVS(IP 虚拟服务器)管理器的命令,用于在 Linux 系统上设置和管理基于 IP 的虚拟服务器。

  • -a:这个选项用于向已经存在的虚拟服务中添加一个新的真实服务器(real server)。

  • -t 192.168.206.100:80:这里 -t 选项后面跟的是虚拟服务的 IP 地址和端口号。192.168.206.100 是虚拟服务器的 IP 地址,80 是 TCP 端口号(通常用于 HTTP 服务)。这意味着客户端将向 192.168.206.10080 端口发送 HTTP 请求。

  • -r 192.168.206.10:这里的 -r 选项后面跟的是真实服务器的 IP 地址。192.168.206.10 是将要接收和处理从虚拟服务转发过来的请求的真实服务器的 IP 地址。

  • -g:这个选项指定了 LVS 的转发模式为直接路由(Direct Routing,简称 DR)。在 DR 模式下,真实服务器(real servers)和负载调度器(director)必须位于同一物理网络中,并且真实服务器必须配置有虚拟服务的 IP 地址作为别名,但仅由负载调度器响应此 IP 地址的 ARP 请求。这样,客户端的请求会直接发送给真实服务器,但响应会经过负载调度器返回给客户端(对于 TCP 响应,这通常不是问题,因为 TCP 是面向连接的协议)。

  • -w 1:这个选项指定了真实服务器的权重为 1。在加权轮询(WRR)或其他需要权重的调度算法中,权重决定了服务器接收请求的比例。在这个例子中,虽然 -s 选项(用于指定调度算法)没有在这个命令中明确给出,但如果虚拟服务使用的是加权轮询算法,那么权重为 1 的服务器将按照其权重比例接收请求。然而,如果虚拟服务使用的是其他调度算法(如轮询 RR),权重可能不会被直接使用。

10,检测是否成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值