一种基于虚连接的报文传输方法和设备的制作方法

文档序号:7812546阅读:136来源:国知局
一种基于虚连接的报文传输方法和设备的制作方法
【专利摘要】本发明公开了一种基于虚连接的报文传输方法和设备,该方法包括:控制器确定需要在第一网络设备和第二网络设备之间建立虚连接;所述控制器为第一网络设备生成第一流表,并将所述第一流表下发给所述第一网络设备,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出端口和第二网络设备的MAC地址;所述控制器为第二网络设备生成第二流表,并将所述第二流表下发给所述第二网络设备,所述第二流表中记录有所述虚连接对应的第二用户侧接入链路。本发明实施例中,控制器在生成流表时,不需要学习报文中携带的目的MAC地址,也不需要基于目的MAC地址生成流表。
【专利说明】一种基于虚连接的报文传输方法和设备

【技术领域】
[0001] 本发明涉及通信领域,尤其是一种基于虚连接的报文传输方法和设备。

【背景技术】
[0002] SDN(Software Defined Network,软件定义网络)是一种新型网络创新架构,其核 心思想是将网络设备的控制层面与转发层面分离,以实现对流量的灵活控制,为核心网络 以及应用的创新提供良好的平台。在SDN网络中,包括网络设备(如交换机)和控制器。其 中,该控制器用于根据用户的配置或者动态运行的协议生成流表(Flow Table),并将流表 发送到网络设备。网络设备用于接收来自控制器的流表,并根据流表来匹配和处理报文。 [000 3] 在报文转发过程中,网络设备将对应目的MAC(Media Access Control,介质访问 控制)地址的首个报文发送给控制器,控制器利用报文中携带的目的MAC地址生成流表,并 将匹配该目的MAC地址的流表下发给网络设备。网络设备再次收到对应该目的MAC地址的 报文时,通过查询流表转发报文。
[0004] 控制器在生成流表时,需要学习到报文中携带的目的MAC地址,并基于目的MAC地 址生成流表。目前,SDN网络支持多种业务,如二层业务、IP业务、MPLS (Multi-Protocol Label Switching,多协议标签交换)业务等。对于ip业务,报文中会携带目的mAC地址, 因此,控制器可以基于目的MAC地址生成流表。但是,对于非IP业务(如二层业务、MPLS业 务),报文中可能不会携带目的MAC地址,如非IP业务中的组播报文和二层协议报文中,并 不携带目的MAC地址,因此,控制器无法学习到报文中携带的目的ma c地址,继而不能基于 目的MAC地址生成流表,也就不能将流表下发给网络设备。


【发明内容】

[0005]本发明实施例提供一种基于虚连接的报文传输方法,该方法应用于包括控制器和 多个网络设备的软件定义网络SDN中,所述方法包括:
[0006]所述控制器确定需要在第一网络设备和第二网络设备之间建立虚连接;
[0007]所述控制器为第一网络设备生成第一流表,并将所述第一流表下发给所述第一网 络设备,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出端口和第二网 络设备的介质访冋控制MAC地址;所述第一流表用于指示所述第一网络设备在收到来自所 述第一用户侧接入链路的报文时,为所述报文进行虚连接隧道封装,在封装后的报文的头 部中携带所述第二网络设备的MAC地址,并通过所述出端口发送封装后的报文;
[0008]所述控制器为第二网络设备生成第二流表,并将所述第二流表下发给所述第二网 络设备,所述第二流表中记录有所述虚连接对应的第二用户侧接入链路;所述第二流表用 于指示所述第二网络设备在收到封装后的报文时,如果封装后的报文的头部中携带的 M(: 地址为第二网络设备的MAC地址,则解封装所述封装后的报文,得到所述报文,并通过所述 第二用户侧接入链路发送所述报文。
[0009]所述方法进一步包括:当所述第一网络设备与所述第二网络设备之间的虚连接对 应多个用户侧接入链路对时,所述控制器确定唯一对应于所述第一用户侧接入链路和第二 用户侧接入链路的隧道标签;
[0010] 所述控制器在生成所述第一流表时,所述第一流表中还记录有所述隧道标签,且 封装后的报文的头部中还携带所述隧道标签;
[0011] 所述控制器在生成所述第二流表时,所述第二流表中还记录有所述隧道标签,且 第二网络设备在发送报文之前,通过封装后的报文的头部中携带的隧道标签查询第二流 表,以得到对应的第二用户侧接入链路。
[0012] 所述控制器在第一网络设备和第二网络设备之间建立虚连接之前,所述方法进一 步包括:
[0013] 所述控制器确定所述SDN中的所述多个网络设备之间的网络拓扑,并利用所述网 络拓扑确定每个网络设备到其它网络设备的拓扑最短路径;
[0014] 针对每个网络设备,所述控制器利用所述网络设备到其它网络设备的拓扑最短路 径为所述网络设备生成第三流表,并将所述第三流表下发给所述网络设备,所述第三流表 中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它网络设备的拓扑最短 路径的出端口;所述第三流表用于指示所述网络设备在收到第一网络设备发送给第二网络 设备的封装后的报文时,如果封装后的报文的头部中携带的MAC地址为所述第三流表中记 录的其它网络设备的MAC地址,则通过对应的出端口转发封装后的报文。
[0015] 本发明实施例提供一种基于虚连接的报文传输方法,该方法应用于包括控制器和 多个网络设备的软件定义网络SDN中,所述方法包括:
[0016] 当控制器确定需要在第一网络设备和第二网络设备之间建立虚连接时,
[0017] 网络设备接收控制器向所述网络设备下发的流表;其中,当所述网络设备作为第 一网络设备时,所述流表为第一流表,所述第一流表中记录有所述虚连接对应的第一用户 侧接入链路、出端口和第二网络设备的介质访问控制MAC地址;当所述网络设备作为第二 网络设备时,所述流表为第二流表,所述第二流表中记录有所述虚连接对应的第二用户侧 接入链路;
[0018] 所述网络设备在收到来自所述第一用户侧接入链路的报文时,通过所述第一用户 侧接入链路查询所述第一流表,并利用所述第一流表中记录的信息,为所述报文进行虚连 接隧道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述出 端口发送封装后的报文;
[0019] 所述网络设备在收到封装后的报文时,获得封装后的报文的头部中携带的MAC地 址;如果所述MAC地址为本网络设备的MAC地址,则解封装所述封装后的报文,并通过所述 第二流表中记录的第二用户侧接入链路发送解封装之后的报文。
[0020] 当所述第一网络设备与所述第二网络设备之间的虚连接对应多个用户侧接入链 路对时,所述方法还包括:
[0021] 当所述网络设备作为第一网络设备时,所述第一流表中还记录有隧道标签,所述 隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链路的隧道标签; 所述网络设备在为所述报文进行虚连接隧道封装时,在封装后的报文的头部中还携带所述 隨道标签;或者,
[0022] 当所述网络设备作为第二网络设备时,所述第二流表中还记录有隧道标签,所述 隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链路的隧道标签; 所述网络设备在通过所述第二流表中记录的第二用户侧接入链路发送解封装之后的报文 时,所述网络设备通过封装后的报文的头部中携带的隧道标签查询所述第二流表,以得到 对应的第二用户侧接入链路,并通过所述第二用户侧接入链路发送解封装之后的报文。
[0023]所述需要在第一网络设备和第二网络设备之间建立虚连接之前,所述方法进一步 包括:
[0024]所述网络设备接收所述控制器向所述网络设备下发的第三流表,所述第三流表是 所述控制器利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成并下 发的,所述第三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它 网络设备的拓扑最短路径的出端口;
[0025]所述网络设备在收到第一网络设备发送给第二网络设备的封装后的报文时,如果 封装后的报文的头部中携带的MAC地址为所述第三流表中记录的其它网络设备的MAC地 址,则通过对应的出端口转发封装后的报文。
[0026] 所述方法进一步包括:
[0027]所述网络设备在收到封装后的报文时,确定封装后的报文对应的源MAC地址在 MAC表中对应的出端口;如果所述出端口与所述网络设备上收到封装后的报文的接收端口 相同,则所述网络设备允许转发封装后的报文;如果所述出端口与所述接收端口不同,则所 述网络设备直接丢弃封装后的报文。
[0028]本发明实施例提供一种控制器,应用于包括所述控制器和多个网络设备的软件定 义网络SDN中,所述控制器具体包括:
[0029] 确定模块,用于确定需要在第一网络设备和第二网络设备之间建立虚连接;
[0030]生成模块,用于为所述第一网络设备生成第一流表,并为所述第二网络设备生成 第二流表;其中,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出端口和 第二网络设备的介质访问控制MAC地址;所述第二流表中记录有所述虚连接对应的第二用 户侧接入链路;
[0031]发送模块,用于将所述第一流表下发给所述第一网络设备,所述第一流表用于指 示所述第一网络设备在收到来自所述第一用户侧接入链路的报文时,为所述报文进行虚连 接隧道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述出 端口发送封装后的报文;
[0032]以及,将所述第二流表下发给所述第二网络设备,所述第二流表用于指示所述第 二网络设备在收到封装后的报文时,如果封装后的报文的头部中携带的MAC地址为第二网 络设备的MAC地址,则解封装所述封装后的报文,得到所述报文,并通过所述第二用户侧接 入链路发送所述报文。
[0033]所述确定模块,还用于当所述第一网络设备与所述第二网络设备之间的虚连接对 应多个用户侧接入链路对时,确定唯一对应于所述第一用户侧接入链路和第二用户侧接入 链路的隧道标签;
[0034]所述生成模块在生成所述第一流表时,所述第一流表中还记录有所述隧道标签, 且封装后的报文的头部中还携带所述隧道标签;
[0035]所述生成模块在生成所述第二流表时,所述第二流表中还记录有所述隧道标签, 且第二网络设备在发送报文之前,通过封装后的报文的头部中携带的隧道标签查询第二流 表,以得到对应的第二用户侧接入链路。
[0036] 所述生成模块,还用于确定所述SDN中的所述多个网络设备之间的网络拓扑,并 利用所述网络拓扑确定每个网络设备到其它网络设备的拓扑最短路径;针对每个网络设 备,利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成第三流表;所 述第三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它网络设备 的拓扑最短路径的出端口;
[0037]所述发送模块,还用于将所述第三流表下发给所述网络设备,所述第三流表用于 指示所述网络设备在收到第一网络设备发送给第二网络设备的封装后的报文时,如果封装 后的报文的头部中携带的MAC地址为所述第三流表中记录的其它网络设备的MAC地址,则 通过对应的出端口转发封装后的报文。
[0038] 本发明实施例提供一种网络设备,应用于包括控制器和多个网络设备的软件定义 网络SDN中,所述网络设备具体包括:
[0039] 接收模块,用于当控制器确定需要在第一网络设备和第二网络设备之间建立虚连 接时,接收控制器向所述网络设备下发的流表;其中,当所述网络设备作为第一网络设备 时,所述流表为第一流表,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、 出端口和第二网络设备的介质访问控制MAC地址;当所述网络设备作为第二网络设备时, 所述流表为第二流表,所述第二流表中记录有所述虚连接对应的第二用户侧接入链路;
[0040] 处理模块,用于在收到来自所述第一用户侧接入链路的报文时,通过所述第一用 户侧接入链路查询所述第一流表,并利用所述第一流表中记录的信息,为所述报文进行虚 连接隧道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述 出端口发送封装后的报文;
[0041] 在收到封装后的报文时,获得封装后的报文的头部中携带的MAC地址;如果所述 MAC地址为本网络设备的MAC地址,则解封装所述封装后的报文,并通过所述第二流表中记 录的第二用户侧接入链路发送解封装之后的报文。
[0042] 当所述第一网络设备与所述第二网络设备之间的虚连接对应多个用户侧接入链 路对时,
[0043] 当所述网络设备作为第一网络设备时,所述接收模块接收的第一流表中还记录有 隧道标签,所述隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链 路的隧道标签;所述处理模块在为所述报文进行虚连接隧道封装时,在封装后的报文的头 部中还携带所述隧道标签;或者,
[0044] 当所述网络设备作为第二网络设备时,所述接收模块接收的第二流表中还记录有 隧道标签,所述隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链 路的隧道标签;所述处理模块在通过所述第二流表中记录的第二用户侧接入链路发送解封 装之后的报文时,通过封装后的报文的头部中携带的隧道标签查询所述第二流表,以得到 对应的第二用户侧接入链路,并通过所述第二用户侧接入链路发送解封装之后的报文。
[0045] 所述接收模块,还用于接收所述控制器向网络设备下发的第三流表,所述第三流 表是所述控制器利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成 并下发的,所述第三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述 其它网络设备的拓扑最短路径的出端口;
[0046]所述处理模块,还用于在收到第一网络设备发送给第二网络设备的封装后的报文 时,如果封装后的报文的头部中携带的MAC地址为第三流表中记录的其它网络设备的MAC 地址,则通过对应的出端口转发封装后的报文。
[0047]所述处理模块,进一步用于在收到封装后的报文时,确定封装后的报文对应的源 MAC地址在MAC表中对应的出端口;如果所述出端口与所述网络设备上收到封装后的报文 的接收端口相同,则允许转发封装后的报文;如果所述出端口与所述接收端口不同,则直接 丢弃封装后的报文。
[0048] 基于上述技术方案,本发明实施例中,通过在SDN网络中的网络设备与网络设备 之间建立点到点的虚连接,并在网络设备上下发对应虚连接的流表,从而使得控制器在生 成流表时,不需要学习到报文中携带的目的MAC地址,也不需要基于目的MAC地址生成流 表,免去了大量主机的学习任务。

【专利附图】

【附图说明】
[0049]图1是本发明实施例提出的应用场景示意图;
[0050]图2是本发明实施例提出的一种基于虚连接的报文传输方法流程图;
[0051]图3是本发明实施例提出的一种控制器的结构示意图;
[0052]图4是本发明实施例提出的一种网络设备的结构示意图。

【具体实施方式】
[0053] 针对现有技术中存在的问题,本发明实施例提供一种基于虚连接的报文传输方 法,该方法应用于包括控制器和多个网络设备的SDN网络中,以图1为本发明实施例的应 用场景示意图,以SDN网络中包括4个网络设备为例进行说明。其中,网络设备1连接的 LAN1 (Local Area Network,局域网)下有终端设备1,网络设备1连接的LAN2下有终端设 备2,网络设备3连接的LAN1下有终端设备3,网络设备3连接的LAN2下有终端设备4。 [0054] 为了能够在SDN网络中支持虚连接的隧道,本发明实施例中,控制器需要为SDN网 络中的每个网络设备生成该网络设备到其它网络设备的流表,为了后续区分方便,将网络 设备到其它网络设备的流表称为第三流表,且每个网络设备上均会下发第三流表,该第三 流表用于使网络设备在作为虚连接隧道两端的网络设备的中间网络设备时,利用该第三流 表进行报文转发。
[0055]为了生成第三流表,控制器确定SDN中的多个网络设备之间的网络拓扑,并利用 网络拓扑确定每个网络设备到其它网络设备的拓扑最短路径。例如,控制器在确定出图1 所示的网络拓扑后(网络拓扑的确定方式与现有方式相同,在此不再赘述),对于网络设备 1,网络设备1到网络设备4的拓扑最短路径为网络设备1-网络设备4,网络设备1到网络 设备3的拓扑最短路径为网络设备1-网络设备4-网络设备3,网络设备1到网络设备2的 拓扑最短路径为网络设备1-网络设备2。对于其它网络设备的拓扑最短路径不再详加赘 述。
[0056] 进一步的,在确定出每个网络设备到其它网络设备的拓扑最短路径之后,针对每 个网络设备,控制器利用该网络设备到其它网络设备的拓扑最短路径为该网络设备生成第 三流表,并将该第三流表下发给该网络设备。
[0057]其中,第三流表中记录有其它网络设备的MAC地址,该其它网络设备的MAC地址可 以为该其它网络设备的桥MAC地址这个唯一标识。
[0058] ^中,第三流表中记录有本网络设备上到其它网络设备的拓扑最短路径的出端 口,即第三流表中指定的出端口为本网络设备到目的其它网络设备的转发端口。进一步的, 由于每个网络设备都是独立计算的出端口,且由于拓扑是统一维护的,因此,每个网络设备 的出端口都是最短路径端口。
[0059]为了使控制器能够为SDN网络中的每个网络设备生成第三流表,控制器需要 获得SDN网络中的每个网络设备的地址。为了实现该过程,本发明实施例中,各网 络设备需要将本网络设备的MAC地址发送给控制器。进一步的,各网络设备可以通过 Description (描述)报文将本网络设备的Mc地址发送给控制器,由控制器利用各网络设 备的MAC地址生成第三流表。
[0060]进一步的,控制器在生成第三流表时,第三流表中记录的出端口是控制器根据SDN 网络的网络拓扑计算出来的,该计算过程在此不再赘述。
[0061]在图1所示的应用场景下,对于网络设备1,控制器为网络设备1生成网络设备1 到网络设备2的第三流表1,并生成网络设备1到网络设备3的第三流表2,并生成网络设 备1到网络设备4的第三流表3。之后,控制器分别将第三流表1、第三流表2和第三流表 3下发给网络设备1。其中,第三流表1中记录了网络设备 2的MC地址、网络设备1到网 络设备2的拓扑最短路径的出端口(即网络设备1上连接网络设备 2的端口);第三流表2 中记录了网络设备3的MAC地址、网络设备1到网络设备3的拓扑最短路径的出端口(即 网络设备1上连接网络设备4的端口);第三流表3中记录了网络设备4的MAC地址、网络 设备1到网络设备4的拓扑最短路径的出端口(即网络设备丨上连接网络设备4的端口)。 对于网络设备2、网络设备3和网络设备4的情况,控制器为网络设备生成第三流表的过程 与控制器为网络设备1生成第三流表的过程类似,在此不再详加赘述。
[0062]基于上述处理,如图2所示,基于虚连接的报文传输方法包括以下步骤:
[0063]步骤201,控制器确定需要在第一网络设备和第二网络设备之间建立虚连接。本发 明实施例中,虚连接与用户侧接入链路对关联,每个用户侧接入链路对只能对应一个虚连 接,但是一个虚连接可以对应多个用户侧接入链路对。
[0064]在图1所示的应用场景下,对于网络设备1与网络设备3之间的虚连接1,该 虚连接1对应的用户侧接入链路对可以包括:AC10 (Access Circuit,接入链路)-AC30, AC10-AC31,AC11-AC30,AC11-AC31,上述用户侧接入链路对均只对应唯一的虚连接1。对于 网络设备3与网络设备1之间的虚连接2,该虚连接2对应的用户侧接入链路对可以包括: AC30-AC10, AC30-AC11,AC31-AC10, AC31-AC11,上述用户侧接入链路对均只对应唯一的虚 连接2。
[0065] 本发明实施例中,当需要在用户侧接入链路对之间传输流量时,则控制器确定需 要在第一网络设备和第二网络设备之间建立虚连接。为了方便描述,以用户侧接入链路对 为AC10-AC3〇为例进行说明,则当前需要在AQ0和AC3〇之间传输流量时,控制器确定需要 在第一网络设备(即网络设备1)和第二网络设备(即网络设备3)之间建立虚连接,即用 户侧接入链路对对应的虚连接两端的第一网络设备和第二网络设备分别为网络设备1和 网络设备3,且该虚连接对应的第一用户侧接入链路为网络设备1的用户侧接入链路AC10, 该虚连接对应的第二用户侧接入链路为网络设备3的用户侧接入链路AC30。其中,用户侧 接入链路可通过端口和VLAN (Virtual Local Area Network,虚拟局域网)唯一标识,例如, AC10可以通过端口 1和LAN1唯一标识,AC11可以通过端口 2和LAN2唯一标识,AC30可以 通过端口 3和LAN1唯一标识,AC31可以通过端口 4和LAN2唯一标识。
[0066] 步骤202,控制器为第一网络设备生成第一流表,将第一流表下发给第一网络设 备,为第二网络设备生成第二流表,将第二流表下发给第二网络设备。
[0067] 本发明实施例中,第一流表中记录有虚连接对应的第一用户侧接入链路、出端口 (即第一网络设备到第二网络设备的拓扑最短路径的出端口)和第二网络设备的MAC地 址。第二流表中记录有虚连接对应的第二用户侧接入链路。例如,以用户侧接入链路对为 AC10-AC30为例,则下发给网络设备1的第一流表中记录有用户侧接入链路AC10、网络设备 3的MAC地址、网络设备1到网络设备3的拓扑最短路径的出端口(即网络设备1上连接网 络设备4的端口),下发给网络设备3的第二流表中记录有用户侧接入链路AC30。
[0068] 本发明实施例中,当第一网络设备与第二网络设备之间的虚连接对应一个用户侧 接入链路对时,则第一流表中记录有虚连接对应的第一用户侧接入链路、出端口和第二网 络设备的MAC地址,第二流表中记录有虚连接对应的第二用户侧接入链路。或者,当第一网 络设备与第二网络设备之间的虚连接对应多个用户侧接入链路对时,控制器还需要确定唯 一对应于第一用户侧接入链路和第二用户侧接入链路的隧道标签。进一步的,控制器在生 成第一流表时,该第一流表中还记录有隧道标签,即该第一流表中记录有虚连接对应的第 一用户侧接入链路、隧道标签、出端口和第二网络设备的MAC地址;控制器在生成第二流表 时,该第二流表中还记录有隧道标签,即该第二流表中记录有虚连接对应的第二用户侧接 入链路和隧道标签。
[0069] 其中,隧道标签唯一标识了虚连接上的用户侧接入链路对。针对同一虚连接上的 不同用户侧接入链路对,每个用户侧接入链路对需要对应唯一的隧道标签。针对不同虚连 接上的用户侧接入链路对,可以使用相同的隧道标签。
[0070] 例如,网络设备1与网络设备3之间的虚连接1对应的用户侧接入链路对包 括:AC10-AC30, AC10-AC31,AC11-AC30, AC11-AC31,因此,对于 AC10-AC30, AC10-AC31, AC11-AC30, AC11-AC31将使用不同的隧道标签。如AC10-AC30使用隧道标签1,AC10-AC31 使用隧道标签2, AC11-AC30使用隧道标签3, AC11-AC31使用隧道标签4。基于此,以用户 侧接入链路对为AC10-AC30,第一流表中记录有虚连接对应的第一用户侧接入链路AC10、 隧道标签1、网络设备1上对应网络设备3的出端口(即网络设备1上连接网络设备4的端 口)、网络设备3的MAC地址;第二流表中记录虚连接对应的第二用户侧接入链路AC30和 隧道标签1。
[0071] 步骤2〇3,第一网络设备在收到来自第一用户侧接入链路的报文时,为报文进行虚 连接隧道封装,并通过第一流表中记录的出端口发送封装后的报文。
[0072] 本发明实施例中,由于第一流表中记录有虚连接对应的第一用户侧接入链路、出 端口和第二网络设备的MAC地址。因此,第一网络设备在收到对应于第一流表中记录的第 一用户侧接入链路的报文时,第一网络设备利用第一流表中记录的第一用户侧接入链路对 应的第二网络设备的MAC地址为报文进行虚连接隧道封装,封装后的报文的隧道头中携带 第二网络设备的MAC地址,即目的MAC地址为第二网络设备的地址,之后,第一网络设 备通过第一流表中记录的第一用户侧接入链路对应的出端口发送封装后的报文。
[0073]步骤204,网络设备(即第一网络设备与第二网络设备之间的中间网络设备)在收 到第一网络设备发送给第二网络设备的封装后的报文时,如果封装后的报文的头部中携带 的MAC地址(即目的MAC地址)为第三流表中记录的其它网络设备的地址,则通过对 应的出端口转发封装后的报文。
[0074]本发明实施例中,由于第三流表中记录有其它网络设备的MAC地址以及本网络 设备到其它网络设备的出端口(即本网络设备上到其它网络设备的拓扑最短路径的出端 口)。因此,网络设备在收到第一网络设备发送给第二网络设备的封装后的报文之后,通过 封装后的报文的头部中携带的MAC地址(即封装后的报文的头部中携带的目的MAC地址) 查询第三流表。如果封装后的报文的头部中携带的目的MAC地址为第三流表中记录的其它 网络设备的MAC地址(即第二网络设备的ma C地址),则网络设备通过该其它网络设备(即 第二网络设备)的MAC地址在第三流表中对应的出端口(即本网络设备到其它网络设备的 拓扑最短路径的转发端口)转发封装后的报文。
[0075]步骤205,第二网络设备在收到封装后的报文时,如果封装后的报文的头部中携带 的MAC地址(即封装后的报文的头部中携带的目的MC地址)为本第二网络设备的地 址,则第二网络设备解封装封装后的报文,以得到解封装后的报文,并通过第二用户侧接入 链路发送解封装后的报文。
[0076]本发明实施例中,由于第二流表中记录有虚连接对应的第二用户侧接入链路,因 此,第二网络设备在收到封装后的报文之后,如果封装后的报文的头部中携带的目的MC 地址为本第二网络设备的MAC地址,则第二网络设备解封装封装后的报文,以得到解封装 后的报文,并通过第二流表中记录的第二用户侧接入链路发送解封装后的报文。
[0077]本发明实施例中,当第一网络设备与第二网络设备之间的虚连接对应多个用户侧 接入链路对时,第一流表中记录有虚连接对应的第一用户侧接入链路、隧道标签、出端口和 第二网络设备的MAC地址,第二流表中记录有虚连接对应的第二用户侧接入链路和隧道标 签。基于此,第一网络设备在为报文进行虚连接隧道封装时,封装后的报文的隧道头中还携 带險道标签;第二网络设备在通过第二用户侧接入链路发送报文之前,还通过封装后的报 文的头部中携带的隧道标签查询第二流表,以得到对应的第二用户侧接入链路。
[0078]在步骤2〇3中,第一网络设备在收到对应于第一流表中记录的第一用户侧接入链 路的报文时,第一网络设备利用第一流表中记录的第二网络设备的MAC地址和隧道标签为 报文进行虚连接隧道封装,即封装后的报文的隧道头中携带第二网络设备的MAC地址和隧 道标签,第一网络设备通过第一流表中记录的出端口发送封装后的报文。
[0079]在步骤204中,第一网络设备与第二网络设备之间的中间网络设备在收到封装后 的报文之后,通过封装后的报文的头部中携带的目的MAC地址查询第三流表。如果封装后 的报文的头部中携带的目的MAC地址为第三流表中记录的其它网络设备的MAC地址(即第 二网络设备的MAC地址),则网络设备通过该其它网络设备(即第二网络设备)的 MC地址 在第三流表中对应的出端口(网络设备到其它网络设备的转发端口)转发封装后的报文。 [00S0]在步骤 2〇5中,第二网络设备在收到封装后的报文之后,如果确定封装后的报文 的头部中携带的目的MAC地址为本第二网络设备的mA C地址,则第二网络设备解封装封装 后的报文,以得到解封装后的报文,并通过封装后的报文的头部中携带的隧道标签查询第 二流表,以得到对应的第二用户侧接入链路,并通过第二流表中记录的第二用户侧接入链 路发送解封装后的报文。
[0081]在图1所示的应用场景下,以SDN网络中的用户侧接入链路AC10下挂的终端设备 1,访问用户侧接入链路AC30下挂终端设备3为例进行说明。在此应用场景下,假设终端设 备1与终2而设备3已经相互学习到ARP(Address Resolution Protocol,地址解析协议)信 息,并直接执行IP访问。
[0082]在步骤2〇3中,网络设备1收到终端设备1发出的报文,并根据报文的入端口和 VLAN识别出该报文为用户侧接入链路AC10对应的报文。网络设备1利用用户侧接入链路 AC10查询第一流表,得到用户侧接入链路AC10对应的第二网络设备的MAC地址为网络设备 3的MAC地址,用户侧接入链路AC10对应的隧道标签为隧道标签1。网络设备丨利用第一 流表中记录的第二网络设备的MAC地址和隧道标签为报文进行虚连接隧道封装,即封装后 的报文的头部中携带的目的MAC地址为网络设备3的MAC地址,封装后的报文的头部中携 带的隧道标签为隧道标签1。网络设备1通过第一流表中记录的用户侧接入链路AC10对应 的出端口(即网络设备1上与网络设备4连接的出端口)发送封装后的报文,假设封装后 的报文被发送给网络设备4。
[0083] 在步骤204中,网络设备4在接收到封装后的报文之后,通过封装后的报文的头部 中携带的目的MAC地址查询第三流表,并发现封装后的报文的头部中携带的目的MAC地址 为网络设备3的MAC地址,因此网络设备4通过网络设备3的MAC地址在第三流表中对应 的出端口(即网络设备4到网络设备3的转发端口)转发封装后的报文,即网络设备4将 封装后的报文发送给网络设备3。
[0084] 在步骤2〇5中,网络设备3在收到封装后的报文之后,由于封装后的报文的头部中 携带的目的MAC地址为网络设备3的MAC地址,因此,网络设备3解封装封装后的报文,以 得到解封装后的报文,并通过封装后的报文的头部中携带的隧道标签1查询第二流表,以 识别出对应的第二用户侧接入链路为AC30,因此,网络设备3通过第二流表中记录的第二 用户侧接入链路AC30发送解封装后的报文,解封装后的报文经过AC30转发到终端设备3。 [0085] 之后,终端设备3产生应答报文,该应答报文到达网络设备3后,网络设备3向网 络设备1发送应答报文的过程与网络设备1向网络设备3发送报文的过程类似,在此不再 赘述。网络设备1收到应答报文后,通过AC10将应答报文转到给终端设备1,从而完成终端 设备1与终端设备3之间的报文交互。
[0086] 本发明实施例中,当网络拓扑发生变更时,控制器还需要确定更新后的网络拓扑, 并利用更新后的网络拓扑重新为各网络设备生成第三流表,并利用更新后的网络拓扑重新 为第一网络设备生成第一流表,并利用更新后的网络拓扑重新为第二网络设备生成第二流 表。其中,第一流表、第二流表和第三流表的生成过程与上述方式类似,在此不再重复赘述。 [0087] 本发明实施例中,各网络设备上的流表查询过程包括源MAC地址过滤和目的MAC 地址查找。源MAC地址过滤是指对接收报文的源MAC地址进行查找,若报文入端口不是MAC 表中的端口,则丢弃该报文。若报文入端口是MAC表中的端口,则执行目的MAC地址查找, 若查找到目的MAC地址时,则转发该报文,若没有查找到目的MAC地址时,则直接丢弃该报 文。
[0088]基于此,网络设备在接收到封装后的报文时,网络设备还需要确定该封装后的报 文对应的源MAC地址在MAC表(即第三流表)中对应的出端口;如果该出端口与网络设备 上收到封装后的报文的接收端口相同,则网络设备允许转发封装后的报文;如果该出端口 与接收端口不同,则网络设备直接丢弃封装后的报文。
[0089] 综上所述,本发明实施例中,通过在SDN网络中的网络设备与网络设备之间建立 点到点的虚连接,并在网络设备上下发对应虚连接的流表,从而使得控制器在生成流表时, 不需要学习到报文中携带的目的MAC地址,也不需要基于目的MAC地址生成流表,免去了大 量主机的学习任务。进一步的,通过在SDN网络中的任意两个网络设备之间建立虚连接,并 通过该虚连接承载所有业务报文(可以是以太报文和非以太报文),使得SDN网络不感知报 文类型,只需要识别报文所属的虚连接。进一步的,在SDN网络中实现虚连接功能,虚连接 由控制器根据拓扑生成,无需依赖VPN(Virtual Private Network,虚拟专用网络)功能,并 可以防止环路,实现了报文的透明传输。
[0090]基于与上述方法同样的发明构思,本发明实施例中还提供了一种控制器,应用于 包括所述控制器和多个网络设备的软件定义网络SDN中,如图3所示,所述控制器具体包 括:
[0091] 确定模块11,用于确定需要在第一网络设备和第二网络设备之间建立虚连接;
[0092] 生成模块12,用于为所述第一网络设备生成第一流表,并为所述第二网络设备生 成第二流表;其中,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出端口 和第二网络设备的介质访问控制MAC地址;所述第二流表中记录有所述虚连接对应的第二 用户侧接入链路;
[0093] 发送模块13,用于将所述第一流表下发给所述第一网络设备,所述第一流表用于 指示所述第一网络设备在收到来自所述第一用户侧接入链路的报文时,为所述报文进行虚 连接隧道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述 出端口发送封装后的报文;
[0094]以及,将所述第二流表下发给所述第二网络设备,所述第二流表用于指示所述第 二网络设备在收到封装后的报文时,如果封装后的报文的头部中携带的MAC地址为第二网 络设备的MAC地址,则解封装所述封装后的报文,得到所述报文,并通过所述第二用户侧接 入链路发送所述报文。
[0095] 所述确定模块11,还用于当所述第一网络设备与所述第二网络设备之间的虚连接 对应多个用户侧接入链路对时,确定唯一对应于所述第一用户侧接入链路和第二用户侧接 入链路的隧道标签;
[0096] 所述生成模块12在生成所述第一流表时,所述第一流表中还记录有所述燧道标 签,且封装后的报文的头部中还携带所述隧道标签;
[0097] 所述生成模块12在生成所述第二流表时,所述第二流表中还记录有所述隧道标 签,且第二网络设备在发送报文之前,通过封装后的报文的头部中携带的隧道标签查询第 二流表,以得到对应的第二用户侧接入链路。
[0098] 所述生成模块12,还用于确定所述SDN中的所述多个网络设备之间的网络拓扑, 并利用所述网络拓扑确定每个网络设备到其它网络设备的拓扑最短路径;针对每个网络设 备,利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成第三流表;第 三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它网络设备的拓 扑最短路径的出端口;
[0099]所述发送模块13,还用于将所述第三流表下发给所述网络设备,所述第三流表用 于指示所述网络设备在收到第一网络设备发送给第二网络设备的封装后的报文时,如果封 装后的报文的头部中携带的MAC地址为所述第三流表中记录的其它网络设备的mA C地址, 通过对应的出端口转发封装后的报文。
[0100]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。
[0101] 基于与上述方法同样的发明构思,本发明实施例中还提供了 一种网络设备,应用 于包括控制器和多个网络设备的软件定义网络SDN中,如图4所示,所述网络设备具体包 括:
[0102] 接收模块21,用于当控制器确定需要在第一网络设备和第二网络设备之间建立虚 连接时,接收控制器向所述网络设备下发的流表;其中,当所述网络设备作为第一网络设备 时,所述流表为第一流表,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、 出端口和第二网络设备的介质访问控制MAC地址;当所述网络设备作为第二网络设备时, 所述流表为第二流表,所述第二流表中记录有所述虚连接对应的第二用户侧接入链路;
[0103] 处理模块22,用于在收到来自所述第一用户侧接入链路的报文时,通过所述第一 用户侧接入链路查询所述第一流表,并利用所述第一流表中记录的信息,为所述报文进行 虚连接隧道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所 述出端口发送封装后的报文;
[0104] 在收到封装后的报文时,获得封装后的报文的头部中携带的MAC地址;如果所述 MAC地址为本网络设备的MAC地址,则解封装所述封装后的报文,并通过所述第二流表中记 录的第二用户侧接入链路发送解封装之后的报文。
[0105] 本发明实施例中,当所述第一网络设备与所述第二网络设备之间的虚连接对应多 个用户侧接入链路对时,
[0106] 当所述网络设备作为第一网络设备时,所述接收模块21接收的第一流表中还记 录有隧道标签,所述隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接 入链路的隧道标签;所述处理模块22在为所述报文进行虚连接隧道封装时,在封装后的报 文的头部中还携带所述隧道标签;或者,
[0107] 当所述网络设备作为第二网络设备时,所述接收模块21接收的第二流表中还记 录有隧道标签,所述隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接 入链路的隧道标签;所述处理模块22在通过所述第二流表中记录的第二用户侧接入链路 发送解封装之后的报文时,通过封装后的报文的头部中携带的隧道标签查询所述第二流 表,以得到对应的第二用户侧接入链路,并通过所述第二用户侧接入链路发送解封装之后 的报文。
[0108] 所述接收模块21,还用于接收所述控制器向网络设备下发的第三流表,所述第三 流表是所述控制器利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生 成并下发的,第三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其 它网络设备的拓扑最短路径的出端口;
[0109]所述处理模块22,还用于在收到第一网络设备发送给第二网络设备的封装后的 报文时,如果封装后的报文的头部中携带的MAC地址为第三流表中记录的其它网络设备的 MAC地址,则通过对应的出端口转发封装后的报文。
[0110]所述处理模块22,进一步用于在收到封装后的报文时,确定封装后的报文对应的 源MAC地址在MAC表中对应的出端口;如果所述出端口与所述网络设备上收到封装后的报 文的接收端口相同,则允许转发封装后的报文;如果所述出端口与所述接收端口不同,则直 接丢弃封装后的报文。
[0111]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。
[0112]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更 佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 千指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发 明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图, 附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中 的装直中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位 于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以 进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以 上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人 员能思之的变化都应落入本发明的保护范围。
【权利要求】
1· 一种基于虚连接的报文传输方法,其特征在于,该方法应用于包括控制器和多个网 络设备的软件定义网络SDN中,所述方法包括: 所述控制器确定需要在第一网络设备和第二网络设备之间建立虚连接; 所述控制器为第一网络设备生成第一流表,并将所述第一流表下发给所述第一网络设 备,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出端口和第二网络设 备的介质访问控制MAC地址;所述第一流表用于指示所述第一网络设备在收到来自所述第 一用户侧接入链路的报文时,为所述报文进行虚连接隧道封装,在封装后的报文的头部中 携带所述第二网络设备的MAC地址,并通过所述出端口发送封装后的报文; 所述控制器为第二网络设备生成第二流表,并将所述第二流表下发给所述第二网络设 备,所述第二流表中记录有所述虚连接对应的第二用户侧接入链路;所述第二流表用于指 示所述第二网络设备在收到封装后的报文时,如果封装后的报文的头部中携带的MAC地址 为第二网络设备的MAC地址,则解封装所述封装后的报文,得到所述报文,并通过所述第二 用户侧接入链路发送所述报文。
2. 如权利要求1所述的方法,其特征在于,所述方法进一步包括: 当所述第一网络设备与所述第二网络设备之间的虚连接对应多个用户侧接入链路对 时,所述控制器确定唯一对应于所述第一用户侧接入链路和第二用户侧接入链路的隧道标 签; 所述控制器在生成所述第一流表时,所述第一流表中还记录有所述隧道标签,且封装 后的报文的头部中还携带所述隧道标签; 所述控制器在生成所述第二流表时,所述第二流表中还记录有所述隧道标签,且第二 网络设备在发送报文之前,通过封装后的报文的头部中携带的隧道标签查询第二流表,以 得到对应的第二用户侧接入链路。
3. 如权利要求1所述的方法,其特征在于,所述控制器在第一网络设备和第二网络设 备之间建立虚连接之前,所述方法进一步包括: 所述控制器确定所述SDN中的所述多个网络设备之间的网络拓扑,并利用所述网络拓 扑确定每个网络设备到其它网络设备的拓扑最短路径; 针对每个网络设备,所述控制器利用所述网络设备到其它网络设备的拓扑最短路径为 所述网络设备生成第三流表,并将所述第三流表下发给所述网络设备,所述第三流表中记 录有所述其它网络设备的MAC地址、所述网络设备上到所述其它网络设备的拓扑最短路径 的出端口;所述第三流表用于指示所述网络设备在收到第一网络设备发送给第二网络设备 的封装后的报文时,如果封装后的报文的头部中携带的MAC地址为所述第三流表中记录的 其它网络设备的MAC地址,则通过对应的出端口转发封装后的报文。
4· 一种基于虚连接的报文传输方法,其特征在于,该方法应用于包括控制器和多个网 络设备的软件定义网络SDN中,所述方法包括: 当控制器确定需要在第一网络设备和第二网络设备之间建立虚连接时, 网络设备接收控制器向所述网络设备下发的流表;其中,当所述网络设备作为第一网 络设备时,所述流表为第一流表,所述第一流表中记录有所述虚连接对应的第一用户侧接 入链路、出端口和第二网络设备的介质访问控制MAC地址;当所述网络设备作为第二网络 设备时,所述流表为第二流表,所述第二流表中记录有所述虚连接对应的第二用户侧接入 链路; 所述网络设备在收到来自所述第一用户侧接入链路的报文时,通过所述第一用户侧接 入链路查询所述第一流表,并利用所述第一流表中记录的信息,为所述报文进行虚连接隧 道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述出端口 发送封装后的报文; 所述网络设备在收到封装后的报文时,获得封装后的报文的头部中携带的MAC地址; 如果所述MAC地址为本网络设备的MAC地址,则解封装所述封装后的报文,并通过所述第二 流表中记录的第二用户侧接入链路发送解封装之后的报文。
5. 如权利要求4所述的方法,其特征在于,当所述第一网络设备与所述第二网络设备 之间的虚连接对应多个用户侧接入链路对时,所述方法还包括: 当所述网络设备作为第一网络设备时,所述第一流表中还记录有隧道标签,所述隧道 标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链路的隧道标签;所述 网络设备在为所述报文进行虚连接隧道封装时,在封装后的报文的头部中还携带所述隧道 标签;或者, 当所述网络设备作为第二网络设备时,所述第二流表中还记录有隧道标签,所述隧道 标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链路的隧道标签;所述 网络设备在通过所述第二流表中记录的第二用户侧接入链路发送解封装之后的报文时,所 述网络设备通过封装后的报文的头部中携带的隧道标签查询所述第二流表,以得到对应的 第二用户侧接入链路,并通过所述第二用户侧接入链路发送解封装之后的报文。
6. 如权利要求4所述的方法,其特征在于,所述需要在第一网络设备和第二网络设备 之间建立虚连接之前,所述方法进一步包括: 所述网络设备接收所述控制器向所述网络设备下发的第三流表,所述第三流表是所述 控制器利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成并下发的, 所述第三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它网络设 备的拓扑最短路径的出端口; 所述网络设备在收到第一网络设备发送给第二网络设备的封装后的报文时,如果封装 后的报文的头部中携带的MAC地址为所述第三流表中记录的其它网络设备的MAC地址,则 通过对应的出端口转发封装后的报文。
7. 如权利要求6所述的方法,其特征在于,所述方法进一步包括: 所述网络设备在收到封装后的报文时,确定封装后的报文对应的源MAC地址在MAC表 中对应的出端口;如果所述出端口与所述网络设备上收到封装后的报文的接收端口相同, 则所述网络设备允许转发封装后的报文;如果所述出端口与所述接收端口不同,则所述网 络设备直接丢弃封装后的报文。
8· -种控制器,其特征在于,应用于包括所述控制器和多个网络设备的软件定义网络 SDN中,所述控制器具体包括: 确定模块,用于确定需要在第一网络设备和第二网络设备之间建立虚连接; 生成模块,用于为所述第一网络设备生成第一流表,并为所述第二网络设备生成第二 流表;其中,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出端口和第二 网络设备的介质访问控制MAC地址;所述第二流表中记录有所述虚连接对应的第二用户侧 接入链路; 发送模块,用于将所述第一流表下发给所述第一网络设备,所述第一流表用于指示所 述第一网络设备在收到来自所述第一用户侧接入链路的报文时,为所述报文进行虚连接燧 道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述出端口 发送封装后的报文; 以及,将所述第二流表下发给所述第二网络设备,所述第二流表用于指示所述第二网 络设备在收到封装后的报文时,如果封装后的报文的头部中携带的MAC地址为第二网络设 备的MAC地址,则解封装所述封装后的报文,得到所述报文,并通过所述第二用户侧接入链 路发送所述报文。
9. 如权利要求8所述的控制器,其特征在于, 所述确定模块,还用于当所述第一网络设备与所述第二网络设备之间的虚连接对应多 个用户侧接入链路对时,确定唯一对应于所述第一用户侧接入链路和第二用户侧接入链路 的隧道标签; 所述生成模块在生成所述第一流表时,所述第一流表中还记录有所述隧道标签,且封 装后的报文的头部中还携带所述隧道标签; 所述生成模块在生成所述第二流表时,所述第二流表中还记录有所述隧道标签,且第 二网络设备在发送报文之前,通过封装后的报文的头部中携带的隧道标签查询第二流表, 以得到对应的第二用户侧接入链路。
10. 如权利要求8所述的控制器,其特征在于, 所述生成模块,还用于确定所述SDN中的所述多个网络设备之间的网络拓扑,并利用 所述网络拓扑确定每个网络设备到其它网络设备的拓扑最短路径;针对每个网络设备,利 用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成第三流表;所述第三 流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它网络设备的拓扑 最短路径的出端口; 所述发送模块,还用于将所述第三流表下发给所述网络设备,所述第三流表用于指示 所述网络设备在收到第一网络设备发送给第二网络设备的封装后的报文时,如果封装后的 报文的头部中携带的MAC地址为所述第三流表中记录的其它网络设备的MAC地址,则通过 对应的出端口转发封装后的报文。
11. 一种网络设备,其特征在于,应用于包括控制器和多个网络设备的软件定义网络 SDN中,所述网络设备具体包括: 接收模块,用于当控制器确定需要在第一网络设备和第二网络设备之间建立虚连接 时,接收控制器向所述网络设备下发的流表;其中,当所述网络设备作为第一网络设备时, 所述流表为第一流表,所述第一流表中记录有所述虚连接对应的第一用户侧接入链路、出 端口和第二网络设备的介质访问控制MAC地址;当所述网络设备作为第二网络设备时,所 述流表为第二流表,所述第二流表中记录有所述虚连接对应的第二用户侧接入链路; 处理模块,用于在收到来自所述第一用户侧接入链路的报文时,通过所述第一用户侧 接入链路查询所述第一流表,并利用所述第一流表中记录的信息,为所述报文进行虚连接 隧道封装,在封装后的报文的头部中携带所述第二网络设备的MAC地址,并通过所述出端 口发送封装后的报文; 在收到封装后的报文时,获得封装后的报文的头部中携带的MAC地址;如果所述MAC地 址为本网络设备的MAC地址,则解封装所述封装后的报文,并通过所述第二流表中记录的 第二用户侧接入链路发送解封装之后的报文。
12. 如权利要求11所述的网络设备,其特征在于,当所述第一网络设备与所述第二网 络设备之间的虚连接对应多个用户侧接入链路对时, 当所述网络设备作为第一网络设备时,所述接收模块接收的第一流表中还记录有隧道 标签,所述隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链路的 隧道标签;所述处理模块在为所述报文进行虚连接隧道封装时,在封装后的报文的头部中 还携带所述隧道标签;或者, 当所述网络设备作为第二网络设备时,所述接收模块接收的第二流表中还记录有隧道 标签,所述隧道标签为唯一对应于所述第一用户侧接入链路和所述第二用户侧接入链路的 隧道标签;所述处理模块在通过所述第二流表中记录的第二用户侧接入链路发送解封装之 后的报文时,通过封装后的报文的头部中携带的隧道标签查询所述第二流表,以得到对应 的第二用户侧接入链路,并通过所述第二用户侧接入链路发送解封装之后的报文。
13. 如权利要求11所述的网络设备,其特征在于, 所述接收模块,还用于接收所述控制器向网络设备下发的第三流表,所述第三流表是 所述控制器利用所述网络设备到其它网络设备的拓扑最短路径为所述网络设备生成并下 发的,所述第三流表中记录有所述其它网络设备的MAC地址、所述网络设备上到所述其它 网络设备的拓扑最短路径的出端口; 所述处理模块,还用于在收到第一网络设备发送给第二网络设备的封装后的报文时, 如果封装后的报文的头部中携带的MAC地址为第三流表中记录的其它网络设备的MAC地 址,则通过对应的出端口转发封装后的报文。
14. 如权利要求13所述的网络设备,其特征在于, 所述处理模块,进一步用于在收到封装后的报文时,确定封装后的报文对应的源MC 地址在MAC表中对应的出端口;如果所述出端口与所述网络设备上收到封装后的报文的接 收端口相同,则允许转发封装后的报文;如果所述出端口与所述接收端口不同,则直接丢弃 封装后的报文。
【文档编号】H04L12/46GK104219149SQ201410425612
【公开日】2014年12月17日 申请日期:2014年8月26日 优先权日:2014年8月26日
【发明者】宋小恒 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1