辛先森科技说 还学不会算我输,深入理解LVS( 五 )


群集的负载调度技术 , 可基于IP、端口、内容等进行分发 , 其中基于IP的负载均衡是效率最高的 。
基于IP的负载均衡模式 , 常见的有地址转换(NAT)、IP隧道(TUN)和直接路由(DR)三种工作模式 。
NAT模式
地址转换:NetworkAddressTranslation , 简称:NAT模式 , 类似于防火墙的私有网络结构 , 负载调度器作为所有服务器节点的网关 , 作为客户机的访问入口 , 也是各节点回应客户机的访问出口 , 服务器节点使用私有IP地址 , 与负载调度器位于同一个物理网络 , 安全性要优于其他两种方式 。
辛先森科技说 还学不会算我输,深入理解LVS
文章图片
NAT实现原理过程如下:
①客户端发出的请求数据包经过网络到达LVS网卡 , 数据包源IP为CIP , 目的IP为VIP 。
②然后进入PREROUTING链中 , 根据目的IP查找路由 , 确定是否为本机IP地址 , 随后将数据包转发至INPUT链中 , 源IP和目的IP不变 。
③到达LVS后 , 通过目的IP和目的PORT查找是否为IPVS服务 , 如是IPVS服务 , 将会选择一个RS来作为后端服务器 , 数据包的目的IP地址将会修改为RIP , 这时并以RIP为目的IP去查找路由 , 确定下一跳及PORT信息后 , 数据包将会转发至OUTPUT链中 。
④被修改过的数据包经过POSTROUTING链后 , 到达RS服务器 , 数据包源IP为CIP , 目的IP为RIP 。
⑤RS服务器经过处理后 , 将会把数据包发送至用户空间的应用程序 , 待处理完成后 , 发送响应数据包 , RS服务器的默认网关为LVS的IP , 应用程序将会把数据包转发至下一跳LVS服务器 , 数据包源IP为RIP , 目的IP为CIP 。
⑥LVS服务器收到RS服务器响应的数据包后 , 查找路由 , 目的IP不是本机IP并且LVS服务器开启了FORWARD模式 , 会将数据包转发给它 , 数据包不变 。
⑦LVS服务器收到响应数据包后 , 根据目的IP和目的PORT查找相应的服务 , 这时 , 源IP为VIP , 通过查找路由 , 确定下一跳信息并将数据包发送至网关 , 最终回应给客户端用户 。
NAT模式的优点:
支持Windows操作系统 。 支持端口映射 , 如RS服务器PORT与VPORT不一致的话 , LVS会修改目的IP地址和DPORT以支持端口映射 。NAT模式的缺点:
RS服务器需配置网关 。 双向流量对LVS会产生较大的负载压力 。NAT模式的使用场景:对Windows操作系统的用户比较友好 , 使用LVS , 必须选择NAT模式 。
TUN模式
IP隧道:IPTunnel , 简称:TUN模式 , 采用开放式的网络结构 , 负载调度器作为客户机的访问入口 , 各节点通过各自的Internet连接直接回应给客户机 , 而不经过负载调度器 , 服务器节点分散在互联网中的不同位置 , 有独立的公网IP地址 , 通过专用IP隧道与负载调度器相互通信 。
辛先森科技说 还学不会算我输,深入理解LVS
文章图片
TUN实现原理过程如下:
①客户端发送数据包经过网络后到LVS网卡 , 数据包源IP为CIP , 目的IP为VIP 。
②进入PREROUTING链后 , 会根据目的IP去查找路由 , 确定是否为本机IP , 数据包将转发至INPUT链中 , 到LVS , 源IP和目的IP不变 。
③到LVS后 , 通过目的IP和目的PORT查找是否为IPVS服务 , 如是IPVS服务 , 将会选择一个RS后端服务器 , 源IP为DIP , 目标IP为RIP , 数据包将会转发至OUTPUT链中 。
④数据包根据路由信息到达LVS网卡 , 发送至路由器网关 , 最终到达后端服务器 。
⑤后端服务器收到数据包后 , 会拆掉最外层的IP地址后 , 会发现还有一层IP首部 , 源IP为CIP , 目的IP为VIP , TUNL0上配置VIP , 查找路由后判断为本机IP地址 , 将会发给用户空间层的应用程序响应后VIP为源IP , CIP为目的IP数据包发送至网卡 , 最终返回至客户端用户 。


推荐阅读