IP地址漂移技术[转]

MAC地址漂移 HCIE 阅读详情

漂移一词有很多的应用,我在看录像中看到了汽车狂奔中的漂移技术,看到周杰伦表演的漂移过弯的精彩表演,不知是特技还是他已经真的练就了这个本事,一般的漂移是指物体悬浮于水面整体运动而相互的关系不变,现在又有了新的用处,IP地址漂移。

采用地址漂移技术,利用虚拟IP地址来绑定主服务器,可有效解决不能利用组播的情况下,多台服务器集群之间的信息交互问题。此方法具有一定的代表性,在很多行业可以采用。
双机集群方式广泛应用于各级航空飞行管制中心,两台中心服务器通过网络构成一套高可靠性双机热备份系统,同步工作、互为备份,当主机发生故障时,自动切换到备机工作,系统不间断运行。而地址漂移技术是当其中一台主机有故障时,另一主机接管故障主机的网络IP地址,使网络仍能正常运行。
系统背景
系 统采用双机热备软件,具有负载均衡功能,将信息处理、数据库记录、进程监控等各项功能在两台服务器间进行动态分配,主服务器主要负责完成信息处理、进程监 控等,备用服务器完成数据库的记录工作。当主服务器发生故障后,能够进行检测并告警,自动将主服务器上的信息处理和进程监控等应用转移到备用服务器上继续 处理,备用服务器切换为主服务器,先前的数据库记录应用仍然保留。采用CS结构(Client Server)。双服务器主要用来对航管雷达情报进行融合处理,并对飞行管制情报、异类传感器情报进行多元数据融合,响应并显示控制台的人工干预命令。
存在问题
在 集群的双服务器内,当收到航管雷达或其他管制中心通过网络或串口送过来的信息后,会转入信息处理进程,并将情报送往显示控制台进行显示,工作人员通过显示 控制台来观察监视空中目标,并对目标进行人工干预。在航空管制中心之间需要相互交换情报,便于情报共享。在管制中心内有两台服务器,每个服务器具有一个IP地址,采用其中一台服务器IP地址进行通信,如果此服务器出故障将无法接收信息,这就为中心之间采用哪一个IP地址来交换信息造成选择困难。
虚拟IP地址
解决多台服务器集群间信息交互的办法有三个: 一是采用组播,该方法最简单。只要将两台计算机加入一个组播地址,则发送方将目的地址设置为此组播的IP地址即可,航空管制中心的两台计算机均能够收到,但在航空管制中心间网络拓扑关系复杂,很多区域网络内禁止采用组播的方式,所以此方法不可行。
二是采用一份情报分别传递两次给两台双机服务器的方式,能够保证两台服务器均能够收到信息,但是造成带宽浪费,并加大双服务器接收情报时间不一致的可能性,使双服务器的信息处理不能同步,如果在情报量大时,信道可能无法承受,此方法不可取。
三是采用地址漂移技术,给管制中心分配一个航空管制中心虚拟IP 地址,航空管制中心之间传递情报采用此IP地址,然后由各航空管制中心的主服务器与此IP地址绑定,负责接收和发送情报。同时在主服务器启动一个三通进 程,所谓三通进程是指此进程负责接收信息,然后将收到的信息分别转发到集群内两台服务器,类似于水龙头的三通,因此称之为三通进程。主服务器收到一份情报 后,送往局域网内主服务器和备服务器的接收进程。当主机切换为备机时,此服务器卸载此虚拟IP地址,切换为主机的服务器加载虚拟IP地址,并启用三通进程 负责接收和分发情报。虚拟IP地址在主备服务器之间漂移,也称之为地址漂移技术,目前很多集群软件也采用此技术来解决集群内多台计算机只有惟一IP地址的 问题。
技术实现
上述的第三种方法的实现需要以下几个关键技术:
1.当主机加载虚拟IP地址后,必须利用ARP协议包通知路由器,告诉路由器虚拟IP地址在哪台主机上,这样当路由器收到目的地址为虚拟IP时,会自动将数据包传递给主用计算机。
有两种方式可产生ARP 数据包: 一是通过程序生成ARP数据包,并由链路层接口发送给路由器,这需要对网络编程、特别是链路层编程有一定经验的技术人员才可以实现。二是利用ARP命令, 在程序中执行system(“arp”)即可,将本计算机的ARP表发送给局域网内的路由器。值得注意的是: 航空管制中心的IP地址必须一直与主机绑定,需要IP地址的加载与双机程序相关联。所以在双机切换或者主机故障、退出时要在即将成为主机的服务器上加载虚 拟IP地址。加载IP地址的命令为: ifconfig eth0 alias 192.168.1.1 netmask 255.255.255.0,卸载IP地址的命令为: ifconfig eth0 -alias 192.168.1.1。
2. 经过实验表明,主机切换为备机后,曾经加载的虚拟IP 地址不卸载,不会造成网络冲突。经分析,其原因为: 当路由器收到ARP数据包后,将MAC地址和IP地址的配对更新,当路由器接收到情报数据后,会根据ARP表来寻找虚拟IP地址所在计算机的MAC地址, 因此路由器接收到航管情报后自动将报文发送给主计算机,然后由主机的三通进程将情报通过局域网内的组播方式发送给主备计算机的信息接收进程。
3.建立三通进程,负责接收情报,并将接收的情报分发给两台计算机。需要将三通进程作为系统守侯进程,这样它随着操作系统的启动而自动执行,增强其可靠性。下面对三通进程的实现进行简单介绍。
在Unix操作系统下,首先需要随着操作系统的启动而自动启用三通进程,在/etc/rc2.d目录下建立脚本文件,如下:
#!/bin/sh
findproc() { # 查询进程ID
pid=`/usr/bin/ps -e |
/usr/bin/grep " $1" |
/usr/bin/grep -v "$$" |
/usr/bin/grep -v grep |
/usr/bin/awk '{ print $1 }'`
}
case $1 in
start)
/usr/Tprocess& #启动三通进程
;;
stop) #关闭三通进程
findproc Tprocess;
if [ "$pid" < > "" ]; then
/bin/kill -15 $pid
Fi
;;
*)
esac
三通进程的实现步骤为: 首先是要脱离开原有进程组,单独建立进程组并成为进程组的首进程,建立守护进程; 其次是接收到报文后增加报文头格式,后续紧跟网络发送方IP地址,然后紧跟为原始数据。其数据格式如表所示:
最后是将组合后的数据报文在局域网内发送给双服务器的接收进程。下面介绍三个步骤的实现方法。
步骤1: 脱离开原有进程并建立守护进程。程序如下:
pid = fork(); //建立进程
if ( pid< 0 ) return ;
if ( pid!=0 ) exit(0); //父进程退出
setsid (); //建立对话期
setpgrp(); //建立进程组,并成为进程组的首进程
chdir("/"); //更换工作目录为根目录
umask(0);
步骤2: 三通进程负责接收远程航空管制中心的数据。
//建立socket
Sid = socket (AF_INET, SOCK_DGRAM, 0);
if (sid < 0) {
perror(" n IN distribute.c create socket41432:");
exit(1);
}
//从/etc/services文件中获得服务名称,得到服务端口号。
sp = getservbyname ("head", "udp");
if (sp == NULL) {
printf(": head not found in /etc/servicesn");
exit(1);
}
addr.sin_port = sp->s_port;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
//打开地址重用机制
on = 1;
setsockopt(sid, SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on) );
//绑定此服务名
if ( bind ( sid, (struct sockaddr *)&addr, sizeof(struct sockaddr_in) )< 0 ) {
perror ( " n bind addr");
exit(0);
}
addrLen=sizeof(struct sockaddr_in);
//设定目的地址为组播地址
local_net.sin_family = AF_INET;
local_net.sin_addr.s_addr = inet_addr(multicast_ip);
sp = getservbyname ("mult_portt", "udp");
if (sp == NULL) {
printf(": hjff_port not found in /etc/servicesn");
exit(1);
}
local_net.sin_port = sp->s_port;
//循环等待接收和处理数据
for(;;) {
memset ( buff,0,2048 );
num = recvfrom ( sid, buff,2048,0, (struct sockaddr *)&srcAddr, &addrLen);
if ( num< 0 ) {
perror ( "n recvfrom ");
continue;
}
步骤3: 收到报文后,组织和封装数据并在局域网内利用组播来将数据转发给双服务器。
链接:ARP协议
ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。
IP数据包常通过以太网发送,以太网设备并不识别32 位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通 信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为硬件 地址(MAC地址),以保证通信的顺利进行。
keepalived应用:漂移IP实现 1.集群的介绍   每个服务器都叫做一个节点,集群节点之间是可以相互通信的,通信方式有两种:一种是基于RS232心跳线实现心跳监控,另一种用一块单独的网卡来跑心跳。心跳就是用来判断集群每个服务器之间网络、服务是否正常,判断方法就是用连接线,这个连接线可以是网卡,也可以是RS232,一般用网卡网线。   集群必须拥有这几个特性:1.服务实体的扩展功能,可以灵活的增加和剔除某个服务实体。2.当一个节点... 阅读详情

相关推荐

第三章 实验二IBM MQ高可用HA下绑定VIP地址IP地址漂移

一、实验前言 场景二:测试高可用HA下绑定VIP地址IP地址漂移(QMRGRECGC->QMFX),实现在单节点故障情况下,自动虚IP漂移到另一个节点上实现服务高可用 目的:1.虚IP在2个节点间自动漂移;2.VIP漂移后应用程序能够自动重连实现消息重复不丢失,服务高可用 回执发送在两个网关管理器前面加了一层高可用Keepalived来实现故障IP切换,对程序连接是透明的。 多个网关队列...

suifeng_2004的博客 2449

IP地址漂移技术详解

采用地址漂移技术,利用虚拟IP地址来绑定主服务器,可有效解决不能利用组播的情况下,多台服务器集群之间的信息交互问题。此方法具有一定的代表性,在很多行业可以采用

Postgresql主备同步流复制及主备切换、IP漂移

主备流复制环境搭建请参考http://blog.csdn.net/baiyinqiqi/article/details/47833811 这篇文章介绍的是异步流复制环境的搭建,实际上同步模式只需要修改主库的几个参数即可实现。 主:192.168.3.201 从:192.168.3.202 postgresql 的几种流复制: 1+n异步流复制:1是指master,n是指slave

苍穹霸主 1万+

IP地址漂移概念

概念 当前备份软件比较流行,其中用到的关键技术IP地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效。 举例说明: 假设最简单的主从方式、单网卡的情况下,双机系统要占用3个网络地址。主机一地址为200.10.20.1,主机二的地址为200.10.20.2, 同时,还应该有一个“虚拟”IP地址,该地址为工作IP地址,用来做“漂移”,即工作地址为200.10.20.3。 在分配

qq_40741808的博客 5494

ip地址漂移技术

介绍 通常情况下,两台服务器都具有一块以上的网卡,每块网卡都应该有一个IP地址,同时,还应该有一个漂移IP地址,该地址为工作IP地址。因此,最简单的主从方式下,双机系统要占用3个网络地址。 在分配IP地址时,要分清工作IP地址和主机自由地址。如在主从方式、单网卡的情况下,主机一地址为200.10.10.1,主机二的地址为200.10.10.2,工作地址为200.10.10.3,正常情况下,工...

曾经蜡笔没有小新 5650

IP地址漂移技术

IP地址漂移技术   关于IP地址漂移,我所找到的关于其描述如下:   由于通常情况下,两台服务器都具有一块以上的网卡,每块网卡都应该有一个IP地址,同时,还应该有一个漂移IP地址,该地址为工作IP地址。因此,最简单的主从方式下,双机系统要占用3个网络地址。     在分配IP地址时,要分清工作IP地址和主机自有地址。如在主从方式、单网卡的情况下,主机一地址为200.10.10.1,主机二的地址...

xiaomin1991222的专栏 836

keepalived 实现 IP 地址漂移(一)

本篇文章介绍到这里,有问题欢迎在评论区交流,后续会更新 keepalived 的原理,敬请期待!CentOS7 部署 Keepalived保姆级教程_centos7 keepalived_未来村长的博客-CSDN博客Keepalived 设置master故障恢复后不重新抢回VIP(解决nopreempt无效)_征服.刘华强的博客-CSDN博客🎈感觉有帮助记得「一键三连支持下哦!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞。

Muti-Agent 4048

服务器虚拟化漂移,云服务器漂移

服务器漂移 内容精选换一换以Linux操作系统为例,如果在变更规格后执行ifconfig命令发现云服务器原来是eth0、eth1的网卡设备没有了,变成了eth2、eth3,说明云服务器变更规格后发生了网卡漂移。出现网卡漂移的现象,是由于创建云服务器使用的镜像的操作系统中打开了网卡保留规则,才导致该云服务器变更规格后出现网卡漂移。Winsows操作系统云服务器出现网本章节主要介绍扩容弹性云服务器的...

weixin_39813574的博客 1405

IP地址漂移的原理与实现

当前备份软件比较流行,其中用到的关键技术IP地址漂移,实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效。 举例说明:假设最简单的主从方式、单网卡的情况下,双机系统要占用3个网络地址。主机一地址为200.10.20.1,主机二的地址为200.10.20.2,同时,还应该有一个“虚拟”IP地址,该地址为工作IP地址,用来做“漂移”,即工作地址为200.10.20.3。...

Michaelia_hu的博客 5532

程序化广告中的IP漂移:监控与限制策略

IP漂移是指用户在短时间内通过不同IP地址访问同一网站或应用的现象。动态IP分配:互联网服务提供商(ISP)为用户分配动态IP地址,导致用户IP地址频繁变化。代理服务器:用户通过代理服务器访问网站,导致IP地址变化。VPN:用户使用VPN服务,隐藏真实IP地址,导致IP地址变化。移动网络切换:用户在不同基站之间切换,导致IP地址变化。IP漂移是程序化广告中一个常见且复杂的问题,它会影响用户识别和广告投放的精准性。通过用户行为分析、IP地址跟踪、设备指纹技术和会话管理等方法,可以有效监控IP漂移现象。

私聊前往站内信:https://i.csdn.net/#/msg/chat/weixin_44976692 3435

虚拟IP技术 ip地址漂移技术

1.虚拟IP 在 TCP/IP 的架构下,所有想上网的电脑,不论是用何种方式连上网路,都必须要有一个唯一的 IP-address。事实上IP地址是主机硬件地址的一种抽象,简单的说,MAC地址是物理地址IP地址是逻辑地址。 虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机。 虚拟IP一般用作达到...

夜空中最亮的星 2242

使用Keepalived实现双机热备(虚拟漂移IP地址)详细介绍

Keepalived 是一个用于实现高可用性。它主要用于确保服务的连续性,防止单点故障,通常应用于负载均衡和故障移场景。Keepalived 是一个基于 VRRP(虚拟路由冗余协议)协议的软件实现。它可以管理 LVS(Linux Virtual Server)集群系统,也可以单独用于实现服务的高可用。Keepalived 通过配置虚拟 IP 地址(VIP)来实现服务的故障移。它能够监控服务器和服务的状态,在发生故障时自动进行切换。

博客之路,前途漫漫 4162

mysql地址漂移_keepalived应用:漂移IP实现

state BACKUP:在keepalived中2种模式,分别是master->backup模式和backup->backup模式。这两种模式有很大区别。在master->backup模式下,一旦主库宕机,虚拟ip会自动漂移到从库,当主库修复后,keepalived启动后,还会把虚拟ip抢占过来,即使设置了非抢占模式(nopreempt)抢占ip的动作也会发生。在backup-...

weixin_42365334的博客 1034

虚拟IP,地址漂移,双机热备

虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口。VIPs大部分用于连接冗余;一个VIP地址也可能在一台计算机或NIC发生故障时可用,交由另一个可选计算机或NIC响应连接。虚拟IP地址的例子如:一个Loopback(无电路IP地址)作为不与在主机或路由器中任何一个特定接口(或电路)相关...

mtAsnow 2933

IP地址漂移实现与原理

当前备份软件比较流行,其中用到的关键技术IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效。      举例说明:假设最简单的主从方式、单网卡的情况下,双机系统要占用3个网络地址。主机一地址为200.10.20.1,主机二的地址为200.10.20.2, 同...

weixin_33769207的博客 6212
上一篇: Base64编解码原理
下一篇: 基于套接字发送伪造IP包[转]
Garyhou
博客等级 码龄20年 41粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值