CN105450525B - 用于路由交换设备使用的方法和设备 - Google Patents
用于路由交换设备使用的方法和设备 Download PDFInfo
- Publication number
- CN105450525B CN105450525B CN201410230463.7A CN201410230463A CN105450525B CN 105450525 B CN105450525 B CN 105450525B CN 201410230463 A CN201410230463 A CN 201410230463A CN 105450525 B CN105450525 B CN 105450525B
- Authority
- CN
- China
- Prior art keywords
- flow table
- item
- table item
- conversion
- data message
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于路由交换设备使用的方法和设备,方法包括:响应于该路由交换设备要从传统模式切换到开放流模式,执行如下步骤:将传统模式的转发表的表项转化为开放流模式的流表项;将转化的流表项存储在该路由交换设备的流表中;以及响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。该方法和设备能够使得路由交换设备从传统模式无缝切换到开放流模式,并且节约路由交换设备的CPU资源。
Description
技术领域
本发明涉及网络技术,更具体地,涉及一种用于路由交换设备使用的方法和设备。
背景技术
支持开放流(OpenFlow)协议的路由交换设备可以根据其配置以及其与控制器的连接状态工作在开放流模式或者传统模式。其中传统模式包含独立模式(standalonemode)以及非独立模式(fail standalone mode)。在非独立模式下,支持开放流协议的路由交换设备已经被激活为开放流模式,但是与控制器失去了连接,根据开放流协议,常用的应对断开连接的一种方法是:所有的流表项会被删除,并且路由交换设备的传统转发功能会被打开,会按照传统的转发表来进行转发。表1示出了各种模式之间的特点。
表1
表1中的场景1指出独立模式到开放流模式之间的变化。在现有的技术方案中,一旦路由交换设备从独立模式切换到开放流模式,传统的L2/L3层功能会关闭,对应的转发表(包括FDB以及路由表等)会被删除。路由交换设备与控制器建立连接前,所有的输入数据包会被扔掉。与控制器建立连接后,控制器可以对不能匹配到流表项的数据报文指定默认处理规则,一般来说,默认处理规则通常是要求路由交换设备转发未知的数据包给控制器或者扔掉。
表1中的场景2指出非独立模式到开放流模式之间的变化。在现有的技术方案中,一旦路由交换设备与控制器重新建立连接,路由交换设备就会从非独立模式回到开放流模式,此时,原来的流表项已经被删除,路由交换设备需要一直等待控制器上协议收敛后添加流表项,协议收敛速度一般较慢,在此之前只有上述默认处理规则存在,而默认处理规则的动作是将所有与流表项不匹配的报文发送到控制器,而一个报文发送到控制器会经过交换机的CPU进行软转发,这个通道本身就很窄,交换机转发端口可以达到线速1千兆位/秒(Gbps),而通过软转发速度最多只有兆位/秒(Mbps),多出兆位/秒数量级的报文会被丢弃掉,造成如果有协议控制报文夹杂在数据流中,很容易被丢弃掉,影响控制器上协议收敛的速度。而且报文通过CPU进行软转发来处理会占用大量的CPU资源,导致CPU运行非常缓慢。而大量的数据报文被发送到控制器,同样也要进行计算,浪费了控制器的资源,并且对协议计算也没有用处(控制器根据协议控制报文来进行协议收敛)。
因此,在路由交换设备从传统模式到开放流模式的切换过程中,需要一种平滑并且无缝切换方法。
发明内容
根据本发明的一个方面,提供了一种用于路由交换设备使用的方法,包括:
响应于该路由交换设备要从传统模式切换到开放流模式,执行如下步骤:
将传统模式的转发表的表项转化为开放流模式的流表项;
将转化的流表项存储在该路由交换设备的流表中;以及
响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。
根据本发明的另一个方面,提供了一种用于路由交换设备使用的设备,包括:
转化模块,被配置为响应于该路由交换设备要从传统模式切换到开放流模式,将传统模式的转发表的表项转化为开放流模式的流表项;
存储模块,被配置为将转化的流表项存储在该路由交换设备的流表中;以及
数据报文处理模块,被配置为响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。
使用本发明提出的路由交换设备使用的方法和设备能够使得路由交换设备从传统模式无缝切换到开放流模式,并且节约路由交换设备的CPU资源。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出了支持开放流协议的路由交换设备和控制器的通信框架;
图3示意性示出了根据本发明一种实施方式的一种用于路由交换设备使用的方法的步骤;
图4示出了用于路由交换设备使用的设备400的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
数据报文具有不同的报文类型,数据报文的类型包括:L2报文、L3报文、多协议标签转换(MPLS)报文以及其它类型的报文。在传统模式下,例如对于L2数据报文,转发表是FDB表。FDB表是该路由交换设备上的端口、MAC地址加VLAN的对应关系表。当路由交换设备收到一帧数据时,路由交换设备根据自己的FDB表来决定是将这帧数据进行过滤还是转发。
对于L3数据报文,转发表包括路由表。路由表存储着指向特定网络地址的路径,在有些情况下,还记录有路径的路由度量值。路由表中含有网络周边的拓扑信息。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。此外,还有一些其它的表,来协同路由表一起处理L3的数据报文。
对于多协议标签转换(MPLS)报文,也利用一些转发表,例如FDB表、带标签的路由表、隧道标签表等处理该数据报文。
对其它数据报文,可以使用访问控制列表(Access Control List,ACL)作为转发表。其在传统的路由交换设备上主要是处理除了正常L2/L3数据流之外的其他的报文,比如协议控制报文通过ACL被转发到CPU,或者要将某一条特殊的流丢弃,都是通过添加ACL规则来实现的。使用IP ACL可以拒绝或允许某个IP或某范围内的IP通信,如果将ACL指定到某个端口上,就可以指定通过某个端口的IP是否被拒绝。
使用上述若干个传统模式下的转发表,路由交换设备就可以将接收到的报文转发到合适的目的地地址。
图2示出了支持开放流协议的路由交换设备和控制器的通信框架,根据图2,在OpenFlow通信框架下,路由交换设备的转发和控制分离开来,路由交换设备负责数据平面所需的报文和转发等功能,而协议控制进程被分离到集中化的控制器上。路由交换设备和控制器之间的通信使用开放流协议在一条加密的通道上传输。在路由交换设备的硬件层面,设置了若干个流表(Flow Table)用于存储报文转发和策略控制相关的规则,流表中的报文转发和策略控制相关的规则由控制器根据用户配置或者协议计算出来,并通过上述加密通道传输给路由交换设备。
流表通常是一系列流表项的集合,OpenFlow规范中定义了流表项需要支持的标准协议字段,每条流表项主要包含了如下几个信息:
1)匹配的字段:要匹配报文头部的哪些字段,如源/目的MAC地址、VLANID、VLAN优先级、源/目的IP地址、DSCP、IP协议号、TCP/UDP源/目的端口号等。最新的OpenFlow规范(openflow-spec-v1.4.0)中定义了多达42个不同的匹配的字段。流表具有不同的实现,可以只包含感兴趣的某些字段,比如只关心IP五元组;也可以包含OpenFlow规范中定义的绝大部分字段。
2)匹配优先级:每条流表项都被安排一个匹配优先级。报文在某个流表中可能和多条流表项都匹配,在这种情况下,只执行匹配优先级最高的那条流表项所关联的动作。
3)关联的动作:当报文匹配到流表项中定义的字段之后,执行与之关联的动作,这些动作可能包含但不限于:修改报文头部指定字段的值、添加一个新的报文头、删除某个报文头部、将报文从某个(某些)端口发送出去、维护报文统计信息等。除了这些动作外,还可以根据流表的具体实现自定义与流表项相关联的其它动作。
回到图2,现有的开放流路由交换设备中的对报文进行解析、匹配、执行等操作,入口数据报文经过解析后,会将所有报文头部的字段解析出来,接着在存储了流表项的流表里面查找,看报文是否与其中的流表项匹配,如果与某条流表项匹配,就执行该流表项中相应的动作。
图3示意性示出了根据本发明一种实施方式的一种用于路由交换设备使用的方法的步骤,根据图3,响应于该路由交换设备要从传统模式切换到开放流模式,执行如下步骤:在步骤S301,将传统模式的转发表的表项转化为开放流模式的流表项;在步骤S302,将转化的流表项存储在该路由交换设备的流表中;在步骤S303,响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。
在一种实施方式中,开放流控制器一旦协议层收敛,就会形成新的流表项,会发送给路由交换设备,因此,图3所示的方法还包括(图3未示出):在步骤S304,响应于从开放流控制器接收新的流表项,使用新的流表项更新流表中存储的转化的流表项;以及步骤S305,响应于接收到新的数据报文,按照流表中存储的新的流表项对该新的数据报文进行处理。也就是说,一旦开放流控制器给出新的流表项,就用新的流表项处理接收的数据报文,而放弃转化的流表项。
对于表1中的场景1和场景2,可以要求该路由交换设备要从传统模式切换到开放流模式。
具体来说,对于场景1,就是从独立模式切换到开放流模式。因此,在一种实施方式中,响应于该路由交换设备要从传统模式切换到开放流模式包括响应于该路由交换设备要从独立模式切换到开放流模式。具体对于这种要求,是该路由交换设备收到命令,要求其从独立模式激活为开放流模式,则该路由交换设备就获知其要从独立模式切换到开放流模式。因此,该路由交换设备要从传统模式切换到开放流模式是该路由交换设备被从独立模式激活为开放流模式开始的。
激活后,一旦路由交换设备与开放流控制器建立连接,路由交换设备就进入开放流模式,如背景技术所言,现有技术在获得开放流控制器下发的流表项之前,对收到的数据报文处理是很成问题的。在本实施方式中,路由交换设备执行图3所示的步骤,从而在获得开放流控制器下发的流表项之前,使用在传统模式下转发表的表项转化成的开放流模式下的流表项对收到的数据报文进行处理,从而保持报文处理的连续性,并且节省路由交换设备的CPU资源。
在进一步的实施方式中,图3所示方法还包括步骤(图3未示出):响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,该路由交换设备可以与开放流控制器建立连接,并将转化的流表项发送给该开放流控制器。也就是说,一旦该路由交换设备与开放流控制器建立连接,该路由交换设备进入了开放流模式,这时开放流控制器内部要根据全局拓扑信息和协议计算新的流表项。由于协议层收敛远比建立连接慢,并且建立全新的流表项会使得该路由交换设备对接收到的数据报文处理不一致,因此,在一种实施方式中,可以在建立连接时将转化的流表项发送给该开放流控制器,使其利用原来转化的流表项作为参考,来生成新的流表项。也就是说,新的流表项是根据所述转化的流表项生成的,可以在开放流控制器端来决定转化的流表项是保留、更新还是删除,从而来修改路由交换设备上的流表项成为新的流表项。更新的方法可以具体参见流表项的各项,可以对流表项的匹配的字段中的至少一个字段更新,或者对字段匹配后执行的动作进行更新。在协议收敛前,开放流控制器如此处理并不影响路由交换设备对原来的已知数据流的正常转发,这种正常转发也是利用了转化的流表项进行的,在有流量存在的情况下,可以极大释放路由交换设备和开放流控制器的CPU资源,保证已知流量不间断转发,并且开放流控制器的流表处理能够加速了开放流协议层的收敛速度。具体开放流控制器如何实现不在本发明的保护范围之内。
对于场景2,就是从非独立模式切换到开放流模式。因此,在一种实施方式中,该路由交换设备要从传统模式切换到开放流模式包括从非独立模式切换到开放流模式。在非独立模式中,路由交换设备的开放流模式已经被激活,但是失去了和开放流控制器的连接。因此,从非独立模式切换到开放流模式是从已经与开放流控制器失去连接的路由交换设备与该开放流控制器重新建立连接开始的。
与该开放流控制器重新建立连接后,此时开放流控制器还没有建立新的流表项,如背景技术所言,现有技术在获得开放流控制器下发的流表项之前,对收到的数据报文处理是很成问题的。在本实施方式中,路由交换设备执行图3所示的步骤,从而在获得开放流控制器下发的流表项之前,使用在传统模式下转发表的表项转化成的开放流模式下的流表项对收到的数据报文进行处理,从而保持报文处理的连续性。
在进一步的实施方式中,图3所示的方法还包括(图3未示出):响应于将传统模式的转发表的表项转化为开放流模式的流表项完毕,将转化的流表项发送给该开放流控制器。然后,开放流控制器可以像在场景1中所描述的那样,如果没有开放流控制器发送的流表项,就利用原来转化的流表项对输入数据报文处理,保持报文处理的连续性。如果有开放流控制器发送的新的流表项,就利用新的流表项对输入数据报文处理。因此,在更进一步的实施方式中,所述新的流表项是根据所述转化的流表项生成的。
回到图3,步骤S302和步骤S303都可以使用现有技术实现。关于步骤S301,将传统模式的转发表的表项转化为开放流模式的流表项的实现,具体来说,传统模式的转发表包括FDB表,路由表,ARP表、以及三层端口信息表等等,而流表项实际都是匹配不同输入报文类型的,如L2报文、L3报文和多协议标签转换(MPLS)报文等。在传统转发中,一次转发过程可能需要查询多个转发表的表项。因此,在转化为流表项的过程中,可以对特定类型的数据报文,将该类型的数据报文对应的传统模式的至少一个转发表的对应表项串联起来,形成该类型的数据报文对应的一条流表项。以下分别叙述对各种类型的数据报文的转化方法。
L2报文分为L2单播和L2组播,传统转发中只需要FDB表。转化过程中,针对特定的FDB表项,提取该FDB表项中的MAC地址和VLAN作为转化的流表项的匹配的字段中的目的MAC地址(DMAC)以及VLAN,提取该FDB表项中的端口作为流表项相关联的动作中的出端口(port),相关联的动作的含义为将数据报文转发到指定的出端口,从而形成一条流表项。以下匹配的字段(Match)的含义是要求输入报文需要匹配的字段;所有相关联的动作(Action)的含义是按照Action中指定的规则对匹配的输入报文执行相关的动作,后面就不再一一赘述。
例如,如果输入数据报文为L2单播,则
转化前的FDB表为:
MAC地址 | VLAN | 端口号 |
fc:cf:62:9d:92:13 | 5 | 21 |
转化后的流表项为:
Flow1Match:DMAC=fc:cf:62:9d:92:13VLAN ID=5//表示匹配的字段为目的MAC地址为fc:cf:62:9d:92:13,并且VLAN为5。
ACTION:port=21//表示相关联的动作为从21号端口将报文转发出去。
其中,Match后面给出匹配的字段,ACTION后面给出相关联的动作,后续生成的所有流表项都是此含义,将不再一一赘述。“//”符号后面的文字是注释语句。
例如,如果输入数据报文为L2组播,则
转化前的FDB表为:
MAC地址 | VLAN | 端口号 |
010000000001 | 5 | 21、22 |
转化后的流表项为:
Flow1 Match:DMAC=010000000001VLAN ID=5。
ACTION:port=21、22
L3报文分为L3单播和L3组播,传统转发中需要路由表、ARP表以及FDB表等。转化流表项的过程中,对于L3单播报文和L3组报报文,都要查询上述多个表项,最终按照路由规则转发,但是对L3单播报文和L3组报报文会形成不同的流表项。
具体来说,对于L3单播报文,需要使用FDB表、路由表、ARP表、以及三层端口信息表。转化的过程为:首先查询FDB表获得本机MAC地址和VLAN,作为匹配的字段的目的MAC地址(DMAC)和VLAN;然后查询路由表,获得目的IP地址以及掩码,作为匹配的字段中的目的IP地址以及掩码(DIP/MASK);再将路由表中下一跳地址作为IP地址,来索引ARP表项,得到MAC地址、VLAN以及物理出端口,作为执行的动作中的目的MAC地址(DMAC)、VLAN和物理出端口(port);再通过路由表中三层出端口来索引三层端口信息表,得到MAC地址,作为执行的动作中的源MAC地址(DMAC)。将所有的匹配的字段和执行的动作组合成一条流表项。
例如,转化前,路由表项为:
目的IP地址 | 掩码 | 下一跳 | 三层出端口(interface) |
9.110.40.0 | 255.255.255.0 | 192.168.49.50 | 1 |
ARP表项为:
IP地址 | 标志 | MAC地址 | VLAN | 物理出端口 |
192.168.49.50 | P | fc:cf:62:9d:92:00 | 3 | 4 |
三层端口信息表的表项为:
三层出端口 | MAC地址 | VLAN |
1 | 00:01:01:01:ee:ee | 3 |
FDB的本机表项为:
MAC地址 | VLAN |
00:01:01:01:ee:ee | 2 |
则转化后的流表项为:
FLOW:Match DMAC=00:01:01:01:ee:ee,VLAN=2,DIP/MASK=9.110.40.0/255.255.255.0
Action DMAC=fc:cf:62:9d:92:00,SMAC=00:01:01:01:ee:ee,VLAN=3,port=4
对于L3组播报文的转化,需要使用组播路由表和三层端口信息表。转化的过程为:首先查询组播路由表的表项,得到的目的IP地址、源IP地址、VLAN,分别作为匹配字段的目的IP地址(DIP)、源IP地址(SIP)和VLAN。而组播目的IP地址(DIP)和作为匹配字段的目的MAC地址(DMAC)是多对一的关系,可以通过目的IP地址(DIP)直接计算得到需要匹配的目的MAC地址(DMAC)。再通过查询组播路由表项中的三层出端口来索引三层端口信息表,得到MAC地址、VLAN和物理出端口(port)作为执行的动作中的源MAC地址(SMAC)、VLAN和物理出端口(port),将所有的匹配的字段和执行的动作组合成一条流表项。
例如,转化前组播路由表的表项为:
目的IP地址 | 源IP地址 | VLAN | 三层出端口 |
224.0.0.1 | 192.168.0.1 | 2 | 1,2,3 |
IP接口信息表的表项为:
转化后的流表项为:
Flow:Match:DMAC(01:00:5e:00:00:01),VLAN=2,DIP=224.0.0.1,SIP=192.168.0.1
Action:SMAC=00:01:01:01:01:01,VLAN_3,port=3
SMAC=00:01:01:01:01:02,VLAN_4,port=4
SMAC=00:01:01:01:01:03,VLAN_5,port=5
多协议标签转换(MPLS)报文分为MPLS-PUSH报文和MPLS-POP报文,对于MPLS-PUSH报文,需要使用FDB表、带标签的路由表、隧道标签表、ARP表以及三层出端口信息表,转化过程为:首先查询FDB表获得本机MAC地址和VLAN,作为匹配的字段的目的MAC地址(DMAC)和VLAN;然后查询带标签的路由表获得目的IP地址/掩码信息,作为匹配的字段中的目的IP地址以及掩码(DIP/MASK);再将目的IP地址作为索引查询带标签的路由表;,将查询到的隧道号作为索引查询隧道标签表,得到标签号以及三层出端口信息,将标签号作为执行动作中的标签号(mpls lable);然后将查询到的三层出端口作为索引查询三层出端口信息表,得到的MAC地址作为执行动作中的源MAC地址(SMAC);再将查询到的标签号作为索引查询ARP表,得到的MAC地址和5物理端口号作为执行动作中的目的MAC地址(DMAC)和物理出端口(port),组合起来得到一条流表项。例如,转化前FDB表的本机表项为:
MAC地址 | VLAN |
00:01:01:01:01:01 | 2 |
带标签的路由表的表项为:
目的IP地址 | 掩码 | 隧道号 |
9.110.40.0 | 255.255.255.0 | 100 |
隧道标签表的表项为:
隧道号 | 标签号 | 三层出端口 |
100 | 1000 | 1 |
ARP表的表项为:
标签号 | MAC地址 | 物理出端口 |
1000 | fc:cf:62:9d:92:00 | 3 |
三层出端口信息表的表项为:
三层出端口 | MAC地址 |
1 | 00:01:01:01:01:01 |
转化后的流表项为:
Flow:Match:VLAN=2,DMAC=00:01:01:01:01:01,DIP=9.110.40.0/255.255.255.0
Action:Push MPLS label=1000,Pop VLAN,SMAC=00:01:01:01:01:01,
DMAC=fc:cf:62:9d:92:00,port=3
对于多协议标签转换报文中的POP报文,需要使用FDB表、带标签的路由表、隧道标签表、ARP表以及三层端口信息表,转化过程为::首先查询FDB表获得本机MAC地址,作为匹配的字段的目的MAC地址(DMAC),然后查询带标签的路由表得到标签号和三层出端口,将查询到的标签号作为匹配的字段中的标签号(MPLS Label);再查询到的三层出端口作为端口号索引来查询三层端口信息表,得到的MAC地址和VLAN作为执行动作中的源MAC地址(SMAC)和VLAN;然后将查询到的标签号作为索引查询ARP表项,得到MAC地址和物理出端口作为执行动作的目的MAC地址(DMAC)和物理出端口(port),将所有的匹配的字段和执行的动作组合成一条流表项。
例如,转化前,FDB表的本机表项为:
MAC=00:01:01:01:01:01
带标签的路由表表项为:
标签号 | 三层出端口 |
1000 | 1 |
ARP表的表项为:
标签号 | MAC地址 | 物理出端口 |
1000 | fc:cf:62:9d:92:00 | 3 |
三层出端口信息表的表项为:
三层出端口 | MAC地址 | VLAN |
1 | 00:01:01:01:01:01 | 3 |
转化后的流表项为:
Match:MPLS Label=1000,DMAC=00:01:01:01:01:01
Action:Pop MPLS,Push VLAN=3,SMAC=00:01:01:01:01:01,DMAC=fc:cf:62:9d:92:00,port=3
对于其他类型的报文,例如需要使用访问控制列表(ACL)的报文,ACL表的每条表项独立存在而且和流表可以直接对应,它包括需要匹配的字段和需要执行的动作,可以直接将ACL中的匹配字段作为流表项需要匹配的字段;将ACL中需要执行的动作作为流表项需要执行动作,形成一条流表项,例如对于
ACL表的表项为:
Match:vlan=100,DMAC=00:01:01:01:01:01,DIP=1.1.1.1
Action:port=3
转化后的流表项为:
FLOW:Match:vlan=100,DMAC=00:01:01:01:01:01,DIP=1.1.1.1
Action:port=3
在同一个发明构思下,本发明还公开了一种用于路由交换设备使用的设备,图4示出了用于路由交换设备使用的设备400的结构框图,根据图4,该设备包括:转化模块401,被配置为响应于该路由交换设备要从传统模式切换到开放流模式,将传统模式的转发表的表项转化为开放流模式的流表项;存储模块402,被配置为将转化的流表项存储在该路由交换设备的流表中;以及数据报文处理模块403,被配置为响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。
在一种实施方式中,该设备还包括(图4未示出):替换模块,被配置为响应于从开放流控制器接收新的流表项,使用新的流表项更新流表中存储的转化的流表项;并且所述数据报文处理模块还被配置为响应于接收到新的数据报文,按照流表中存储的新的流表项对该新的数据报文进行处理。
在一种实施方式中,所述转化模块被进一步配置为对特定类型的数据报文,将该类型的数据报文对应的传统模式的至少一个转发表的对应表项串联起来,形成该类型的数据报文对应的一条流表项。这里,数据报文的类型包括:L2报文、L3报文、多协议标签转换报文以及其它类型的报文。
在一种实施方式中,从传统模式切换到开放流模式包括从独立模式切换到开放流模式,并且从独立模式切换到开放流模式是从该路由交换设备被激活为开放流模式开始的。在进一步的实施方式中,该设备还包括(图4未示出):连接建立及传送模块,被配置为响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,与开放流控制器建立连接,并将转化的流表项发送给该开放流控制器。优选地,所述新的流表项是根据所述转化的流表项生成的。
在一种实施方式中,从传统模式切换到开放流模式包括从非独立模式切换到开放流模式,并且从非独立模式切换到开放流模式是从已经与开放流控制器失去连接的路由交换设备与该开放流控制器重新建立连接开始的。在进一步的实施方式中,该设备还包括(图4未示出):传送模块,被配置为响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,将转化的流表项发送给该开放流控制器。在更进一步的实施方式中,新的流表项是根据所述转化的流表项生成的。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种用于路由交换设备使用的方法,包括:
响应于该路由交换设备要从传统模式切换到开放流模式,执行如下步骤:
将传统模式的转发表的表项转化为开放流模式的流表项;
将转化的流表项存储在该路由交换设备的流表中;以及
响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。
2.根据权利要求1所述的方法,该方法还包括:
响应于从开放流控制器接收新的流表项,使用新的流表项更新流表中存储的转化的流表项;
响应于接收到新的数据报文,按照流表中存储的新的流表项对该新的数据报文进行处理。
3.根据权利要求1所述的方法,其中将传统模式的转发表的表项转化为开放流模式的流表项包括:
对特定类型的数据报文,将该类型的数据报文对应的传统模式的至少一个转发表的对应表项串联起来,形成该类型的数据报文对应的一条流表项。
4.根据权利要求3所述的方法,其中数据报文的类型包括:L2报文、L3报文、多协议标签转换报文以及其它类型的报文。
5.根据权利要求1-4之一所述的方法,其中从传统模式切换到开放流模式包括从独立模式切换到开放流模式,并且从独立模式切换到开放流模式是从该路由交换设备被激活为开放流模式开始的。
6.根据权利要求5所述的方法,该方法还包括:响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,与开放流控制器建立连接,并将转化的流表项发送给该开放流控制器。
7.根据权利要求1-4之一所述的方法,其中从传统模式切换到开放流模式包括从非独立模式切换到开放流模式,并且从非独立模式切换到开放流模式是从已经与开放流控制器失去连接的路由交换设备与该开放流控制器重新建立连接开始的。
8.根据权利要求7所述的方法,其中还包括:响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,将转化的流表项发送给该开放流控制器。
9.根据权利要求2所述的方法,其中所述新的流表项是根据转化的流表项生成的。
10.一种用于路由交换设备使用的设备,包括:
转化模块,被配置为响应于该路由交换设备要从传统模式切换到开放流模式,将传统模式的转发表的表项转化为开放流模式的流表项;
存储模块,被配置为将转化的流表项存储在该路由交换设备的流表中;以及
数据报文处理模块,被配置为响应于接收到数据报文,按照流表中存储的转化的流表项对该数据报文进行处理。
11.根据权利要求10所述的设备,该设备还包括:
替换模块,被配置为响应于从开放流控制器接收新的流表项,使用新的流表项更新流表中存储的转化的流表项;
并且所述数据报文处理模块还被配置为响应于接收到新的数据报文,按照流表中存储的新的流表项对该新的数据报文进行处理。
12.根据权利要求10所述的设备,其中所述转化模块被进一步配置为对特定类型的数据报文,将该类型的数据报文对应的传统模式的至少一个转发表的对应表项串联起来,形成该类型的数据报文对应的一条流表项。
13.根据权利要求11所述的设备,其中数据报文的类型包括:L2报文、L3报文、多协议标签转换报文以及其它类型的报文。
14.根据权利要求10-13之一所述的设备,其中从传统模式切换到开放流模式包括从独立模式切换到开放流模式,并且从独立模式切换到开放流模式是从该路由交换设备被激活为开放流模式开始的。
15.根据权利要求12所述的设备,该设备还包括:
连接建立及传送模块,被配置为响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,与开放流控制器建立连接,并将转化的流表项发送给该开放流控制器。
16.根据权利要求10-13之一所述的设备,其中从传统模式切换到开放流模式包括从非独立模式切换到开放流模式,并且从非独立模式切换到开放流模式是从已经与开放流控制器失去连接的路由交换设备与该开放流控制器重新建立连接开始的。
17.根据权利要求16所述的设备,其中还包括:
传送模块,被配置为响应于将传统模式的转发表的表项转化为开放流模式的流表项转化完毕,将转化的流表项发送给该开放流控制器。
18.根据权利要求11所述的设备,其中所述新的流表项是根据转化的流表项生成的。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410230463.7A CN105450525B (zh) | 2014-05-28 | 2014-05-28 | 用于路由交换设备使用的方法和设备 |
US14/711,932 US9699063B2 (en) | 2014-05-28 | 2015-05-14 | Transitioning a routing switch device between network protocols |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410230463.7A CN105450525B (zh) | 2014-05-28 | 2014-05-28 | 用于路由交换设备使用的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105450525A CN105450525A (zh) | 2016-03-30 |
CN105450525B true CN105450525B (zh) | 2018-05-01 |
Family
ID=54703068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410230463.7A Active CN105450525B (zh) | 2014-05-28 | 2014-05-28 | 用于路由交换设备使用的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9699063B2 (zh) |
CN (1) | CN105450525B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717150B (zh) * | 2013-12-13 | 2019-06-11 | 中兴通讯股份有限公司 | 交换装置及丢包方法 |
WO2017030531A1 (en) * | 2015-08-14 | 2017-02-23 | Hewlett Packard Enterprise Development Lp | Implementing forwarding behavior based on communication activity between a controller and a network device |
CN107404439B (zh) * | 2016-05-18 | 2020-02-21 | 华为技术有限公司 | 用于重定向数据流的方法和系统、网络设备和控制设备 |
CN108337243B (zh) * | 2017-11-02 | 2021-12-07 | 紫光恒越技术有限公司 | 报文转发方法、装置和转发设备 |
CN108039968B (zh) * | 2017-12-12 | 2021-02-23 | 深圳市泰信通信息技术有限公司 | 网络优化方法、设备及计算机可读存储介质 |
CN111147399A (zh) * | 2018-11-06 | 2020-05-12 | 中国移动通信有限公司研究院 | 一种交换机配置方法、交换机及控制器 |
US11388079B1 (en) * | 2019-09-20 | 2022-07-12 | Amazon Technologies, Inc. | Testing forwarding states of network devices |
CN111817969B (zh) * | 2020-07-17 | 2022-06-21 | 苏州浪潮智能科技有限公司 | 一种交换机交换模式调整的方法和设备 |
CN114978809B (zh) * | 2022-06-23 | 2024-01-12 | 惠州华阳通用电子有限公司 | 一种车载以太网vlan节点配置方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209121A (zh) * | 2013-03-15 | 2013-07-17 | 中兴通讯股份有限公司 | 基于开放流协议的控制面设备的发现处理方法及装置 |
CN103236945A (zh) * | 2013-04-08 | 2013-08-07 | 北京天地互连信息技术有限公司 | 基于OpenFlow的FlowVisor网络系统 |
CN103259718A (zh) * | 2013-04-18 | 2013-08-21 | 华为技术有限公司 | 一种流表转换方法和装置 |
CN103763367A (zh) * | 2014-01-17 | 2014-04-30 | 浪潮(北京)电子信息产业有限公司 | 一种云计算数据中心分布式虚拟网络设计方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8964569B2 (en) | 2011-07-04 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Generic monitoring packet handling mechanism for OpenFlow 1.1 |
US9184995B2 (en) * | 2012-04-11 | 2015-11-10 | Gigamon Inc. | Traffic visibility in an open networking environment |
CN103220225B (zh) | 2012-05-21 | 2015-07-08 | 华为技术有限公司 | 报文处理方法及设备、系统 |
US9055006B2 (en) * | 2012-06-11 | 2015-06-09 | Radware, Ltd. | Techniques for traffic diversion in software defined networks for mitigating denial of service attacks |
US20140040459A1 (en) | 2012-08-01 | 2014-02-06 | Hewlett-Packard Development Company, L.P. | System and method for data communication using a classified flow table in openflow networks |
CN102946365B (zh) | 2012-11-09 | 2015-06-17 | 清华大学 | 一种基于软件定义网络的保持流表更新一致性的方法 |
US20150326425A1 (en) * | 2014-05-12 | 2015-11-12 | Ntt Innovation Institute, Inc. | Recording, analyzing, and restoring network states in software-defined networks |
-
2014
- 2014-05-28 CN CN201410230463.7A patent/CN105450525B/zh active Active
-
2015
- 2015-05-14 US US14/711,932 patent/US9699063B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209121A (zh) * | 2013-03-15 | 2013-07-17 | 中兴通讯股份有限公司 | 基于开放流协议的控制面设备的发现处理方法及装置 |
CN103236945A (zh) * | 2013-04-08 | 2013-08-07 | 北京天地互连信息技术有限公司 | 基于OpenFlow的FlowVisor网络系统 |
CN103259718A (zh) * | 2013-04-18 | 2013-08-21 | 华为技术有限公司 | 一种流表转换方法和装置 |
CN103763367A (zh) * | 2014-01-17 | 2014-04-30 | 浪潮(北京)电子信息产业有限公司 | 一种云计算数据中心分布式虚拟网络设计方法及系统 |
Non-Patent Citations (1)
Title |
---|
《openflow switch specification version 1.3.3》;OPEN NETWORKING FOUNDATION;《openflow switch specification version 1.3.3》;20130927;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20150350056A1 (en) | 2015-12-03 |
US9699063B2 (en) | 2017-07-04 |
CN105450525A (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105450525B (zh) | 用于路由交换设备使用的方法和设备 | |
CN104243270B (zh) | 一种建立隧道的方法和装置 | |
CN105376154B (zh) | 渐进式mac地址学习 | |
CN104468384B (zh) | 一种实现多业务优先级的系统及方法 | |
JP5862769B2 (ja) | 通信システム、制御装置、通信方法及びプログラム | |
CN103227843B (zh) | 一种物理链路地址管理方法及装置 | |
CN103944828B (zh) | 一种协议报文的传输方法和设备 | |
CN107395532B (zh) | 一种基于sdn的多租户虚拟网络隔离方法 | |
CN108696434A (zh) | 一种转发数据报文的方法、设备和系统 | |
EP3069471B1 (en) | Optimized multicast routing in a clos-like network | |
CN103795644B (zh) | 策略表表项配置方法、装置及系统 | |
WO2016198012A2 (zh) | 一种通过指定路径传输流量的方法和装置 | |
CN106031104B (zh) | 数据报文的转发方法、装置及设备 | |
CN109729012A (zh) | 一种单播报文传输方法和装置 | |
CN107306222A (zh) | 标签交换路径上的流量工程隧道建立的方法和设备 | |
CN102195844A (zh) | 转发表项的管理方法和设备 | |
CN104219149B (zh) | 一种基于虚连接的报文传输方法和设备 | |
CN106716870A (zh) | 卫星设备处的本地分组交换 | |
US9258254B2 (en) | Virtual router and switch | |
EP3429139B1 (en) | Ingress gateway selection for a shortest path bridging network to support inter domain multicast routing | |
EP3160095A1 (en) | Method and device for processing mpls load sharing | |
JP4383216B2 (ja) | 通信端末 | |
US9853891B2 (en) | System and method for facilitating communication | |
KR101767439B1 (ko) | 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램 | |
CN105591917B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |