向局域网内特定目标发送地址解析协议请求报文的方法

文档序号:7897104阅读:463来源:国知局
专利名称:向局域网内特定目标发送地址解析协议请求报文的方法
技术领域
本发明涉及网络通信技术,特别涉及将ARP(地址解析协议)请求报文向局域网中的特定目标进行单播或组播的方法,以及运用该ARP请求报文的单播或组播对在线主机对局域网中设备的访问进行动态调度的方法。
背景技术
在基于TCP/IP(传输控制协议和网际协议)的网络通信技术中,ARP的主要目的就是实现地址解析,即获得IP地址到MAC(媒体访问控制)地址的对应关系。ARP请求报文的格式可以参考IETF RFC826协议。图1显示了ARP请求报文的一般格式。例如为Ethernet transmission layer(以太网传输层)48.bit目的MAC地址48.bit发送者以太网地址16.bit协议类型=ether_type$ADDRESS_RESOLUTIONEthernet packet data(以太网报文数据)16.bit(ar$hrd)(硬件地址空间,例如以太网、分组无线网)16.bit(ar$pro)(协议地址空间。对于以太网硬件,它来自于类型字段ether_typ$<protocol>集合8.bit(ar$hln)每个硬件地址的字节长度8.bit(ar$pln)每个协议地址的字节长度16.bit(ar$op)opcode(ares_op$REQUEST|ares_op$REPLY)nbytes(ar$sha)该报文的发送者硬件地址,n来自ar$hln字段mbytes(ar$spa)该报文的发送者协议地址,m来自ar$pln字段nbytes(ar$tha)该报文的目标硬件地址,如果已知mbytes(ar$tpa)目标协议地址在上述字段中,以太网传输层的目的MAC地址在ARP请求报文封装时通常是广播地址,即全1,以太网传输层的协议类型字段为ADDRESS_RESOLUTION。
在以太网报文数据部分,重要的4个字段是发送者硬件地址,该字段填写发送者的以太网MAC地址即发送者硬件地址;发送者协议地址,对于TCP/IP填写发送者的IP地址;目标协议地址,填写想要请求其硬件地址的主机的IP地址;目标硬件地址,通常不填写,但是如果已知的话,可以填写。
当然,上面是以RFC(请求注释)826为例。以太网的封装也可以有一些其它的变化。例如,在IEEE802.1Q定义的VLAN(虚拟局域网)中包括的以太网传输层增加了一些字段,但是RFC826中提到的基本的以太网传输层的3个字段并没有变化。也就是说,以太网封装部分的目的MAC地址、发送者源MAC地址、协议字字段是都有的。
在本说明书中所称的“虚拟MAC地址”是参考了RFC 2338中的定义,是在VRRP协议中的冗余备份网关上的以太网接口具有的另外一个MAC地址,称为虚拟MAC地址是因为它和该接口上的原来的MAC地址有所区分。
RFC 2338中对此的定义是虚拟MAC地址与虚拟路由器相关,是以如下格式表示的IEEE 802的MAC地址00-00-5E-00-01-{VRID}另外,“虚拟IP地址”也与此类似,是指在具有多个提供服务的设备例如服务器或者网关之间存在冗余备份的功能时,这个虚拟IP地址通常被这些设备共同拥有。为了区分这些设备上的原来的使用的真实的IP地址,称这个被共同拥有的IP地址为虚拟IP地址。
但是,如上所述,常规的ARP请求报文是以广播的形式发送的,否则就无法正确获得某个IP地址的对应的MAC地址,因为在以太网现有的地址解析模式就是主动请求方式,所以只能这样。使用这种广播式的ARP请求报文确实能够满足现有的正常的以太网数据通信中需求,但是在另外一些应用环境中,这样做就无法满足要求,存在一定问题。
例如,中国专利申请03119758.2提出了一种关于局域网的负载分担和冗余备份的方法。在该专利申请所公开的技术方案中,当局域网中有多个网关采用负载分担和冗余备份的方式为局域网中的主机提供服务时,如果出现某些在线主机下线或某台服务设备的业务量突增等情况,就需要通过对在线主机进行调度来分担和平衡各服务设备的业务量,从而保持整个局域网的通信功能平稳和顺畅。这里在线主机的含意是,局域网内的某个设备已经知道某个主机的MAC地址,对于这个设备来说,这个主机就称为在线主机,这个设备可以是一个局域网主机或者网关或者服务器等。
在上述专利申请所公开的技术中,服务设备(例如网关)向在线主机发送ARP请求报文,将发送者协议地址设置为网关的虚拟IP地址,发送者的硬件地址设置为将要为该主机提供服务的网关对应的虚拟MAC地址,利用接收ARP报文的主机会根据该ARP报文更新自己的ARP表中的该虚拟IP地址到MAC地址的对应,从而使在线主机调度到新的服务设备上。但是,如上所述,常规的ARP报文是将以太网传输层的目的MAC地址设为全1,那么在这个报文发送出去后,所有接收到该ARP报文的主机都将更新自己的ARP表中的虚拟IP地址到MAC地址的对应。这会导致所有这些主机均切换到这个网关。因此采用常规的广播ARP报文方式不能很好解决调度在线主机的问题。

发明内容
因此,针对上述现有技术中存在的问题,本发明的一个目的就是提供一种向局域网内特定目标发送ARP请求报文的方法,可以拓宽ARP请求报文的应用范围。
本发明的另一个目的就是提供一种利用上述方法来解决上述现有技术中的局域网内在线主机的动态调度问题的方法。
在本发明中,对ARP请求报文进行单播指的是局域网中的设备向该局域网内另一个特定的设备发送ARP请求报文,而不是象常规技术那样在局域网内广播ARP请求报文。具体地说,在这个ARP请求报文的以太网封装部分的目的MAC地址部分填写的是特定设备的MAC地址,而不是通常的全1的广播MAC地址。相应地,根据本发明的这种ARP请求报文就称为“单播ARP请求报文”。同时,如果ARP请求报文的发送对象是在一个组播组内的设备,则此时就将该ARP报文方式改为组播方式,也就是在ARP请求报文的以太网封装部分的目的MAC地址部分填写该组播组的组播MAC地址,相应的ARP请求报文就称为“组播ARP请求报文”。
为了实现本发明的目的,根据本发明的第一方面,本发明提供了一种向局域网内特定目标发送ARP请求报文的方法,其特征在于,包括如下步骤(1)将所述ARP请求报文的以太网封装部分的目的MAC地址设置为已知的特定目标的MAC地址;和(2)发送所述ARP请求报文。
根据本发明的另一个方面,本发明提供了一种用于调度在线主机对局域网内设备的访问的方法,所述局域网内设备的数量有多个,并且具有相同的虚拟IP地址和不同的虚拟MAC地址,所述局域网内设备每一个分别为局域网的一些主机提供服务,所述方法包括如下步骤(1’)当确定要改变单个所述在线主机或属于一个组播组的在线主机要访问的局域网内设备时,向所述在线主机或属于一个组播组的在线主机发送ARP请求报文,在该ARP请求报文的以太网封装部分的目的MAC地址设置为该主机或组播组的MAC地址,在该ARP请求报文中发送者硬件地址被设置为改变后要被访问设备的虚拟MAC地址,在该ARP请求报文中发送者协议地址被设置为所述要被访问设备的虚拟IP地址;(2’)所述主机或组播组的在线主机接收该ARP请求报文并根据所述ARP请求报文来更新各主机ARP表项中的所述虚拟IP地址到MAC地址的对应关系。
综上所述,本发明提供了ARP报文的单播和组播方法,同时还提供了一种利用该ARP报文的单播或组播方法来调度在线主机的方法,不仅拓宽了ARP报文的应用范围,而且在调度在线主机的具体应用中,可以容易地将局域网中的一个主机或者同一个组播组的主机在某个局域网内具有相同虚拟IP地址的设备之间进行调度。


通过详细文字说明并结合以下附图,本发明的上述目的、特征及优点将变得更加易于理解,其中图1是ARP请求报文一般格式的示意图;图2是现有技术的具有网络负载分担功能的网络通信方法,本发明的一种优选实施方案即可应用于该方法中;图3是本发明的ARP请求报文与常规的请求报文对比的示意图;图4是本发明一种实施方案的流程图。
具体实施例方式
参考图2~图4详细描述本发明的一种实施方案的例子。
在图2所示的示例中,是以网关作为局域网中服务设备的例子来说明的。局域网的各主机配置了相同的网关地址,即虚拟IP地址10.1.1.3,通过两个网关(网关1和网关2)完成数据报文的转发。
假定网关1为主用网关,网关2为备用网关,主用网关接收所有的目的MAC地址为虚拟MAC地址A00.00.00.00.00.03的报文,备用网关2负责接收处理所有目的MAC地址为虚拟MAC地址B00.00.00.00.00.04的报文;当主机2要向广域网发送数据报文,首先要向网关发送ARP请求,该请求为广播报文,所以网关1和网关2都能够接收到该请求。主用网关1接收到该请求后,根据目前各个备份网关的状态,决定使用哪个虚拟MAC地址应答,假设主用网关根据条件判断这个主机应该由网关2来为这个主机B提供服务,于是使用虚拟MAC地址B00.00.00.00.00.04来应答,这样主机B就会把报文的目的MAC都封装为虚拟MAC地址B00.00.00.00.00.04发送,这样网关2就接收到这个报文并转发。如果是主机A想发送数据到广域网,同样要先发送ARP请求,这时主用网关根据条件决定应该由自己为他服务,将以虚拟MAC地址A00.00.00.00.00.03对这个ARP应答,这样主机1就会把报文的目的MAC都封装为虚拟MAC地址A00.00.00.00.00.03发送,这样主用网关即网关1就接收到这个报文并转发。
虽然上述方案较好地解决了负载分担问题,但是它仍存在着一个问题。即,当局域网中的主机状态发生变化时,例如局域网中的某个网关服务的主机都关机了,而另外某些网关可能还为很多主机进行服务;或者某个网关的出口链路带宽因为某种原因开始迅速减小等等。上述方案中的主用网关就不能针对这种条件变化作出反应。也就是主用网关不能够根据网络中负载条件的变化对在线主机进行动态调度。而本发明的实施方案就可以很好地解决这一问题。
为了便于说明,在本发明的实施方案中,采用了“控制网关”的术语。控制网关是局域网中多个网关中的一个,也称为主用网关,其作为网关的功能与其它网关是相同的。但是,控制网关具有动态调度在线主机的控制功能。即控制网关可以根据各网关的业务流量状况,确定将某些主机从在线主机积聚较多的服务网关调度到其它较空闲的服务网关上。显然,这一功能可以在控制网关上实现,也可以在局域网中的其它设备如服务器或者独立的控制装置中实现。
在本实施方案中,为局域网的主机配置了相同的虚拟网关地址,即虚拟IP地址。但这些主机最终获得的与该虚拟网关IP地址的对应的MAC地址不同。这一点与如图2所示的现有技术是一样的。这样,在局域网内的主机会达到这样的状态,即这些主机具有相同的IP网关地址,但是其MAC地址到这个IP地址的映射是不同的,从而可以使各个主机通过不同的网关向广域网发送数据。
但是当条件发生变化,例如某个网关的出口带宽减小、或者通过某个网关访问局域网的主机因为关机导致这个网关服务的主机急剧减少、或者通过某个网关访问局域网的主机增多等,这些条件变化可能导致控制网关需要把一部分主机从一个网关调度到另一个网关,使得负载分担状况更加良好,这就需要对局域网内的在线主机进行调度。
在本实施方案中,所谓在线主机是指正在正常地通过网关与广域网通信的主机,而且网关已经拥有了该主机的MAC地址,能够根据这个MAC地址向该主机发送数据。在线主机的调度就是指控制网关根据一定的条件将某些在线主机从其当前服务网关动态调整到另一个网关上的过程,由此使得网络负载分担效果达到最优。
为了达到在线主机调度的目的,必须使这些主机的ARP表中的网关IP地址到MAC地址的对应发生刷新。这种刷新显然难以通过网关向局域中主机广播ARP请求报文的方式来实现,因为难以实现只改变指定主机的ARP表中的该网关的IP地址到MAC地址的对应的目的,而是所有主机都发生刷新。
在本发明中,采用了一种将ARP请求报文进行单播或组播的方法来避免广播ARP报文所带来的问题。即当控制网关需要把某个或某些在线主机(这些在线主机在同一个组播组)调度到指定的网关上时,仅向该在线主机单播或向这些在线主机组播ARP请求报文(单播ARP请求报文或组播ARP请求报文)。图3显示了单播ARP请求报文或组播ARP请求报文与常规ARP请求报文的区别点。
参考图4说明本发明的一种实施例。在例如需要调度一个在线主机的情况下。上述控制网关在进行单播ARP请求报文的以太网封装时,不使用通常的将以太网封装的目的MAC地址也就是以太网传输层的目的MAC地址设置成全为1而将ARP请求报文进行广播的方式,而是将该地址设置为要被调度的主机的MAC地址。由于是在线主机,所以网关已经知道了它的MAC地址,把这个单播ARP请求报文的以太网封装部分的目的MAC地址设置为已知的这个主机的MAC地址。将ARP协议报文中的发送者协议地址设置为网关的虚拟IP地址也就是主机的网关IP地址。将ARP协议报文中的发送者硬件地址设置为将要为这个主机提供服务的网关的虚拟MAC地址。从而形成单播ARP请求报文。该单播ARP请求报文仅被这个需要调度的在线主机接收,从而实现了把单播ARP请求报文发送给某个特定的在线主机的目的。
该在线主机在接收到上述单播ARP请求报文后,根据ARP协议要求就刷新其内部的ARP表。这样该主机的ARP表中会生成一个网关IP地址到新的MAC地址的对应关系。这个新的MAC地址就是将要为其服务的网关的虚拟MAC地址,这样就完成了在线主机的动态调度过程。该被调度的主机对其要发送的报文进行以太网封装时,就可以用新的虚拟MAC地址作为封装的目的MAC地址,以利用新的网关为其报文传送提供服务。
在本发明上述实施方案的另一个实施例中,当需要将多个在一组播组内的在线主机同时切换到一个网关上时,可以采用向这些在线主机组播ARP请求的方式,即将上述单播ARP请求报文中以太网传输层的目的MAC地址由单个在线主机的MAC地址改为该组播组的以太网组播MAC地址,而仍将ARP协议报文中的发送者硬件地址设置为将要为该组在线主机提供服务的网关的虚拟MAC地址,将ARP协议报文中的发送者协议地址设置为网关的虚拟IP地址,从而形成组播ARP请求报文。这时由于是组播发送,可以将组播ARP请求报文中的目标IP地址也设置为网关虚拟IP地址,使得这些组播组主机不进行ARP应答。通过这种方法,可以把这个组播组的主机直接调度到某个网关上。
在本发明上述实施方案的优选实施例中,如果还想确定对在线主机的ARP表的刷新是否已被执行,可以在单播或组播ARP请求报文的目标协议地址部分填写该主机的IP地址。这样主机一方面刷新了自己的ARP表,一方面还会对这个单播或组播ARP请求报文作出应答。在这种情况下,那个将要为该主机或组播组的主机提供报文传送服务的网关将收到这个应答,这样网关就确认相关的在线主机已经刷新了其ARP表项。实际上,无论由哪个网关发送该单播ARP请求,都是那个将要为该主机提供服务的网关收到应答。所以是否重发等操作,可由将要提供服务的网关自己决定,也可以通过网关之间互相通信,由收到应答的网关告诉发送单播或组播ARP请求的网关是否已经刷新成功。
在本发明的上述方案中,为了确保在线调度的可靠性,即在线主机成功地被调整到另一个服务网关上,还可以将网关设置成对在线主机的ARP应答等待一段规定的时间间隔。如果在该规定的时间间隔内,没有接收到该ARP请求的应答,则网关应该再次发送该单播ARP请求报文,如果在指定个数的单播ARP请求报文发出后都不能得到应答,网关就放弃发送该单播ARP请求报文,并且把调度成功与否通知发送上述ARP请求报文的网关。
在常规的技术中,网关是知道在线主机的MAC地址的。因此一般不会再向该在线主机发送ARP请求报文。但是本发明却反其道而行之。利用在线主机收到单播或组播ARP请求报文后对其内部ARP表的刷新机制,建立该主机ARP表中网关IP地址到新的MAC地址的对应关系,从而完成该在线主机在网关之间的调度。显然,本发明拓展了ARP请求报文的应用领域。
尽管上面对本发明进行了说明,应当理解,这些说明只是列举了本发明的一些具体实施的例子,而不是对本发明的限定。例如,上面的实施例是以对在线主机的服务网关进行切换来说明的,但是在网络内例如有两个服务器也具有同一个IP地址(虚拟IP地址)的情况下,也可以使用本发明的方法对主机在这两个服务器之间的切换进行调度。因此,对本发明实施例的各个细节显然可以进行各种修改和采用各种等同的手段。因此,本发明的范围仅由权利要求书所限定。
权利要求
1.向局域网内特定目标发送ARP请求报文的方法,其特征在于,包括(1)将所述ARP请求报文的以太网封装部分的目的MAC地址设置为已知的特定目标的MAC地址;和(2)发送所述ARP请求报文。
2.根据权利要求1所述的方法,其特征在于,进一步包括所述特定目标对所述ARP请求报文作出应答。
3.根据权利要求1或2所述的方法,其特征在于,所述特定目标是局域网内的单台设备或属于一个组播组的设备。
4.用于调度在线主机对局域网内设备的访问的方法,所述局域网内设备的数量有多个,并且具有相同的虚拟IP地址和不同的虚拟MAC地址,所述局域网内设备每一个分别为局域网的一些主机提供服务,所述方法包括如下步骤(1’)当确定要改变单个所述在线主机或属于一个组播组的在线主机要访问的局域网内设备时,向所述在线主机或属于一个组播组的在线主机发送ARP请求报文,在该ARP请求报文的以太网封装部分的目的MAC地址设置为该主机或组播组的MAC地址,在该ARP请求报文中发送者硬件地址被设置为改变后要被访问设备的虚拟MAC地址,在该ARP请求报文中发送者协议地址被设置为所述要被访问设备的虚拟IP地址;(2’)所述主机或组播组的在线主机接收该ARP请求报文并根据所述ARP请求报文来更新各主机ARP表项中的所述虚拟IP地址到MAC地址的对应关系。
5.根据权利要求4所述的方法,其特征在于,进一步包括如下步骤(3’)所述在线主机或组播组的在线主机对所述ARP请求报文作出应答。
6.根据权利要求5所述的方法,其特征在于,进一步包括如下步骤(4’)如果未在规定的时间间隔内收到所述应答,则重复发送所述ARP请求;和(5,)如果所发出的规定个数的ARP请求都未收到应答,则不再发送该ARP请求报文。
7.根据权利要求4所述的方法,其特征在于,进一步包括,如果不需要对组播组中的主机切换情况进行跟踪,则将该ARP请求报文的目标协议地址部分设置为与所述发送者协议地址相同的值。
8.根据权利要求7所述的方法,其特征在于,所述步骤(1’)进一步包括如下步骤(1’-1)在向要被改变访问目标的所述在线主机发送的ARP请求报文中,将目标协议地址部分设置为所述在线主机的IP地址。
9.根据权利要求4-8任一项所述的方法,其特征在于,所述局域网内的设备是网关或服务器。
全文摘要
本发明提供了一种向局域网内的特定目标发送单播或组播ARP请求报文的方法以及利用这种方法调度在线主机对局域网内设备的访问的方法,局域网内设备具有相同的虚拟IP地址,所述发送单播或组播ARP请求报文的方法包括,将所述ARP请求报文的以太网封装部分的目的MAC地址设置为已知的目标设备的MAC地址,并发送该报文。利用这种发送单播或组播ARP报文的方法,可以对在线主机对局域网内设备的访问进行动态调度,从而达到动态调整网络负载分担的目的。
文档编号H04L12/28GK1536831SQ0310909
公开日2004年10月13日 申请日期2003年4月3日 优先权日2003年4月3日
发明者阎长江 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1