一种sdn网络中多播报文的传输方法和设备的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其是涉及一种SDN网络中多播报文的传输方法和设备。
【背景技术】
[0002]SDN (Software Defined Network,软件定义网络)是一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对流量的灵活控制,为核心网络以及应用的创新提供良好的平台。在SDN网络中,包括网络设备(如交换机)和SDN控制器。SDN控制器用于根据用户的配置或者动态运行的协议生成流表(Flow Table),并将流表发送到网络设备。网络设备用于接收来自SDN控制器的流表,并根据该流表来匹配和处理报文。
[0003]在SDN控制器下发的流表中包括匹配选项和动作选项,该动作选项为出端口或者Group (组)表的标识,该Group表的标识指向了一个Group表。其中,Group表中定义了一个或者多个动作指令桶,每个动作指令桶中包含若干个动作指令,这些动作指令包括修改MAC (Media Access Control,介质访问控制)地址、修改IP地址、在报文上封装隧道头、设置指定出端口等。
[0004]通过Group表内的多个动作指令桶,可以实现对组播报文或者广播报文的复制功能,即每个动作指令桶完成一次组播报文或者广播报文的复制和头部修改,并在网络中传输组播报文或者广播报文。但是,由于组播报文或者广播报文在网络中传输时需要实现源过滤功能,而目前的动作指令桶无法实现对组播报文或者广播报文的源过滤功能,从而无法避免广播风暴冋题。
【发明内容】
[0005]本发明实施例提供一种软件定义网络SDN网络中多播报文的传输方法,应用于包括网络设备和SDN控制器的网络中,所述方法包括以下步骤:
[0006]所述网络设备接收所述SDN控制器生成并下发的组Group表;其中,所述Group表内记录了多个动作指令桶,每个动作指令桶内包括动作指令和出端口属性,所述动作指令包括设置指定出端口,且所述出端口属性为所述指定出端口对应的端口属性;
[0007]所述网络设备在收到多播报文时,如果所述多播报文匹配到所述Group表,则确定所述网络设备上收到所述多播报文的接收端口的端口属性;
[0008]所述网络设备利用所述接收〗而口的〗而口属性和出〗而口属性确定从所述指定出$而口发送所述多播报文或者禁止从所述指定出端口发送所述多播报文。
[0009]所述出端口属性包括指定出端口的端口标识,所述接收端口的端口属性包括接收口的〗而口标识;所述网络设备利用所述接收〗而口的〗而口属性和出〗而口属性确定从所述指定出端口发送所述多播报文或者禁止从所述指定出端口发送所述多播报文,具体包括:
[0010]当所述接收端口的端口标识与所述指定出端口的端口标识相同时,则所述网络设备确定禁止从所述指定出端口发送所述多播报文;或者,
[0011]当所述接收端口的端口标识与所述指定出端口的端口标识不同时,则所述网络设备确定从所述指定出端口发送所述多播报文。
[0012]所述出端口属性具体包括:所述指定出端口的端口标识和端口类型,所述接收端口的端口属性具体包括:所述接收端口的端口标识和端口类型;所述网络设备利用所述接收端口的端口属性和出端口属性确定从所述指定出端口发送所述多播报文或者禁止从所述指定出端口发送所述多播报文的过程,具体包括:
[0013]当所述接收端口的端口类型为用户侧端口时,如果所述指定出端口的端口类型为网络侧端口,则所述网络设备确定从所述指定出端口发送所述多播报文;或者,如果所述指定出端口的端口类型为用户侧端口,且所述接收端口的端口标识与所述指定出端口的端口标识不同,则所述网络设备确定从所述指定出端口发送所述多播报文;或者,如果所述指定出端口的端口类型为用户侧端口,且所述接收端口的端口标识与所述指定出端口的端口标识相同,则所述网络设备确定禁止从所述指定出端口发送所述多播报文;或者,
[0014]当所述接收端口的端口类型为网络侧端口时,如果所述指定出端口的端口类型为用户侧端口,则所述网络设备确定从所述指定出端口发送所述多播报文;或者,如果所述指定出端口的端口类型为网络侧端口,则所述网络设备确定禁止从所述指定出端口发送所述多播报文。
[0015]所述方法进一步包括:所述网络设备接收所述SDN控制器生成并下发的流表,所述流表的匹配选项为多播报文的地址信息,所述流表的动作为所述Group表的标识;其中,当所述多播报文的地址信息匹配到所述流表的匹配选项时,则所述多播报文匹配到所述Group 表。
[0016]本发明实施例提供一种软件定义网络SDN网络中多播报文的传输方法,应用于包括网络设备和SDN控制器的网络中,所述方法包括以下步骤:
[0017]所述SDN控制器生成组Group表;其中,所述Group表内记录了多个动作指令桶,每个动作指令桶内包括动作指令和出端口属性,所述动作指令包括设置指定出端口,且所述出端口属性为所述指定出端口对应的端口属性;
[0018]所述SDN控制器将所述Group表下发给网络设备,由网络设备在收到匹配到所述Group表的多播报文时,确定网络设备上收到所述多播报文的接收端口的端口属性,利用所述接收端口的端口属性和出端口属性确定从所述指定出端口发送所述多播报文或者禁止从所述指定出端口发送所述多播报文。
[0019]本发明实施例提供一种软件定义网络SDN网络中的网络设备,应用于包括所述网络设备和SDN控制器的网络中,所述网络设备具体包括:
[0020]接收模块,用于接收所述SDN控制器生成并下发的组Group表;其中,所述Group表内记录了多个动作指令桶,每个动作指令桶内包括动作指令和出端口属性,所述动作指令包括设置指定出端口,且所述出端口属性为所述指定出端口对应的端口属性;
[0021]确定模块,用于在收到多播报文时,如果所述多播报文匹配到所述Group表,则确定所述网络设备上收到所述多播报文的接收端口的端口属性;
[0022]处理模块,用于利用所述接收端口的端口属性和出端口属性确定从所述指定出端口发送所述多播报文或禁止从所述指定出端口发送所述多播报文。
[0023]所述出端口属性包括指定出端口的端口标识,所述接收端口的端口属性包括接收端口的端口标识;所述处理模块,具体用于当所述接收端口的端口标识与所述指定出端口的端口标识相同时,则确定禁止从所述指定出端口发送所述多播报文;或者,当所述接收端口的端口标识与所述指定出端口的端口标识不同时,则确定从所述指定出端口发送所述多播报文。
[0024]所述出端口属性具体包括:所述指定出端口的端口标识和端口类型,所述接收端口的端口属性具体包括:所述接收端口的端口标识和端口类型;
[0025]所述处理模块,具体用于当所述接收端口的端口类型为用户侧端口时,如果所述指定出端口的端口类型为网络侧端口,则确定从所述指定出端口发送所述多播报文;或者,如果所述指定出端口的端口类型为用户侧端口,且所述接收端口的端口标识与所述指定出端口的端口标识不同,则确定从所述指定出端口发送所述多播报文;或者,如果所述指定出端口的端口类型为用户侧端口,且所述接收端口的端口标识与所述指定出端口的端口标识相同,则确定禁止从所述指定出端口发送所述多播报文;或者,当所述接收端口的端口类型为网络侧端口时,如果所述指定出端口的端口类型为用户侧端口,则确定从所述指定出端口发送所述多播报文;或者,如果所述指定出端口的端口类型为网络侧端口,则确定禁止从所述指定出端口发送所述多播报文。
[0026]所述接收模块,还用于接收所述SDN控制器生成并下发的流表,所述流表的匹配选项为多播报文的地址信息,所述流表的动作为所述Group表的标识;其中,当所述多播报文的地址信息匹配到所述流表的匹配选项时,则所述多播报文匹配到所述Group表。
[0027]本发明实施例提出一种软件定义网络SDN网络中的SDN控制器,应用于包括网络设备和