著录项信息
专利名称 | 一种网络通信中控制报文转发的方法和设备 |
申请号 | CN200910236455.2 | 申请日期 | 2009-10-22 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2011-05-04 | 公开/公告号 | CN102045233A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/46 | IPC分类号 | H;0;4;L;1;2;/;4;6;;;H;0;4;L;1;2;/;7;4;1;;;H;0;4;L;2;9;/;1;2查看分类表>
|
申请人 | 杭州华三通信技术有限公司 | 申请人地址 | 浙江省杭州市滨江区长河路466号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 新华三技术有限公司 | 当前权利人 | 新华三技术有限公司 |
发明人 | 王佩龙;孙鲁东;刘平 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 谢安昆;宋志强 |
摘要
本发明公开了一种网络通信中控制报文转发的方法和设备,其中,预先在中心设备上配置至少1个中心隧道接口;该方法包括:A,中心设备接收到中心内网的报文时,确定该报文携带的目的地址;B,中心设备在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过已配置的中心隧道接口转发加封装后的报文。采用本发明,解决现有技术中心设备上配置与分支内网的个数相等的中心隧道接口所带来的缺陷。
1.一种网络通信中控制报文转发的方法,所述网络包含连接中心内网的中心设备和连接分支内网的分支设备,每一分支设备上配置分支隧道接口,所述分支隧道接口包含分支隧道源地址;其特征在于,预先在中心设备上配置至少1个中心隧道接口;该方法包括以下步骤:
A,中心设备接收到来自中心内网的报文时,确定该报文携带的目的地址,所述目的地址为所述报文要到达分支内网中的主机对应的分支内网地址;
B,中心设备在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过已配置的中心隧道接口转发加封装后的报文。
2.根据权利要求1所述的方法,其特征在于,所述步骤B中,在查找目的地址对应的分支隧道源地址之前,进一步包括:
B0,根据分支设备通过已配置的分支隧道接口发送的报文建立对应关系,所述通过分支隧道接口发送的报文携带了分支内网地址、预先为该分支隧道接口配置的优先级、以及该分支隧道接口包含的分支隧道源地址。
3.根据权利要求2所述的方法,其特征在于,所述分支隧道接口还包含到达中心设备的分支隧道目的地址;所述步骤B0包括:
B1,分支设备接收到其所处的分支内网中的主机要发送给中心内网的报文时,所述报文携带了该主机对应的分支内网地址;将预先为自身上的分支隧道接口配置的优先级、该分支隧道接口包含的分支隧道源地址和分支隧道目的地址添加在该报文的外部,之后经由该分支隧道接口发送添加后的报文给公网;
B2,公网根据接收的报文携带的分支隧道目的地址转发报文;
B3,中心设备通过中心隧道接口接收到报文时,提取出该报文携带的分支内网地址、分支隧道源地址和分支隧道接口优先级,并记录提取出的分支内网地址、分支隧道源地址和分支隧道接口的优先级之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系中还包括中心设备接收到携带该分支内网地址、分支隧道源地址和分支隧道接口优先级的报文的时间;
所述步骤B3中的记录包括:
判断当前是否存在提取出的分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系,如果否,则执行所述记录;否则,更新该存在的对应关系中的时间为当前接收到所述报文的时间,丢弃该提取出的分支内网地址、分支隧道源地址和分支隧道接口的优先级。
5.根据权利要求4所述的方法,其特征在于,所述步骤B3中,中心设备针对每一存在的对应关系,根据该对应关系携带的时间以及预设的老化时间判断是否需要更新该对应关系,如果是,删除该对应关系。
6.根据权利要求1所述的方法,其特征在于,所述步骤B中,如果查找到1个分支隧道源地址,则将查找到的分支隧道源地址确定为当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,如果配置的中心隧道接口的个数为1,则通过该配置的中心隧道接口转发加封装后的报文;如果配置的中心隧道接口的个数大于1,则在预先配置的分支内网地址和中心隧道接口对应关系中查找作为目的地址的分支内网地址所对应的中心隧道接口;通过查找到的中心隧道接口转发加封装后的报文。
7.根据权利要求1或6所述的方法,其特征在于,所述中心隧道接口包括中心隧道源地址,所述根据确定的分支隧道源地址对报文进行加封装包括:将确定的分支隧道源地址确定为中心隧道目的地址,将所述中心隧道源地址和确定的中心隧道目的地址添加到报文的外部;
如果一分支设备通过与所述中心隧道目的地址对应的分支隧道接口接收到报文时,则进一步包括:去除该报文携带的中心隧道源地址和中心隧道目的地址,转发已去除中心隧道源地址和中心隧道目的地址的报文给该报文携带的目的地址对应的主机。
8.根据权利要求1所述的方法,其特征在于,所述中心设备上配置的中心 隧道接口,以及分支设备上配置的分支隧道接口遵守通用路由封装GRE协议;
所述分支隧道接口的优先级通过预先配置的GRE密钥Key的取值表示;
所述步骤B1中,将为分支隧道接口配置的优先级添加在报文的外部包括:
将预先配置的GRE Key的取值填入到GRE头中的Key字段;之后,将GRE头添加在报文的外部。
9.一种网络通信中控制报文转发的设备,其特征在于,该设备包括:中心隧道接口、接收单元和转发单元;其中,所述中心隧道接口的个数至少为1;
所述接收单元接收到来自中心内网的报文时,确定该报文携带的目的地址,所述目的地址为所述报文要到达分支内网中的主机对应的分支内网地址;
所述转发单元用于在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过对应的中心隧道接口转发加封装后的报文。
10.根据权利要求9所述的设备,其特征在于,所述转发单元包括:建立子单元、查找子单元和转发子单元;其中,
所述建立子单元,用于根据分支设备通过已配置的分支隧道接口发送的报文建立分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系,所述通过分支隧道接口发送的报文携带了分支内网地址、预先为该分支隧道接口配置的优先级、以及该分支隧道接口包含的分支隧道源地址;
所述查找子单元,用于在所述建立子单元已建立的对应关系中查找所述目的地址对应的分支隧道源地址;如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址;如果查找到
1个分支隧道源地址时,将查找到的分支隧道源地址确定为当前需要使用的分支隧道源地址;
所述转发子单元,用于根据所述查找子单元确定的分支隧道源地址对报文进 行加封装,如果配置的中心隧道接口的个数为1,则通过该配置的中心隧道接口转发加封装后的报文;如果配置的中心隧道接口的个数大于1,则在预先配置的分支内网地址和中心隧道接口对应关系中查找作为目的地址的分支内网地址所对应的中心隧道接口;通过查找到的中心隧道接口转发加封装后的报文。
11.根据权利要求10所述的设备,其特征在于,所述建立子单元包括:
接收模块,用于通过中心隧道接口接收来自分支设备经由分支隧道接口发送的报文,所述经由分支隧道接口发送的报文携带了分支内网地址、预先为该分支隧道接口配置的优先级和该分支隧道接口包含的分支隧道源地址;
提取模块,用于提取出该报文所携带的分支内网地址、分支隧道源地址和分支隧道接口的优先级;
建立模块,用于记录提取出的分支内网地址、分支隧道源地址和分支隧道接口的优先级三者之间的对应关系。
12.根据权利要求11所述的设备,其特征在于,所述建立模块记录的分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系中还包括所述接收模块接收到携带该分支内网地址、分支隧道源地址和分支隧道接口优先级的报文的时间;
所述建立模块还用于判断当前是否存在提取出的分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系,如果否,则执行所述记录,否则,更新该存在的对应关系中的时间为所述接收模块接收到所述报文的时间,并触发所述提取模块丢弃该提取出的分支内网地址、分支隧道源地址和分支隧道接口的优先级。
13.根据权利要求11所述的设备,其特征在于,所述中心隧道接口和分支隧道接口遵守通用路由封装GRE协议;
所述分支隧道接口的优先级通过预先配置的GRE密钥Key的取值表示;
所述接收模块接收的报文携带了GRE头,所述GRE头中的Key字段携带预先配置的GRE Key的取值;
所述提取模块从接收的报文所携带的GRE头中提取出Key字段中的值;
所述建立模块在当前已建立的对应关系中不存在所述提取模块提取出的分支内网地址、分支隧道源地址和Key值的对应关系时,记录提取出的分支内网地址、分支隧道源地址和Key值三者之间的对应关系。
一种网络通信中控制报文转发的方法和设备\n技术领域\n[0001] 本发明涉及网络通信技术,特别涉及一种网络通信中控制报文转发的方法和设备。\n背景技术\n[0002] 由于互联网具有传播及时、不受地点限制等诸多优点而在越来越多的企业得到广泛应用,目前,越来越多的企业利用在作为公网的互联网上建立用以传输企业内部信息的网络即虚拟私有网络(VPN:Virtual Private Network),具体是通过在中心内网的节点(简称为中心设备)和分支内网的节点(简称为分支设备)之间建立点对点模式的隧道构建VPN实现的。\n[0003] 其中,隧道是一个虚拟的点对点连接,可以看成是仅支持点对点连接的虚拟接口,为了实现企业中的各个分支都能访问中心,如图1所示,需要在各个分支中的各个分支设备与中心设备之间单独建立隧道,即各个分支设备上配置各个分支隧道接口,以及中心设备同时配置对应各个分支隧道接口的各个中心隧道接口。以图1所示的分支1为例,由于分支1上存在两个分支设备,分别为分支设备A和分支设备B,如此,就需要分别在分支设备A和分支设备B上建立到达中心设备的隧道,具体为:分支设备A和分支设备B上分别配置到达中心设备的分支隧道接口,分别为分支隧道接口A和分支隧道接口B,中心设备上配置对应分支隧道接口A的中心隧道接口A和对应分支隧道接口B的中心隧道接口B。\n[0004] 这里,每一分支隧道接口包括分支隧道源地址和分支隧道目的地址,其中,分支隧道源地址为该分支设备上与公网正常通信的接口的地址,分支隧道目的地址为对应的中心隧道接口的源地址;相应地,中心设备上配置的每一中心隧道接口包括中心隧道源地址和中心隧道目的地址,其中,中心隧道源地址为中心设备上与公网正常通信的接口的地址,中心隧道目的地址为对应的分支隧道接口的源地址。这样,当中心需要发送报文给分支时,中心发送报文给中心设备,中心设备确定出接收的报文携带的目的地址,其中,目的地址为报文要到达分支中主机的分支内网地址,根据目的地址确定对应的中心隧道接口,利用确定的中心隧道接口包含的中心隧道源地址和中心隧道目的地址对该报文进行加封装,即将中心隧道源地址和中心隧道目的地址添加在报文的外部,通过确定的中心隧道接口将报文转发给公网,公网接收到报文后,根据该报文携带的中心隧道目的地址转发该报文给对应的分支设备,分支设备从分支隧道接口接收到报文后,对该报文进行解封装,即去除报文携带的中心隧道源地址和中心隧道目的地址,根据去除后的报文携带的目的地址转发该报文,具体为:将报文转发给目的地址对应的主机。\n[0005] 综上可以看出,现有技术中,由于隧道是一个虚拟的点对点连接,如此,中心设备上配置的中心隧道接口的个数就会随着分支的增加、以及分支中分支设备的增加而增加。\n比如分支的个数为100,如果每个分支包含的分支设备的个数为2,则中心设备上配置的中心隧道接口的个数就为2*100=200。随着企业的不断发展,分支中分支设备的个数随之比较多,比如3000或者5000等,采用上述现有技术方案,中心设备就需要配置更多的中心隧道接口,过多的配置,给网络解决方案提供商、网络实施人员、以及网络维护人员带来不可预想的麻烦,同时,也大大增加中心设备的压力。\n发明内容\n[0006] 本发明提供了一种网络通信中控制报文转发的方法和设备,以解决中心设备上配置过多中心隧道接口所带来的诸多问题。\n[0007] 一种网络通信中控制报文转发的方法,所述网络包含连接中心内网的中心设备和连接分支内网的分支设备,每一分支设备上配置分支隧道接口,所述分支隧道接口包含分支隧道源地址;预先在中心设备上配置至少1个中心隧道接口;该方法包括以下步骤:\n[0008] A,中心设备接收到来自中心内网的报文时,确定该报文携带的目的地址,所述目的地址为所述报文要到达分支内网中的主机对应的分支内网地址;\n[0009] B,中心设备在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过已配置的中心隧道接口转发加封装后的报文。\n[0010] 一种网络通信中控制报文转发的设备,该设备包括:中心隧道接口、接收单元和转发单元;其中,所述中心隧道接口的个数至少为1;\n[0011] 所述接收单元接收到来自中心内网的报文时,确定该报文携带的目的地址,所述目的地址为所述报文要到达分支内网中的主机对应的分支内网地址;\n[0012] 所述转发单元用于在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过对应的中心隧道接口转发加封装后的报文。\n[0013] 由以上技术方案可以看出,本发明仅在中心设备上配置不需要在中心设备上分别配置对应每一分支内网中每一分支设备的中心隧道接口,实质上中心设备已配置的中心隧道接口为点对多点的隧道接口,如此,减少了中心设备上中心隧道接口和静态路由的配置,大大减少了中心设备的压力;\n[0014] 另外,中心设备在进行报文转发时,依据建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系查找分支隧道源地址,即使查找到两个以上的分支设备上分支隧道接口所包含的分支隧道源地址时,也可以唯一确定出当前需要向哪个分支设备的分支隧道接口发送报文,如此,可以看出,本发明提供的方法和设备可适用于包含多分支设备的分支内网,该多分支设备可包含一个以上的分支设备和该分支设备的备份;\n或者各个相互之间不具有备份关系的分支设备等,如此,可大大提高了本发明的应用;\n[0015] 进一步地,本发明中的中心隧道接口,对于未来分支机构的接入也具备良好的支持,不需要重新配置对应未来分支机构的中心隧道接口,大大简化了中心侧的维护代价;\n[0016] 更进一步地,本发明中,中心设备在转发报文时,根据分支隧道优先级别转发报文,解决了中心设备在查找到多条隧道时不知通过哪一个隧道转发报文的缺陷,能够实现准确、快速、并能结合实际转发报文的目的。\n附图说明\n[0017] 图1为现有技术中企业组网结构示意图;\n[0018] 图2为本发明实施例提供的基本流程图;\n[0019] 图3为本发明实施例提供的详细流程图;\n[0020] 图3a为本发明实施例提供的分支设备发送报文给中心内网的示意图;;\n[0021] 图3b为本发明实施例提供的中心内网发送报文给分支内网的流程图;\n[0022] 图4为本发明实施例提供的设备结构图。\n具体实施方式\n[0023] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。\n[0024] 参见图2,图2为本发明实施例提供的基本流程图。本实施例应用的网络包含连接中心内网的中心设备和连接分支内网的分支设备,其中,可按照与现有技术类似的操作在每一分支内网中的分支设备上配置分支隧道接口,每一分支隧道接口包含分支隧道源地址和隧道目的地址,具体定义与现有技术类似,这里不再详述;如图2所示,该流程可包括以下步骤:\n[0025] 步骤201,预先在中心设备上配置至少1个中心隧道接口。\n[0026] 这里,本发明实施例可在中心设备上仅配置1个中心隧道接口来实现与多个分支内网之间的通信,具体可参见图3所示的流程。\n[0027] 优选地,为了提高中心设备转发报文的效率,避免由于一个中心隧道接口导致转发瓶颈的问题,本实施例还可以在中心设备上配置多个中心隧道接口,需要说明的是,该配置的多个中心隧道接口并非现有技术那样与分支内网一一对应,而是按照某种策略将这些中心隧道接口分别与一组作为目的地址的分支内网地址进行映射,比如,根据网段划分一个以上作为目的地址的分支内网地址与中心隧道接口的对应关系,或者根据地域划分一个以上作为目的地址的分支内网地址与中心隧道接口的对应关系;比如,北京和上海的分支机构比较多,本实施例可为上海的所有分支机构和北京的所有分支机构分别单独配置一个专用的中心隧道接口等等,如此,后续在接收到需要发送到分支内网的报文时,比如接收到需要发送到北京的一个分支结构的报文时,直接通过与该分支内网地址具有对应关系的中心隧道接口(即为专门为北京的所有分支机构配置的中心隧道接口)发送该报文。\n[0028] 步骤202,中心设备接收到来自中心内网的报文时,确定该报文携带的目的地址。\n[0029] 这里,目的地址为所述报文要到达分支内网中的主机对应的分支内网地址。\n[0030] 步骤203,中心设备在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到,执行步骤204;否则,执行步骤205;\n[0031] 这里,对应关系具体可由中心设备根据从中心隧道接口接收的来自各个分支设备通过分支隧道接口发送的报文携带的分支内网地址、分支隧道源地址和分支隧道接口优先级动态建立,其中,该动态建立的流程具体可参见图3中的步骤302至步骤307,这里不再详述。\n[0032] 由于中心设备需要通过中心隧道接口向分支设备上转发报文,因此,对于中心隧道接口而言,分支设备上配置的分支隧道接口的分支隧道源地址实质上为该中心隧道接口对应的目的地址(记为中心隧道目的地址)。这里,查找分支隧道源地址,目的就是为了查找中心隧道目的地址,明确向哪个分支隧道接口发送报文。\n[0033] 步骤204,当查找到两个以上分支隧道源地址时,根据所述对应关系中分支隧道源地址对应的分支隧道接口的优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过已配置的中心隧道接口转发加封装后的报文。\n[0034] 这里,步骤204中在查找到两个分支隧道源地址时,根据对应关系中分支隧道源地址对应的分支隧道接口的优先级可以唯一确定出当前需要向哪个分支隧道接口发送报文。比如,若步骤203中根据目的地址查找到两个分支隧道源地址,其中一个是:第一分支内网中分支设备A上配置的分支隧道接口1包含的分支隧道源地址1,另一个是:第一分支内网中分支设备B上配置的分支隧道接口2包含的分支隧道源地址2,如此,中心设备需要根据分支隧道接口1的优先级和分支隧道接口2的优先级比如按照优先级高的原则来确定当前需要使用的是分支隧道源地址1还是分支隧道源地址2,进而可以确定出当前需要向分支隧道接口1还是分支隧道接口2发送报文。当然,本实施例中,如果步骤203查找到1个分支隧道源地址,则直接根据该分支隧道源地址对报文进行加封装,通过已配置的中心隧道接口转发加封装后的报文。\n[0035] 其中,上述根据分支隧道源地址对报文进行加封装,转发加封装后的报文具体可包括:将分支隧道源地址确定为中心隧道目的地址,将确定的中心隧道目的地址和中心隧道源地址添加到报文的外部,如果配置的中心隧道接口的个数为1,则通过该配置的中心隧道接口转发添加后的报文;如果配置的中心隧道接口的个数大于1,则在步骤201所述的分支内网地址和中心隧道接口对应关系中查找作为目的地址的分支内网地址所对应的中心隧道接口;通过查找到的中心隧道接口转发加添加后的报文。\n[0036] 这里,通过中心隧道接口转发添加后的报文会转发到连接在中心内网和分支内网之间的公网,如此,当公网接收到报文后,根据中心隧道目的地址发送报文给对应的隧道接口(具体为分支隧道接口),如此,就会有一分支设备从已配置的分支隧道接口接收到报文。当分支设备接收到报文时,去除接收的报文携带的中心隧道目的地址和中心隧道源地址,根据去除后的报文携带的目的地址(分支内网地址)发送报文给目的地址对应的设备,比如地址为目的地址的分支内网主机等。\n[0037] 至此实现了本发明实施例提供的中心内网和分支内网之间的通信流程。\n[0038] 需要说明的是,通过步骤204可以看出,中心隧道目的地址并非与现有技术一样在配置中心隧道接口时同时配置中心隧道目的地址,而是由中心设备在动态建立对应关系时动态学习得到,具体可参见图3中的步骤302至步骤307。如此,大大减少了中心设备的配置。\n[0039] 步骤205,丢弃该接收的报文。\n[0040] 这里,由于已建立的对应关系中不存在包含该报文携带的目的地址的对应关系,如此,中心设备就不知道如何发送该报文,无法实现报文的转发,因此,只能丢弃该报文。\n[0041] 至此,通过上述步骤201至步骤205,实现了本发明实施例提供的方法的基本流程。\n[0042] 上述对本发明实施例提供的方法进行了简单描述,下面对本发明实施例提供的流程进行详述。\n[0043] 首先需要说明的是,从上述图2所示的流程可以看出,中心设备转发报文时,需要依据已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级之间的对应关系,其中,该对应关系可预先根据网络规划建立,也可由中心设备根据分支设备通过已配置的分支隧道接口发送的报文建立。\n[0044] 以中心设备根据分支设备通过已配置的分支隧道接口发送的报文建立对应关系为例,为了便于中心设备动态建立所述对应关系,则在分支设备通过分支隧道接口发送携带了分支内网地址(实质上为报文的源地址)的报文时,需要将预先为该分支隧道接口配置的优先级、以及该分支隧道接口包含的分支隧道源地址携带在报文中。通常,现有技术中通过隧道接口封装的报文一般没有额外字段来承载本实施例中分支隧道接口的优先级,为了能够实现本实施例,优选地,本实施例使中心设备上配置的1个中心隧道接口,以及分支设备上配置的分支隧道接口为遵守通用路由封装(GRE)协议的隧道接口,本领域技术人员知道,RFC 1701定义的GRE头格式中包含了作为可选字段的密钥(Key)字段,如此,本实施例通过在分支设备上配置Key值来表示分支设备上分支隧道接口的优先级,具体参见图3所示的流程。当然,图3所示的只是一种举例,本实施例中也可采用其他方式来使分支设备通过分支隧道接口发送的报文携带分支隧道接口的优先级,比如,在现有的隧道接口上额外增加用以承载分支隧道接口优先级的字段等,这里并不具体限定。\n[0045] 参见图3,图3为本发明实施例提供的详细流程图。本实施例中,在各个分支设备上配置GRE分支隧道接口,每一GRE分支隧道接口包含分支隧道源地址和分支隧道目的地址;在中心设备上配置至少1个GRE中心隧道接口,其中,每一GRE中心隧道接口可只包含中心隧道源地址,并不包含中心隧道目的地址,这是因为:每一GRE分支隧道接口包含的分支隧道源地址即为中心隧道目的地址,该中心隧道目的地址可由中心设备通过下述步骤\n302至步骤307动态获得,如此,可减少中心设备的配置。为便于描述,本实施例以在中心设备上配置1个GRE中心隧道接口为例,其他多个GRE中心隧道接口的情况与该1个GRE中心隧道接口的情况类似,这里不再一一详述。\n[0046] 如图3所示,该流程可包括以下步骤:\n[0047] 步骤301,针对每一分支内网,在该分支内网中的各个分支设备上配置GRE Key值。\n[0048] 这里,步骤301中配置GRE Key值时可按照同一分支内网中不同分支设备上配置的GRE Key值不同的原则,以及根据分支设备的网络规划比如分支设备在分支内网中的位置或者所起的作用等进行。\n[0049] 步骤302,分支内网主机需要和中心内网主机通信时,发送报文给分支设备。\n[0050] 这里,报文中携带了源地址和目的地址;其中,源地址为分支内网主机对应的地址,记为分支内网地址,目的地址为中心内网主机对应的地址。\n[0051] 步骤303,分支设备根据报文携带的目的地址确定出报文需要发送给中心设备时,将预先配置的GRE Key值、已配置在自身上的分支隧道接口包含的分支隧道源地址和分支隧道目的地址添加在该报文的外部,之后经由自身上的分支隧道接口发送添加后的报文给公网。\n[0052] 这里,分支隧道目的地址即为中心隧道源地址。其中,步骤303中将预先配置的GRE Key值添加在该报文的外部具体为:将预先配置的GRE Key值填入到GRE头中的Key字段;之后,将GRE头添加在报文的外部。步骤303具体可参见图3a所示。\n[0053] 需要说明的是,本步骤303是以分支设备配置了GRE Key值为例描述的,优选地,如果步骤301中没有对本步骤303中的分支设备配置GRE Key值,则执行到本步骤303时,分支设备仅将已配置在自身上的分支隧道接口包含的分支隧道源地址和分支隧道目的地址添加在该报文的外部,之后经由自身上的分支隧道接口发送添加后的报文给公网。因此,可以看出,图3所示的只是一种举例,并非限定本发明实施例的应用。\n[0054] 步骤304,公网根据接收的报文携带的分支隧道目的地址转发报文。\n[0055] 由于分支隧道目的地址实质上为中心隧道源地址,因此,本步骤304中,公网会将报文转发给中心设备的中心隧道接口,如此,执行完步骤304时,中心设备就会通过GRE中心隧道接口接收到报文。\n[0056] 步骤305,中心设备对接收的报文进行解封装,提取出该报文所携带的分支内网地址、分支隧道源地址和GRE Key值,判断当前对应关系中是否存在包含提取出的分支内网地址、分支隧道源地址和GRE Key值的对应关系,如果不存在,执行步骤306;如果存在,执行步骤307。\n[0057] 步骤306,记录该提取出的分支内网地址、分支隧道源地址和GRE Key值之间的对应关系。之后,执行步骤308。\n[0058] 需要说明的是,本实施例中,中心设备在记录对应关系后,并非一直保持该对应关系不变,其可在预设的老化时间到达时删除该对应关系,本实施例中,为便于及时、准确删除对应关系,优选地,本步骤306在记录分支内网地址、分支隧道源地址和GRE Key值之间的对应关系时还可进一步记录中心设备接收到携带该分支内网地址、分支隧道源地址和GRE Key值的报文的时间,即该对应关系实质上为接收到报文的时间、分支内网地址、分支隧道源地址和GREKey值四者之间的对应关系。\n[0059] 如此,针对每一对应关系,中心设备可根据该对应关系携带的时间和预设的老化时间来判断当前是否需要更新该对应关系,比如,若已记录的对应关系包括时间1、分支内网地址1、分支隧道源地址1和GRE Key值X1的对应关系和时间2、分支内网地址2、分支隧道源地址2和GRE Key值X2的对应关系,如果中心隧道接口在时间1之后、且预设老化时间到达时还未接收到源地址为分支内网地址1的报文,则在已记录的对应关系中删除时间\n1、分支内网地址1、分支隧道源地址1和GRE Key值X1的对应关系,以便节省资源,之后,当再次接收到源地址为分支内网地址1的报文时,转至步骤306。\n[0060] 步骤307,丢弃该提取出的分支内网地址、分支隧道源地址和GRE Key值。之后,执行步骤308。\n[0061] 这里,步骤307是在中心设备判断出当前存在包含提取出的分支内网地址、分支隧道源地址和GRE Key值的对应关系时执行的。优选地,如果存在的对应关系中还包含接收到报文的时间,则本步骤307可进一步包括:更新该存在的对应关系中的时间为当前接收到报文的时间。\n[0062] 至此,通过上述步骤302至步骤307实现了中心设备动态建立分支内网地址、分支隧道源地址和GRE Key值之间的对应关系的操作。由于分支隧道源地址实质上为中心隧道目的地址,因此,上述步骤实质上也可为中心设备动态学习中心隧道目的地址的操作。\n[0063] 这里,经过上述步骤302至步骤307后,若以建立的对应关系仅包含分支内网地址、分支隧道源地址和GRE Key值,则以图1所示的组网,中心设备建立如下表1所示的对应关系: 表1\n[0064] \n 分支内网地址 分支隧道源地址 GRE Key的取值\n 分支设备A上的 10\n PC1地址\n 分支隧道源地址\n 分支设备B上的\n PC1地址 1\n 分支隧道源地址\n 分支设备B上的\n PC2地址 1\n 分支隧道源地址\n PC3地址 分支设备2上的\n 分支隧道源地址 5\n …… …… ……\n PCn地址 分支设备n上的 X\n 分支隧道源地址\n[0065] 需要说明的是,如果步骤303中分支设备发送的报文没有添加GRE Key值,则表1中,可使该报文携带的分支内网地址和分支隧道源地址对应的GRE Key值为空,这里不进行具体限定。\n[0066] 步骤308,中心内网主机需要向分支内网主机比如PC1发送报文时,则将报文先发送给中心设备。\n[0067] 这里,中心内网主机发送给中心设备的报文携带了目的地址,即PC1地址。\n[0068] 步骤309,中心设备确定出接收的报文携带的目的地址即PC1地址,在建立的对应关系中查找PC1地址对应的分支隧道源地址,如果查找到,则执行步骤310;否则,拒绝该报文的转发。\n[0069] 这里,中心设备查找到分支隧道源地址为发送报文所要使用的中心隧道目的地址,也就是说,中心设备需要将报文发送给具有查找到的分支隧道源地址的GRE分支隧道接口。\n[0070] 步骤310,判断查找到的分支隧道源地址的个数是否大于1,如果是,执行步骤\n311;如果等于,执行步骤312。\n[0071] 步骤311,根据对应关系中分支隧道源地址对应的GRE Key值确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过GRE中心隧道接口转发加封装后的报文给公网。之后,执行步骤313。\n[0072] 这里,步骤311中根据对应关系中分支隧道源地址对应的GRE Key值确定当前需要使用的分支隧道源地址具体实现时可有多种实现形式,比如:当查找到的分支隧道源地址都存在对应的GRE Key值时,如果以分支设备上的GRE Key值越小,表示该分支设备上的分支隧道接口的优先级越高,则步骤311中根据对应关系中分支隧道源地址对应的GRE Key值确定当前需要使用的分支隧道源地址具体可为:在查找到的分支隧道源地址对应的GRE Key值中选择出最小的GRE Key值,将该最小的GRE Key值对应的分支隧道源地址确定当前需要使用的分支隧道源地址。比如,在表1所示的对应关系中,如果查找到PC1地址对应的分支隧道源地址分别为分支设备A上GRE分支隧道接口A包含的分支隧道源地址和分支设备B上GRE分支隧道接口B包含的分支隧道源地址,为了保证中心设备知道需要发送报文给分支设备A还是分支设备B,这里就需要根据分支设备的GRE Key值进一步决定,如果以分支设备上的GRE Key值越小,表示该分支设备上的GRE分支隧道接口的优先级越高,则选择分支设备B上GRE分支隧道接口B包含的分支隧道源地址为当前需要使用的分支隧道源地址。当然,如果中心设备查找到分支隧道源地址中有一个分支隧道源地址对应的GRE Key值为空,则中心设备可将该分支隧道源地址确定为当前需要使用的分支隧道源地址,或者依然按照上述的选择最小的GRE Key值对应的分支隧道源地址为当前需要使用的分支隧道源地址,具体情况具体实现,这里不进行具体限定。\n[0073] 步骤312,中心设备根据查找到的分支隧道源地址对报文进行加封装,通过GRE中心隧道接口转发加封装后的报文给公网。\n[0074] 这里,步骤311和步骤312中,中心设备根据分支隧道源地址对报文进行加封装具体可为:中心设备将分支隧道源地址确定为中心隧道目的地址,将中心隧道源地址和确定的中心隧道目的地址添加到报文的外部。\n[0075] 步骤313,公网根据接收的报文携带的中心隧道目的地址转发报文给对应的隧道接口。\n[0076] 由于中心隧道目的地址实质上为分支隧道源地址,因此,步骤313中对应的隧道接口实质上为GRE分支隧道接口。如此,执行到步骤313时,就会有一分支设备通过配置在自身上的GRE分支隧道接口接收到报文。\n[0077] 步骤314,分支设备通过自身上的GRE分支隧道接口接收到报文时,去除该报文携带的中心隧道源地址和中心隧道目的地址,还原为步骤308中的报文。\n[0078] 步骤315,分支设备根据还原后的报文携带的目的地址即PC2地址将报文转发给PC2。\n[0079] 可以看出,步骤308至步骤315具体为中心内网发送报文给分支内网的流程,为便于理解,其可参见图3b所示的示意图,这里不再详述。\n[0080] 至此,通过上述步骤实现了本发明实施例提供的通过中心设备设置的一个中心隧道接口发送报文给分支内网的流程。\n[0081] 以上对本发明实施例提供的流程进行了详细描述,下面结合具体实施例对本发明提供的设备进行描述。\n[0082] 参见图4,图4为本发明实施例提供的设备结构图。如图4所示,该设备包括:接收单元401、转发单元402和中心隧道接口403,中心隧道接口403的个数至少为1;\n[0083] 其中,接收单元401接收到来自中心内网的报文时,确定该报文携带的目的地址,所述目的地址为所述报文要到达分支内网中的主机对应的分支内网地址;\n[0084] 转发单元402用于在已建立的分支内网地址、分支隧道源地址和分支隧道接口优先级三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过对应的中心隧道接口转发加封装后的报文。\n[0085] 如图4所示,转发单元402可包括:建立子单元4021、查找子单元4022和转发子单元4023;\n[0086] 其中,建立子单元4021,用于根据分支设备通过已配置的分支隧道接口发送的报文建立分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系,所述通过分支隧道接口发送的报文携带了分支内网地址、预先为该分支隧道接口配置的优先级、以及该分支隧道接口包含的分支隧道源地址;\n[0087] 查找子单元4022用于在建立子单元4021已建立的对应关系中查找所述目的地址对应的分支隧道源地址;如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道接口优先级确定当前需要使用的分支隧道源地址;如果查找到1个分支隧道源地址时,将查找到的分支隧道源地址确定为当前需要使用的分支隧道源地址;\n[0088] 转发子单元4023,用于根据查找子单元4022确定的分支隧道源地址对报文进行加封装,如果配置的中心隧道接口的个数为1,则通过该配置的中心隧道接口转发加封装后的报文;如果配置的中心隧道接口的个数大于1,则在预先配置的分支内网地址和中心隧道接口对应关系中查找作为目的地址的分支内网地址所对应的中心隧道接口;通过查找到的中心隧道接口转发加封装后的报文。\n[0089] 其中,建立子单元4021具体实现时可有多种实现形式,图4示出了其中一种结构,如图4所示,建立子单元4021具体可包括:接收模块40211、提取模块40212和建立模块\n40213。\n[0090] 其中,接收模块40211,用于通过中心隧道接口403接收来自分支设备经由分支隧道接口发送的报文,所述经由分支隧道接口发送的报文携带了分支内网地址、预先为该分支隧道接口配置的优先级和该分支隧道接口包含的分支隧道源地址;\n[0091] 提取模块40212,用于提取出接收模块40211接收的报文所携带的分支内网地址、分支隧道源地址和分支隧道接口的优先级;\n[0092] 建立模块40213,用于记录提取出的分支内网地址、分支隧道源地址和分支隧道接口的优先级三者之间的对应关系。\n[0093] 优选地,建立模块40213记录的分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系中还包括接收模块40211接收到携带该分支内网地址、分支隧道源地址和分支隧道接口优先级的报文的时间;如此,建立模块40213还用于判断当前是否存在提取出的分支内网地址、分支隧道源地址和分支隧道接口优先级的对应关系,如果否,则执行所述记录,否则,更新该存在的对应关系中的时间为接收模块40211接收到所述报文的时间,并触发提取模块40212丢弃该提取出的分支内网地址、分支隧道源地址和分支隧道接口的优先级。\n[0094] 本实施例中,中心隧道接口403可包含中心隧道源地址;转发子单元4023将确定的分支隧道源地址确定为中心隧道目的地址,将所述中心隧道源地址和确定的中心隧道目的地址添加到报文的外部,通过中心隧道接口403转发添加后的报文。\n[0095] 优选地,本实施例中,中心隧道接口和分支隧道接口可遵守GRE协议,其中,分支隧道接口的优先级可通过预先配置的GRE Key值来表示,如此,分支设备在发送报文时,将预先配置的GRE Key的取值填入到GRE头中的Key字段;之后,将GRE头和分支隧道源地址添加在报文的外部发送给中心设备,如此,接收模块40211接收的报文携带了包含Key字段的GRE头,提取模块40212即可从报文中提取出分支内网地址和分支隧道源地址,以及从报文的GRE头中的Key字段提取出用于表示分支隧道接口优先级的Key值,之后,建立模块\n40213在当前已建立的对应关系中不存在包含提取模块40212提取出的分支内网地址、分支隧道源地址和Key值的对应关系时,记录提取出的分支内网地址、分支隧道源地址和Key值三者之间的对应关系。\n[0096] 由以上技术方案可以看出,本发明提供的网络通信中控制报文转发的方法和设备中,预先在中心设备配置1个中心隧道接口;中心设备接收到来自中心内网的报文时,确定该报文携带的目的地址,所述目的地址为所述报文要到达的分支内网对应的分支内网地址;之后,在已建立的分支隧道源地址、分支隧道优先级别和分支内网地址三者之间的对应关系中查找所述目的地址对应的分支隧道源地址,如果查找到两个以上分支隧道源地址,则根据所述对应关系中分支隧道源地址对应的分支隧道优先级别确定当前需要使用的分支隧道源地址,根据确定的分支隧道源地址对报文进行加封装,通过所述中心隧道接口转发加封装后的报文。可以看出,本发明仅在中心设备上配置一个中心隧道接口即可实现与多个分支内网之间的通信,即实质上该中心隧道接口为点对多点的隧道接口,如此,就不需要在中心设备上分别配置对应每一分支内网的中心隧道接口,减少了中心设备上中心隧道接口和静态路由的配置,大大减少了中心设备的压力;\n[0097] 进一步地,本实施例中,在配置中心隧道接口时,不需要现有技术中配置中心隧道接口包含的中心隧道目的地址,而是通过中心隧道接口自动学习获取中心隧道目的地址,如此,对于一些采用ADSL拨号之类的动态地址没有特殊要求,便于分支机构接入网络;\n[0098] 另外,本实施例中并非现有技术中需要配置与分支内网的个数相等的中心隧道接口,根据上述图3所示的步骤301至步骤315的描述可以知道,本实施例提供的中心隧道接口实质上为点对多点的隧道接口,如此,大大减少中心侧隧道口和静态路由的配置,简化中心侧的维护代价;\n[0099] 还有,本实施例提供的方法中只要保证分支设备遵守RFC协议即可,不需要特殊的协议或者私有协议来配合使用,增加互通性;避免用户网络设备的重复投资;\n[0100] 最后,本发明实施例提供的方法中的中心隧道接口,对于未来分支机构的接入也具备良好的支持,不需要重新配置对应未来分支机构的中心隧道接口,大大简化了中心侧的维护代价。\n[0101] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2017-05-10
专利权人的姓名或者名称、地址的变更
专利权人由杭州华三通信技术有限公司变更为新华三技术有限公司
地址由310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更为310052 浙江省杭州市滨江区长河路466号
- 2013-03-13
- 2011-07-13
实质审查的生效
IPC(主分类): H04L 12/46
专利申请号: 200910236455.2
申请日: 2009.10.22
- 2011-05-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-01-07
|
2007-07-05
| | |
2
| |
2008-12-10
|
2006-10-11
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |