Full-NAT 由此而生 , 解决的是 LVS 和 RS 跨 VLAN 的问题 , 而跨 VLAN 问题解决后 , LVS 和 RS 不再存在 VLAN 上的从属关系 , 可以做到多个 LVS 对应多个 RS , 解决水平扩容的问 题 。
Full-NAT 相比 NAT 的主要改迕是 , 在 SNAT/DNAT 的基础上 , 加上另一种转换 , 转换过
程如下:
文章插图
- 在包从 LVS 转到 RS 的过程中 , 源地址从客户端 IP 被替换成了 LVS 的内网 IP 。
- 内网IP之间可以通过多个交换机跨VLAN通信
- 当RS处理完接受到的包 , 返回时 , 会将返个包返回给LVS的内网IP , 返一步也不受限于VLAN 。
- LVS 收到包后 , 在 NAT 模式修改源地址的基础上 , 再把RS发来的包中的目标地址从LVS内网 IP 改为客户端的 IP 。
Full-NAT主要的思想是把网关和其下机器的通信 , 改为了普通的网络通信 , 从而解决了跨 VLAN 的问题 。采用返种方式 , LVS 和 RS 的部署在 VLAN 上将不再有任何限制 , 大大提高了运维部署的便利性 。
上面其实是把内网ip和内网ip之间通过交换机进行转换捆绑 , 从而可以跨vlan进行服务请求代理 。Session
客户端与服务端的通信 , 一次请求可能包含多个TCP 包 , LVS 必须保证同一连接的TCP包 , 必须被转发到同一台RS , 否则就乱套了 。为了确保返一点 , LVS 内部维护着一个 Session的 Hash 表 , 通过客户端的某些信息可以找到应该转发到哪一台 RS 上 。LVS 集群化
采用 Full-NAT 模式后 , 可以搭建 LVS 的集群 , 拓扑结构如下图:
文章插图
容灾
容灾分为 RS 的容灾和 LVS 的容灾 。
RS 的容灾可以通过 LVS 定期健康检测实现 , 如果某台 RS 失去心跳 , 则认为其已经下线 , 不会在转发到该 RS 上 。
LVS 的容灾可以通过主备+心跳的方式实现 。主 LVS 失去心跳后 , 备 LVS 可以作为热备立 即替换 。
容灾主要是靠 KeepAlived 来做的 。(心跳以及下线剔除或者替换工作主要通过keepalived进行控制)
推荐阅读
- 前端技术有哪些(web前端领域有哪些)
- 公司如何估值(企业估值分析报告)
- 今日股市如何(最新明日股市预测分析)
- 人们在用 WebAssembly 构建什么应用?
- web服务器有哪些(web服务器程序主要有哪些)
- web开发技术有哪些(网页前端技术有哪些)
- web前端框架有哪些(web前端面试题)
- 2022重庆山火事件简介!如何从犯罪心理学等专业角度分析重庆摔婴女孩的行为?
- 健康体检一般多少钱(长治哪个医院体检全面好一些)
- 寒战剧情分析?寒战结局什么意思 影片讲述了什么?