前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈VIP地址漂移

浅谈VIP地址漂移

作者头像
summerking
发布2022-10-27 13:41:53
3.6K0
发布2022-10-27 13:41:53
举报
文章被收录于专栏:summerking的专栏

举个通俗的例子:老王开了一个会所,地址是虹X路1.1.1.1,经营范围不太正规,经常被封,顾客以为店已经关门,其实里面热火朝天,所以老王急啊,于是开了一个后门,地址是2.2.2.1,于是顾客纷纷从后门进入,老王笑开了花…过几天大门解封了,但后门由于弄堂改造,临时关闭了,熟门熟路的顾客从后门进不来了,有同学会问,大门都开着,顾客为何不从前门进店?因为这些顾客头脑比较简单,老王苦啊,痛定思痛,老王想出了一个好主意。老王给顾客自己的电话号码4.4.4.1,叮嘱他们,以后来店消费之前,只要电话能打通(4.4.4.1路由可达),说明店还营业,前门进不来(1.1.1.1接口down)就走后门(2.2.2.1接口UP);同理,如果后门进不来,可以走前门。如果电话打不通(4.4.4.1路由消失),说明老王被关进去了,顾客就别来了,因为前门被封(1.1.1.1接口down),后门也被封(2.2.2.1接口down),来了也是白来。

# 何为漂移

  • 通常情况下,两台服务器都具有一块以上的网卡,每块网卡都应该有一个IP地址,同时,还应该有一个漂移IP地址,该地址为工作IP地址。因此,最简单的主从方式下,双机系统要占用3个网络地址。
  • 其实电脑上的127.0.0.1也是一个VIP,只是用于本机进程间的通信标识符。如果没有127.0.0.1,那么一旦物理接口down,TCP/IP协议栈绑定在此接口上的IP就无法提供进程间的通信,所以非常不方便。而有了127.0.0.1,不管物理接口状态如何,都可以进程间通信。问题里的VIP,也是不依赖于任何物理接口,只要有一个物理接口处于工作状态(UP,可以和外部联系),就可以提供服务器的访问,当然需要通过路由发布将4.4.4.1发布出去,别的三层设备、主机需要知道如何到达4.4.4.1。
  • 在分配IP地址时,要分清工作IP地址和主机自由地址。如在主从方式、单网卡的情况下,主机一地址为200.10.10.1,主机二的地址为200.10.10.2,工作地址为200.10.10.3,正常情况下,工作主机的自由地址是被工作地址取代的(若主机一在工作,主机一得地址由200.10.10.1变为200.10.10.3)。在发生主机切换的情况下,主机一的地址恢复为200.10.10.1,而主机二的地址会由200.10.10.2变为200.10.10.3,这就是地址漂移。
  • 实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

# 原理

实现原理主要是靠TCP/IP的ARP协议。因为ip地址只是一个逻辑地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现的关键。

下边就是电脑上的arp缓存的内容。

代码语言:javascript
复制
(192.168.1.219) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0

192.168.1.217、192.168.1.218是两台真实的电脑,

192.168.1.217为对外提供数据库服务的主机。

192.168.1.218为热备的机器。

192.168.1.219为虚IP。

注意:219、217的MAC地址是相同的

再看看那217宕机后的arp缓存

代码语言:javascript
复制
(192.168.1.219) at 00:21:5A:DB:7F:C2 [ether] on bond0
(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0 

这就是奥妙所在。当218 发现217宕机后会向网络发送一个ARP数据包,告诉所有主机192.168.1.219这个IP对应的MAC地址是00:21:5A:DB:7F:C2,这样所有发送到219的数据包都会发送到mac地址为00:21:5A:DB:7F:C2的机器,也就是218的机器。

这里采用定时发送一个数据包,如果机器多长时间没响应,就认为是发生故障,自动切换到热备的机器上去。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 何为漂移
  • # 原理
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档