专利名称:信息转发方法及网关的制作方法
技术领域:
本发明涉及到通信技术领域,特别涉及到一种信息转发方法及网关。
背景技术:
随着互联网用户的不断增加,原有的互联网协议第4版(Internet Protocon v4, IPv4)的地址资源逐渐减少,为满足未来发展,IPv6将逐渐普及并替代IPv4。邻居发现协议 是互联网协议第6版(Internet Protocon v6, IPv6)协议的一个基本的组成部分,它实现 了 IPv4 中的地址解析协议(Address Resolution Protocol,ARP)、控制报文协议(Internet Control Message Protocol, I CMP)中的路由器发现部分、重定向协议的所有功能,并具有 邻居不可达检测机制。邻居发现协议采用5种类型的IPv6控制信息报文(ICMPv6)来实现邻居发现协议 的各种功能。这5种类型消息如下(1)、路由器请求(Router Solicitation)当接口工作时,主机发送路由器请求消 息,要求路由器立即产生路由器通告消息,而不必等待下一个预定时间。(2)、路由器通告(Router Advertisement)路由器周期性地通告它的存在以及 配置的链路和网络参数,或者对路由器请求消息作出响应。路由器通告消息包含在连接 (on-link)确定、地址配置的前缀和跳数限制值等。(3)、邻居请求(Neighbor Solicitation)节点发送邻居请求消息来请求邻居的 链路层地址,以验证它先前所获得并保存在缓存中的邻居链路层地址的可达性,或者验证 自身的地址在本地链路上是否是惟一的。(4)、邻居通告(Neighbor Advertisement)邻居请求消息的响应。节点也可以发 送非请求邻居通告来指示链路层地址的变化。(5)、重定向(Redirect)路由器通过重定向消息通知主机。对于特定的目的地 址,如果不是最佳的路由,则通知主机到达目的地的最佳下一跳。在虚拟局域网(VirtualBridged Local Area Networks, VLAN)技术的应用 场景中,100个用户群可以使用100个不同的VLAN进行二层隔离,该100个VLAN聚 合成一个超级VLAN。所有用户共享一个IPv4网关10.85.4. 1和IPv6默认路由器 2001:lda8:2C10:1001::l。这样同一用户群内部可以直接通信,而不同用户群之间的通信 必须经过网关转发,需要开启ARP代理和ND代理功能。当用户群1中的终端需要与其它群的用户通信时,终端发出的ARP/ND报文被网关 接收,然后网关需要向其他的99个子VLAN发送ARP/ND报文来获取目的终端的链路由层地 址;另一种情况,当外部网络的一个终端的报文来到网关设备时,如果目的地址的链路层地 址还没有解析,网关必须向100个子VLAN发送ARP/邻居发现协议(Neighbor Discovery Protocol, ND)报文来获取目的IP的链路层地址。在具体实施过程中,本发明的发明人发现,在一个通信量较大的网络中,网关需要 向其他所有VLAN发送报文,对网关的中央处理器(Central Pocessing Unit, CPU)资源的利用是巨大的。如果某个用户群中的一个用户已经离线,而远程的点对点业务应用会不停 探测该地址是否可达,网关设备会不断向各个VLAN发送ARP/ND报文,网关设备的CPU承受 很大压力。
发明内容
本发明的主要目的为提供一种可以有效减小网关CPU压力的信息转发方法及网关。本发明提出一种信息转发方法,包括获取第一终端向第二终端发送的信息;解析所述信息获取第二终端地址信息;根据所述第二终端地址信息查询预置端口地址缓存表中对应的局域网端口 ;根据所述局域网端口转发所述信息。进一步,所述获取第一终端向第二终端发送的信息前包括获取第一终端首次向第二终端发送的信息;解析所述信息;将解析后的信息转发到所有局域网端口 ;获取第二终端返回的响应信息;解析所述响应信息,获取所述第二终端所属局域网的端口 ;将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。进一步,所述根据第二终端地址信息查询预置端口地址缓存表中对应的局域网端 口后包括当根据第二终端地址信息未查询预置端口地址缓存表中对应的局域网端口时,向 所有局域网端口转发信息。进一步,所述当根据第二终端地址信息未查询预置端口地址缓存表中对应的局域 网端口时,向所有局域网端口转发信息后包括获取第二终端返回的响应信息;解析所述响应信息,获取所述第二终端所属局域网的端口 ;将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。进一步,所述根据所述局域网端口转发所述信息后包括预定时间内未收到响应信息时,开启计时器;当所述计时器超时前,停止转发向第二终端的信息。本发明还提出一种网关,包括信息获取模块,用于获取第一终端向第二终端发送的信息;解析模块,用于解析所述信息获取第二终端地址信息;查找模块,用于根据所述第二终端地址信息查询预置端口地址缓存表中对应的局 域网端口 ;发送模块,用于根据所述局域网端口转发所述信息。进一步,所述信息获取模块还用于获取第一终端首次向第二终端发送的信息;解析模块还用于解析所述信息;
发送模块还用于将解析后的信息转发到所有局域网端口 ;所述网关还包括第一接收模块,用于获取第二终端返回的响应信息;第一响应信息解析模块,用于解析所述响应信息,获取所述第二终端所属局域网 的端口 ;第一记录模块,用于将所述第二终端与所述局域网的端口对应记录入端口地址缓 存表。进一步,所述发送模块还用于当根据第二终端地址信息未查询预置端口地址缓存 表中对应的局域网端口时,向所有局域网端口转发信息。进一步,所述网关还包括第二接收模块,用于获取第二终端返回的响应信息;第二响应信息解析模块,用于解析所述响应信息,获取所述第二终端所属局域网 的端口 ;第二记录模块,用于将所述第二终端与所述局域网的端口对应记录入端口地址缓 存表。进一步,所述网关还包括计时模块,用于预定时间内未收到响应信息时,开启计时器;所述发送模块还用于当所述计时器超时前,停止转发向第二终端的信息。本发明通过在IPv6网关设备上学习、记录、并维护一个IPv6用户地址和其子VLAN 的IPv6地址池;网关在请求地址池中IPv6地址的链路层地址时,只向相应的子VLAN上发 送ND报文,从而有效减轻网关设备的CPU负荷。
图1为本发明一种信息转发方法一实施例的流程图;图2为本发明一种信息转发方法另一具体实施例的流程图;图3为本发明一种网关一实施例的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,为本发明一种信息转发方法一实施例的流程图;本发明实施例中根据邻居发现协议只需要在有限的时间内发起基于全子VLAN上 的邻居地址解析,大部分情况下,邻居请求报文只需要在指定的VLAN发送。本发明实施例需要根据邻居缓存表,如下表所示 表 1本发明实施例预置的端口地址缓存表记录了某一个用户子VLAN上的所有用户地 址信息,根据此信息进行有的放矢的邻居地址解析,可有效减轻网关设备CPU处理负担 ’另 外,该端口地址缓存表还记录了近期解析失败的用户信息,通过该信息可以抑制网关向一 些当前并不可达的目标主机发起邻居地址解析,抵制时间可以根据不同的网络进行设置, 对于邻居发现攻击的情况可以设置为无限长。本发明实施例提出的端口地址缓存表如下表 所示 表 2步骤S101、获取第一终端向第二终端发送的信息;在本发明实施例中一第一终端和第二终端不属于同一 VLAN为例进行说明。步骤S102、网关解析信息获取第二终端地址信息;网关解析第一终端发送的信息,获取目的终端即第二终端的地址信息。步骤S103、网关查询预置端口地址缓存表;网关根据第二终端地址信息查询预置端口地址缓存表中对应的局域网端口。具体 的网关解析信息得到第二终端地址信息后,查询预置的端口地址缓存表,试图获取第二终 端所属VLAN端口信息。步骤S104、网关根据局域网端口转发信息。当网关在预置端口地址缓存表中查询到第二终端所属VLAN的端口后,网关将只 向端口转发信息。进一步的,当网关未能在端口地址缓存表中查询到第二终端所属VLAN端口时或 步骤S104后网关未收到第二终端返回的响应信息时,采用如下步骤步骤A、网关向下层所有VLAN转发信息;步骤B、第二终端在线且接收到信息后向网关返回一响应信息;步骤C、网关解析响应信息,获取第二终端所属VLAN的端口 ;步骤D、网关将第二终端与局域网的端口对应记录入端口地址缓存表。
当网关第一次向第二终端发送信息时或第二终端漂移到其他VLAN时,通过步骤 A-步骤D可以根据第二终端的响应信息获知第二终端所属的VLAN端口,并将第二终端与所 属VLAN端口对应关系记录如端口地址缓存表;当下次有信息需要转发到该第二终端时,网 关可以采用步骤SlOl-步骤S104进行转发,以降低网关CPU功耗。更进一步的,当第二终端离线时,即步骤A后网关在预设时间段内未能接收到第 二终端返回的响应信息,采用如下步骤步骤E、网关在预设时间段内未接收到第二终端返回的响应信息,开启计时器;步骤F、当计时器超时前,停止转发向第二终端的信息。当第二终端离线时,第一终端可能会不断发送指向第二终端的信息,未避免在信 息不能送达的时候占用网关CPU资源,网关开启一个计时器,在计时器超时前,所有指向第 二终端的信息均不予转发。本发明通过在IPv6网关设备上学习、记录、并维护一个IPv6用户地址和其子VLAN 的IPv6地址池;网关在请求地址池中IPv6地址的链路层地址时,只向相应的子VLAN上发 送ND报文,从而有效减轻网关设备的CPU负荷。参照图2,为本发明一种信息转发方法另一具体实施例的流程图;步骤201 网关接收报文;网关收到报文,或者IPv6在转发报文时,查找邻居缓存失败,需要对目标IPv6地 址进行邻居地址解析,交步骤202进一步处理;步骤202 判断报文是输出还是输入;根据网关内置邻居发现扩展模块的处理,判断所述报文是邻居通告报文输入还是 邻居请求报文输出,如果是邻居通告报文输入,即针对某个目标IPv6地址的解析,对方回 复了邻居通告报文,需要进行地址池学习,继续步骤203;如果是邻居请求报文输出,网关 需要对邻居地址进行解析,继续步骤211 ;步骤203 解析邻居通告报文;对邻居通告报文进行解析,获取该报文的目标IPv6地址,并根据该报文的TAG信 息,获取该邻居通告报文的接收VLAN端口信息,继续步骤204。步骤204 添加端口信息到端口地址缓存表;把邻居通告报文的接收VLAN可用地址信息和相应子VLAN信息添加到端口地址缓 存表中。步骤211 查找端口地址缓存表;在邻居请求报文输出的过程,需要首先决定是否发送报文和发送的VLAN范围,需 要首先调用端口地址缓存表获取相关的信息,继续步骤212。步骤212 判断地址是否存在;根据端口地址缓存表查找的结果进行判断,如果该目标地址查找失败,则直接进 行步骤213 ;如果该目标地址查找成功,则进行步骤221。步骤213 基于全子VLAN转发;目标地址在端口地址缓存表中查找失败,说明该地址不在抑制范围,并且该地址 用户所在VLAN信息不明,需要向所有子VLAN范围的邻居地址转发请求,继续步骤214。步骤214 判断转发是否成功;
在所有子VLAN上发送邻居请求报文后,如果收到邻居通告响应报文则走步骤203 的处理流程,如果不能收到邻居通告报文,则由步骤215处理;步骤215 添加地址信息到端口地址缓存表;将目标VLAN的IPv6地址信息添加到端口地址缓存表,并置状态为抑制,在一个老 化计时器内不再对该目标地址发起邻居地址解析;步骤221 判断该目标IPv6地址的查找结果中的状态是否可用;如果是可用状态,则根据可用的VLAN端口继续步骤222 ;若状态为抑制,则继续步 骤231的处理流程。步骤222 发送邻居请求报文;根据查找的VLAN端口,在指定VLAN上发送邻居请求报文,然后交步骤223处理;步骤223 判断是否发送成功;如果能够接收到该VLAN发送的邻居通告报文,则走步骤203的处理流程,如果不 能够在该VLAN上收到该邻居通告报文,说明明该用户已经离线或者漂移,需要步骤213处 理;步骤231 不予转发报文。对于抑制期内的目标IPv6地址,不对其进行邻居地址解析,不能在任何VLAN上发 送邻居请求报文。参照图3,为本发明一种网关一实施例的结构示意图;本发明实施例是采用图1对应实施例方法的网关,本发明实施例提供的网关包 括信息获取模块301,用于获取第一终端向第二终端发送的信息;解析模块302,用于解析所述信息获取第二终端地址信息;查找模块303,用于根据所述第二终端地址信息查询预置端口地址缓存表中对应 的局域网端口;发送模块304,用于根据所述局域网端口转发所述信息。进一步,所述信息获取模块301还用于获取第一终端首次向第二终端发送的信 息;发送模块304还用于向所有局域网端口转发所述信息;所述网关还包括第一记录模块305,用于获取第二终端响应信息后,根据所述响 应信息将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。进一步,所述信息获取模块301还用于获取第一终端首次向第二终端发送的信 息;解析模块302还用于解析所述信息;发送模块304还用于将解析后的信息转发到所有局域网端口 ;上述网关还包括第一接收模块305,用于获取第二终端返回的响应信息;第一响应信息解析模块306,用于解析响应信息,获取第二终端所属局域网的端 Π ;第一记录模块307,用于将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。进一步,发送模块304还用于当根据第二终端地址信息未查询预置端口地址缓存 表中对应的局域网端口时,向所有局域网端口转发信息。进一步,上述网关还包括第二接收模块308,用于获取第二终端返回的响应信息;第二响应信息解析模块309,用于解析响应信息,获取第二终端所属局域网的端 Π ;第二记录模块310,用于将第二终端与局域网的端口对应记录入端口地址缓存表。进一步,上述网关还包括计时模块311,用于预定时间内未收到响应信息时,开启计时器;发送模块304还用于当所述计时器超时前,停止转发向第二终端的信息。具体的第一接收模块305和第二接收模块308可以为同一模块;第一响应信息解 析模块306、第二响应信息解析模块309和解析模块302可以为同一模块;第一记录模块 307和第二记录模块310可以为同一模块。本发明通过在IPv6网关设备上学习、记录、并维护一个IPv6用户地址和其子VLAN 的IPv6地址池;网关在请求地址池中IPv6地址的链路层地址时,只向相应的子VLAN上发 送ND报文,从而有效减轻网关设备的CPU负荷。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用 本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关 的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
一种信息转发方法,其特征在于,包括获取第一终端向第二终端发送的信息;解析所述信息获取第二终端地址信息;根据所述第二终端地址信息查询预置端口地址缓存表中对应的局域网端口;根据所述局域网端口转发所述信息。
2.根据权利要求1所述的方法,其特征在于,所述获取第一终端向第二终端发送的信 息前包括获取第一终端首次向第二终端发送的信息; 解析所述信息;将解析后的信息转发到所有局域网端口; 获取第二终端返回的响应信息;解析所述响应信息,获取所述第二终端所属局域网的端口 ; 将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。
3.根据权利要求1所述的方法,其特征在于,所述根据第二终端地址信息查询预置端 口地址缓存表中对应的局域网端口后包括当根据第二终端地址信息未查询预置端口地址缓存表中对应的局域网端口时,向所有 局域网端口转发信息。
4.根据权利要求3所述的方法,其特征在于,所述当根据第二终端地址信息未查询预 置端口地址缓存表中对应的局域网端口时,向所有局域网端口转发信息后包括获取第二终端返回的响应信息;解析所述响应信息,获取所述第二终端所属局域网的端口 ; 将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。
5.根据权利要求1或3所述的方法,其特征在于,所述根据所述局域网端口转发所述信 息后包括预定时间内未收到响应信息时,开启计时器; 当所述计时器超时前,停止转发向第二终端的信息。
6.一种网关,其特征在于,包括信息获取模块,用于获取第一终端向第二终端发送的信息; 解析模块,用于解析所述信息获取第二终端地址信息;查找模块,用于根据所述第二终端地址信息查询预置端口地址缓存表中对应的局域网 端□;发送模块,用于根据所述局域网端口转发所述信息。
7.根据权利要求6所述的网关,其特征在于,所述信息获取模块还用于获取第一终端 首次向第二终端发送的信息;解析模块还用于解析所述信息;发送模块还用于将解析后的信息转发到所有局域网端口;所述网关还包括第一接收模块,用于获取第二终端返回的响应信息;第一响应信息解析模块,用于解析所述响应信息,获取所述第二终端所属局域网的端Π ;第一记录模块,用于将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。
8.根据权利要求6所述的网关,其特征在于,所述发送模块还用于当根据第二终端地 址信息未查询预置端口地址缓存表中对应的局域网端口时,向所有局域网端口转发信息。
9.根据权利要求8所述的网关,其特征在于,所述网关还包括 第二接收模块,用于获取第二终端返回的响应信息;第二响应信息解析模块,用于解析所述响应信息,获取所述第二终端所属局域网的端Π ;第二记录模块,用于将所述第二终端与所述局域网的端口对应记录入端口地址缓存表。
10.根据权利要求6或8所述的方法,其特征在于,所述网关还包括 计时模块,用于预定时间内未收到响应信息时,开启计时器;所述发送模块还用于当所述计时器超时前,停止转发向第二终端的信息。
全文摘要
本发明揭示了一种信息转发方法,包括获取第一终端向第二终端发送的信息;解析信息获取第二终端地址信息;根据第二终端地址信息查询预置端口地址缓存表中对应的局域网端口;根据局域网端口转发信息。本发明还提供了相应的网关。本发明通过在IPv6网关设备上学习、记录、并维护一个IPv6用户地址和其子VLAN的IPv6地址池;网关在请求地址池中IPv6地址的链路层地址时,只向相应的子VLAN上发送ND报文,从而有效减轻网关设备的CPU负荷。
文档编号H04L12/56GK101888338SQ20101022353
公开日2010年11月17日 申请日期2010年7月1日 优先权日2010年7月1日
发明者刘晓东 申请人:中兴通讯股份有限公司