LVS的几种链接模式

本文系本人从LVS官网译来。

官网地址:http://www.linuxvirtualserver.org/

Virtual Server via NAT(NAT)
处于安全考虑,很多服务器都会使用内网地址,而不与外网直接相连,NAT是一个根据IP地址来映射的工具。
当用户要访问集群提供的服务的时候,请求的报文首先会到达虚拟Ip(VIP)指向的负载均衡服务器。负载均衡服务器会检查请求报文的目标IP和端口,然后根据路由算法从集群里选出一个真实的服务器,修改报文里的ip和端口。当响应报文发回来的时候,负载服务器会把ip和端口再改成自己的,返回给客户端

原始请求报文
SOURCE 202.100.1.2:3456 DEST 202.103.106.5:80
选出真实服务器,修改报文的目标ip
SOURCE 202.100.1.2:3456 DEST 172.16.0.3:8000
响应报文到达负载服务器
SOURCE 172.16.0.3:8000 DEST 202.100.1.2:3456
负载服务器重写ip和端口
SOURCE 202.103.106.5:80 DEST 202.100.1.2:3456

Virtual Server via IP Tunneling(TUN)
IP tunneling(IP隧道)是一种封装IP数据报,允许点对点通信的技术。

当一个请求到达负载服务器时,负载服务器检查Ip和端口,然后根据路由算法从集群中选择出真实的服务器,通过IP隧道技术直接将请求送到真实服务器上。真实服务器拿到请求之后产生响应会直接将响应发回客户端

Virtual Server via Direct Routing(DR)
请求到负载服务器,负载服务器会选择真实服务器,修改报文里的mac地址指向真实服务器,真实服务器会把响应直接发回客户端。这种模式要求负载服务器和真实服务器在同一个LAN里。
LVS(Linux Virtual Server)支持四种主要的工作模式,分别是 **NAT 模式**、**DR 模式**、**TUN 模式** 和 **Full-NAT 模式**。这些模式在实现负载均衡时各有特点,适用于不同的网络环境和需求。 ### NAT 模式 在 NAT(Network Address Translation)模式下,LVS 调度器负责将客户端请求的目标地址和端口转换为真实服务器(Real Server)的地址和端口,并将响应数据包从真实服务器返回给客户端时进行源地址转换。这种模式的优点是配置简单,适用于大多数网络环境;缺点是调度器需要处理所有的入站和出站流量,可能会成为性能瓶颈[^2]。 ### DR 模式 DR(Direct Routing)模式是一种高效的负载均衡方式。在这种模式下,LVS 调度器仅负责将客户端请求转发到合适的真实服务器,而真实服务器直接将响应发送给客户端,绕过了调度器。这种方式减少了调度器的负担,提高了系统的整体性能。然而,DR 模式要求所有的真实服务器与调度器处于同一个物理网络中,并且需要对真实服务器进行 ARP 配置以避免冲突[^1]。 ### TUN 模式 TUN(Tunneling)模式通过 IP 隧道技术将客户端请求从调度器转发到真实服务器。真实服务器接收到请求后,解封装数据包并直接将响应发送给客户端。TUN 模式允许真实服务器分布在不同的地理位置,适用于广域网环境。但其缺点是增加了数据包的封装和解封装开销,可能导致一定的性能下降[^2]。 ### Full-NAT 模式 Full-NAT 模式LVS 的一种扩展模式,它结合了 NAT 和 DR 模式的优点。在 Full-NAT 模式下,调度器不仅负责将客户端请求转发到真实服务器,还负责将真实服务器的响应返回给客户端。这种方式确保了调度器能够完全控制流量,同时支持跨子网的真实服务器部署。Full-NAT 模式提供了更高的灵活性和可扩展性,适合大规模数据中心的应用场景[^2]。 ### 总结 | 模式 | 特点 | 适用场景 | |----------|----------------------------------------------------------------------|------------------------------------| | NAT | 简单易配置,调度器处理所有流量 | 小规模或测试环境 | | DR | 高效,真实服务器直接响应客户端 | 同一物理网络内的高性能需求 | | TUN | 支持跨地域的真实服务器,增加封装解封装开销 | 广域网或分布式部署 | | Full-NAT | 结合 NAT 和 DR 优点,支持跨子网部署 | 大规模数据中心 | ### 示例代码:使用 `ipvsadm` 配置 LVS 模式 以下是一个简单的示例,展示如何使用 `ipvsadm` 工具配置 LVS 的 NAT 模式: ```bash # 添加虚拟服务(VIP) sudo ipvsadm -A -t 192.168.237.100:80 -s rr # 添加真实服务器(RIP),并指定为 NAT 模式 sudo ipvsadm -a -t 192.168.237.100:80 -r 192.168.237.10 -m sudo ipvsadm -a -t 192.168.237.100:80 -r 192.168.237.20 -m ``` 上述命令中: - `-A` 表示添加一个新的虚拟服务。 - `-t` 指定虚拟服务的 IP 地址和端口。 - `-s rr` 表示使用轮询(Round Robin)调度算法。 - `-a` 表示添加一个真实服务器。 - `-r` 指定真实服务器的 IP 地址和端口。 - `-m` 表示使用 NAT 模式(MASQUERADE)。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值