一种基于SDN的数据转发系统及方法与流程

文档序号:18850601发布日期:2019-10-13 00:49阅读:321来源:国知局
一种基于SDN的数据转发系统及方法与流程
本发明属于SDN
技术领域
,具体涉及一种基于SDN的数据转发系统及方法。
背景技术
:在网络中如果要将信息发送给多个主机而非所有主机,若采用广播方式实现,不仅会将信息发送给不需要的主机而浪费带宽,也不能实现跨网段发送;若采用单播方式实现,重复的IP包不仅会占用大量带宽,也会增加源主机的负载。所以,传统的单播和广播通信方式不能有效地解决单点发送、多点接收的问题。组播是指在IP网络中将数据包以尽力传送的形式发送到某个确定的节点集合(即组播组),其基本思想是:源主机(即组播源)只发送一份数据,其目的地址为组播组地址;组播组中的所有接收者都可收到同样的数据拷贝,并且只有组播组内的主机可以接收该数据,而其它主机则不能收到。IGMPSnooping是InternetGroupManagementProtocolSnooping(互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束机制,用于管理和控制组播组。当二层设备没有运行IGMPSnooping时,组播数据在二层被广播;当二层设备运行了IGMPSnooping后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。运行IGMPSnooping的二层设备通过对收到的IGMP报文进行分析,为端口和组播MAC地址建立起映射关系,并根据这样的映射关系建立和维护组播转发表并根据组播转发表进行组播数据转发(如图1为传统IGMPSnooping技术原理图)。组播转发表中的表项有组播MAC地址,源MAC,VLANID,端口位图等。目前,有些CPE(CPE:CustomerPremiseEquipment,物理上位于用户层的硬件,包括调制解调器、集线器、交换机、路由器)上是用软件表来实现IGMPSnooping功能。使用动态方法创建和删除表项,当收到IGMP加入报文时,占用CPU的内存空间即时创建一个软件表项,当收到IGMP离开报文时,则删去该表项,同时释放被占用的内存空间。使用这种动态方法创建和删除软件表项,频繁地分配和释放内存,容易导致内存碎片的产生。如公开号为CN103647720A的专利公开了一种IGMPSnooping的处理方法及装置,涉及组播
技术领域
,显著降低了IGMPSnooping的加入和离开延时,从而减少了频道的切换时间,提高用户了体验。该发明的具体实施例包括:在线卡接收到主控卡下发的使能IGMPSnooping和开启立即离开功能的配置之后,当接收到主机发送的指示消息时,就能够直接在线卡处理该指示消息。现有IGMPSnooping只是针对某一台交换设备,配置是分布式的,如果网络拓扑复杂,采用静态的方法创建和删除软件表项的配置操作非常繁琐。技术实现要素:本发明的目的是提供一种稳定性高、配置简单、网络拓扑简单、可高效率实现全网的组播转发的基于SDN的数据转发系统及方法。为达到上述目的,本发明采取如下技术方案:一种基于SDN的数据转发系统,包括SDN控制器和SDN交换机,SDN控制器根据来自SDN交换机的IGMP控制报文生成组播转发表,并根据所述组播转发表下发流表至SDN交换机;SDN交换机根据所述流表转发/丢弃IGMP数据报文。其中,IGMP控制报文,至少包括IGMP报告报文、IGMP离开报文、IGMP查询报文;组播转发表,至少包括组播地址信息,查询端口信息、成员端口信息;查询端口信息,至少包括接收所述IGMP查询报文的SDN交换机的ID信息、接收所述IGMP查询报文的端口信息;成员端口信息,至少包括接收所述IGMP报告报文的SDN交换机的ID信息、接收所述IGMP报告报文的端口信息、接收所述IGMP报告报文的端口老化时间信息。作为优选,SDN控制器根据来自成员端口的IGMP报告报文,学习所述IGMP报告报文的组播IP地址信息,生成成员端口信息并添加至组播转发表。作为优选,SDN控制器根据来自成员端口的IGMP离开报文,如果该成员端口为组播转发表中的最后一个成员端口,移除所述组播转发表;否则,将该成员端口对应的成员端口信息从组播转发表中移除。作为优选,SDN控制器根据来自查询端口的IGMP查询报文,学习所述IGMP查询报文的组播IP地址,生成查询端口信息并添加至所述组播转发表。作为优选,SDN交换机接收IGMP数据报文,如果所述IGMP数据报文与所述流表匹配,则根据所述流表转发所述IGMP数据报文。作为优选,SDN交换机接收IGMP数据报文,如果所述IGMP数据报文与所述流表不匹配,则丢弃所述IGMP数据报文。作为优选,SDN交换机接收IGMP控制报文,并转发至所述SDN控制器。本发明还公开了一种基于SDN的数据转发方法,适用于包括SDN控制器和SDN交换机的SDN系统;其按如下步骤:步骤1,SDN交换机发送IGMP控制报文至所述SDN控制器;步骤2,SDN控制器根据所述IGMP控制报文生产组播转发表;步骤3,SDN控制器根据所述组播转发表下发流表至所述SDN交换器;其中,IGMP控制报文,至少包括IGMP查询报文、IGMP报告报文、IGMP离开报文;组播转发表,至少包括组播地址信息,查询端口信息、成员端口信息;查询端口信息,至少包括接收所述IGMP查询报文的SDN交换机的ID信息、接收所述IGMP查询报文的端口信息;成员端口信息,至少包括接收所述IGMP报告报文的SDN交换机的ID信息、接收所述IGMP报告报文的端口信息、接收所述IGMP报告报文的端口老化时间信息。作为优选,步骤2中,SDN控制器接收来自交换机的IGMP控制报文,并判断控制报文类型:如果是IGMP报告报文,学习所述IGMP报告报文的组播IP地址信息,生成成员端口信息并添加至组播转发表;如果是IGMP离开报文,判断该IGMP离开报文对应的成员端口是否为组播转发表中的最后一个成员端口;如果是,则移除所述组播转发表;否则,将该成员端口对应的成员端口信息从组播转发表中移除;如果是IGMP查询报文,学习所述IGMP查询报文的组播IP地址,生成查询端口信息并添加至所述组播转发表。作为优选,步骤1之前进行步骤1-1,SDN交换机接收组播报文,判断报文类型;如果是IGMP控制报文,则转发至SDN控制器;如果是IGMP数据报文并且与所述流表匹配,则按照所述流表转发所述IGMP数据报文;如果是IGMP数据报文并且与所述流表不匹配,则丢弃所述IGMP数据报文。本发明基于SDN架构,SDN控制器根据IGMP控制报文生成全网络的组播转发表,并根据所述组播转发表下发流表,后续的组播流量根据所述流表进行转发,实现全网络的组播控制。附图说明图1是传统IGMPSnooping技术原理图;图2是本发明一种优选实施例的基于SDN的IGMPSnooping系统示意图;图3是本发明一种优选实施例的基于SDN的IGMPSnooping处理流程图;图4是本发明一种优选实施例的SDN控制器处理流程图;图5是本发明一种优选实施例的SDN交换机处理流程图;图6是本发明一种优选实施例的模拟测试环境的示意图。具体实施方式以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。实施例一如图2所示,本实施例一种基于SDN的IGMPSnooping处理系统,其包括SDN控制器和SDN交换机(S0、S1、S2、S3)。组播服务器通过SDN交换机S3发送IGMP查询(IGMPQuery)报文,对特定组播组进查询,组播客户端通过SDN交换机S1发送IGMP报告(IGMPReport)报文以提出连接请求,加入特定组播组。SDN控制器根据来自SDN交换机的IGMP控制报文生成组播转发表,并根据所述组播转发表下发流表至SDN交换机;SDN交换机根据所述流表转发/丢弃IGMP数据报文。SDN控制器应支持基于SDN的IGMPSnooping技术配置任务序列,应包括基于SDN的IGMPSnooping功能打开或者关闭。配置项含义基于SDN的igmpsnooping功能打开或关闭基于SDN的igmpsnooping功能IGMP控制报文封装在IP层上,具体包括IGMP查询(IGMPReport)报文、IGMP离开(IGMPLeave)报文、IGMP查询(IGMPQuery)报文。组播客户端的IGMPReport报文,包含组播客户端指定要加入的特定组播组的组播IP地址。IGMPReport报文被成员端口接收,并按照一定格式被封装转发至SDN控制器;SDN控制器对接收到的报文进行解析,获得并学习该IGMPReport报文中包含的组播IP地址(组播IP地址,标识特定组播组的唯一标识),获得接收该IGMPReport报文的SDN交换机S1的MAC地址和端口号,并将该MAC地址和端口号作为成员端口信息,添加至组播转发表中。组播客户端完成特定组播组的加入。本实施例中,学习组播IP地址是指:SDN控制器获得组播IP地址以后,在本地查找是否已存在该组播IP地址的组播转发表,如果不存在,则为该特定组播组建立组播转发表。组播客户端的IGMPLeave报文,包含组播客户端指定要离开的特定组播组的组播IP地址。IGMPLeave报文被成员端口接收,并按照一定格式被封装为转发至SDN控制器;SDN控制器对接收到的报文进行解析,获得该IGMPReport报文中包含的组播IP地址,获得接收该IGMPLeave报文的SDN交换机S1的MAC地址和端口号,并将该MAC地址和端口号作为成员端口信息;根据获得的组播IP地址查找该特定组播组的组播转发表,将该成员端口信息从该组播转发表删除;如果该成员端口为该组播转发表中的最后一个成员端口,则直接将该组播转发表删除。组播服务器的IGMPQuery报文,包含组播服务器指定要查询的特定组播组的组播IP地址。IGMPQuery报文被查询端口接收,并按照一定格式被封装转发至SDN控制器;SDN控制器对接收到的报文进行解析,并按照一定格式被封装转发至SDN控制器;SDN控制器对接收到的报文进行解析,获得并学习该IGMPReport报文中包含的组播IP地址,获得接收该IGMPQuery报文的SDN交换机S3的MAC地址和端口号,并将该MAC地址和端口号作为查询端口信息,添加至组播转发表中。最后,根据组播转发表下发流表。SDN交换机S0、S2,接收组播报文,并判断报文类型:如果为IGMP控制报文,则将该IGMP控制报文转发至SDN控制器;如果为IGMP数据报文,则进一步将该IGMP数据报文与SDN控制器下发的流表进行匹配:如果匹配成功,SDN交换机根据流表转发该IGMP数据报文;如果匹配失败,SDN交换机丢弃该IGMP数据报文。SDN交换机和SDN控制器需要支持扩充流表,其定义如下表所示:Match字段Counter字段instruction字段组播IP地址对匹配成功的包进行计数转发组播数据报文IGMP数据报文与流表是否匹配,即判断IGMP数据报文中的组播IP地址与流表的Match字段中的组播IP地址是否匹配。基于上述实施例的IGMPSnooping处理系统的处理方法流程如图3所示,具体步骤如下:步骤1,SDN交换机发送未匹配流表的IGMP控制报文至SDN控制器;步骤2,SDN控制器通过解析获得IGMP控制报文、SDN交换机ID(SDN交换机的MAC地址)、SDN交换机端口信息(SDN交换机的端口号);步骤3,SDN控制器生成组播转发表;步骤4,SDN控制器根据组播转发表下发流表。SDN控制器处理流程如图4。具体地,在步骤2的过程中,SDN控制器从SDN交换机接收IGMP控制报文,并判断IGMP控制报文类型,如果是IGMPReport报文,学习所述IGMPReport报文的组播IP地址信息,生成成员端口信息并添加至组播转发表。在步骤2的过程中,SDN控制器从SDN交换机接收IGMP控制报文,并判断IGMP控制报文类型,如果是IGMPLeave报文,判断该IGMPLeave报文对应的成员端口是否为组播转发表中的最后一个成员端口:如果是,则移除所述组播转发表;否则,将该成员端口对应的成员端口信息从组播转发表中移除。在步骤2的过程中,SDN控制器从SDN交换机接收IGMP控制报文,并判断IGMP控制报文类型,如果是IGMPQuery报文,学习所述IGMPQuery报文的组播IP地址,生成查询端口信息并添加至所述组播转发表。SDN交换机处理流程如图5。具体地,在步骤1之前,进行步骤1-1:SDN交换机接收组播报文,判断报文类型是IGMP控制报文还是IGMP数据报文。进行步骤1-1中,如果判断报文类型是IGMP控制报文,则将IGMP控制报文发送至SDN控制器。进行步骤1-1中,如果判断报文类型是IGMP数据报文则进一步判断IGMP数据报文是否与SDN控制器下发的流表匹配。如果IGMP数据报文不匹配流表,SDN交换机丢弃该IGMP数据报文。如果IGMP数据报文匹配流表,则SDN交换机根据流表转发组播该IGMP数据报文。对本实施例所述的技术方案,进行测试,测试步骤如下:按照图6搭建测试环境:包括组播服务器、组播客户端A、组播客户端B、SDN控制器、SDN交换机S0、SDN交换机S1、SDN交换机S2、SDN交换机S3。组播客户端A与组播客户端B、以及组播服务器组成特定组播组。组播客户端A和组播客户端B发送IGMPReport报文加入特定组播组,组播客户端A和组播客户端B发送IGMPLeave报文离开特定组播组,组播服务器发送IGMPQuery报文查询特定组播组信息和状态。SDN控制器根据接收到的IGMP控制报文维护组播转发表:SDN控制器根据接收到的IGMPReport报文和IGMPQuery建立或者更新组播转发表,根据接收到的IGMPLeave报文删除组播转发表中的相关端口信息,或者删除整个组播转发表。组播流量的IGMP数据报文由组播服务器经SDN交换机S3发出,S3交换机接收到该IGMP数据流量以后,与下发流表进行匹配成功,根据流表将IGMP数据包转发至SDN交换机S1;SDN交换机S1接收到该IGMP数据以后,与下发流表进行匹配成功,发送至组播客户端A,并且将该IGMP数据转发至SDN交换机S0;SDN交换机S0接收到该IGMP数据以后,与下发流表进行匹配成功,发送至组播客户端B。本发明所采取的技术方案基于SDN架构,其SDN控制器根据IGMP控制报文生成全网络的组播转发表,并根据所述组播转发表下发流表,后续的组播流量根据所述流表进行转发,实现全网络的组播控制。本发明基于SDN的数据转发系统及方法具有稳定性高、配置简单、网络拓扑简单、可高效率实现全网的组播转发等诸多特点。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
技术领域
的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1