CN104320340A - 软件定义网络中学习源mac地址的方法和装置 - Google Patents

软件定义网络中学习源mac地址的方法和装置 Download PDF

Info

Publication number
CN104320340A
CN104320340A CN201410562781.3A CN201410562781A CN104320340A CN 104320340 A CN104320340 A CN 104320340A CN 201410562781 A CN201410562781 A CN 201410562781A CN 104320340 A CN104320340 A CN 104320340A
Authority
CN
China
Prior art keywords
list item
source mac
mac
occurrence
sdn
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.)
Pending
Application number
CN201410562781.3A
Other languages
English (en)
Inventor
严进波
宋小恒
王�锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201410562781.3A priority Critical patent/CN104320340A/zh
Publication of CN104320340A publication Critical patent/CN104320340A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提出一种软件定义网络(SDN)中学习源MAC地址的方法和装置。该方法包括在所述SDN中的SDN控制器执行的如下步骤:向SDN交换机下发第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;从SDN交换机接收由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,并学习所述二层报文中的源MAC地址。

Description

软件定义网络中学习源MAC地址的方法和装置
技术领域
本发明属于软件定义网络(Software Defined Network,SDN)技术领域,特别是一种SDN中学习源媒体访问控制(Media Access Control,MAC)地址的方法和装置。
背景技术
SDN技术通过将网络设备的控制平面与数据平面分离,从而实现网络流量的灵活控制。相应地,SDN架构中包括SDN控制器和SDN交换机,其中:SDN控制器和SDN交换机之间通过SDN管理通道进行通信,SDN控制器根据用户的配置或者动态运行的协议生成流表下发到SDN交换机,SDN交换机依据SDN控制器下发的流表进行报文处理。
在现有的SDN架构中,对于SDN交换机的二层报文转发,流表只匹配目的MAC地址和虚拟局域网标识(Virtual Local Area Network ID,VLANID)。当SDN交换机接收到源MAC地址未知、目的MAC地址已知的报文时,报文将命中流表并被转发出去,而并不将报文上送SDN控制器,这就导致SDN控制器无法学习到该未知的源MAC地址。当有访问该未知的源MAC地址的需求时,SDN控制器需要在网络内主动泛洪地址解析协议(Address Resolution Protocol,ARP)报文以获取该未知的源MAC地址,从而消耗系统资源并降低转发效率。
发明内容
有鉴于此,本发明提出一种SDN中学习源MAC地址的方法和装置,从而节约系统资源。
本发明实施方式的技术方案如下:
本发明实施方式的一方面提供了一种SDN中学习源MAC地址的方法,该方法包括在所述SND中的SDN控制器执行的如下步骤:
向SDN交换机下发第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
从SDN交换机接收由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,并学习所述二层报文中的源MAC地址。
优选地,该方法进一步包括:
向SDN交换机下发第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
优选地,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
优选地,所述第一流表项的匹配项进一步包括虚拟局域网标识(VLAN ID)。
优选地,所述第一级流表项和第二级流表项的匹配项进一步包括VLANID。
本发明实施方式的一方面提供了一种SDN网络中学习源MAC地址的方法,该方法包括在所述SDN中的SDN交换机执行的如下步骤:
从SDN控制器接收第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
向SDN控制器发送由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,以由SDN控制器学习所述二层报文中的源MAC地址。
优选地,该方法进一步包括:
从SDN控制器接收第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
优选地,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
优选地,所述第一流表项的匹配项进一步包括VLAN ID。
优选地,所述第一级流表项和第二级流表项的匹配项进一步包括VLANID。
本发明实施方式的一方面提供了一种SDN中学习源MAC地址的装置,该装置包括在所述SDN中的SDN控制器运行的如下模块:
第一流表项下发模块,用于向SDN交换机下发第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
源MAC地址学习模块,用于从SDN交换机接收由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,并学习所述二层报文中的源MAC地址。
优选地,该装置进一步包括:
第二流表项下发模块,用于向SDN交换机下发第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
优选地,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
本发明实施方式的一方面提供了一种SDN中学习源MAC地址的装置,该装置包括在所述SDN中的SDN交换机运行的如下模块:
第一流表项接收模块,用于从SDN控制器接收第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
二层报文发送模块,用于向SDN控制器发送由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,以由SDN控制器学习所述二层报文中的源MAC地址。
优选地,还包括:
第二流表项接收模块,用于从SDN控制器接收第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
优选地,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
在本发明中,向SDN交换机下发第一流表项,第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;从SDN交换机接收由于源MAC地址不匹配而不能命中第一流表项的二层报文,并学习二层报文中的源MAC地址。由此可见,SDN控制器向SDN交换机下发的第一流表项中,匹配项不仅包括目的MAC地址,还包括源MAC地址。只有当目的MAC地址和源MAC地址都匹配时,SDN交换机下才发报文。当源MAC地址不匹配时,SDN交换机将二层报文转发到SDN控制器,SDN控制器可以学习该二层报文的源MAC地址,从而解决现有技术中仅关注目的MAC地址而导致SDN控制器无法学习未知源主机的问题,并且减少了SDN控制器的ARP请求过程,节约了系统资源。
附图说明
图1为基于目的MAC地址方式的二层转发的示范性示意图;
图2为本发明实施方式在SDN控制器侧学习源MAC地址的方法流程图;
图3为本发明实施方式在SDN交换机侧学习源MAC地址的方法流程图;
图4为本发明实施方式的二层转发示意图;
图5为图4所示网络架构的二层转发流程图;
图6为本发明实施方式的二级联动流表项的处理示意图;
图7为本发明实施方式SDN控制器侧学习源MAC地址的装置结构图;
图8为本发明实施方式SDN交换机侧学习源MAC地址的装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
对于SDN交换机的二层转发,SDN控制器下发到SDN交换机的流表项的匹配项通常只包括目的MAC地址和VLAN ID,这种二层报文转发方式称为基于目的MAC地址方式的二层转发。在这种转发方式中,当SDN交换机接收到源MAC地址未知、目的MAC地址已知的报文时,报文将命中流表项并被转发出去,并不将报文上送SDN控制器,导致SDN控制器无法学到该未知的源MAC地址,从而其他主机也不能通过流表方式将报文转发到该未知的源MAC地址对应的主机上。
图1为基于目的MAC地址方式的二层转发的示范性示意图。
如图1所示,SDN网络包含SDN控制器及3个SDN交换机,分别为SW1、SW2和SW3。SW1与主机PC10连接;SW2与主机PC20连接;SW3与主机PC30连接,而且PC10、PC20和PC30同属一个VLAN中。
PC10发出访问PC30的二层报文,该二层报文经过SW1上送SDN控制器,SDN控制器学习PC10的MAC地址并予以记录,然后SDN控制器在本地查找PC30的MAC地址,发现没有查找到,则将二层报文广播泛洪到SW3,从而将二层报文发送到PC30。
PC30收到二层报文后,向PC10发出回应报文。回应报文首先到达SW3,SW3将回应报文上送SDN控制器。SDN控制器学习PC30的MAC地址并予以记录,然后在本地查找PC10的MAC地址,此时可以查找到PC10的MAC地址,SDN控制器向SW1、SW2和SW3下发由SW3通往PC10的整条路径(SW3--->SW2--->SW1)的流表项,该流表项的匹配项为VLAN ID和目的MAC地址(即PC10的MAC地址),并把报文发向PC10。
PC10后续再发出访问PC30的二层报文,该二层报文经过SW1上送到SDN控制器。SDN控制器发现已经学习有PC10的MAC地址,接着在本地查找PC30的MAC地址,发现可以查找到PC30的MAC地址,SDN控制器向SW1、SW2和SW3下发由SW1通往PC30的整条路径(SW1--->SW2--->SW3)的流表项,该流表项的匹配项为VLAN ID和目的MAC地址(即PC30的MAC地址),并把二层报文发向PC30。
至此,PC10和PC30间已经建立了基于目的MAC方式通往彼此的流表项。
如果PC20发出访问PC30的报文,报文到达SW2。SW2发现自身存在有通往PC30的流表项,直接命中流表项并转发该报文,此时该报文不上送到SDN控制器,因此SDN控制器无法学习PC20的MAC地址。这样,当后续PC30、PC10访问PC20时,需要SDN控制器主动泛洪ARP请求以学习PC20的MAC地址,从而显著消耗系统资源,并且降低了转发效率。
本发明实施方式提出学习MAC地址的方案,可以解决在基于目的MAC地址方式中所存在的无法学习未知源MAC地址的缺点。
图2为本发明实施方式在SDN控制器侧学习源MAC地址的方法流程图。
如图2所示,该方法包括在SDN控制器执行的如下步骤:
步骤201:向SDN交换机下发第一流表项,第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口。
在这里,不同于现有技术中向SDN交换机下发的流表项的匹配项中只包含目的MAC地址(有时候匹配项还可能包括VLAN ID),本发明实施方式向SDN交换机下发的第一流表项的匹配项中除了目的MAC地址之外,进一步包括源MAC地址。因此,不同于现有技术中当目的MAC地址匹配时即命中流表项(当匹配项包括VLAN ID时还需要命中VLAN ID),本发明实施方式需要源MAC地址和目的MAC地址都匹配时,才认定命中第一流表项。
在一个实施方式中,第一流表项的匹配项进一步包括VLAN ID。此时,源MAC地址、目的MAC地址和VLAN ID都匹配时,才认定命中第一流表项。
步骤202:从SDN交换机接收由于源MAC地址不匹配而不能命中第一流表项的二层报文,并学习二层报文中的源MAC地址。
当SDN交换机期望发送二层报文时,如果因二层报文的源MAC地址与第一流表项中的源MAC地址不匹配而导致第一流表项无法命中,即使二层报文的目的MAC与第一流表项中的目的MAC地址相匹配,SDN交换机依然不转发二层报文,而是将二层报文发送到SDN控制器,从而SDN控制器可以学习到二层报文中的源MAC地址。
SDN交换机的流表通常包括MAC-IP流表和扩展(Extensibility)流表。MAC-IP流表包括的硬件资源较多,而扩展流表包括的硬件资源相对较少。对于SDN交换机的二层转发,MAC-IP流表是固定资源,通常只能匹配源MAC地址或目的MAC中的一项。因此,通常将第一流表项实施为可以同时匹配源MAC地址和目的MAC的扩展流表的流表项。
可选地,第一流表项也可以不同时匹配源MAC地址和目的MAC地址,而是采用多级流表项联动的匹配方式。
在一个实施方式中,第一流表项具体实施为包含第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为Meta值和目的MAC地址,动作为指定出端口。
具体地,第一级流表项可以实施为MAC-IP流表,第二级流表项可以实施为扩展流表。该MAC-IP流表的匹配项为VLAN ID+源MAC地址,动作为在MetaData字段中写Meta值(meta vlue)和查询(函数动作为Goto Table)对应于扩展流表标识(Extensibility Table ID)的扩展流表,Goto Table的输出值为该扩展流表的ID。示范性地,meta vlue等于0x1。而且,扩展流表的匹配项为meta vlue+VLAN ID+目的MAC地址,动作为指定出端口。
在SDN交换机的二层报文转发过程中,首先执行MAC-IP流表匹配查询,当报文的VLAN ID和源MAC地址完全匹配之后,在MetaData字段中写入Meta值(比如,0x1),然后执行对应于扩展流表ID的扩展流表。该扩展流表的匹配项为meta vlue(即0x1)+VLAN ID+目的MAC地址。意味着:当Meta值为0x1,而且报文的VLAN ID和目的MAC地址完全匹配之后,扩展流表的匹配项得到满足,此时动作为指定出端口。在多级流表项联动的匹配方式中,第二级的扩展流表可以共用,从而还节约了流表资源。
当SDN交换机期望转发的二层报文来自未知源MAC地址时,则MAC-IP流表无法匹配,也就不能执行扩展流表。此时,SDN交换机向SDN控制器上送该来自未知源MAC地址的二层报文,从而由SDN控制器学习该二层报文中的源MAC地址。
由此可见,本发明实施方式中,首先关注源MAC地址是否匹配,只有源MAC匹配的情况下目的MAC地址的匹配才生效。对于源MAC地址未匹配的情况下,即使目的MAC地址匹配,也不会命中第一流表项,报文仍然会上送SDN控制器进行源MAC地址学习。
SDN控制器接收到由SDN交换机上报的源MAC地址未知的二层报文后,可以从二层报文中学习源MAC地址。SDN控制器学习到源MAC地址之后,如果在本地能够查找到目的MAC地址,则直接下发包括该学习到的源MAC地址和查找到的目的MAC地址的流表项,如果在本地不能够查找到目的MAC地址,可以对SDN交换机上报的二层报文进行广播泛洪,从而学习到目的MAC地址,然后再下发包括该学习到的源MAC地址和目的MAC地址的流表项。
比如:SDN控制器可以向SDN交换机下发包括该学习到的源MAC地址和目的MAC地址的第二流表项,第二流表项的匹配项包括学习到的源MAC地址和目的MAC地址,动作为指定出端口。第二流表项与第一流表项具有相同的结构和功能,匹配项同样包括源MAC地址(即学习到的源MAC地址)和目的MAC地址。这样,当SDN交换机接收到二层报文时,如果二层报文的源MAC地址和目的MAC地址与第二流表项中的匹配项分别匹配,通过指定出端口转发报文。类似地,第二流表项的匹配项进一步还可以包括VLAN ID。
SDN交换机接收到第一流表项和第二流表项之后,可以将第一流表项和第二流表项整合到统一的流表中。
以上详细描述了在SDN控制器侧学习源MAC地址的技术方案。下面描述在SDN交换机侧学习源MAC地址的技术方案。
图3为本发明实施方式在SDN交换机侧学习源MAC地址的方法流程图。
如图3所示,该方法包括:
步骤301:从SDN控制器接收第一流表项,第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口。
步骤302:向SDN控制器发送由于源MAC地址不匹配而不能命中第一流表项的二层报文,以由SDN控制器学习二层报文中的源MAC地址。
在一个实施方式中,该方法进一步包括:
从SDN控制器接收第二流表项,第二流表项的匹配项包括学习到的源MAC地址和目的MAC地址,动作为指定出端口。第二流表项与第一流表项具有相同的结构和功能,匹配项同样包括源MAC地址(即学习到的源MAC地址)和目的MAC地址。这样,当SDN交换机接收到二层报文时,如果二层报文的源MAC地址和目的MAC地址与第二流表项中的匹配项分别匹配,通过指定出端口转发报文。类似地,第二流表项的匹配项进一步还可以包括VLAN ID。
在一个实施方式中,第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为Meta值和目的MAC地址,动作为指定出端口。
在一个实施方式中,第一流表项的匹配项进一步包括VLAN ID。在一个实施方式中,第一级流表项和第二级流表项的匹配项进一步包括VLAN ID。
下面结合实例更详细地描述本发明。图4为本发明实施方式的二层转发示意图。
如图4所示,SDN网络包含SDN控制器及3个SDN交换机,分别为SW1、SW2和SW3。SW1与主机PC10连接;SW2与主机PC20连接;SW3与主机PC30连接,而且PC10、PC20和PC30同属一个VLAN中。
图5为图4所示网络架构的二层转发流程图。
如图5所示,该方法包括:
步骤501:PC10发出访问PC30的二层报文,该二层报文经过SW1上送到SDN控制器,SDN控制器学习PC10的MAC地址并予以记录,然后SDN控制器在本地查找PC30的MAC地址,发现没有查找到,则将二层报文广播泛洪到SW3,从而二层报文发送到PC30。
步骤502:PC30收到二层报文后,向PC10发出回应报文。回应报文首先到达SW3,SW3将回应报文上送SDN控制器,SDN控制器学习PC30的MAC地址并予以记录,然后在本地查找PC10的MAC地址,此时可以查找到PC10的MAC地址。SDN控制器向SW1、SW2和SW3下发由SW3通往PC10的整条路径(SW3--->SW2--->SW1)的第一流表项。
具体地,第一流表项为包括第一级流表项和第二级流表项的二级联动流表项。示范性地,图6为本发明实施方式的二级联动流表项的联动处理示意图。在图6中,第一级流表项实施为MAC-IP流表,第二级流表项可以实施为扩展流表。第一级流表项的匹配项为VLAN ID和源MAC地址(PC30的MAC地址),动作为写Meta值(meta vlue)和查询扩展流表(Goto Table),比如metavlue=0x1,Goto Table的值为扩展流表的ID。扩展流表的匹配项为Meta值+VLAN ID+目的MAC地址(PC10的MAC地址),动作为指定通往目的MAC地址(PC10的MAC地址)的对应出端口,并把报文发向PC10。
步骤503:PC10后续再发出访问PC30的二层报文,该二层报文经过SW1上送SDN控制器。SDN控制器发现已经学习有PC10的MAC地址,在本地查找PC30的MAC地址,此时发现可以查找到PC30的MAC地址,因此SDN控制器向SW1、SW2和SW3下发由SW1通往PC30的整条路径(SW1--->SW2--->SW3)的第一流表项。
具体地,第一流表项为包括第一级流表项和第二级流表项的二级联动流表项。示范性地,图6为本发明实施方式的二级联动流表项的联动处理示意图。在图6中,第一级流表项具体为MAC-IP流表,第二级流表项可以实施为扩展流表。第一级流表项的匹配项为VLAN ID和源MAC地址(PC10的MAC地址),动作为写Meta值(meta vlue)和查询扩展流表(Goto Table),比如metavlue=0x1,Goto Table的值为扩展流表的ID。扩展流表的匹配项为Meta值+VLAN ID+目的MAC地址(PC30的MAC地址),动作为指定通往目的MAC地址(PC30的MAC地址)的对应出端口,并把报文发向PC30。
至此,PC10和PC30间已经建立了通往彼此的流表。此时,如果PC20发出访问PC30的报文,报文首先到达SW2。SW2发现报文不匹配之前下发的第一流表项,将报文上送到SDN控制器,SDN控制器可以学习到PC20的MAC地址并予以记录。
然后,当后续PC20访问PC10和PC30时,SDN控制器可以基于所学习到PC20的MAC地址直接下发流表,不再需要主动泛洪ARP请求以学习PC20的MAC地址,因此显著节约了系统资源,并且提高了转发效率。
比如,SDN控制器学习到PC20的MAC地址之后,可以向SW2和SW3下发由PC20通往PC30的整条路径(SW2--->SW3)的第二流表项,该第二流表项的匹配项包括学习到的源MAC地址(PC20的MAC地址)和目的MAC地址(PC30的MAC地址),动作为指定出端口。第二流表项与第一流表项具有相同的结构和功能。举例:当PC20发出访问PC30的二层报文时,SW2发现该二层报文匹配第二流表项,因此将二层报文转发到SW3,SW3再将二层报文发送到PC30。
基于上述分析,本发明实施方式还提出了一种SDN中学习源MAC地址的装置。
图7为本发明实施方式SDN控制器侧学习源MAC地址的装置结构图。该装置700包括在SDN中的SDN控制器运行的如下模块:
第一流表项下发模块701,用于向SDN交换机下发第一流表项,第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
源MAC地址学习模块702,用于从SDN交换机接收由于源MAC地址不匹配而不能命中第一流表项的二层报文,并学习二层报文中的源MAC地址。
在一个实施方式中:该装置700进一步包括:
第二流表项下发模块703,用于向SDN交换机下发第二流表项,第二流表项的匹配项包括学习到的源MAC地址和目的MAC地址,动作为指定出端口。
优选地,第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为Meta值和目的MAC地址,动作为指定出端口。
基于上述分析,本发明实施方式还提出了一种SDN中学习源MAC地址的装置。
图8为本发明实施方式SDN控制器侧学习源MAC地址的装置结构图。该装置800包括在SDN中的SDN交换机运行的如下模块:
第一流表项接收模块801,用于从SDN控制器接收第一流表项,第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
二层报文发送模块802,用于向SDN控制器发送由于源MAC地址不匹配而不能命中第一流表项的二层报文,以由SDN控制器学习二层报文中的源MAC地址。
在一个实施方式中,装置800还包括:
第二流表项接收模块803,用于从SDN控制器接收第二流表项,第二流表项的匹配项包括学习到的源MAC地址和目的MAC地址,动作为指定出端口。
在一个实施方式中,第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
在本发明中,向SDN交换机下发第一流表项,第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;从SDN交换机接收由于源MAC地址不匹配而不能命中第一流表项的二层报文,并学习二层报文中的源MAC地址。由此可见,SDN控制器向SDN交换机下发的第一流表项中,匹配项不仅包括目的MAC地址,还包括源MAC地址。只有当目的MAC地址和源MAC地址都匹配时,SDN交换机下才转发报文。当源MAC地址不匹配时,SDN交换机下将二层报文转发到SDN控制器,SDN控制器可以学习该二层报文的源MAC地址,从而解决现有技术中仅关注目的MAC地址而导致SDN控制器无法学习未知源主机的问题,并且减少了SDN控制器的ARP请求过程,节约了系统资源。
而且,在多级流表项联动的匹配方式中,第二级的扩展流表可以共用,从而还节约了流表资源。
以上所述,仅为本发明的较佳实施方式而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种软件定义网络SDN中学习源MAC地址的方法,其特征在于,该方法包括在所述SDN中的SDN控制器执行的如下步骤:
向SDN交换机下发第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
从SDN交换机接收由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,并学习所述二层报文中的源MAC地址。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
向SDN交换机下发第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
3.根据权利要求1所述的方法,其特征在于,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
4.根据权利要求1所述的方法,其特征在于,所述第一流表项的匹配项进一步包括虚拟局域网标识VLAN ID。
5.根据权利要求3所述的方法,其特征在于,所述第一级流表项和第二级流表项的匹配项进一步包括VLAN ID。
6.一种软件定义网络SDN中学习源MAC地址的方法,其特征在于,该方法包括在所述SDN中的SDN交换机执行的如下步骤:
从SDN控制器接收第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
向SDN控制器发送由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,以由SDN控制器学习所述二层报文中的源MAC地址。
7.根据权利要求6所述的方法,其特征在于,该方法进一步包括:
从SDN控制器接收第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
8.根据权利要求6所述的方法,其特征在于,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
9.根据权利要求6所述的方法,其特征在于,所述第一流表项的匹配项进一步包括虚拟局域网标识VLAN ID。
10.根据权利要求8所述的方法,其特征在于,所述第一级流表项和第二级流表项的匹配项进一步包括VLAN ID。
11.一种软件定义网络SDN中学习源MAC地址的装置,其特征在于,该装置包括在所述SDN中的SDN控制器运行的如下模块:
第一流表项下发模块,用于向SDN交换机下发第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
源MAC地址学习模块,用于从SDN交换机接收由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,并学习所述二层报文中的源MAC地址。
12.根据权利要求11所述的装置,其特征在于,该装置进一步包括:
第二流表项下发模块,用于向SDN交换机下发第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
13.根据权利要求11所述的装置,其特征在于,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
14.一种软件定义网络SDN中学习源MAC地址的装置,其特征在于,该装置包括在所述SDN中的SDN交换机运行的如下模块:
第一流表项接收模块,用于从SDN控制器接收第一流表项,所述第一流表项的匹配项包括源MAC地址和目的MAC地址,动作为指定出端口;
二层报文发送模块,用于向SDN控制器发送由于源MAC地址不匹配而不能命中所述第一流表项的二层报文,以由SDN控制器学习所述二层报文中的源MAC地址。
15.根据权利要求14所述的装置,其特征在于,还包括:
第二流表项接收模块,用于从SDN控制器接收第二流表项,所述第二流表项的匹配项包括所述学习到的源MAC地址和目的MAC地址,动作为指定出端口。
16.根据权利要求14所述的装置,其特征在于,所述第一流表项为包括第一级流表项和第二级流表项的二级联动流表项,其中第一级流表项的匹配项为所述源MAC地址,动作为写Meta值以及查询第二级流表项;第二级流表项的匹配项为所述Meta值和所述目的MAC地址,动作为指定出端口。
CN201410562781.3A 2014-10-21 2014-10-21 软件定义网络中学习源mac地址的方法和装置 Pending CN104320340A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410562781.3A CN104320340A (zh) 2014-10-21 2014-10-21 软件定义网络中学习源mac地址的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410562781.3A CN104320340A (zh) 2014-10-21 2014-10-21 软件定义网络中学习源mac地址的方法和装置

Publications (1)

Publication Number Publication Date
CN104320340A true CN104320340A (zh) 2015-01-28

Family

ID=52375514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410562781.3A Pending CN104320340A (zh) 2014-10-21 2014-10-21 软件定义网络中学习源mac地址的方法和装置

Country Status (1)

Country Link
CN (1) CN104320340A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259353A (zh) * 2018-01-10 2018-07-06 浙江工商大学 一种基于匹配字段具体值重复率的多级流表设计方法
WO2018188569A1 (zh) * 2017-04-11 2018-10-18 华为技术有限公司 一种转发数据报文的方法、设备和系统
CN109450811A (zh) * 2018-11-30 2019-03-08 新华三云计算技术有限公司 流量控制方法、装置及服务器
CN111343108A (zh) * 2020-02-24 2020-06-26 盛科网络(苏州)有限公司 一种Mac表项学习转发的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430497A (zh) * 2013-02-27 2013-12-04 华为技术有限公司 介质访问控制mac地址学习方法、控制器及交换设备
CN103428094A (zh) * 2013-08-12 2013-12-04 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
US20140022894A1 (en) * 2011-04-04 2014-01-23 Nec Corporation Network system, switch and connected terminal detection method
CN103729427A (zh) * 2013-12-25 2014-04-16 南京未来网络产业创新有限公司 一种基于自定义多级流表增量更新的流表转换方法
CN103888386A (zh) * 2012-12-24 2014-06-25 华为技术有限公司 可扩展虚拟局域网报文的传输方法及装置、系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140022894A1 (en) * 2011-04-04 2014-01-23 Nec Corporation Network system, switch and connected terminal detection method
CN103888386A (zh) * 2012-12-24 2014-06-25 华为技术有限公司 可扩展虚拟局域网报文的传输方法及装置、系统
CN103430497A (zh) * 2013-02-27 2013-12-04 华为技术有限公司 介质访问控制mac地址学习方法、控制器及交换设备
CN103428094A (zh) * 2013-08-12 2013-12-04 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
CN103729427A (zh) * 2013-12-25 2014-04-16 南京未来网络产业创新有限公司 一种基于自定义多级流表增量更新的流表转换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
雷葆华: "《SDN核心技术剖析和实战指南》", 30 September 2013 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018188569A1 (zh) * 2017-04-11 2018-10-18 华为技术有限公司 一种转发数据报文的方法、设备和系统
US11146488B2 (en) 2017-04-11 2021-10-12 Huawei Technologies Co., Ltd. Data packet forwarding method, device, and system
CN108259353A (zh) * 2018-01-10 2018-07-06 浙江工商大学 一种基于匹配字段具体值重复率的多级流表设计方法
CN109450811A (zh) * 2018-11-30 2019-03-08 新华三云计算技术有限公司 流量控制方法、装置及服务器
CN111343108A (zh) * 2020-02-24 2020-06-26 盛科网络(苏州)有限公司 一种Mac表项学习转发的方法及装置
CN111343108B (zh) * 2020-02-24 2021-10-22 苏州盛科通信股份有限公司 一种Mac表项学习转发的方法及装置

Similar Documents

Publication Publication Date Title
US8612559B2 (en) Central controller for coordinating multicast message transmissions in distributed virtual network switch environment
CN103227843B (zh) 一种物理链路地址管理方法及装置
US9444743B2 (en) Network system, switch and connected terminal detection method
US9960998B2 (en) Forwarding packet in stacking system
CN102790811B (zh) 一种在监控网络中穿越nat设备的方法和装置
US10503565B2 (en) System and method for multicasting data between networking interfaces of hypervisors
CN101459618A (zh) 虚拟机网络的数据包转发方法和装置
CN103477588A (zh) 刀片服务器中刀片间网络业务的分类和管理方法和系统
CN104506408A (zh) 基于sdn的数据传输的方法及装置
CN104618194A (zh) 软件定义网络报文监控方法和sdn控制器、交换设备
CN104601959A (zh) 一种视频监控系统及其快速接入网络摄像机的方法
CN103326948B (zh) 一种交换处理系统和方法
US20050195817A1 (en) Switching device and multicast packet processing method therefor
CN103931144B (zh) 一种在虚拟域中通信的方法、设备和系统
CN103944828A (zh) 一种协议报文的传输方法和设备
CN105338003A (zh) 一种应用于软件定义网络的防火墙实现方法
CN104168338A (zh) 一种网络地址转换装置和方法
CN104320340A (zh) 软件定义网络中学习源mac地址的方法和装置
CN101877671A (zh) 镜像报文的发送方法、交换芯片及以太网路由器
CN103347179A (zh) 一种实现监控前端设备联网的装置和方法
US10771402B2 (en) Link aggregated fibre channel over ethernet system
CN109088957B (zh) Nat规则管理的方法、装置和设备
CN101834781B (zh) 一种聚合端口的介质访问控制地址保活装置及方法
EP3086512B1 (en) Implementation method and apparatus for vlan to access vf network and fcf
WO2021184862A1 (zh) 一种报文发送方法、第一网络设备及网络系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150128