IP地址漂移的实现与原理
当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效。
举例说明:假设最简单的主从方式、单网卡的情况下,双机系统要占用3个网络地址。主机一地址为200.10.20.1,主机二的地址为200.10.20.2, 同时,还应该有一个“虚拟”IP地址,该地址为工作IP地址,用来做“漂移”,即工作地址为200.10.20.3。 在分配IP地址时,要分清工作IP地址和主机自有地址。正常情况下,工作主机的自有地址是被工作地址取代的(若主机一在工作,主机一的地址由200.10.10.1变为200.10.10.3)。在发生主机切换的情况下,主机一的地址恢复为200.10.10.1,而主机二的地址会由200.10.10.2变为200.10.10.3,这就是我们所说的地址漂移。
采用地址漂移技术, 利用虚拟IP地址来绑定主服务器,可有效解决不能利用组播的情况下多台服务器集群之间的信息交互问题。此方法具有一定的代表性,在很多行业可以采用双机集群方式广泛应用于工业控制、重要事件的备份。两台中心服务器通过网络构成一套高可靠性双机热备份系统,同步工作、互为备份,当主机发生故障时,自动切换到备机工作,系统不间断运行。而地址漂移技术是当其中一台主机有故障时,另一主机接管故障主机的网络IP地址,使网络仍能正常运行。
通常系统采用双机热备软件或双活技术,具有负载均衡功能,将信息处理、数据库记录、进程监控等各项功能在两台服务器间进行动态分配,主服务器主要负责完成信息处理、进程监控等,备用服务器完成数据库的记录工作。当主服务器发生故障后,能够进行检测并告警,自动将主服务器上的信息处理和进程监控等应用转移到备用服务器上继续处理,备用服务器切换为主服务器,先前的数据库记录应用仍然保留。双服务器主要用来工业控制数据采集或SCADA系统的数据通信与处理。
一般情形下,双服务器都有各自的IP地址,如果选择其中一台服务器IP地址进行通信,当此服务器出故障将无法接收信息时,这就为通信之间采用哪一个IP地址来交换信息造成选择困难。解决多台服务器集群间信息交互的办法有三个: 一是采用组播,该方法最简单。只要将两台计算机加入一个组播地址,则发送方将目的地址设置为此组播的IP地址即可,双服务器都能够收到包文,但对于双向系统而言,在应用层要解决的问题比较多,人为地将系统复杂化,简单的应用可以采用,但复杂的情形下此方法不可行。二是采用一份数据分别多次传递相应的多台服务器,虽然这样能够保证多台服务器均能够收到数据,但是对网络的占用时间、数据的同步性和实时性带来了新的问题,如果在传输数据量大时,造成带宽浪费,信道无法承受。 三是采用地址漂移技术,假设两地A节点与B节点要进行通信业务,每个节点有三台服务器做集群,先给A节点与B节点分配相应的虚拟IP 地址a和b,两地A、B之间传递数据采用a和b地址,A节点的
主服务器与a地址绑定,B节点的主服务器与b地址绑定。同时在主服务器启动一个三通进程,所谓三通进程是指此进程负责接收信息,然后将收到的信息分别转发到集群内两台服务器。主服务器收到数据后,送往局域网内主服务器和备服务器的接收进程。当主机切换为备机时,此服务器卸载此虚拟IP地址,切换为主机的服务器加载虚拟IP地址,并启用三通进程 负责接收和分发数据。虚拟IP地址在主备服务器之间漂移,也称之为地址漂移技术,目前很多集群软件也采用此技术来解决集群内多台计算机只有惟一IP地址的问题。
技术实现地址漂移需要涉及一些关键技术。
当主机加载虚拟IP地址后,必须利用ARP协议包通知路由器,告诉路由器虚拟IP地址在哪台主机上,这样当路由器收到目的地址为虚拟IP时,会自动将数据包传递给主用计算机。 有两种方式可产生ARP 数据包: 一是通过程序生成ARP数据包,并由链路层接口发送给路由器,这需要对网络编程、特别是链路层编程有一定经验的技术人员才可以实现。二是利用ARP命令,在程序中执行system(“arp”)即可,将本计算机的ARP表发送给局域网内的路由器。
路由器收到ARP数据包后,将MAC地址和IP地址的配对更新,当路由器接收到数据后,根据ARP表来寻找虚拟IP地址所在计算机的MAC地址,重新指定路由。
建立三通进程,负责接收数据,并将接收的数据分发给备份服务器。通常将三通进程作为系统守侯进程,这样它随着操作系统的启动而自动执行,增强其可靠性。
IP地址漂移的实现与原理的更多相关文章
- IP 地址漂移
1.概念 应用访问虚拟ip,当主服务器正常工作时,虚拟ip指向主服务器,当主服务器宕掉后,虚拟ip自动指向从服务器,当主服务器被人修好后,再自动指向主服务器, 这种虚拟ip的指向方式称为ip地址漂移. ...
- 虚拟IP技术 ip地址漂移技术
虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址.数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口.VIPs大部分用于连接冗余:一个VI ...
- 解析私有IP地址和公网IP地址
局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上.一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行 ...
- 100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址
在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1.好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的 ...
- IP地址与子网的划分
一.IP地址 1.IP地址的定义 (1).IP地址有32位二进制数组成,一般用点分十进制来表示 (2).IP地址由两部分组成 网络部分(NETWORK) 主机部分(HOST) 2.IP地址的分类 IP ...
- mDNS原理的简单理解——每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的IP地址是多少
MDNS协议介绍 mDNS multicast DNS , 使用5353端口,组播地址 224.0.0.251.在一个没有常规DNS服务器的小型网络内,可以使用mDNS来实现类似DNS的编程接口.包格 ...
- TCP/IP协议原理与应用笔记03:IP地址分类
1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网 ...
- DHCP服务自动分配IP地址原理
转载自:http://blog.csdn.net/lycb_gz/article/details/8499559 DHCP在提供服务时,DHCP客户端是以UDP 68号端口进行数据传输的,而DHCP服 ...
- IP地址个数的计算原理
IP注释: IP地址(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址. 它为互联网 ...
随机推荐
- PHP-线程一直不释放调试
一.现象 1.查看进程是否存在 ps -ef | grep -v 'grep' |grep -E 'shell/cron/bonus/cash' www 2624 1 0 Oct24 ...
- x2go
单词解析 productivity n. 生产力:生产率:生产能力seamlessly adv. 无缝地roam constantly 经常漫游agility and flex ...
- linux包之diff
[root@84-monitor ~]# rpm -qf /usr/bin/diffdiffutils-2.8.1-28.el6.x86_64[root@84-monitor ~]# rpm -ql ...
- kettle 数据库连接中断重置
项目适用kettle作为etl工具,源数据库为mysql库,目标库为oracle.在持续的循环调度中,经常发现oracle的数据库连接中断,需要重置. 具体报错信息如下: INFO 26-12 23 ...
- 数据库连接工具类 数据库连接工具类——仅仅获得连接对象 ConnDB.java
package com.util; import java.sql.Connection; import java.sql.DriverManager; /** * 数据库连接工具类——仅仅获得连接对 ...
- 虚拟机IP设置
实验软件环境:虚拟机Vmware Workstation10.0 .CentOS 6.5 32位 1.自动获取IP地址 虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分 ...
- ORA-01109:数据库未打开
ORA-01109:数据库未打开 在此之前做了这样一操作,在plsql创建了2表空间,由于装的是oracle精简版所以创建表空间大小超过4G就不能创建,然后我就手动把表空间给删除了,回收站也给删了,问 ...
- SVN-钩子祥解
钩子脚本的具体写法就是操作系统中shell脚本程序的写法,请根据自己SVN所在的操作系统和shell程序进行相应的写作 所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的 ...
- [转]Hibernate Session各种状态转换方法分析
摘自http://spiritfrog.iteye.com/blog/221177 我的印象里, Hibernate session中常用的保存操作只有:save, update, saveOrUpd ...
- Lucene.Net 站内搜索
Lucene.Net 站内搜索 一 全文检索: like查询是全表扫描(为性能杀手)Lucene.Net搜索引擎,开源,而sql搜索引擎是收费的Lucene.Net只是一个全文检索开发包(只是帮我们 ...