一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

隧道协商方法及装置与流程

2022-06-01 10:40:44 来源:中国专利 TAG:


1.本技术实施例涉及通信技术领域,尤其涉及一种隧道协商方法及装置。


背景技术:

2.隧道技术是一种使用互联网络的基础设施在网络之间传递数据的方式,使用隧道传递的数据是不同协议的数据帧或数据包。隧道技术通过使用一种网络协议,对其他网络协议的数据帧或数据包在外层封装隧道包头,并通过隧道发送封装后的数据。
3.通常情况下,本端网络设备获取到待发送数据流后,需要先和对端网络设备进行协商,以建立互联网协议安全(internet protocol security,ipsec)隧道。建立ipsec隧道后,本端网络设备通过ipsec隧道将数据流发送给对端网络设备。
4.上述发送数据流的过程中,若数据流的地址信息与本端网络设备的acl匹配,但是与对端网络设备的acl不匹配,会使得本端网络设备与对端网络设备持续为建立ipsec隧道进行协商,导致网络设备的缓存资源和处理资源被占用。此时,若本端网络设备接收到下一个数据流,由于前一个数据流占用了用于建立ipsec隧道的缓存资源,导致本端网络设备和对端网络设备无法针对下一个数据流建立ipsec隧道,进而导致下一个数据流丢包。


技术实现要素:

5.本技术实施例提供一种隧道协商方法及装置,以降低数据流丢包率,提高网络通信的效率和可靠性。
6.第一方面,本技术实施例提供一种隧道协商方法,该方法能够应用于第一网络设备,即隧道入口设备,也能够应用于第一网络设备中的芯片。下面一应用于第一网络设备对该方法进行描述,该方法包括:第一网络设备向第二网络设备发送第一数据流时,先根据第一网络设备的acl判断是否允许通过隧道转发第一数据流,若允许通过隧道转发第一数据流,则继续判断第一网络设备是否已建立用于转发第一数据流的隧道。若第一网络设备还未建立用于转发第一数据流的隧道,则第一网络设备根据虚拟转发表和第一数据流的地址信息确定匹配结果,根据匹配结果确定是否触发隧道协商过程。本技术实施例通过虚拟转发表来指示允许触发隧道协商过程的地址范围,第一网络设备根据待发送数据流与虚拟转发表的匹配结果确定是否触发隧道协商过程,而不是对每个能够通过隧道转发的数据流都持续协商以建立隧道。即第一网络设备通过虚拟转发表判断哪些数据流触发第一网络设备和第二网络设备建立隧道,哪些数据流不触发第一网络设备和第二网络设备建立隧道,保证有效数据流的隧道协商和转发,同时过滤无效数据流的隧道协商过程,减少网络资源消耗的同时,能够降低数据流丢包率,实现提高网络通信的可靠性的目的。
7.一种可行的设计中,第一网络设备根据匹配结果确定是否触发隧道协商过程时,若匹配结果指示虚拟转发表中存在第二表项,则第一网络设备触发隧道协商过程,第二表项与第一数据流的地址信息匹配。若匹配结果指示虚拟转发表中不存在第二表项时,第一网络设备禁止触发隧道协商过程。采用该种方案,第一网络设备只有在第一数据流的地址
信息和虚拟转发表匹配,即虚拟转发表中存在与第一数据流的地址信息匹配的第二表项时,才触发隧道协商过程,不会发生无法建立隧道但是持续协商的现象,降低数据流丢包的概率,提升通信质量。
8.一种可行的设计中,当匹配结果指示虚拟转发表中存在第二表项时,第一网络设备触发隧道协商过程之后,还和第二网络设备协商,并在隧道协商过程完成后,建立用以传输第一数据流的隧道。之后,第一网络设备从虚拟转发表中删除第二表项,并在隧道转发表中添加建立的用以传输第一数据流的隧道对应的表项。采用该种方案,第一网络设备通过从虚拟转发表中删除第二表项,并在隧道转发表中增加用于传输第一数据流的隧道对应的表项,保证虚拟转发表和隧道转发表这两个表中表项具有互异性。
9.一种可行的设计中,当第一网络设备根据第一网络设备的acl确定允许通过隧道转发第二数据流、第二网络设备的隧道转发表中不存在与第二数据流的地址信息匹配的第三表项,且第一网络设备本地未建立虚拟转发表时,第一网络设备和第二网络设备协商虚拟转发表的源地址范围和目的地址范围,第一网络设备根据协商后的源地址范围和目的地址范围生成虚拟转发表,使得第一网络设备后续发送其他数据流时,根据虚拟转发表确定是否触发隧道协商过程,避免第一网络设备持续发起协商,能够降低数据流丢包率,实现提高网络通信的可靠性的目的。
10.一种可行的设计中,若隧道转发表中不存在与第一数据流匹配的第一表项,则第一网络设备根据虚拟转发表和第一数据流的地址信息,确定匹配结果之前,当隧道转发表中不存在第一表项时,该第一网络设备向第二网络设备发送协商报文,协商报文用于协商建立转发第一数据流的隧道,协商报文携带第一网络设备的acl指示的源地址范围和目的地址范围,以及第一数据流的地址信息。之后,第一网络设备接收来自第二网络设备的回应报文,该回应报文携带指示隧道协商失败、以及协商后的源地址范围和协商后的目的地址范围。之后,第一网络设备根据源地址范围和目的地址范围,生成虚拟转发表。采用该种方案,实现第一网络设备建立虚拟转发表的目的。
11.一种可行的设计中,协商报文为第一因特网密钥交换协议认证ike_auth报文,第一ike_auth报文包含tsi载荷和tsr载荷,tsi载荷中的流量选择器字段携带第一acl的源地址范围和第二数据流的源地址,tsr载荷中的流量选择器字段携带第一acl的目的地址范围和第二数据流的目的地址。采用该种方案,第一网络设备通过第一ike_auth报文发起协商,无需新增报文,过程简单。
12.一种可行的设计中,回应报文为第二ike_auth报文,第二ike_auth报文包含tsix载荷和tsrx载荷,tsix载荷中的流量选择器字段携带协商后的源地址范围,tsrx载荷中的流量选择器字段携带协商后的目的地址范围。采用该种方案,第一网络设备通过第二ike_auth报文发起协商,无需新增报文,减少网络通信复杂度,过程简单。
13.一种可行的设计中,当第一网络设备的acl变化时,更新虚拟转发表;和/或,第一网络设备接收来自第二网络设备的指示信息后,更新虚拟转发表,指示信息用于指示第二网络设备的acl发生变化。采用该种方案,第一网络设备和第二网络设备能够根据第一网络设备和第二网络设备的acl的变化,及时更新虚拟转发表。
14.第二方面,本技术实施例提供一种隧道协商方法,该方法能够应用于第二网络设备,即隧道入口设备,也能够应用于第二网络设备中的芯片。下面一应用于第二网络设备对
该方法进行描述,该方法包括:第二网络设备接收来自第一网络设备的协商报文后,根据第二数据流的地址信息、以及第二网络设备上的访问控制列表acl确定是否允许建立用于转发第二数据流的隧道。其中,协商报文携带第一网络设备的acl指示的源地址范围和目的地址范围,以及第二数据流的地址信息。若不允许建立用于转发第二数据流的隧道,第二网络设备根据第一网络设备的acl指示的源地址范围和目的地址范围,以及第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围,并发送回应报文,回应报文携带协商后的源地址范围和协商后的目的地址范围。本技术实施例中,第二网络设备根据第一网络设备的acl和第二网络设备的acl确定出协商后的源地址范围和目的地址范围,第一网络设备根据协商后的源地址范围和目的地址范围生成虚拟转发表,使得第一网络设备后续发送其他数据流时,根据虚拟转发表确定是否触发隧道协商过程,能够降低数据流丢包率,实现提高网络通信的可靠性的目的。
15.一种可行的设计中,第二网络设备根据第一网络设备的acl指示的源地址范围和目的地址范围,以及第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围时,先从协商报文中提取出第一acl的源地址范围和第一acl的目的地址范围,第一acl的源地址范围是第一网络设备上的acl允许通过隧道转发的源地址范围,第一acl的目的地址范围是第一网络设备上的acl允许通过隧道转发的目的地址范围。然后,第二网络设备根据第一acl的源地址范围和第二acl的源地址范围,确定第一交集,并根据第一acl的目的地址范围和第二acl的目的地址范围,确定第二交集,第二acl的源地址范围是第二网络设备上的acl允许通过隧道转发的源地址范围,第二acl的目的地址范围是第二网络设备上的acl允许通过隧道转发的目的地址范围,第一交集用于指示协商后的源地址范围,第二交集用于指示协商后的目的地址范围。采用该种方案,第二网络设备通过求交集的方式确定出协商后的源地址范围和协商后的目的地址范围,实现准确确定出协商后的源地址范围和目的地址范围的目的。
16.一种可行的设计中,第二网络设备根据第一网络设备的acl指示的源地址范围和目的地址范围,以及第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围之后,还根据协商后的源地址范围和协商后的目的地址范围,生成表项,并将生成的表项保存在第二网络设备的虚拟转发表,使得后续发送数据流时,第二网络设备根据本地的虚拟转发表项,确定哪些数据流能够触发隧道协商,哪些数据流不触发隧道协商过程,减少网络资源消耗的同时,能够降低数据流丢包率,实现提高网络通信的可靠性的目的。
17.一种可行的设计中,当第一网络设备的acl和/或第二网络设备的acl发生变化时,如更新源地址范围、目的地址范围等,第一网络设备和第二网络设备并不实时更新虚拟转发表,而是在有数据流发送时,更新虚拟转发表。采用该种方案,第二网络设备能够根据第一网络设备和第二网络设备的acl的变化,及时更新虚拟转发表。
18.一种可行的设计中,第二网络设备根据协商后的源地址范围和协商后的目的地址范围,生成第二网络设备的虚拟转发表之后,还根据第二网络设备上的acl确定是否允许通过隧道转发第三数据流。若第二网络设备确定允许通过隧道转发第三数据流,则第二网络设备确定第二网络设备上的隧道转发表中是否存在第四表项,第四表项与第三数据流的地址信息匹配,隧道转发表中的不同表项用于指示第二网络设备已建立的隧道。若隧道转发表中不存在第四表项,则第二网络设备根据虚拟转发表和第三数据流的地址信息,确定匹
配结果,虚拟转发表中的表项用于指示第二网络设备允许触发隧道协商过程的地址范围;第二网络设备根据匹配结果确定是否触发隧道协商过程。采用种方案,第二网络设备根据第二网络设备的虚拟转发表,判断哪些数据流触发第二网络设备和第一网络设备建立隧道,哪些数据流不触发第二网络设备和第一网络设备建立隧道,能够避免数据流丢包,实现提高网络通信的可靠性的目的。
19.一种可行的设计中,协商报文为第一因特网密钥交换协议认证ike_auth报文,第一ike_auth报文包含tsi载荷和tsr载荷,tsi载荷中的流量选择器字段携带第一acl的源地址范围和第二数据流的源地址,tsr载荷中的流量选择器字段携带第一acl的目的地址范围和第二数据流的目的地址。采用种方案,第一网络设备通过第一ike_auth报文发起协商,无需新增报文,减少网络通信复杂度,过程简单。
20.一种可行的设计中,回应报文为第二ike_auth报文,第二ike_auth报文包含tsix载荷和tsrx载荷,tsix载荷中的流量选择器字段携带协商后的源地址范围,tsrx载荷中的流量选择器字段携带协商后的目的地址范围。采用种方案,第一网络设备通过第二ike_auth报文发起协商,无需新增报文,减少网络通信复杂度,过程简单。
21.第三方面,本技术实施例提供一种隧道协商装置,包括:
22.处理单元,用于根据所述第一网络设备的访问控制列表acl确定是否允许通过隧道转发第一数据流;若确定允许通过隧道转发所述第一数据流,则确定所述第一网络设备的隧道转发表中是否存在第一表项,所述第一表项是与所述第一数据流的地址信息匹配的表项,所述隧道转发表中的表项用于指示所述第一网络设备已建立的隧道。若所述隧道转发表中不存在所述第一表项,则根据虚拟转发表和所述第一数据流的地址信息,确定匹配结果,所述虚拟转发表中的表项用于指示所述第一网络设备允许触发隧道协商过程的地址范围,根据所述匹配结果确定是否触发隧道协商过程。
23.一种可行的设计中,所述处理单元,用于当所述匹配结果指示所述虚拟转发表中存在第二表项时,触发隧道协商过程,所述第二表项与所述第一数据流的地址信息匹配;当所述匹配结果指示所述虚拟转发表中不存在所述第二表项时,禁止触发所述隧道协商过程。
24.一种可行的设计中,上述的处理单元,用于当所述匹配结果指示所述虚拟转发表中存在第二表项、触发隧道协商过程之后,在隧道协商过程完成后,建立用以传输所述第一数据流的隧道,从所述虚拟转发表中删除所述第二表项,并在所述隧道转发表中添加建立的用以传输所述第一数据流的隧道对应的表项。
25.一种可行的设计中,上述的装置还包括:发送单元和接收单元,所述发送单元,用于当所述处理单元根据所述第一网络设备的acl确定出允许通过隧道转发第二数据流、且所述隧道转发表中不存在第三表项时,向第二网络设备发送协商报文,所述协商报文用于协商建立转发所述第二数据流的隧道,所述协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二数据流的地址信息,所述第三表项是与所述第二数据流的地址信息匹配的表项。
26.所述接收单元,用于接收来自所述第二网络设备的回应报文,所述回应报文指示隧道协商失败、以及协商后的源地址范围和协商后的目的地址范围。
27.所述处理单元,还用于根据所述协商后的源地址范围和所述协商后的目的地址范
围,生成所述虚拟转发表。
28.一种可行的设计中,上述的装置还包括:发送单元和接收单元,所述发送单元,用于当所述处理单元确定出隧道转发表中不存在所述第一表项时,向第二网络设备发送协商报文,所述协商报文用于协商建立转发所述第一数据流的隧道,所述协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第一数据流的地址信息。
29.所述接收单元,用于接收来自所述第二网络设备的回应报文,所述回应报文携带指示隧道协商失败、以及协商后的源地址范围和协商后的目的地址范围。
30.所述处理单元,还用于根据所述源地址范围和所述目的地址范围,生成所述虚拟转发表。
31.一种可行的设计中,所述协商报文为第一因特网密钥交换协议认证ike_auth报文,所述第一ike_auth报文包含tsi载荷和tsr载荷,所述tsi载荷中的流量选择器字段携带所述第一acl的源地址范围和所述第二数据流的源地址,所述tsr载荷中的流量选择器字段携带所述第一acl的目的地址范围和所述第二数据流的目的地址。
32.一种可行的设计中,所述回应报文为第二ike_auth报文,所述第二ike_auth报文包含tsix载荷和tsrx载荷,所述tsix载荷中的流量选择器字段携带所述协商后的源地址范围,所述tsrx载荷中的流量选择器字段携带所述协商后的目的地址范围。
33.一种可行的设计中,上述的处理单元还用于当所述第一网络设备的acl变化时,更新所述虚拟转发表;或者,当接收到来自所述第二网络设备的指示信息后,更新所述虚拟转发表,所述指示信息用于指示所述第二网络设备的acl发生变化。
34.第四方面,本技术实施例提供一种隧道协商装置,包括:
35.接收单元,用于接收来自第一网络设备的协商报文,所述协商报文用于协商建立转发第二数据流的隧道,所述协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二数据流的地址信息。
36.处理单元,用于根据所述第二数据流的地址信息、以及所述第二网络设备上的访问控制列表acl确定是否允许建立用于转发所述第二数据流的隧道,若所述处理单元确定出不允许建立用于转发所述第二数据流的隧道,则根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围。
37.发送单元,用于发送回应报文,所述回应报文携带协商后的源地址范围和协商后的目的地址范围。
38.一种可行的设计中,所述处理单元,用于从所述协商报文中提取出第一acl的源地址范围和所述第一acl的目的地址范围,所述第一acl的源地址范围是所述第一网络设备上的acl允许通过隧道转发的源地址范围,所述第一acl的目的地址范围是所述第一网络设备上的acl允许通过隧道转发的目的地址范围;根据所述第一acl的源地址范围和所述第二acl的源地址范围,确定第一交集,并根据所述第一acl的目的地址范围和所述第二acl的目的地址范围,确定第二交集,所述第二acl的源地址范围是所述第二网络设备上的acl允许通过隧道转发的源地址范围,所述第二acl的目的地址范围是所述第二网络设备上的acl允许通过隧道转发的目的地址范围,所述第一交集用于指示所述协商后的源地址范围,所述第二交集用于指示所述协商后的目的地址范围。
39.一种可行的设计中,上述的处理单元,还用于根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围之后,根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二网络设备的虚拟转发表。
40.一种可行的设计中,上述的处理单元,还用于在根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二网络设备的虚拟转发表之后,当所述第二网络设备的acl变化时,更新所述虚拟转发表;和/或,当所述第二网络设备的acl变化时,更新所述虚拟转发表。
41.一种可行的设计中,所述处理单元,在根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二网络设备的虚拟转发表之后,还用于根据所述第二网络设备上的acl确定是否允许通过隧道转发第三数据流,若确定允许通过隧道转发所述第三数据流,则确定所述第二网络设备上的隧道转发表中是否存在第四表项,所述第四表项与所述第三数据流的地址信息匹配,所述隧道转发表中的不同表项用于指示所述第二网络设备已建立的隧道;若所述隧道转发表中不存在所述第四表项,则根据所述虚拟转发表和所述第三数据流的地址信息,确定匹配结果,所述虚拟转发表中的表项用于指示所述第二网络设备允许触发隧道协商过程的地址范围;根据所述匹配结果确定是否触发隧道协商过程。
42.一种可行的设计中,所述协商报文为第一因特网密钥交换协议认证ike_auth报文,所述第一ike_auth报文包含tsi载荷和tsr载荷,所述tsi载荷中的流量选择器字段携带所述第一acl的源地址范围和所述第二数据流的源地址,所述tsr载荷中的流量选择器字段携带所述第一acl的目的地址范围和所述第二数据流的目的地址。
43.一种可行的设计中,所述回应报文为第二ike_auth报文,所述第二ike_auth报文包含tsix载荷和tsrx载荷,所述tsix载荷中的流量选择器字段携带所述协商后的源地址范围,所述tsrx载荷中的流量选择器字段携带所述协商后的目的地址范围。
44.第五方面,本技术实施例提供一种网络设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时使得网络设备实现如上第一方面或第一个方面的各种可能的实现方式中的方法。
45.第六方面,本技术实施例提供一种网络设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时使得网络设备实现如上第二方面或第二个方面的各种可能的实现方式中的方法。
46.第七方面,本技术实施例提供一种芯片,包括:逻辑电路和输入接口,其中,所述输入接口用于获取待处理的数据,所述逻辑电路用于对待处理的数据执行如第一方面任一项所述的方法得到处理后的数据。
47.一种可行的设计中,该芯片还包括:输出接口,该输出接口用于输出所述处理后的数据。
48.第八方面,本技术实施例提供一种芯片,包括:逻辑电路和输入接口,其中,所述输入接口用于获取待处理的数据,所述逻辑电路用于对待处理的数据执行如第二方面任一项所述的方法得到处理后的数据。
49.一种可行的设计中,该芯片还包括:输出接口,该输出接口用于输出所述处理后的
数据。
50.第九方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行第一方面任一项所述的方法。
51.第十方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行第二方面任一项所述的方法。
52.第十一方面,本技术实施例提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行第一方面任一项所述的方法。
53.第十二方面,本技术实施例提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行第二方面任一项所述的方法。
附图说明
54.图1是本技术实施例提供的隧道协商方法的一个网络架构示意图;
55.图2是本技术实施例提供的隧道协商方法的流程图;
56.图3是本技术实施例提供的另一个隧道协商方法的流程图;
57.图4是本技术实施例提供的隧道协商方法的另一个网络架构示意图;
58.图5为本技术实施例提供的隧道协商方法中第一ike_auth报文的格式示意图;
59.图6是本技术实施例提供的隧道协商方法中trafficselector字段的格式示意图;
60.图7为本技术实施例提供的一种隧道协商装置的结构示意图;
61.图8为本技术实施例提供的另一种隧道协商装置的结构示意图;
62.图9为本技术实施例提供的一种网络设备的结构示意图。
具体实施方式
63.利用隧道发送数据流的技术中,本端网络设备和对端网络设备之间建立隧道,本端网络设备通过隧道将数据流发送给对端网络设备。当本端网络设备需要向对端网络设备发送数据流时,倘若还未建立隧道,则触发隧道协商过程以建立隧道。能够成功建立隧道需要满足的要求是:待发送的数据流的地址信息与本端网络设备的访问控制列表(access control list,acl)匹配,即数据流的源地址属于本端网络设备的acl指示的源地址范围,数据流的目的地址属于本端网络设备的acl指示的目的地址范围。同时,数据流的地址信息与对端网络设备的acl匹配,数据流的源地址属于对端网络设备的acl指示的目的地址范围,数据流的目的地址属于对端网络设备的acl指示的源地址范围。
64.隧道协商过程中,倘若数据流的地址信息与本端网络设备的acl匹配,但是与对端网络设备的acl不匹配,则会使得本端网络设备与对端网络设备反复交互以建立ipsec隧道,进而影响正常隧道的建立,同时造成不必要的网络资源消耗。例如,本端网络设备为防火墙(fire work,fw)a,对端网络设备为fw-b,fw-a的acl中的策略指示匹配条件和动作。其中,匹配条件:源地址(src)范围:0.0.0.0~255.255.255.255,目的地址(dst)范围:0.0.0.0~255.255.255.255。动作:向fw-b发送协商报文。则fw-a的acl中的策略实际描述的内容是:如果待发送的数据流的源地址属于匹配条件指示的源地址范围,该数据流的目的地址属于匹配条件指示的目的地址范围,则fw-a向fw-b发送该协商报文。
65.假设fw-b的acl指示的scr为1.1.1.1,dst为2.2.2.2,数据流的scr为3.3.3.3,dst
为4.4.4.4。此时,该数据流的地址信息与fw-a的acl匹配,但是与fw-b的acl不匹配。fw-a发送协商报文后,fw-b发现数据流的地址信息与自己的acl不匹配,则协商失败。之后,由于scr为3.3.3.3、dst为4.4.4.4的数据流一直存在,导致fw-a和fw-b一直协商。若fw-a又得到一个数据流,该数据流的scr为1.1.1.1、dst为2.2.2.2,虽然该数据流与fw-a的acl、fw-b的acl均匹配,但是由于建立隧道的资源被前一个数据流占用,导致fw-a和fw-b无法针对后面的数据流建立隧道,导致丢包。
66.本技术实施例提供一种隧道协商方法及装置,通过判断哪些数据流触发第一网络设备和第二网络设备建立隧道,哪些数据流不触发第一网络设备和第二网络设备建立隧道,以避免数据流丢包,提高网络通信的可靠性。
67.图1是本技术实施例提供的隧道协商方法的一个网络架构示意图。请参照图1,该网络架构包括第一网络设备、第二网络设备、第三网络设备和第四网络设备。第一网络设备和第二网络设备能建立用于转发数据流的隧道,如图中粗黑线条所示。第一网络设备和第三网络设备连接,第二网络设备和第四网络设备连接。其中,连接包括直接连接和间接连接,直接连接的两个网络设备之间不存在其他网络设备,而两个网络设备间接连接时,该两个网络设备之间存在其他网络设备。例如,第一网络设备和第三网络设备直接连接时,该两个网络设备直接建立无线连接或有线连接,且该两个网络设备直接不存在其他网络设备;第一网络设备和第三网络设备间接连接时,该两个网络设备之间存在其他网络设备(图中未示出)。同理,第一网络设备和第二网络设备之间的隧道上存在或不存在其他网络设备(图中未示出)。
68.图1中,第一网络设备为隧道入口设备,第二网络设备为隧道出口设备,第三网络设备为源网络设备,第四网络设备为目的网络设备,源网络设备和目的网络设备之间存在多个网络设备,比如第一网络设备和第二网络设备。源网络设备是向目的网络设备发送数据流的网络设备,目的网络设备是最终接收数据流的网络设备。第一网络设备和第二网络设备之间建立用于转发数据流的隧道。第三网络设备发送的数据流能够通过一般的路由方式到达第四网络设备。或者,第三网络设备发送的数据流对安全性的要求比较高,需要加密时,该数据流到达第一网络设备后,第一网络设备对该数据流进行加密,将加密后的数据流经由隧道发送给第二网络设备,再由第二网络设备通过路由方式发送给第四网络设备。
69.另外,当第一网络设备为源网络设备,第二网络设备为目的网络设备时,此时,图1所示架构中不存在第三网络设备和第四网络设备。
70.图1中,第三网络设备和第四网络设备之间存在至少两种网络,例如,第三网络设备和第一网络设备之间是互联网协议第6版本(internet protocol version 6,ipv6)网络,第一网络设备和第二网络设备之间为互联网协议第4版本(internet protocol version 4,ipv4)网络,第二网络设备和第四网络设备之间为ipv6网络。另外,若仅仅是出于安全性考虑,要求第一网络设备对来自第三网络设备的数据流通过隧道发送时,第三网络设备和第四网络设备之间存在一种网络或多种网络。
71.第一网络设备、第二网络设备、第三网络设备和第四网络设备例如是防火墙(fire work,fw-)设备、交换(switch,sw)机、服务器、基站、中继基站、个人电脑(personal computer,pc)等。可选地,第三网络设备和第四网络设备是网络接入设备,如接入节点(access node,an)或者网关gprs支持节点(gateway gprs support node,ggsn)等;而第一
网络设备和第二网络设备是核心网或汇聚层转发设备,如网关等等。当来自于第三网络设备的数据流经由第一网络设备和第二网络设备之间的隧道发送给第四网络设备时,若第一网络设备和第二网络设备之间未建立针对该数据流的隧道,则第一网络设备通过匹配虚拟转发表和该数据流的地址信息,根据匹配结果判断是否触发第一网络设备和第二网络设备建立隧道,以避免数据流丢包,提高网络通信的可靠性。
72.图2是本技术实施例提供的隧道协商方法的流程图。本实施例是从第一网络设备的角度,对本技术实施例进行详细说明。本实施例所示的流程包括步骤101至步骤105。
73.101、第一网络设备根据所述第一网络设备的访问控制列表acl确定是否允许通过隧道转发第一数据流,若允许通过隧道转发第一数据流,则执行步骤102;若不允许通过隧道转发第一数据流,则执行步骤
74.本技术实施例中,第一网络设备自身生成第一数据流,或者,第一网络设备从其他设备,如图1中的第三网络设备获取第一数据流。该第一数据流是未加密的数据流或出院前考虑加密后的数据流,本技术实施例并不限制。
75.第一网络设备的acl中的策略指示匹配条件和动作,不同的匹配条件指示不同的源地址范围和目的地址范围,不同的动作用于指示不同的第二网络设备。例如,匹配条件1指示的源地址范围为0.0.0.0-5.5.5.5,目的地址范围0.0.0.0-5.5.5.5,动作为向第二网络设备发送协商报文,则表示若数据流的源地址属于0.0.0.0-5.5.5.5、目的地址属于0.0.0.0-5.5.5.5,则向第二网络设备发送该数据流。再如,匹配条件2指示的源地址范围为6.6.6.6-9.9.9.9,目的地址范围6.6.6.6-9.9.9.9,动作为向第二网络设备发送协商报文,则表示若数据流的源地址属于6.6.6.6-9.9.9.9、目的地址属于6.6.6.6-9.9.9.9,则向第二网络设备发送该数据流。其中,每个策略中的动作对应的第二网络设备相同或不同。
76.第一网络设备得到第一数据流后,根据该第一数据流的地址信息和第一网络设备的acl,判断是否允许通过隧道向第二网络设备发送该第一数据流。判断过程中,若第一数据流的源地址属于第一网络设备的acl指示的源地址范围,且第一数据流的目的地址属于第一网络设备的acl指示的目的地址范围,此时第一网络设备确定允许通过隧道向第二网络设备发送第一数据流,执行步骤102;否则,若第一数据流的源地址未属于第一网络设备的acl指示的源地址范围,和/或,第一数据流的目的地址未属于第一网络设备的acl指示的目的地址范围,此时,第一网络设备确定不允许通过隧道向第二网络设备发送第一数据流,执行步骤105。
77.102、所述第一网络设备确定所述第一网络设备的隧道转发表中是否存在第一表项,若隧道转发表中不存在第一表项,则执行步骤103;若隧道转发表中存在第一表项,则执行步骤106。
78.其中,第一表项是与所述第一数据流的地址信息匹配的表项,所述隧道转发表中的表项用于指示所述第一网络设备已建立的隧道。
79.示例性的,第一网络设备的本地具有一个隧道转发表,该隧道转发表中的表项用于指示第一网络设备已建立的隧道。例如,一个表项指示的源地址为0.0.0.0,目的地址为1.1.1.1,且对端网络设备为第二网络设备,则说明第一网络设备和第二网络设备之间已经建立用于转发数据流的隧道,能够通过该隧道转发的数据流的源地址为0.0.0.0,目的地址为1.1.1.1。
80.当第一网络设备确定允许通过隧道向第二网络设备发送第一数据流时,第一网络设备根据隧道转发表判断是否已建立用于转发第一数据流的隧道。判断过程中,若第一网络设备的隧道转发表中不存在第一表项,则说明第一网络设备和第二网络并未建立用于转发第一数据流的隧道,此时第一网络设备执行步骤103;若第一网络设备的隧道转发表中存在第一表项,则说明第一网络设备和第二网络设备已建立用于转发第一数据流的隧道,此时第一网络设备执行步骤106。
81.103、所述第一网络设备根据虚拟转发表和所述第一数据流的地址信息,确定匹配结果。
82.其中,虚拟转发表中的表项用于指示所述第一网络设备允许触发隧道协商过程的地址范围。
83.本技术实施例中,虚拟转发表指示一个或多个地址范围,地址范围包括源地址范围和目的地址范围,每个地址范围对应一个第二网络设备。虚拟转发表每一对源地址、目的地址和第二网络设备形成一个表项,该表项对应的隧道未建立。
84.第一网络设备的虚拟转发表和隧道转发表中均存储表项,区别在于:虚拟转发表中表项对应的隧道未建立,虚拟转发表中的表项不实际指导加解密转发,只是判断哪些数据流触发隧道协商过程哪些数据流不触发隧道协商过程的依据。隧道转发表中的表项对应的隧道已建立,同一个表项不能同时存在于虚拟转发表和隧道转发表中,也就是说,虚拟转发表中的表项和隧道转发表中的表项完全不同。
85.第一数据流的地址信息与该虚拟转发表匹配,则说明第一数据流的地址信息指示的源地址属于虚拟转发表指示的源地址范围,第一数据流的地址信息指示的目的地址属于虚拟转发表指示的目的地址范围,此时,该第一数据流也称为有效数据流或有效流量;反之,则说明第一数据流的地址信息与虚拟转发表不匹配,该第一数据流为无效数据流或无效流量。当第一数据流的地址信息与虚拟转发表匹配时,虚拟转发表中存在第二表项,该第二表项的源地址是第一数据流的源地址,第二表项的目的地址是第一数据流的目的地址;当第一数据流的地址信息与虚拟转发表不匹配时,虚拟转发表中不存在上述的第二表项。
86.第一网络设备根据虚拟转发表和所述第一数据流的地址信息确定匹配结果的过程,就是第一网络设备判断第一数据流的地址信息中的源地址是否属于虚拟转发表指示的源地址范围、第一数据流的地址信息中的目的地址是否属于虚拟转发表的目的地址范围的过程,该过程也能够视为虚拟转发表中是否存在第二表项的过程。
87.104、第一网络设备根据匹配结果确定是否触发隧道协商过程。
88.示例性的,若匹配结果指示第一数据流的地址信息与虚拟转发表匹配,则说明:虽然第一网络设备和第二网络还未建立用于转发第一数据流的隧道,但是第一网络设备和第二网络设备能够通过协商建立该隧道,此时第一网络设备触发隧道协商过程;若匹配结果指示第一数据流的地址信息与虚拟转发表不匹配:则说明:第一网络设备和第二网络还未建立用于转发第一数据流的隧道,即使第一网络设备和第二网络设备协商也无法建立该隧道,此时第一网络设备不触发隧道协商过程。
89.105、第一网络设备通过普通转发方式转发第一数据流。
90.示例性的,若第一网络设备根据第一网络设备的acl确定出不允许通过隧道转发第一数据流,则通过普通的转发方式发送第一数据流。普通的转发方式例如为通过查找路
由的方式进行非加密三层转发等。
91.106、第一网络设备通过第一表项对应的隧道发送第一数据流。
92.示例性的,第一网络设备的隧道转发表中存存在第一表项,说明第一网络设备和第二网络设备之间已经建立用于转发第一数据流的隧道,此时,第一网络设备直接通过该隧道转发第一数据流。相应的,第二网络设备接收第一数据流。
93.本技术实施例提供的隧道协商方法,第一网络设备向第二网络设备发送第一数据流时,先根据第一网络设备的acl判断是否允许通过隧道转发第一数据流,若允许通过隧道转发第一数据流,则继续判断第一网络设备是否已建立用于转发第一数据流的隧道。若第一网络设备还未建立用于转发第一数据流的隧道,则第一网络设备根据虚拟转发表和第一数据流的地址信息确定匹配结果,根据匹配结果确定是否触发隧道协商过程。该过程中,通过虚拟转发表来指示允许触发隧道协商过程的地址范围,第一网络设备根据待发送数据流与虚拟转发表的匹配结果确定是否触发隧道协商过程,而不是对每个能够通过隧道转发的数据流都持续协商以建立隧道。由此可知:第一网络设备通过判断哪些数据流触发第一网络设备和第二网络设备建立隧道,哪些数据流不触发第一网络设备和第二网络设备建立隧道,保证有效数据流的隧道协商和转发,同时过滤无效数据流的隧道协商过程,减少网络资源消耗的同时,能够避免数据流丢包,实现提高网络通信的可靠性的目的。
94.上述实施例中,第一网络设备根据所述匹配结果确定是否触发隧道协商过程时,先确定虚拟转发表中是否存在第二表项,该第二表项的源地址和第一数据流的源地址相同,第二表项的目的地址与第一数据流的目的地址相同。当虚拟转发表中存在第二表项时,第一网络设备触发隧道协商过程;当虚拟转发表中不存在第二表项时,第一网络设备禁止触发隧道协商过程。由于虚拟转发表中的表项用于指示所述第一网络设备允许触发隧道协商过程的地址范围,因此,当虚拟转发表中存在第二表项时,第一网络设备和第二网络设备协商能够建立用于转发第一数据流的隧道,不会发生无法建立隧道但是持续协商的现象。
95.采用该种方案,第一网络设备只有在第一数据流的地址信息和虚拟转发表匹配,即虚拟转发表中存在与第一数据流的地址信息匹配的第二表项时,才触发隧道协商过程,不会发生无法建立隧道但是持续协商的现象,降低数据流丢包的概率,提升通信质量。
96.上述实施例中,当所述匹配结果指示所述虚拟转发表中存在第二表项时,所述第一网络设备触发隧道协商过程之后,第一网络设备和第二网络设备协商,隧道协商过程完成后,第一网络设不和第二网络设备建立用于发送第一数据流的隧道。之后,第一网络设备从第一网络设备的虚拟转发表中删除所述第二表项,并在第一网络设备的隧道转发表中添加建立的用以传输所述第一数据流的隧道对应的表项。
97.示例性的,由于第一网络设备的虚拟转发表和隧道转发表都用来存储表项,区别仅在于隧道转发表中的表项对应的隧道已建立,虚拟转发表中的表项对应的隧道未建立。若同一个表项同时存在与虚拟转发表和隧道转发表,则发生冲突。而且,当虚拟转发表中的表项对应的隧道已建立后,若该表项继续存储在虚拟转发表但不存储在隧道转发表,会导致第一网络设备和第二网络设备后续进行重复协商和重复建立隧道。为避免该些弊端,第一网络设备建立第二表项对应的隧道后,从虚拟转发表中删除第二表项,并将隧道转发表中添加用于传输第一数据流的隧道对应的表项。
98.采用该种方案,第一网络设备通过从虚拟转发表中删除第二表项,并在隧道转发
表中增加用于传输第一数据流的隧道对应的表项,实现虚拟转发表和隧道转发表中表项的互异性。
99.上述实施例中,当第一网络设备本地未建立虚拟转发表时,第一网络设备在第二数据流的触发下建立虚拟转发表,该第二数据流和上述的第一数据流是同一个数据流或不同的数据流。下面,以第二数据流和第一数据流不同为例,对第一网络设备如何建立虚拟转发表进行详细说明。示例性的,请参照图3。
100.图3是本技术实施例提供的另一个隧道协商方法的流程图。本实施例是从第一网络设备和第二网络设备交互的角度,对本技术实施例进行详细说明。本实施例所示的流程包括步骤101至步骤105。
101.201、第一网络设备向第二网络设备发送协商报文。
102.相应的,第二网络设备接收来自第二网络设备的协商报文。
103.其中,所述协商报文用于协商建立转发所述第二数据流的隧道,协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二数据流的地址信息。
104.示例性的,第一网络设备获取到第二数据流,根据第一网络设备的acl确定出允许通过隧道转发第二数据流后,发现隧道转发表中并不存在与该第二数据流匹配的第三表项后,第一网络设备认为并未建立用于转发第二数据流的隧道。此时,由于本地没有虚拟转发表。因此,第一网络设备将第一acl指示的源地址范围和目的地址范围,以及所述第二数据流的地址信息携带在协商报文中发送给第二网络设备。
105.202、第二网络设备根据所述第二数据流的地址信息、以及所述第二网络设备上的访问控制列表acl确定是否允许建立用于转发所述第二数据流的隧道,若第二网络设备确定不允许建立用于转发第二数据流的隧道,则执行步骤203;若第二网络设备确定允许建立用于转发第二数据流的隧道,则执行206。
106.示例性的,协商报文中携带第二数据流的源地址和目的地址,若第二数据流的源地址不属于第二网络设备的acl指示的源地址范围,和/或,第二数据流的目的地址不属于第二网络设备的acl指示的目的地址范围,则说明第二网络设备确定不允许建立用于转发第二数据流的隧道,第二网络设备执行步骤203;若第二数据流的源地址属于第二网络设备的acl指示的源地址范围,且第二数据流的目的地址属于第二网络设备的acl指示的目的地址范围,则说明第二网络设备确定允许建立用于转发第二数据流的隧道,第二网络设备执行步骤206;
107.203、第二网络设备根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围。
108.示例性的,协商后的源地址范围属于第一网络设备的acl指示的源地址范围,以及第二网络设备的acl指示的源地址范围。同理,协商后的目的地址范围属于第一网络设备的acl指示的目的地址范围,以及第二网络设备的acl指示的目的地址范围。
109.204、第二网络设备发送回应报文。
110.相应的,第一网络设接收回应报文。
111.其中,所述回应报文携带协商后的源地址范围和协商后的目的地址范围。
112.205、第一网络设备根据所述协商后的源地址范围和所述协商后的目的地址范围,
生成所述虚拟转发表。
113.第一网络设备根据协商后的源地址范围和协商后的目的地址范围,以及协商报文的来源,生成一个个的表项,该些表项的总和形成第一网络设备的虚拟转发表项。
114.206、第二网络设备和第一网络设备协商建立用于转发第二数据流的隧道。
115.示例性的,第二网络设备和第一网络设备协商建立隧道,并将建立的用于转发第二数据流的隧道对应的表项添加至第二网络设备的隧道转发表中。
116.采用该种方案,当第一网络设备的隧道转发表中存在与第二数据流的地址信息匹配的第三表项,且第一网络设备本地未建立虚拟转发表时,且第二网络设备不允许建立用于转发第二数据流的隧道时,第一网络设备和第二网络设备协商虚拟转发表的源地址范围和目的地址范围,第一网络设备根据协商后的源地址范围和目的地址范围生成虚拟转发表,使得第一网络设备后续发送其他数据流时,根据虚拟转发表确定是否触发隧道协商过程,避免第一网络设备持续发起协商,造成不必要的资源占用,进而导致数据流丢包的问题。
117.上述实施例中,当第一数据流和第二数据流不同时,说明第一网络设备在发送多第一数据流之前,已建立虚拟转发表,该虚拟转发表示第一网络设备在第二数据流的触发下协商并建立虚拟转发表,后续发送第一数据流时,直接使用该虚拟转发表。当第一数据流和第二数据流相同时,说明第一网络设备发送第一数据流时,并未建立虚拟转发表,此时,第一网络设备在第一数据流的触发下协商并建立虚拟转发表。
118.上述实施例中,第二网络设备根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围时,首先,从所述协商报文中提取出第一acl的源地址范围和所述第一acl的目的地址范围,所述第一acl的源地址范围是所述第一网络设备上的acl允许通过隧道转发的源地址范围,所述第一acl的目的地址范围是所述第一网络设备上的acl允许通过隧道转发的目的地址范围。之后,第二网络设备根据所述第一acl的源地址范围和所述第二acl的源地址范围,确定第一交集,并根据所述第一acl的目的地址范围和所述第二acl的目的地址范围,确定第二交集,所述第二acl的源地址范围是所述第二网络设备上的acl允许通过隧道转发的源地址范围,所述第二acl的目的地址范围是所述第二网络设备上的acl允许通过隧道转发的目的地址范围,所述第一交集用于指示所述协商后的源地址范围,所述第二交集用于指示所述协商后的目的地址范围。
119.示例性的,第二网络设备确定协商后的源地址范围和目的地址范围的过程,实际上是对第一网络设备的第一acl的源地址范围和第二网络设备的第二acl的源地址范围求交集,以及对第一网络设备的第一acl的目的地址范围和第二网络设备的第二acl的目的地址范围求交集的过程。假设第一交集用于指示协商后的源地址范围,第二交集用于指示协商后的目的地址范围,则第一交集是第一acl和第二acl的源地址范围的交集的全集或子集,第二交集是第一acl和第二acl的目的地址范围的交集的全集或子集。
120.采用该种方案,第二网络设备通过求交集的方式确定出协商后的源地址范围和协商后的目的地址范围,实现准确确定出协商后的源地址范围和目的地址范围的目的。
121.上述实施例中,第二网络设备根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的
地址范围之后,还根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二网络设备的虚拟转发表。
122.示例性性的,第一网络设备根据协商后的源地址范围和目的地址范围,在本地建立第一网络设备的虚拟转发表,第二网络设备根据协商后的源地址范围和目的地址范围,也在本地建立第一网络设备的虚拟转发表,使得第一网络设备和第二网络设备的虚拟转发表一致,进而使得一网络设备和第二网络设备后续建立隧道时不会发生冲突。
123.上述实施例中,虚拟转发表和第一网络设备的acl、第二网络设备的acl有关,倘若第一网络设备的acl和/或第二网络设备的acl发生变化,则虚拟转发表发生变化。对于第一网络设备而言,当第一网络设备的acl变化时,需要更新第一网络设备的虚拟转发表;和/或,当第二网络设备的acl发生变化时,第一网络设备接收来到来自第二网络设备的指示信息后,更新第一网络设备的虚拟转发表,该指示信息用于指示第二网络设备的acl发生变化。
124.同理,对于第二网络设备而言,当第二网络设备的acl变化时,需要更新第二网络设备的虚拟转发表;和/或,当第二网络设备的acl发生变化时,第二网络设备接收来到来自第一网络设备的指示信息后,更新第二网络设备的虚拟转发表,该指示信息用于指示第一网络设备的acl发生变化。
125.一种方式中,当第一网络设备的acl和/或第二网络设备的acl发生变化时,如更新源地址范围、目的地址范围等,即使没有发送数据流的需求,第一网络设备和第二网络设备也重新协商,确定协商后的源地址范围和目的地址范围,进而根据协商后的源地址范围和目的地址范围重新生成虚拟转发表。
126.另一种方式中,当第一网络设备的acl和/或第二网络设备的acl发生变化时,如更新源地址范围、目的地址范围等,第一网络设备和第二网络设备并不实时更新虚拟转发表,而是在有数据流发送时,更新虚拟转发表。
127.采用该种方案,第一网络设备和第二网络设备能够根据第一网络设备和第二网络设备的acl的变化,及时更新虚拟转发表。
128.上述实施例中,第二网络设备建立虚拟转发表后,当第二网络设备需要向第一网络设备发送第三数据流时,首先,第二网络设备根据所述第二网络设备上的acl确定是否允许通过隧道转发第三数据流,若不允许隧道转发第三数据流,则通过普通转发方式等转发第三数据流。若第二网络设备允许通过隧道转发第三数据流,则第二网络设备确定所述第二网络设备上的隧道转发表中是否存在第四表项,所述第四表项与所述第三数据流的地址信息匹配,所述隧道转发表中的不同表项用于指示所述第二网络设备已建立的隧道。
129.若隧道转发表中存在第四表项,说明第二网络设备已经建立用于转发第三数据流的隧道,直接使用该隧道转发第三数据流;若隧道转发表中不存在第四表项,则第二网络设备根据虚拟转发表和第三数据流的地址信息,确定匹配结果,虚拟转发表中的表项用于指示第二网络设备允许触发隧道协商过程的地址范围;第二网络设备根据匹配结果确定是否触发隧道协商过程。例如,若匹配结果指示第三数据流的地址信息与虚拟转发表匹配,则第二网络设备发起隧道协商过程;若匹配结果指示第三数据流的地址信息与虚拟转发表不匹配,则第二网络设备禁止触发隧道协商过程。
130.采用该种方案,第二网络设备根据第二网络设备的虚拟转发表,判断哪些数据流
触发第二网络设备和第一网络设备建立隧道,哪些数据流不触发第二网络设备和第一网络设备建立隧道,能够避免数据流丢包,实现提高网络通信的可靠性的目的。
131.下面,用一个示例对上述的隧道协商方法进行详细说明。示例性的,请参照图4,图4是本技术实施例提供的隧道协商方法的另一个网络架构示意图。附图4中包括4个网络设备fw-a、fw-b、sw-c和sw-d。其中,fw-a和fw-b是两个防火墙设备,sw-c和sw-d是两个接入交换机设备。
132.请参照图4,附图1中的第一网络设备为附图4中的fw-a,附图1中的第二网络设备为附图4中的fw-b,附图1中的第三网络设备为sw-c,附图1中的第四网络设备为sw-d。fw-a的acl指示的源地址范围为:0.0.0.0~255.255.255.255,目的地址范围为:0.0.0.0~255.255.255.255,动作为向fw-b发送协商报文。fw-b的acl指示的源地址范围为:1.1.1.1,目的地址范围为:2.2.2.2。第二数据流的地址信息中的源地址为3.3.3.3,目的地址为4.4.4.4。本实施例包括如下阶段。
133.第一阶段、发起协商。
134.本阶段中,当第二数据流流经fw-a时,fw-a发现第二数据流的源地址属于fw-a的acl的源地址范围,第二数据流的目的地址属于fw-a的acl的目的地址范围,说明第二数据流的地址信息满足fw-a的隧道建立规则acl,此时,fw-a发起隧道协商,向fw-b发送协商报文。
135.例如,协商报文为第一因特网密钥交换协议认证(internet key exchange authenticate,ike_auth)报文,所述第一ike_auth报文包含tsi载荷和tsr载荷,所述tsi载荷中的流量选择器(trafficselector)字段携带所述第一acl的源地址范围(0.0.0.0~255.255.255.255)和所述第二数据流的源地址(3.3.3.3),所述tsr载荷中的流量选择器字段携带所述第一acl的目的地址范围(0.0.0.0~255.255.255.255)和所述第二数据流的目的地址(4.4.4.4)。
136.图5为本技术实施例提供的隧道协商方法中第一ike_auth报文的格式示意图。请参照图5,第一ike_auth报文包括下一个载荷(next payload)字段、保留(reserved)字段、载荷长度(payload length)字段、ts个数(number of tss)字段、流量选择器(trafficselector)字段等。
137.图6是图5所示第一ike_auth报文中trafficselector字段的格式示意图。请参考图6,trafficselector字段包含ts类型(ts type)字段、ip协议标识(ip protocol id)字段、选择器长度(selector length)字段、起始端口(start port)字段、结束端口(end port)字段、起始地址(strating address)字段、结束地址(ending address)字段等。
138.请参照图5和图6,第一ike_auth报文中的tsi载荷也称为下一个载荷(next payload)44,第一ike_auth报文中的tsr载荷也称为下一个载荷(next payload)45。
139.第二阶段、协商。
140.本阶段中,fw-b接收到协商报文后,发现第二数据流的源地址(3.3.3.3)不属于fw-b的acl指示的目的地址范围(2.2.2.2),且第二数据流的目的地址(4.4.4.4)不属于fw-b的acl指示的源地址范围(1.1.1.1),fw-b认为协商失败。
141.之后,fw-b根据fw-a的acl指示的源地址范围(0.0.0.0-255.255.255.255)和fw-b的acl指示的源地址范围,确定第一交集,该第一交集即为协商后的源地址范围,第一交集
为1.1.1.1;同理,fw-b根据fw-a的acl指示的目的地址范围(0.0.0.0-255.255.255.255)和fw-b的acl指示的目的地址范围,确定第二交集,该第二交集即为协商后的目的地址范围,第二交集为2.2.2.2。
142.fw-b确定出协商后的源地址范围和目的地址范围后,在本地建立虚拟转发表。
143.第三阶段、回应。
144.本阶段中,fw-b确定出协商后的源地址范围和目的地址范围后,向fw-a发送回应报文。
145.例如,回应报文为第二ike_auth报文,所述第二ike_auth报文包含tsix载荷和tsrx载荷,所述tsix载荷中的流量选择器字段携带所述协商后的源地址范围(1.1.1.1),所述tsrx载荷中的流量选择器字段携带所述协商后的目的地址(2.2.2.2)范围。
146.第二ike_auth报文的格式与第一ike_auth报文的格式类似,具体可参见上述有关第一ike_auth报文的格式的描述,此处不再赘述。tsix载荷中的流量选择器字段与tsi载荷中的流量选择器字段类似,tsrx载荷中的流量选择器字段与上述tsr载荷中的流量选择器字段类似,此处不再赘述。
147.第二ike_auth报文中的tsix载荷也称为下一个载荷(next payload)254,第一ike_auth报文中的tsrx载荷也称为下一个载荷(next payload)255。
148.第四阶段、fw-a建立虚拟转发表。
149.示例性的,fw-a接收到回应报文后,根据回应报文中协商后的源地址范围和协商后的目的地址范围,建立虚拟转发表,建立过程中,将协商后的目的地址范围作为虚拟转发表的源地址范围,将协商后的源地址范围作为虚拟转发表的目的地址范围。由于回应报文中的源地址为1.1.1.1、目的地址为2.2.2.2,则fw-a生成的虚拟转发表中表项的源地址范围为2.2.2.2,目的地址范围为1.1.1.1。
150.由于第二数据流的地址信息中的源地址为3.3.3.3,不属于fw-a的虚拟转发表中的源地址范围(2.2.2.2),且第二数据流的地址信息中的目的地址为4.4.4.4,不属于fw-a的虚拟转发表中的目的地址范围(1.1.1.1),因此,fw-a不再触发隧道协商过程。
151.此时,如果fw-a又接收到一个数据流,该数据流的源地址为2.2.2.2,目的地址为1.1.1.1,fw-a发现该数据流的源地址属于fw-a的acl指示的源地址范围,且该数据流的目的地址属于fw-a的acl指示的目的地址范围。同时,fw-a的隧道转发表中不存在与该数据流的地址信息匹配表项。但是,该数据流的地址信息与fw-a的虚拟转发表项匹配。因此,fw-a触发隧道协商过程,建立用于转发该数据流的隧道后,从虚拟转发表中删除与该数据流的地址信息匹配的表项,并将用于转发该数据流的隧道对应的表项添加至fw-a的隧道转发表中。
152.fw-b通过隧道接收到源地址为2.2.2.2、目的地址为1.1.1.1的数据流后,将该数据流进行解密等,将fw-b的虚拟转发表中与该数据流的地址信息匹配的表项删除,并在fw-b的隧道转发表中添加用于转发该数据流的隧道对应的表项。
153.如此一来,fw-a向fw-b发送源地址不属于第二acl的指示的目的地址范围,和/或,目的地址不属于第二acl指示的源地址范围的数据流时,能够及时停止隧道协商过程,不会导致数据流丢包。
154.上述实施例中,第一网络设备或第二网络设备能够将虚拟转发表的优先级设置为
低优先级,当隧道转发表上表项的数量过多无法存储时,可以删除虚拟转发表中的部分或全部表项,以保存优先级更高的隧道转发表。
155.图7为本技术实施例提供的一种隧道协商装置的结构示意图。可选地,本实施例所涉及的隧道协商装置为前面各实施例中的第一网络设备,或者为应用于第一网络设备的芯片。该隧道协商装置用于执行上述实施例中第一网络设备的功能。可选地,如图7所示,该隧道协商装置100包括:处理单元11。
156.处理单元11,用于根据所述第一网络设备的访问控制列表acl确定是否允许通过隧道转发第一数据流;若确定允许通过隧道转发所述第一数据流,则确定所述第一网络设备的隧道转发表中是否存在第一表项,所述第一表项是与所述第一数据流的地址信息匹配的表项,所述隧道转发表中的表项用于指示所述第一网络设备已建立的隧道;若所述隧道转发表中不存在所述第一表项,则根据虚拟转发表和所述第一数据流的地址信息,确定匹配结果,所述虚拟转发表中的表项用于指示所述第一网络设备允许触发隧道协商过程的地址范围;根据所述匹配结果确定是否触发隧道协商过程。
157.一种可行的设计中,所述处理单元11,用于当所述匹配结果指示所述虚拟转发表中存在第二表项时,触发隧道协商过程,所述第二表项与所述第一数据流的地址信息匹配;当所述匹配结果指示所述虚拟转发表中不存在所述第二表项时,禁止触发所述隧道协商过程。
158.一种可行的设计中,所述处理单元11,用于当触发隧道协商过程之后,在隧道协商过程完成后,建立用以传输所述第一数据流的隧道,从所述虚拟转发表中删除所述第二表项,并在所述隧道转发表中添加建立的用以传输所述第一数据流的隧道对应的表项。
159.一种可行的设计中,再请参照图7,上述的隧道协商装置100还包括:发送单元12和接收单元13,所述发送单元12,用于当所述处理11根据所述第一网络设备的acl确定出允许通过隧道转发第二数据流、且所述隧道转发表中不存在第三表项时,向第二网络设备发送协商报文,所述协商报文用于协商建立用以转发所述第二数据流的隧道,所述协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二数据流的地址信息,所述第三表项是与所述第二数据流的地址信息匹配的表项。
160.所述接收单元13,用于接收来自所述第二网络设备的回应报文,所述回应报文指示隧道协商失败、以及协商后的源地址范围和协商后的目的地址范围。
161.所述处理单元11,还用于根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二表项,并将所述第二表项保存在所述虚拟转发表。
162.一种可行的设计中,所述发送单元12,用于当所述处理11确定出隧道转发表中不存在所述第一表项时,向第二网络设备发送协商报文,所述协商报文用于协商建立用以转发所述第一数据流的隧道,所述协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第一数据流的地址信息。
163.所述接收单元13,用于接收来自所述第二网络设备的回应报文,所述回应报文携带指示隧道协商失败、以及协商后的源地址范围和协商后的目的地址范围。
164.所述处理单元11,用于根据所述源地址范围和所述目的地址范围,生成所述第二表项,并将所述第二表项保存在所述虚拟转发表。
165.一种可行的设计中,所述协商报文为第一因特网密钥交换协议认证ike_auth报
文,所述第一ike_auth报文包含tsi载荷和tsr载荷,所述tsi载荷中的流量选择器字段携带所述第一acl的源地址范围和所述第二数据流的源地址,所述tsr载荷中的流量选择器字段携带所述第一acl的目的地址范围和所述第二数据流的目的地址。
166.一种可行的设计中,所述回应报文为第二ike_auth报文,所述第二ike_auth报文包含tsix载荷和tsrx载荷,所述tsix载荷中的流量选择器字段携带所述协商后的源地址范围,所述tsrx载荷中的流量选择器字段携带所述协商后的目的地址范围。
167.一种可行的设计中,再请参照图7,上述的处理单元11,用于当所述第一网络设备的acl变化时,更新所述虚拟转发表;或者,当接收到来自所述第二网络设备的指示信息后,更新所述虚拟转发表,所述指示信息用于指示所述第二网络设备的acl发生变化。
168.本技术实施例提供的隧道协商装置,能够执行上述实施例中第一网络设备的动作,其实现原理、实现细节和技术效果请参照上述方法实施例中的描述,在此不再赘述。
169.图8为本技术实施例提供的另一种隧道协商装置的结构示意图。可选地,本实施例所涉及的隧道协商装置为上述各实施例中的第二网络设备,或者为应用于第二网络设备的芯片。该隧道协商装置用于执行上述实施例中第二网络设备的功能。如图8所示,该隧道协商装置200包括接收单元21、处理单元22和发送单元23。
170.接收单元21,用于接收来自第一网络设备的协商报文,所述协商报文用于协商建立用以转发第二数据流的隧道,所述协商报文携带所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二数据流的地址信息;
171.处理单元22,用于根据所述第二数据流的地址信息、以及所述第二网络设备上的访问控制列表acl确定是否允许建立用于转发所述第二数据流的隧道;若不允许建立用于转发所述第二数据流的隧道,则根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围;
172.发送单元23,用于发送回应报文,所述回应报文携带协商后的源地址范围和协商后的目的地址范围。
173.一种可行的设计中,所述处理单元22,用于从所述协商报文中提取出第一acl的源地址范围和所述第一acl的目的地址范围,所述第一acl的源地址范围是所述第一网络设备上的acl允许通过隧道转发的源地址范围,所述第一acl的目的地址范围是所述第一网络设备上的acl允许通过隧道转发的目的地址范围;根据所述第一acl的源地址范围和所述第二acl的源地址范围,确定第一交集,并根据所述第一acl的目的地址范围和所述第二acl的目的地址范围,确定第二交集,所述第二acl的源地址范围是所述第二网络设备上的acl允许通过隧道转发的源地址范围,所述第二acl的目的地址范围是所述第二网络设备上的acl允许通过隧道转发的目的地址范围,所述第一交集用于指示所述协商后的源地址范围,所述第二交集用于指示所述协商后的目的地址范围。
174.一种可行的设计中,所述处理单元22,用于根据所述第一网络设备的acl指示的源地址范围和目的地址范围,以及所述第二网络设备上的acl,确定协商后的源地址范围和协商后的目的地址范围之后,根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二网络设备的虚拟转发表。
175.一种可行的设计中,所述处理单元22,根据所述协商后的源地址范围和所述协商
后的目的地址范围,生成所述第二网络设备的虚拟转发表之后,当所述第二网络设备的acl变化时,更新所述虚拟转发表;和/或,当所述第二网络设备的acl变化时,更新所述虚拟转发表。
176.一种可行的设计中,所述处理单元22,在根据所述协商后的源地址范围和所述协商后的目的地址范围,生成所述第二网络设备的虚拟转发表之后,还用于根据所述第二网络设备上的acl确定是否允许通过隧道转发第三数据流,若确定允许通过隧道转发所述第三数据流,则确定所述第二网络设备上的隧道转发表中是否存在第四表项,所述第四表项与所述第三数据流的地址信息匹配,所述隧道转发表中的不同表项用于指示所述第二网络设备已建立的隧道;若所述隧道转发表中不存在所述第四表项,则根据所述虚拟转发表和所述第三数据流的地址信息,确定匹配结果,所述虚拟转发表中的表项用于指示所述第二网络设备允许触发隧道协商过程的地址范围;根据所述匹配结果确定是否触发隧道协商过程。
177.一种可行的设计中,所述协商报文为第一因特网密钥交换协议认证ike_auth报文,所述第一ike_auth报文包含tsi载荷和tsr载荷,所述tsi载荷中的流量选择器字段携带所述第一acl的源地址范围和所述第二数据流的源地址,所述tsr载荷中的流量选择器字段携带所述第一acl的目的地址范围和所述第二数据流的目的地址。
178.一种可行的设计中,所述回应报文为第二ike_auth报文,所述第二ike_auth报文包含tsix载荷和tsrx载荷,所述tsix载荷中的流量选择器字段携带所述协商后的源地址范围,所述tsrx载荷中的流量选择器字段携带所述协商后的目的地址范围。
179.本技术实施例提供的隧道协商装置,能够执行上述实施例中第二网络设备的动作,其实现原理、实现细节和技术效果请参照上述方法实施例中的描述,在此不再赘述。
180.图9为本技术实施例提供的一种网络设备的结构示意图。可选地,附图9中的网络设备是附图1中的第一网络设备或第二网络设备。如图9所示,该网络设备300包括处理器31和存储器32。
181.所述存储器32存储计算机执行指令。
182.所述处理器31执行所述存储器32存储的计算机执行指令,使得所述网络设备执行如上图1和图2中第一网络设备执行的隧道协商方法,或图4中fw-a执行的隧道协商方法;或者,使得所述网络设备执行如上图1和图2中第二网络设备执行的隧道协商方法,或图4中fw-b执行的隧道协商方法。
183.处理器31的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
184.可选地,该隧道协商装置300还包括通信接口33。其中,处理器31、存储器32以及通信接口33能够通过总线34连接。
185.在上述电子设备的实现中,存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互,也就是存储器和处理器通过接口连接或集成在一起。例如,这些元件相互之间通过一条或者多条通信总线或信号线实现电性连接,如通过总线连接。存储器中存储有实现数据访问控制方法的计算机执行指令,包括至少一个软件或固件的形式存储于存储器中的软件功能模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理。
186.存储器包括但不限于,随机存取存储器(random access memory,简称:ram),只读存储器(read only memory,简称:rom),可编程只读存储器(programmable read-only memory,简称:prom),可擦除只读存储器(erasable programmable read-only memory,简称:eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称:eeprom)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。进一步地,上述存储器内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
187.处理器是一种集成电路芯片,具有信号的处理能力。上述的处理器例如是通用处理器,包括中央处理器(central processing unit,简称:cpu)、网络处理器(network processor,简称:np)等,能够实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器例如是微处理器或者任何常规的处理器等。
188.在上述基础上,本技术还提供一种芯片,包括:逻辑电路、输入接口,其中:所述输入接口用于获取待处理的数据,如协议类型、加密算法类型等;所述逻辑电路用于对待处理的数据执行前述方法实施例中第一网络设备侧的技术方案,得到处理后的数据,如匹配规则、最大报文值等。
189.可选的,该芯片还包括:输出接口,所述输出接口用于输出处理后的数据。
190.本技术还提供一种芯片,包括:逻辑电路和输入接口,其中:所述输入接口用于获取待处理的数据,如第一网络设备的acl、第一数据流等;所述逻辑电路用于对待处理的数据执行前述方法实施例中第一网络设备侧的技术方案,得到处理后的数据。该待处理的数据包括匹配结果、是否触发协商结果等。
191.可选的,该芯片还包括:输出接口,所述输出接口用于输出处理后的数据。
192.本技术还提供一种芯片,包括:逻辑电路和输入接口,其中:所述输入接口用于获取待处理的数据,如第二网络设备的acl、第一数据流等;所述逻辑电路用于对待处理的数据执行前述方法实施例中第二网络设备侧的技术方案,得到处理后的数据。该待处理的数据包括协商结果等。
193.可选的,该芯片还包括:输出接口,所述输出接口用于输出处理后的数据。
194.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行前述实施例中第一网络设备侧的技术方案。
195.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行前述实施例中第二网络设备侧的技术方案。
196.本技术实施例还提供一种计算机程序产品,当所述计算机程序产品在隧道协商装置上运行时,使得所述隧道协商装置执行前述实施例中第一网络设备侧的技术方案;或者,使得所述隧道协商装置执行前述实施例中第二网络设备的技术方案。
197.本领域普通技术人员应理解:实现上述各方法实施例的全部或部分步骤能够通过程序指令相关的硬件来完成。前述的程序能够存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种存储程序代码的介质,具体的介质类型本技术不做限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献