Virtual IP Address 学习记录
Virtual IP Address 学习记录
一、基本概念
在 TCP/IP 的架构下,连网的电脑,都必须要有一个唯一的 IP Address。
MAC地址:是物理地址
IP地址:是逻辑地址
虚拟IP:
一个未分配给真实主机的IP,也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机。
虚拟IP一般用作高可用 HA(High Availability)的目的,比如:默认情况让一个虚IP连接到主服务器,当主服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用服务器。
ARP:
Address Resolution Protocol,是地址解析协议,它的作用很简单,就是根据IP地址获取MAC地址,然后给传输层使用。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP缓存用于存储同一个网络内的IP地址与MAC地址的对应关系。
二、原理
假设存在物理机A和物理机器B,A作为对外服务的主服务器,B作为备份机器。
两台服务器之间的通信是通过 Heartbeat,即主服务器会定时的给备份服务器发送数据包,告知主服务器服务正常,
当备份服务器在规定时间内没有收到主服务器的 Heartbeat,就会认为主服务器宕机,则备份服务器就会升级为主服务器。
当机器B通过BeatHeart得知机器A对外服务质量低于预期的时候(比如发生故障,服务无响应),
会将自己的ARP缓存发送出去,让路由器修改路由表,告知虚拟地址应该指向自己(机器B)。
这时,外界再次访问虚拟IP的时候,机器B会变成主服务器,而A降级为备份服务器。这就完成了主从机器的自动切换,而整个过程对外界是透明的。
四、LVS
LVS (Linux Virtual Server) ,Linux虚拟服务器。由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。
在 Linux 内核中实现了基于IP的数据请求负载均衡调度方案。
相关术语:
DS:Director Server。指的是前端负载均衡器节点。
RS:Real Server。后端真实的工作服务器。
VIP:Virtual IP 向外部直接面向用户请求,作为用户请求的目标的IP地址。
分别绑定在Director一个物理网卡上(对外接收请求包)和RS的回环设备上(回环设备需要绑定两个ip,一个是127.0.0.1,另一个就是VIP)。
DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
与VIP绑定在一个物理网卡上,用来转发请求包到RS的RIP对应的mac上,此设备可以通过arp请求获取RIP对应的mac地址。
RIP:Real Server IP,后端服务器的IP地址。绑定在RS上的一个物理网卡上,用来接收从Directory转发过来的请求包。
CIP:Client IP,访问客户端的IP地址。
ipvs (ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)。
工作模式:
1、NAT模式
NAT(Network Address Translation)即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有IP地址可以访问外网,
以及外部用用户可以访问位于公司内部的私有IP主机。
LVS负载调度器可以使用两块网卡配置不同的IP地址,eth0设置为私钥IP与内部网络通过交换设备相互连接,eth1设备为外网IP与外部网络联通。
特点:请求、响应原路返回。
2、TUN模式
隧道模式
特点:请求 通过调度器处理,响应 则直接返回到客户端。
3、DR模式
直接路由模式
特点:请求 通过负载均衡器,响应 则直接返回到客户端。要求调度器与后端服务器必须在同一个局域网内。
在实除的集群部署中,我们发现与LVS配合使用的最佳的转发方法是LVS-DR,而其中最容易构建的方式是LVS-NAT。
然而一般情况下,在使用LVS集群处理关键的数据转发时,我们不会用到LVS-TUN,因为LVS-TUN的转发方法允许真实服务器和负载均衡器在不同的物理网段中,
这使得只要断开了负载均衡器和真实服务器之间的连接,客户端计算机发出的请求就会丢失,从而增加整个集群发生崩溃的可能性。
参考资料
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步