报文转发方法、设备和系统的制作方法_4

文档序号:9757257阅读:来源:国知局
流表项,将第一报文分别发送至流表项对应的物理端口,通过该物理端口将第一报文发送至对应的客户端设备。
[0123]需要说明的是,客户端设备向服务器发送第二报文,或者服务器向客户端设备发送第一报文时,控制器侧都要做类似的处理;例如,控制器在接收到第一报文时,其不仅要根据第一报文的目的MAC地址即第二 MAC地址查找对应的物理端口,而且也要像对于第二报文的处理一样,记录该第一报文的源MAC地址即第一 MAC地址,并记录第一 MAC地址与接收第一报文的物理端口之间的对应关系,这样以备后续当有多个服务器共享同一个第一MAC地址时,控制器能够根据此时建立的对应关系,将客户端设备发送的报文转发至多个服务器。而在上述的本实施例501?516的步骤中,仅简单描述了与本实施例的向共享同一地址的多个客户端设备转发报文有关的处理。
[0124]实施例四
[0125]图6为本发明报文转发方法又一实施例的信令示意图,本实施例与实施例三的区别在于,本实施例中的控制器是在交换机接收第一报文之前,主动将流表项发送至交换机的。如图6所示,本实施例的方法如下,其中与实施例三相同的步骤将不再详述,可以参见实施例三:
[0126]601、客户端设备I向交换机发送第二报文;
[0127]602、交换机将第二报文转发至控制器,该第二报文中包含客户端设备I对应的第二MAC地址、服务器对应的第一MAC地址、以及交换机上的用于接收第二报文的物理端口 kl
等信息;
[0128]603、控制器记录第二 MAC地址与kl的对应关系;
[0129]604、控制器向交换机发送根据第一 MAC地址构造的流表项;
[0130]605、交换机根据流表项将第二报文转发给服务器;
[0131]606、客户端设备2向交换机发送第二报文;
[0132]607、交换机将第二报文转发至控制器,该第二报文中包含客户端设备2对应的第二MAC地址、服务器对应的第一MAC地址、以及交换机上的用于接收第二报文的物理端口 k2
等信息;
[0133]608、控制器记录第二 MAC地址与k2的对应关系;
[0134]609、控制器向交换机发送根据第一 MAC地址构造的流表项;
[0135]610、交换机根据流表项将第二报文转发给服务器;
[0136]611、控制器存储的对应关系,构造分别与物理端口 kl、k2对应的流表项;
[0137]其中,本实施例中,控制器可以在该611步骤构造分别与物理端口 kl、k2对应的流表项,或者,还可以在603、608获取到第二 MAC地址和物理端口的对应关系后,就构造流表项。即流表项构造的时间可以灵活设定。
[0138]可选的,控制器在根据对应关系构造流表项时,可以是从所述第二 MAC地址对应的至少两个物理端口中,选择预先设定的物理端口 ;构造与所述第二 MAC地址和所述预先设定的物理端口对应的流表项。例如,在图2中,三个客户端设备都对应着第二 MAC地址,控制器即使查询到第二 MAC地址对应三个物理端口,即kl、k2和k3,也可以选择其中的部分端口进行构造流表项,比如选择kl、k2,这样交换机就会将第一报文发送至kl、k2对应的客户端设备I和客户端设备2,而不会发送给客户端设备3。
[0139]612、控制器将流表项发送至交换机;
[0140]613、交换机安装流表项;
[0141]614、服务器发送第一报文,该第一报文的目的地址是第二 MAC地址;
[0142]615、交换机根据流表项,将第一报文分别发送至流表项对应的物理端口,通过该物理端口将第一报文发送至对应的客户端设备。
[0143]经过上述的报文转发方法,可以有效的支持多个客户端设备具有相同的MAC地址的情况,进而可以有效支持将多个设备虚拟成一个设备,有利于构建虚拟网络。
[0144]实施例五
[0145]图7为本发明交换机实施例的结构示意图,该交换机可以执行本发明任意实施例的方法,如图7所示,该交换机可以包括:接收单元71、处理单元72、以及转发单元73、存储单元74 ;其中,
[0146]存储单元74,用于存储至少两个流表项;
[0147]接收单元71,用于接收第一设备发送的报文,所述第一设备发送的报文中包含要发送至的第二设备对应的MAC地址;
[0148]处理单元72,用于根据所述接收单元71接收的所述报文中包含的所述MAC地址,获取所述存储单元74存储的至少两个流表项,每个所述流表项包括:所述MAC地址及对应的一个物理端口 ;所述至少两个流表项中的所述物理端口不同;
[0149]发送单元73,用于将所述接收单元71接收的所述第一设备发送的报文分别发送至所述处理单元72获取的至少两个流表项中的所述物理端口,以使得所述报文到达物理端口对应的至少两个所述第二设备。
[0150]进一步的,所述接收单元71,还用于通过与所述至少两个第二设备对应的至少两个物理端口,接收所述至少两个第二设备分别发送的报文;
[0151]所述处理单元72,还用于从所述接收单元71接收的所述第二设备发送的报文中,获取所述第二设备对应的MAC地址;以及通过所述发送单元73将所述MAC地址、以及所述至少两个物理端口发送至控制器,以使得所述控制器记录所述MAC地址与至少两个所述物理端口之间的对应关系;
[0152]所述发送单元73,还用于发送所述MAC地址、以及所述至少两个物理端口至所述控制器。
[0153]进一步的,所述处理单元72,还用于在所述接收单元71接收第一设备发送的报文之后,获取所述至少两个流表项之前,通过所述发送单元73将所述第一设备发送的报文中包含的所述MAC地址,发送至所述控制器;
[0154]所述接收单元71,还用于接收所述控制器发送的所述至少两个流表项,所述至少两个流表项是所述控制器根据所述对应关系构造;
[0155]所述处理单元72,还用于将所述接收单元71接收到的所述至少两个流表项安装至存储单元74 ;
[0156]所述发送单元73,还用于发送所述第一设备发送的报文中包含的所述MAC地址至所述控制器。
[0157]进一步的,所述接收单元71,还用于在所述发送单元73将所述MAC地址、以及接收所述至少两个第二设备分别发送的报文的至少两个物理端口发送至控制器之后,所述接收单元71接收第一设备发送的报文之前,接收所述控制器发送的所述至少两个流表项,所述至少两个流表项是所述控制器根据所述对应关系构造;
[0158]所述处理单元72,还用于将所述接收单元71接收到的所述至少两个流表项安装至存储单元74。
[0159]实施例六
[0160]图8为本发明控制器实施例的结构示意图,该控制器可以执行本发明任意实施例的方法,如图8所示,该控制器可以包括:信息管理单元81、流表项管理单元82和流表项发送单元83 ;其中,
[0161]信息管理单元81,用于接收交换机发送的MAC地址、以及与所述MAC地址对应的至少两个物理端口 ;并记录所述MAC地址与所述至少两个物理端口之间的对应关系;
[0162]流表项管理单元82,用于根据所述信息管理单元81记录的所述对应关系,构造至少两个流表项,每个所述流表项包括:所述MAC地址及对应的一个物理端口 ;所述至少两个流表项中的物理端口不同;
[0163]流表项发送单元83,用于将所述流表项管理单元82构造的所述至少两个流表项发送至所述交换机,以使得所述交换机根据所述流表项,将从第一设备接收的报文从所述流表项对应的物理端口发送至对应的所述至少两个第二设备。
[0164]进一步的,所述信息管理单元81,还用于在所述流表项管理单元82根据所述对应关系,构造至少两个流表项之前,接收所述交换机发送的所述从第一设备接收的报文,所述报文中包含要发送至的第二设备对应的MAC地址;
[0165]所述流表项管理单元82,具体用于根据所述MAC地址以及所述信息管理单元81记录的所述对应关系,查询得到与所述MAC地址对应的所述至少两个物理端口 ;并根据所述MAC地址和对应的至少两个所述物理端口构造所述至少两个流表项。
[0166]进一步的,所述信息管理单元81,还用于根据所述对应关系,从所述MAC地址对应的至少两个物理端口中,选择预先设定的物理端口 ;
[0167]所述流表项管理单元82,具体用于构造与所述MAC地址、以及所述信息管理单元82选择的所述预先设定的物理端口对应的流表项。
[0168]实施例七
[0169]本实施例提供一种报文转发系统,该系统包括:本发明任意实施例所述的交换机、以及本发明任意实施例所述的控制器。该报文转发系统采用Open Flow架构,其中的交换机、控制器的结构及其工作原理可以结合参见本发明的方法实施例、以及设备实施例所述,不再详述。通过该报文转发系统进行报文的转发,可以有效的支持多个客户端设备具有相同的MAC地址的情况。
[0170]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0171]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1