CN107566237B - 一种数据报文处理方法及装置 - Google Patents
一种数据报文处理方法及装置 Download PDFInfo
- Publication number
- CN107566237B CN107566237B CN201610514793.8A CN201610514793A CN107566237B CN 107566237 B CN107566237 B CN 107566237B CN 201610514793 A CN201610514793 A CN 201610514793A CN 107566237 B CN107566237 B CN 107566237B
- Authority
- CN
- China
- Prior art keywords
- message
- port
- domain
- vlan
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000004806 packaging method and process Methods 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 38
- 230000008569 process Effects 0.000 abstract description 28
- 238000005538 encapsulation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000006424 Flood reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种数据报文处理方法及装置,通过预先在端口下配置SDN域VLAN标识和传统域VLAN标识,当接收到端口传输的报文之后,根据报文中携带的VLAN信息与对应端口下配置的VLAN标识确定针对该报文的处理方式。这种方式使得网络设备上的同一个端口可以同时处理SDN域的业务和传统域的业务,不需要再分别为SDN域的业务和传统域的业务分别设置对应的端口,从而节约了网络设备的端口资源,实现了资源的优化配置。
Description
技术领域
本发明涉及通信设备领域,尤其涉及一种数据报文处理方法及装置。
背景技术
传统IT(Internet Technology,互联网技术)架构中的网络,根据业务需求部署上线以后,如果业务需求发生变动,重新修改相应网络设备(路由器、交换机、防火墙)上的配置是一件非常繁琐的事情。在互联网/移动互联网瞬息万变的业务环境下,网络的高稳定与高性能并不足以满足业务需求,反而设备配置的灵活性和敏捷性更为关键。
因此,SDN(Software Defined Network,软件定义网络)应运而生,SDN是一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。SDN所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。同时,在SDN的架构下,网络设备的控制权是完全开放的,用户可以根据自己的期望自定义任何想实现的网络路由和传输规则策略,这使得网络变得更加灵活和智能。
虽然SDN网络架构优势明显,而且网络未来的发展趋势也是更偏向SDN,但总体来说,目前传统域业务的应用还比较广泛,SDN尚未完全替代传统IT网络架构。所以,在从传统IT网络架构向SDN网络架构的过渡的期间,一台网络设备在具备SDN转发能力的同时,还要能够对传统域的业务进行处理。从而在一台网络设备上实现传统业务平面和SDN业务平面的双模式转发。
现有技术中,为实现双模式转发的效果而采取的做法是:在SDN交换机上事先做好规划,规划好哪些端口是用于处理SDN域业务的SDN端口,哪些端口是用于处理传统域业务的传统端口。一旦规划完成,一个端口所能承载的业务就已经确定了:SDN端口只能处理SDN域业务,当SDN端口接收到未知单播的报文之后,就会将该报文传输给CPU,由CPU对报文进行封装处理之后再发送给控制器,由控制器确定该报文的转发处理规则。而传统端口只能涉及传统域业务,如果SDN交换机的传统端口接收到一个数据报文,则会将该数据报文进行洪泛处理。
虽然上述方案能够使一个交换机能够同时处理SDN域的业务和传统域的业务,但是这种做法只是将SDN交换机与传统交换机进行了简单的物理融合,SDN域业务和传统域业务还是通过端口进行了隔离,这种做法不利于资源的优化配置,网络应用的灵活性不够。
发明内容
本发明实施例提供的一种数据报文处理方法及装置,主要解决的技术问题是:解决现有技术中在实现网络设备双模式业务处理时,只是简单地将SDN域的网络设备与传统网络设备的端口进行物理上的融合,不能对网络设备的端口进行复用,使得资源利用率低,网络灵活性低。
为解决上述技术问题,本发明实施例提供一种报文处理方法,包括:
接收网络设备的端口传输的报文,所述端口下同时配置有SDN域VLAN标识和传统域VLAN标识,所述报文中携带有VLAN信息;
根据所述报文中携带的VLAN信息以及所述端口下配置的VLAN标识确定针对所述报文的处理方式,并对所述报文进行相应的处理。
本发明实施例还提供一种报文处理装置,包括:
接收模块,用于接收网络设备的端口传输的报文,所述端口下同时配置有SDN域VLAN标识和传统域VLAN标识,所述报文中携带有VLAN信息;
处理模块,用于根据所述报文中携带的VLAN信息以及所述端口下配置的VLAN标识确定针对所述报文的处理方式,并对所述报文进行相应的处理。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行前述的任一项的报文处理方法。
本发明的有益效果是:
根据本发明实施例提供的报文处理方法、装置以及计算机存储介质,通过预先在端口下配置SDN域VLAN标识和传统域VLAN标识,当接收到端口传输的报文之后,根据报文中携带的VLAN信息与对应端口下配置的VLAN标识确定针对该报文的处理方式。这种方式使得网络设备上的同一个端口可以同时处理SDN域的业务和传统域的业务,不需要再分别为SDN域的业务和传统域的业务分别设置对应的端口,从而节约了网络设备的端口资源,实现了资源的优化配置。
附图说明
图1为本发明实施例一提供的报文处理方法的一种流程图;
图2为本发明实施例一中对SDN域未知单播的数据报文的处理流程图;
图3为本发明实施例一中对SDN域未知单播的数据报文的处理流程图;
图4为本发明实施例二提供的报文处理装置的一种结构示意图;
图5为本发明实施例三提供的一种交换机的结构示意图;
图6为本发明实施例三提供的交换机处理报文的一种流程图;
图7为本发明实施例三提供的报文处理方法应用场景图。
具体实施方式
下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。
实施例一:
由于现有技术中在实现双模式转发的效果的时候只能是在规划阶段就将网络设备各端口所承载的业务进行固化,使得网络设备的端口作用僵化,不能为用户提供灵活的业务服务,更重要的是,处理SDN域业务的端口和处理传统域业务的端口分开,这种做法对端口资源的浪费极大,不利于资源的优化配置。基于此,本实施例提供一种报文处理方法,请参见图1:
S102、接收网络设备端口传输的报文。
本实施例中的网络设备可以是交换机或者是路由器。网络设备的端口下可以同时配置SDN域VLAN标识和传统域VLAN标识,例如,给网络设备一个端口配置的SDN域VLAN标识为VLAN3~VLAN9,传统域的VLAN标识为VLAN13~VLAN19。这标志着该端口可以处理VLAN3~VLAN9的SDN域业务,同时还可以处理VLAN13~VLAN19的传统域业务。可以理解的是,在同一个端口下,SDN域的VLAN标识和传统域的VLAN标识应当不同。
在报文中至少应当包含有该报文的VLAN信息,VLAN信息可以用于根据接收该报文的端口下所配置的VLAN标识来确定对该报文的处理方式。
S104、根据报文中携带的VLAN信息以及传输报文的端口下配置的VLAN标识确定针对该报文的处理方式,并对报文进行相应的处理。
在网络设备中,硬件转发表中存储了一些目的地信息对应的报文转发规则,这里的目的地信息包括报文的目的IP或者目的MAC地址。以目的地信息为IP地址为例,对于目的地信息为“125.120.218.106”的报文,在硬件转发表中存储的转发规则是从port4传输出去;以目的地信息为MAC地址为例,对于目的MAC为“00-01-6C-06-A6-29”的报文,则从网络设备的port7输出。所以,网络设备的端口接收到一个报文后,可以通过将报文中携带的报文目的地信息到硬件转发表中进行查询,如果发现硬件转发表中已经记录了对应于该报文目的地信息的转发规则,那么网络设备可以直接将该报文按照硬件转发表中的转发规则传输出去。而对于那些无法从硬件转发表中查询到转发规则的报文,即硬件转发表中没有记录转发规则的报文,我们称之为“未知单播”。
在交换机工作原理中,当交换机启动时,其硬件转发表是空的,所以如果此时主机A通过该交换机发送一个报文给主机B,那么当交换机接收到此报文时,并不能确定主机B在哪个端口上(因为硬件转发表中没有主机B的MAC或者IP地址),所以这个报文就是未知单播报文。
对于未知单播报文,传统域的处理方式是对报文进行洪泛(Flooding)处理。泛洪是交换机和网桥使用的一种数据流传递技术,将某个接口收到的数据流从除该接口之外的所有接口发送出去。
根据该报文中携带的VLAN信息获取到该报文的虚拟转发实例,虚拟转发实例与报文中的VLAN信息对应,同时,它也与配置有与该VLAN信息对应的VLAN标识的端口对应,虚拟转发实例与端口之间的对应关系可以是一对一,但更多的情况是一对多。例如,一个报文中携带的VLAN信息为VLAN3,根据VLAN3可以获取到一个虚拟转发实例A,该虚拟转发实例A与网络设备中所有配置了VLAN3这个VLAN标识的端口对应。因此,可以通过虚拟转发实例作为媒介,获取到网络设备中所有具有VLAN3标识的端口的信息。例如,在网络设备中,端口1、端口7、端口8都具备VLAN3这个VLAN标识,所以,端口1、端口7、端口8都是与报文中VLAN信息相关联的端口,这些端口也都可以作为报文的洪泛出口。
而SDN域对未知单播报文的处理方式则与传统域有些不同,SDN端口通常会利用SDN域的协议对该报文进行封装,然后传输给控制器,由控制器根据一系列的算法进行处理计算后确定针对该报文的转发处理规则。然后在接收到控制器下发的转发处理规则之后,可以根据该转发处理规则对报文进行对应的转发处理。
由于现有技术中,网络设备的每个端口仅处理一类业务,要么是SDN域的业务,要么是传统域的业务,所以每一个端口也只会接收到自己可以处理的那类业务的相关报文。而本实施例中因为给一个端口同时配置了SDN域VLAN标识和传统域VLAN标识,所以一个端口可以承载SDN域和传统域两类业务,正是因为如此,所以本实施例中网络设备的端口接收到的报文可能不再单纯是SDN域的报文或者单纯是传统域的报文了。但针对这两类报文的处理方式有很大的不同。因此,在本实施例中,在接收到网络设备的端口传输的报文之后,需要确定针对该报文的处理方式,应当理解的是,确定针对报文的处理方式实际上就是对报文的类型进行区分。
首先,假定给网络设备一个端口配置了VLAN3~VLAN9的SDN域VLAN,同时还配置了VLAN13~VLAN19的传统域VLAN;在此基础上,如果该端口接收到的报文中携带的VLAN信息为VLAN1,则该网络设备无法对这个报文进行处理,因此,可以直接将该报文丢弃。
若接收到的报文中间携带的VLAN信息为VLAN7,则进一步判断该报文是否是未知单播的数据报文。判断一个报文是否是未知单播的数据报文主要可以分为两个过程:
一、判断报文是否是数据报文。这个判断过程可以根据报文中包含的协议标识和访问控制列表进行。任何一个报文中都携带有协议标识,如果一个报文是数据报文,则其携带的可能就是比较普通的TCP协议标识或者UDP协议标识,而如果其为协议报文,那么其携带的协议标识就不再是这些普通的TCP协议标识或UDP协议标识了。在访问控制列表中保存了比较特殊的那一类协议标识,当获取到报文中携带的协议标识之后,可以在访问控制列表中进行查找,确定报文中携带的协议标识在访问控制列表中是否存在。如果访问控制列表中存在该报文携带的协议标识,则说明该报文为协议报文,对于协议报文的处理方式比较简单,可以控制直接将其发送给网络设备的CPU,由CPU将其发送至网络设备中的协议栈模块进行处理;如果访问控制列表中不存在对应的协议标识,则说明该报文为数据报文。
二、判断该报文是否是未知单播的报文。在前面已经介绍过硬件转发表了,在硬件转发表当中以目的地信息作为单位,存储了发送到这些目的地的报文的转发规则。所以当接收到一个报文的时候,还可以根据报文中携带的目的地信息,在硬件转发表中查找报文中携带的目的地信息是否存在,如果存在,则说明该报文不是未知单播报文,可以直接由网络设备进行普通的转发处理;如果在硬件转发表中不存在该报文携带的目的地信息,那么就说明网络设备当前还不知道应当将该报文转发到哪一个具体的端口上,因此,该报文属于未知单播报文。
可以理解的是,在本实施例中,确定报文为数据报文和确定报文为未知单播报文的过程没有严格的时序限制。可以依次确定,也可以同时确定。
当确定报文属于未知单播的数据报文之后,可以根据报文中的VLAN信息与传输该报文的端口下的VLAN标识确定该报文属于SDN域还是传统域。确定的方式可以是将该报文中的VLAN信息与端口下的SDN域的VLAN标识进行匹配,如果匹配成功则说明该报文属于SDN域,如果匹配不成功,则说明该报文属于传统域。同样的,也可以将该报文的VLAN信息与端口下的传统域VLAN标识进行匹配,如果匹配成功则说明该报文属于传统域,否则,该报文属于SDN域。
对与那些属于SDN域的报文,可以按照SDN域对未知单播的数据报文的处理方式进行处理。SDN域对未知单播的数据报文的处理流程可以参见图2:
S202、利用SDN域的协议对报文进行封装处理后传输给控制器。
一般,在确定报文属于SDN域的未知单播数据报文之后,会将该报文上送至网络设备中的协议栈模块,由协议栈模块中的SDN协议栈根据SDN域协议对报文进行封装处理,加上上层协议标记之后传输给控制器。SDN协议主要包括OpenFlow等。
S204、接收控制器发送的针对报文的处理表。
控制器在接收到经封装处理的报文之后,会根据一系列的算法或者处理规则确定出该报文应当如何发送至其目的地。这些转发规则会被包含在处理表中下发至网络设备。
S206、根据处理表对报文进行转发并将处理表中包含的信息更新至硬件转发表。
获取到处理表之后,可以根据处理表中包含的转发规则将报文发送出,例如在处理表中指示该目的地信息为A的报文应当网络设备的3号端口发送出去,则根据指示将报文传输至3号端口上。对于SDN域内所有的目的地信息为A的数据报文,以后都可以根据该转发规则从3号端口进行外发,因此,为了便于后续网络设备对后续报文的处理,可以将该处理表更新至硬件转发表中,当后续过程中再次出现目的地信息同样为A的报文后,可以根据该目的地信息A对应的转发规则对报文进行处理。
对与那些属于传统域的报文,可以按照传统域对未知单播的数据报文的处理方式进行处理。传统域对未知单播的数据报文的处理流程可以参见图3:
S302、根据报文包含的VLAN信息获取对应的虚拟转发实例。
在网络设备,例如,交换机当中,可以交换芯片可以从转发控制模块获取虚拟转发实例,如果在一个交换机当中,各个端口的VLAN标识不同,那么在获取虚拟转发实例的时候,可以仅根据报文中包含的VLAN信息进行。如果一个交换机的两个端口分别是SDN端口和传统端口,而这两个端口下配置有相同的VLAN标识,那么在获取虚拟转发实例的时候,可以根据报文中的VLAN信息和接收该报文的端口的标识信息来获取虚拟转发实例,便于转发控制模块根据端口的标识信息确定该报文到底是由SDN端口接收的,还是由传统端口接收的,从而根据实际情况为该报文分配虚拟转发实例。
S304、根据虚拟转发实例确定作为该报文洪泛出口的端口。
虚拟转发实例与报文中的VLAN信息对应,同时,它也与配置有与该VLAN信息对应的VLAN标识的端口对应,虚拟转发实例与端口之间的对应关系可以是一对一,但更多的情况是一对多。
在SDN域对未知单播的数据报文的处理方式中,会利用SDN域的协议对报文进行封装处理,而封装处理的这个过程一般都会由网络设备的CPU来执行,因此,当确定报文属于SDN域对未知单播的数据报文时,也可以到转发控制模块上去获取对应的虚拟转发实例,只是这个虚拟转发实例中会指示报文的洪泛出口为CPU。
S306、将报文洪泛到确定出各端口上。
在上面的介绍当中,本发明给出了一种给SDN端口和传统端口配置相同VLAN标识的方案,在该方案当中,不同的端口下配置相同的VLAN,可以有效节约VLAN资源,提高资源利用率。
在网络设备中,底层的交换芯片会在接收到的报文之后该报文的MAC信息或者是路由信息,然后将学习消息上报至上层软件,由上层软件进行处理,但是对于SDN域而言,不需要这种学习消息是不必要的,因此,可以直接丢弃。所以,在本实施例中,当接收到学习消息之后,可以先判断该学习消息是否是SDN域的,如果是,则直接丢弃,如果否,则将学习消息交给上层软件进行处理。
本实施例提供的报文处理方法,在一个端口下可以同时配置SDN域VLAN标识和传统域VLAN标识,在接收到端口传输的报文时,根据报文中携带的VLAN信息与对应的端口下配置的VLAN标识确定针对该报文的处理方式。这种方式使得网络设备上的同一个端口可以同时处理SDN域的业务和传统域的业务,不需要再分别为SDN域的业务和传统域的业务分别设置对应的端口,从而节约了网络设备的端口资源,实现了资源的优化配置,有利于网络应用灵活性的提高。
实施例二:
本实施例提供一种报文处理装置,请参考图4,图4示出的报文处理装置40包括接收模块402和处理模块404。
接收模块402用于接收网络设备端口传输的报文。
本实施例中的网络设备可以是交换机或者是路由器。网络设备的端口下可以同时配置SDN域VLAN标识和传统域VLAN标识,例如,给网络设备一个端口配置的SDN域VLAN标识为VLAN3~VLAN9,传统域的VLAN标识为VLAN13~VLAN19。这标志着该端口可以处理VLAN3~VLAN9的SDN域业务,同时还可以处理VLAN13~VLAN19的传统域业务。可以理解的是,在同一个端口下,SDN域的VLAN标识和传统域的VLAN标识应当不同。
在报文中至少应当包含有该报文的VLAN信息,VLAN信息可以用于根据接收该报文的端口下所配置的VLAN标识来确定对该报文的处理方式。
处理模块404根据报文中携带的VLAN信息以及传输报文的端口下配置的VLAN标识确定针对该报文的处理方式,并对报文进行相应的处理。
在网络设备中,硬件转发表中存储了一些目的地信息对应的报文转发规则,这里的目的地信息包括报文的目的IP或者目的MAC地址。以目的地信息为IP地址为例,对于目的地信息为“125.120.218.106”的报文,在硬件转发表中存储的转发规则是从port4传输出去;以目的地信息为MAC地址为例,对于目的MAC为“00-01-6C-06-A6-29”的报文,则从网络设备的port7输出。所以,网络设备的端口接收到一个报文后,可以通过将报文中携带的报文目的地信息到硬件转发表中进行查询,如果发现硬件转发表中已经记录了对应于该报文目的地信息的转发规则,那么网络设备可以直接将该报文按照硬件转发表中的转发规则传输出去。而对于那些无法从硬件转发表中查询到转发规则的报文,即硬件转发表中没有记录转发规则的报文,我们称之为“未知单播”。
在交换机工作原理中,当交换机启动时,其硬件转发表是空的,所以如果此时主机A通过该交换机发送一个报文给主机B,那么当交换机接收到此报文时,并不能确定主机B在哪个端口上(因为硬件转发表中没有主机B的MAC或者IP地址),所以这个报文就是未知单播报文。
对于未知单播报文,传统域的处理方式是对报文进行洪泛(Flooding)处理。泛洪是交换机和网桥使用的一种数据流传递技术,将某个接口收到的数据流从除该接口之外的所有接口发送出去。
根据该报文中携带的VLAN信息获取到该报文的虚拟转发实例,虚拟转发实例与报文中的VLAN信息对应,同时,它也与配置有与该VLAN信息对应的VLAN标识的端口对应,虚拟转发实例与端口之间的对应关系可以是一对一,但更多的情况是一对多。例如,一个报文中携带的VLAN信息为VLAN3,根据VLAN3可以获取到一个虚拟转发实例A,该虚拟转发实例A与网络设备中所有配置了VLAN3这个VLAN标识的端口对应。因此,可以通过虚拟转发实例作为媒介,获取到网络设备中所有具有VLAN3标识的端口的信息。例如,在网络设备中,端口1、端口7、端口8都具备VLAN3这个VLAN标识,所以,端口1、端口7、端口8都是与报文中VLAN信息相关联的端口,这些端口也都可以作为报文的洪泛出口。
而SDN域对未知单播报文的处理方式则与传统域有些不同,SDN端口通常会利用SDN域的协议对该报文进行封装,然后传输给控制器,由控制器根据一系列的算法进行处理计算后确定针对该报文的转发处理规则。然后在接收到控制器下发的转发处理规则之后,可以根据该转发处理规则对报文进行对应的转发处理。
由于现有技术中,网络设备的每个端口仅处理一类业务,要么是SDN域的业务,要么是传统域的业务,所以每一个端口也只会接收到自己可以处理的那类业务的相关报文。而本实施例中因为给一个端口同时配置了SDN域VLAN标识和传统域VLAN标识,所以一个端口可以承载SDN域和传统域两类业务,正是因为如此,所以本实施例中网络设备的端口接收到的报文可能不再单纯是SDN域的报文或者单纯是传统域的报文了。但针对这两类报文的处理方式有很大的不同。因此,在本实施例中,在接收到网络设备的端口传输的报文之后,需要确定针对该报文的处理方式,应当理解的是,确定针对报文的处理方式实际上就是对报文的类型进行区分。
首先,假定给网络设备一个端口配置了VLAN3~VLAN9的SDN域VLAN,同时还配置了VLAN13~VLAN19的传统域VLAN;在此基础上,如果该端口接收到的报文中携带的VLAN信息为VLAN1,则该网络设备无法对这个报文进行处理,因此,可以直接将该报文丢弃。
若接收到的报文中间携带的VLAN信息为VLAN7,则进一步判断该报文是否是未知单播的数据报文。判断一个报文是否是未知单播的数据报文主要可以分为两个过程:
一、判断报文是否是数据报文。这个判断过程可以根据报文中包含的协议标识和访问控制列表进行。任何一个报文中都携带有协议标识,如果一个报文是数据报文,则其携带的可能就是比较普通的TCP协议标识或者UDP协议标识,而如果其为协议报文,那么其携带的协议标识就不再是这些普通的TCP协议标识或UDP协议标识了。在访问控制列表中保存了比较特殊的那一类协议标识,当获取到报文中携带的协议标识之后,可以在访问控制列表中进行查找,确定报文中携带的协议标识在访问控制列表中是否存在。如果访问控制列表中存在该报文携带的协议标识,则说明该报文为协议报文,对于协议报文的处理方式比较简单,可以控制直接将其发送给网络设备的CPU,由CPU将其发送至网络设备中的协议栈模块进行处理;如果访问控制列表中不存在对应的协议标识,则说明该报文为数据报文。
二、判断该报文是否是未知单播的报文。在前面已经介绍过硬件转发表了,在硬件转发表当中以目的地信息作为单位,存储了发送到这些目的地的报文的转发规则。所以当接收到一个报文的时候,还可以根据报文中携带的目的地信息,在硬件转发表中查找报文中携带的目的地信息是否存在,如果存在,则说明该报文不是未知单播报文,可以直接由网络设备进行普通的转发处理;如果在硬件转发表中不存在该报文携带的目的地信息,那么就说明网络设备当前还不知道应当将该报文转发到哪一个具体的端口上,因此,该报文属于未知单播报文。
可以理解的是,在本实施例中,确定报文为数据报文和确定报文为未知单播报文的过程没有严格的时序限制。可以依次确定,也可以同时确定。
当确定报文属于未知单播的数据报文之后,可以根据报文中的VLAN信息与传输该报文的端口下的VLAN标识确定该报文属于SDN域还是传统域。确定的方式可以是将该报文中的VLAN信息与端口下的SDN域的VLAN标识进行匹配,如果匹配成功则说明该报文属于SDN域,如果匹配不成功,则说明该报文属于传统域。同样的,也可以将该报文的VLAN信息与端口下的传统域VLAN标识进行匹配,如果匹配成功则说明该报文属于传统域,否则,该报文属于SDN域。
对与那些属于SDN域的报文,处理模块404可以按照SDN域对未知单播的数据报文的处理方式进行处理:
处理模块404利用SDN域的协议对报文进行封装处理后传输给控制器。
一般,在确定报文属于SDN域的未知单播数据报文之后,处理模块404会将该报文上送至网络设备中的协议栈模块,由协议栈模块中的SDN协议栈根据SDN域协议对报文进行封装处理,加上上层协议标记之后传输给控制器。SDN协议主要包括OpenFlow等。
控制器在接收到经封装处理的报文之后,会根据一系列的算法或者处理规则确定出该报文应当如何发送至其目的地。这些转发规则会被包含在处理表中下发至网络设备。处理模块404接收控制器发送的针对报文的处理表。
处理模块404根据处理表对报文进行转发并将处理表中包含的信息更新至硬件转发表。
处理模块404获取到处理表之后,可以根据处理表中包含的转发规则将报文发送出,例如在处理表中指示该目的地信息为A的报文应当网络设备的3号端口发送出去,则根据指示将报文传输至3号端口上。对于SDN域内所有的目的地信息为A的数据报文,以后都可以根据该转发规则从3号端口进行外发,因此,为了便于后续网络设备对后续报文的处理,处理模块404可以将该处理表更新至硬件转发表中,当后续过程中再次出现目的地信息同样为A的报文后,可以根据该目的地信息A对应的转发规则对报文进行处理。
对与那些属于传统域的报文,处理模块404可以按照传统域对未知单播的数据报文的处理方式进行处理:
处理模块404根据报文包含的VLAN信息获取对应的虚拟转发实例。
在网络设备,例如,交换机当中,可以交换芯片可以从转发控制模块获取虚拟转发实例,如果在一个交换机当中,各个端口的VLAN标识不同,那么在获取虚拟转发实例的时候,可以仅根据报文中包含的VLAN信息进行。如果一个交换机的两个端口分别是SDN端口和传统端口,而这两个端口下配置有相同的VLAN标识,那么在获取虚拟转发实例的时候,可以根据报文中的VLAN信息和接收该报文的端口的标识信息来获取虚拟转发实例,便于转发控制模块根据端口的标识信息确定该报文到底是由SDN端口接收的,还是由传统端口接收的,从而根据实际情况为该报文分配虚拟转发实例。
虚拟转发实例与报文中的VLAN信息对应,同时,它也与配置有与该VLAN信息对应的VLAN标识的端口对应,虚拟转发实例与端口之间的对应关系可以是一对一,但更多的情况是一对多。处理模块404根据虚拟转发实例确定作为该报文洪泛出口的端口。
在SDN域对未知单播的数据报文的处理方式中,会利用SDN域的协议对报文进行封装处理,而封装处理的这个过程一般都会由网络设备的CPU来执行,因此,当确定报文属于SDN域对未知单播的数据报文时,也可以到转发控制模块上去获取对应的虚拟转发实例,只是这个虚拟转发实例中会指示报文的洪泛出口为CPU。
最后,处理模块404将报文洪泛到确定出各端口上。
在上面的介绍当中,本发明给出了一种给SDN端口和传统端口配置相同VLAN标识的方案,在该方案当中,不同的端口下配置相同的VLAN,可以有效节约VLAN资源,提高资源利用率。
在网络设备中,底层的交换芯片会在接收到的报文之后该报文的MAC信息或者是路由信息,然后将学习消息上报至上层软件,由上层软件进行处理,但是对于SDN域而言,不需要这种学习消息是不必要的,因此,可以直接丢弃。所以,在本实施例中,当接收到学习消息之后,处理模块404可以先判断该学习消息是否是SDN域的,如果是,则直接丢弃,如果否,则将学习消息交给上层软件进行处理。
本实施例中提供的报文处理装置40可以部署在交换机或者路由器上,其中接收模块402可以由交换机或者路由器中的交换芯片来实现,而处理模块404则可以由交换机或者路由器中的交换芯片与CPU共同实现。在本实施例中,控制器可以是一种物理设备,或者是运行在通用服务器上的应用程序。
本实施例提供的报文处理装置40,在一个端口下可以同时配置SDN域VLAN标识和传统域VLAN标识,在接收到端口传输的报文时,根据报文中携带的VLAN信息与对应的端口下配置的VLAN标识确定针对该报文的处理方式。这种方式使得网络设备上的同一个端口可以同时处理SDN域的业务和传统域的业务,不需要再分别为SDN域的业务和传统域的业务分别设置对应的端口,从而节约了网络设备的端口资源,实现了资源的优化配置,有利于网络应用灵活性的提高。
实施例三:
下面结合具体的示例对实施例一中的报文处理方法和实施例二提供的报文处理装置进行说明,本实施例中的网络设备以交换机为例,但本领域技术人员应当明白的是,网络设备也可以是路由器,图5示出的是本实施例中交换机的一种结构示意图:
交换机5中包括交换芯片51和CPU52,交换芯片51通过端口接收外界设备传输的报文。交换机提供配置接口,用户可以从配置接口下发对该交换机5的配置,例如,用户可以在交换芯片5的一个端口511下既配置SDN域的VLAN标识,也同时配置传统域的VLAN标识。
下面结合图6对本实施例中交换机对报文的处理进行说明:
S601、端口511接收报文。
端口511接收到报文之后,交换芯片51可以提取报文中包含的VLAN信息。
S602、交换芯片51判断提取出的VLAN信息在端口511的配置中是否存在。
若存在,则执行S603,若不存在,则执行S604。
S603、交换芯片51判断报文是否是数据报文。
如果端口511下存在与报文中携带的VLAN信息对应的VLAN标识,则可以根据报文中包含的协议标识和访问控制列表判断报文是否是数据报文。若是,则执行S605,否则,执行S606。
S604、交换芯片51将报文丢弃。
如果报文中携带的VLAN信息在端口511下没有配置,则交换机无法对这个报文进行处理,因此,可以直接将该报文丢弃。
S605、交换芯片51判断该报文是否是未知单播的报文。
如果报文是数据报文,则需要进一步根据硬件转发表和报文中携带的目的地信息判断该数据报文是否是未知单播的报文,若是,则执行S607,否则,执行S608。
S606、交换芯片51将该报文上送至CPU。
如果报文是不是数据报文,那就说明该报文为协议报文,对于协议报文的处理方式比较简单,可以控制直接将其发送给网络设备的CPU。
S607、交换芯片51根据报文中的VLAN信息与传输该报文的端口下的VLAN标识判断该报文是否属于SDN域。
进行判断的时候,可以是将该报文中的VLAN信息与端口下的SDN域的VLAN标识进行匹配,如果匹配成功则说明该报文属于SDN域,执行步骤如果匹配不成功,则说明该报文属于传统域。
S608、交换芯片51根据硬件转发表对报文进行转发。
如果交换芯片51确定硬件转发表中已经记录了该报文目的地信息的转发规则,则可以直接根据对应的转发规则进行转发处理。
S609、交换芯片对报文进行洪泛。
如果判断结果表明报文属于SDN域,则可以将该报文上报给CPU。上报的时候,如果报文属于二层业务,则根据ACL(Access Control List,访问控制列表ACL)进行,如果是三层业务,则通过路由进行。如果判断结果为否,则说明该报文属于传统域,可以直接根据传统域对未知单播的数据报文的处理方式对报文进行洪泛。
S610、CPU判断根据报文中的VLAN信息与传输该报文的端口下的VLAN标识判断该报文是否属于SDN域。
由于上报到CPU的报文并非都是SDN域的未知单播的数据报文,也可能是传统域的协议报文,因此,CPU在进行封装处理之前需要先进行判断,当判断结果为是,则执行S611。
S611、CPU利用SDN域的协议对报文进行封装。
常见的封装协议可以采用OpenFlow协议进行。
S612、CPU将报文发送给控制器6。
控制器6接收到封装的报文后,会根据一系列的算法或者处理规则确定出该报文应当如何发送至其目的地。这些转发规则会被包含在处理表中下发至CPU中转发控制模块。
S613、根据控制器下发的转发规则对报文进行转发,同时更新硬件转发表。
图7为本实施例提供的报文处理方法的一种运用场景:服务器71和服务器72分别单网卡接入网络设备73和网络设备74,与网络设备73和74的连接口为SDN口,服务器71与72的业务流量的转发控制走SDN控制平面,与此同时服务器71与72访问存储网络也通过SDN实例口接入,但这部分流量走传统控制平面不受SDN控制器控制。由于服务器71和72通过单网卡接入,所以网络设备73和网络设备74与服务器71及72的连接口既要走SDN控制面也要走传统平面控制面。
本实施例提供的报文处理方法和装置,能做到同一个端口既受传统的协议层控制,又能够受控制器的控制,节省端口资源,同时大大增加SDN交换机在一些场景中应用的灵活性。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (4)
1.一种报文处理方法,包括:
接收网络设备的端口传输的报文,所述端口下同时配置有SDN域VLAN标识和传统域VLAN标识,所述报文中携带有VLAN信息;
确定所述报文是未知单播的数据报文;根据所述报文中的VLAN信息与所述端口下的VLAN标识确定所述报文属于SDN域或传统域;对所述报文按照SDN域或传统域未知单播的数据报文的处理方式进行处理;
其中,所述对所述报文按照传统域未知单播的数据报文的处理方式进行处理包括:
当传统域的端口和SDN域的端口具有相同的VLAN标识时,根据所述报文包含的VLAN信息和接收所述报文的端口的标识信息获取对应的虚拟转发实例,所述端口标识信息用于表征接收所述报文的端口为传统域端口或SDN域端口;所述虚拟转发实例用于根据所述VLAN信息确定所述报文的洪泛出口,所述洪泛出口为配置有与所述VLAN信息对应的VLAN标识的端口;将所述报文洪泛到各所述端口。
2.如权利要求1所述的报文处理方法,其特征在于,所述对所述报文按照SDN域未知单播的数据报文的处理方式进行处理包括:
利用SDN域的协议对所述报文进行封装处理后传输给控制器;
接收所述控制器发送的针对所述报文的处理表,所述处理表中包括所述报文的目的地信息以及与所述目的地信息对应的报文转发规则;
根据所述处理表对所述报文进行转发并将所述处理表中包含的信息更新至硬件转发表,当报文中携带的目的地信息在所述硬件转发表中存在时,确定所述报文不属于未知单播报文。
3.如权利要求1所述的报文处理方法,其特征在于,所述确定所述报文是未知单播的数据报文包括:
提取所述报文包含的协议标识和目的地信息,所述目的地信息包括MAC地址与路由中的任意一种;
在访问控制列表中查找所述协议标识;
在硬件转发表中查找所述目的地信息;
若所述访问控制列表中不包含所述协议标识,且所述硬件转发表中不包含所述目的地信息,则判定所述报文为未知单播的数据报文。
4.一种报文处理装置,其特征在于,包括:
接收模块,用于接收网络设备的端口传输的报文,所述端口下同时配置有SDN域VLAN标识和传统域VLAN标识,所述报文中携带有VLAN信息;
处理模块,用于确定所述报文是未知单播的数据报文;根据所述报文中的VLAN信息与所述端口下的VLAN标识确定所述报文属于SDN域或传统域;对所述报文按照SDN域或传统域未知单播的数据报文的处理方式进行处理;其中,所述对所述报文按照传统域未知单播的数据报文的处理方式进行处理包括:当传统域的端口和SDN域的端口具有相同的VLAN标识时,根据所述报文包含的VLAN信息和接收所述报文的端口的标识信息获取对应的虚拟转发实例,所述端口标识信息用于表征接收所述报文的端口为传统域端口或SDN域端口;所述虚拟转发实例用于根据所述VLAN信息确定所述报文的洪泛出口,所述洪泛出口为配置有与所述VLAN信息对应的VLAN标识的端口;将所述报文洪泛到各所述端口。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610514793.8A CN107566237B (zh) | 2016-06-30 | 2016-06-30 | 一种数据报文处理方法及装置 |
| PCT/CN2017/090326 WO2018001242A1 (zh) | 2016-06-30 | 2017-06-27 | 一种数据报文处理方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610514793.8A CN107566237B (zh) | 2016-06-30 | 2016-06-30 | 一种数据报文处理方法及装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN107566237A CN107566237A (zh) | 2018-01-09 |
| CN107566237B true CN107566237B (zh) | 2021-06-29 |
Family
ID=60785835
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201610514793.8A Active CN107566237B (zh) | 2016-06-30 | 2016-06-30 | 一种数据报文处理方法及装置 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN107566237B (zh) |
| WO (1) | WO2018001242A1 (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109495370B (zh) * | 2018-12-29 | 2020-11-24 | 瑞斯康达科技发展股份有限公司 | 一种基于vpls的报文传输方法及装置 |
| CN110830371B (zh) * | 2019-11-13 | 2022-04-05 | 迈普通信技术股份有限公司 | 报文重定向方法、装置、电子设备及可读存储介质 |
| CN113497799B (zh) * | 2020-04-08 | 2022-09-16 | 维沃移动通信有限公司 | 协议架构确定方法、装置及设备 |
| CN113691386B (zh) * | 2020-05-19 | 2025-07-15 | 中兴通讯股份有限公司 | 资源配置的方法和网络设备、电子设备、计算机可读介质 |
| CN113079030B (zh) * | 2020-05-29 | 2022-05-24 | 新华三信息安全技术有限公司 | 配置信息下发方法和接入设备 |
| CN114205185B (zh) * | 2020-09-16 | 2023-03-24 | 厦门网宿有限公司 | 一种控制报文的代理方法及装置 |
| CN115225585A (zh) * | 2021-04-14 | 2022-10-21 | 华为技术有限公司 | 一种dcn报文处理的方法、网络设备及系统 |
| CN113452593B (zh) * | 2021-06-10 | 2022-06-03 | 烽火通信科技股份有限公司 | 一种olt vxlan与多切片共存的方法和装置 |
| CN116319619A (zh) * | 2021-12-07 | 2023-06-23 | 中兴通讯股份有限公司 | 网络处理模块、数据处理方法、网络节点和存储介质 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100553220C (zh) * | 2007-08-22 | 2009-10-21 | 杭州华三通信技术有限公司 | 一种实现vlan内下行用户隔离的方法及设备 |
| US9729425B2 (en) * | 2012-11-29 | 2017-08-08 | Futurewei Technologies, Inc. | Transformation and unified control of hybrid networks composed of OpenFlow switches and other programmable switches |
| US9450823B2 (en) * | 2013-08-09 | 2016-09-20 | Nec Corporation | Hybrid network management |
| CN103763146B (zh) * | 2014-01-29 | 2017-05-17 | 新华三技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
| CN105429870B (zh) * | 2015-11-30 | 2018-10-02 | 北京瑞和云图科技有限公司 | Sdn环境下的vxlan安全网关装置及其应用方法 |
| CN105357099A (zh) * | 2015-12-18 | 2016-02-24 | 南京优速网络科技有限公司 | 一种基于sdn的虚拟专用网络的实现方法 |
-
2016
- 2016-06-30 CN CN201610514793.8A patent/CN107566237B/zh active Active
-
2017
- 2017-06-27 WO PCT/CN2017/090326 patent/WO2018001242A1/zh not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| CN107566237A (zh) | 2018-01-09 |
| WO2018001242A1 (zh) | 2018-01-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107566237B (zh) | 一种数据报文处理方法及装置 | |
| US12301479B2 (en) | Managing network traffic in virtual switches based on logical port identifiers | |
| CN102857416B (zh) | 一种实现虚拟网络的方法、控制器和虚拟网络 | |
| US9331936B2 (en) | Switch fabric support for overlay network features | |
| CN105376154B (zh) | 渐进式mac地址学习 | |
| EP3210345B1 (en) | Transparent network service header path proxies | |
| EP2544409B1 (en) | Generic monitoring packet handling mechanism for OpenFlow 1.1 | |
| US20160301603A1 (en) | Integrated routing method based on software-defined network and system thereof | |
| CN103401786B (zh) | 网络拓扑建立、路径控制、报文传输方法及装置、系统 | |
| CN104410541B (zh) | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 | |
| US9900238B2 (en) | Overlay network-based original packet flow mapping apparatus and method therefor | |
| CN111327445B (zh) | 报文采样方法及解封装方法、节点、系统及存储介质 | |
| EP3197107B1 (en) | Message transmission method and apparatus | |
| CN106936777A (zh) | 基于OpenFlow的云计算分布式网络实现方法、系统 | |
| CN104350467A (zh) | 用于使用sdn的云安全性的弹性实行层 | |
| CN107276783A (zh) | 一种实现虚拟机统一管理及互通的方法、装置和系统 | |
| WO2016128834A1 (en) | Method and system for identifying an outgoing interface using openflow protocol | |
| WO2023103461A1 (zh) | 基于clos架构的报文跨板组播复制转发方法和系统 | |
| WO2016128833A1 (en) | Method and system for identifying an incoming interface using openflow protocol | |
| WO2017157206A1 (zh) | 云数据中心互联方法及装置 | |
| EP4047876B1 (en) | Method for sharing an uplink port among network slices, apparatus, and storage medium | |
| CN111193644A (zh) | 一种vBRAS业务传输方法、装置、终端设备和介质 | |
| CN106330783B (zh) | 一种OpenFlow交换机能力上报的方法及装置 | |
| CN105516116A (zh) | 一种基于ForCES控制件控制OpenFlow交换机的系统及协议转换方法 | |
| CN111262762B (zh) | 基于vCPE租户SFC业务链多WAN业务的实现方法及系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| TA01 | Transfer of patent application right |
Effective date of registration: 20200622 Address after: 518057 Zhongxing building, A3-01, A3-02, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Applicant after: Shenzhen ZTE Technical Service Co.,Ltd. Address before: 518057 Nanshan District science and Technology Industrial Park, Guangdong high tech Industrial Park, ZTE building Applicant before: ZTE Corp. |
|
| TA01 | Transfer of patent application right | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |