CN107968749B - 实现QinQ路由终结的方法、交换芯片及交换机 - Google Patents

实现QinQ路由终结的方法、交换芯片及交换机 Download PDF

Info

Publication number
CN107968749B
CN107968749B CN201711166432.XA CN201711166432A CN107968749B CN 107968749 B CN107968749 B CN 107968749B CN 201711166432 A CN201711166432 A CN 201711166432A CN 107968749 B CN107968749 B CN 107968749B
Authority
CN
China
Prior art keywords
message
vlan
routing
routing interface
mac address
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
Application number
CN201711166432.XA
Other languages
English (en)
Other versions
CN107968749A (zh
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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN201711166432.XA priority Critical patent/CN107968749B/zh
Publication of CN107968749A publication Critical patent/CN107968749A/zh
Application granted granted Critical
Publication of CN107968749B publication Critical patent/CN107968749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • H04L12/465Details on frame tagging wherein a single frame includes a plurality of VLAN tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种实现QinQ路由终结的方法、交换芯片及交换机。其中,方法包括:接收来自一入端路由接口的报文;当在输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址时,从输入路由接口表中获取虚拟路由转发指向信息;当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址时,从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签;根据输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址和所属VLAN的标签,以实现QinQ路由终结。本申请提供的方法能够提高QinQ终结报文的转发效率。

Description

实现QinQ路由终结的方法、交换芯片及交换机
技术领域
本申请涉及网络通信技术领域,尤其涉及一种实现QinQ路由终结的方法、交换芯片及交换机。
背景技术
目前,IEEE802.1Q中定义的虚拟局域网标签(Virtual Local Area Network TAG,VLAN TAG)域中只有12个比特,仅能表示4096个VLAN。但在实际应用中,尤其是随着以太网技术在运营商网络中的大量部署(即城域以太网),需要更多的VLAN来隔离用户,4096个VLAN远远不能满足需求,于是QinQ(802.1Q-in-802.1Q)技术应运而生。
QinQ技术是一项扩展VLAN空间的技术,通过在原有802.1Q标签(内层标签)的基础上再增加一层802.1Q标签(外层标签),使得VLAN空间扩展到4096×4096个VLAN,从而满足了网络对VLAN数量的需求。在核心网中,基于报文中的外层VLAN TAG转发报文,报文中的内层VLAN TAG被当作报文的数据部分;在边缘网中,基于报文中的内层VLAN TAG转发报文。
其中,在QinQ技术和核心网对接时,需要进行QinQ路由终结。QinQ路由终结是指对QinQ报文的双层VLAN TAG进行识别,然后根据后续的转发行为对双层VLAN TAG进行剥离或继续传送的过程。现有的QinQ路由终结,一般都是由软件实现。例如,由路由器通过其中央处理单元(Central Processing Unit,CPU)或网络处理器(Network Processor,NP)以软件方式实现。其中,软件实现方式灵活,但引入了额外的处理负担,转发效率低,难以支持高带宽的使用场景。
发明内容
本申请的多个方面提供一种实现QinQ路由终结的方法、交换芯片及交换机,用以提高QinQ路由终结的效率,可支持高带宽的使用场景。
本申请实施例提供一种实现QinQ路由终结的方法,包括:
接收来自一入端路由接口的报文,所述报文带有虚拟局域网VLAN标签;
查找入端路由接口对应的输入路由接口表,当在输入路由接口表中查找到所述报文中的外层VLAN标签和目的介质访问控制MAC地址时,从输入路由接口表中获取虚拟路由转发指向信息;
查找虚拟路由转发信息表,当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址时,从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签;
根据所述输出路由接口表索引查找对应的输出路由接口表,以获取所述报文对应的出端路由接口的MAC地址和所属VLAN的标签;
将所述报文中的源MAC地址和外层VLAN标签分别替换为所述出端路由接口的MAC地址和所属VLAN的标签,并将所述报文中的目的MAC地址和内层VLAN的标签分别替换为所述报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
本申请实施例还提供一种交换芯片,包括:存储单元、总线接口以及动作执行单元;
所述总线接口,用于接收来自一入端路由接口的报文并送入所述动作执行单元,所述报文带有虚拟局域网VLAN标签;
所述存储单元,用于存储所述入端路由接口对应的输入路由接口表、虚拟路由转发信息表以及输出路由接口表;
所述动作执行单元,耦合至所述存储单元和所述总线接口,用于:
查找所述入端路由接口对应的输入路由接口表,当在所述输入路由接口表中查找到所述报文中的外层VLAN标签和目的MAC地址时,从所述输入路由接口表中获取虚拟路由转发指向信息;
查找虚拟路由转发信息表,当在所述虚拟路由转发信息表中查找到所述虚拟路由转发指向信息和所述报文中的目的IP地址时,从所述虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签;
根据所述输出路由接口表索引查找对应的输出路由接口表,以获取所述报文对应的出端路由接口的MAC地址和所属VLAN的标签;
将所述报文中的源MAC地址和外层VLAN标签分别替换为所述出端路由接口的MAC地址和所属VLAN的标签,并将所述报文中的目的MAC地址和内层VLAN的标签分别替换为所述报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
本申请实施例还提供一种交换机,包括上述实施例提供的交换芯片。
在本申请实施例中,基于交换芯片的可编程特性,通过编程后的交换芯片依次查找输入路由接口表、虚拟路由转发信息表以及输出路由接口表,获得对报文进行QinQ路由终结所需的信息,进而基于所获得的信息实现QinQ路由终结,实现了一种基于硬件的QinQ路由终结方案,相比于软件的方式,交换芯片具有高速转发特性,有效提高了实现QinQ路由终结的效率,进而提高了QinQ终结报文的转发效率,可支持高带宽的使用场景。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请一实施例提供的一种QinQ路由终结的网络拓扑图;
图1b为本申请一实施例提供的另一种QinQ路由终结的网络拓扑图;
图1c为本申请一实施例提供的又一种QinQ路由终结的网络拓扑图;
图2为本申请一实施例提供的QinQ路由终结的方法流程示意图;
图3a为本申请一实施例提供的终端设备M向第一接入层设备12发送的报文的二层、三层报文头的主要字段示意图;
图3b为本申请一实施例提供的第一接入层设备12向第一汇聚层14发送的报文的二层、三层报文头的主要字段示意图;
图3c为本申请一实施例提供的第一汇聚层14向核心层设备11发送的报文的二层、三层报文头的主要字段示意图;
图3d为本申请一实施例提供的终结处理后的报文的二层、三层报文头的主要字段示意图;
图4为本申请一实施例提供的一种实现QinQ路由终结的流水线示意图;
图5为本申请一实施例提供的另一种实现QinQ路由终结的流水线示意图;
图6为本申请一实施例提供的交换芯片的结构示意图;
图7为本申请一实施例提供的交换机的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1a为本申请一实施例提供的一种QinQ路由终结的网络拓扑图。如图1a所示,网络10包括核心层设备11、第一接入层设备12、第二接入层设备13、第一汇聚层设备14、第二汇聚层设备15、终端设备16和服务器17。
其中,终端设备16可以有一个或多个,分别与第一接入层设备12的一个或多个路由接口连接。其中,第一接入层设备12的同一路由接口可以连接一个或多个终端设备16。第一接入层设备12的一个路由接口属于一个VLAN,且一个路由接口可以包括至少一个物理出接口。其中,第一接入层设备12上与终端设备16连接的路由接口可以是一个,也可以是多个。如图1a所示,假设终端设备16为三个,且分别与第一接入层设备12上的不同路由接口连接,假设这些路由接口分别属于VLAN 11、VLAN 12和VLAN 13。其中,与路由接口连接的终端设备16与该路由接口属于同一VLAN。例如,与属于VLAN 11的路由接口连接的终端设备16属于VLAN 11;与属于VLAN 12的路由接口连接的终端设备16属于VLAN 12;与属于VLAN 13的路由接口连接的终端设备16属于VLAN 13。
第一接入层设备12与第一汇聚层设备14通信连接,第一汇聚层设备14与核心层设备11通信连接。其中,核心层设备11上连接第一汇聚层设备14的路由接口与第一汇聚层设备14上连接核心层设备11的路由接口属于同一VLAN,例如,假设核心层设备11上连接第一汇聚层设备14的路由接口属于VLAN 100,则第一汇聚层设备14上连接核心层设备11的路由接口也属于VLAN 100。
其中,服务器17可以有一个或多个,分别与第二接入层设备13的一个或多个路由接口连接。其中,第二接入层设备13的同一路由接口可以连接一个或多个服务器17。同理,第二接入层设备13的一个路由接口属于一个VLAN,且一个路由接口可以包括至少一个物理出接口。其中,第二接入层设备13上与服务器17连接的路由接口可以是一个,也可以是多个。如图1a所示,假设服务器17为三个,且分别与第二接入层设备13连接,假设这些路由接口分别属于VLAN 21,VLAN 22和VLAN 23。其中,与路由接口连接的服务器17与该路由接口属于同一VLAN。例如,与属于VLAN 21的路由接口连接的服务器17属于VLAN 21;与属于VLAN22的路由接口连接的服务器17属于VLAN 22;与属于VLAN 23的路由接口连接的服务器17属于VLAN 23。
第二接入层设备13与第二汇聚层设备15通信连接,第二汇聚层设备15与核心层设备11通信连接。其中,核心层设备11上连接第二汇聚层设备15的路由接口与第二汇聚层设备15上连接核心层设备11的路由接口属于同一VLAN。例如,假设核心层设备11上连接第二汇聚层设备15的路由接口属于VLAN 200,则第二汇聚层设备15上连接核心层设备11的路由接口也属于VLAN 200。
基于图1a所示的网络拓扑图,对于终端设备16向服务器17发送的上行报文来说,第一接入层设备12接收终端设备16发送的报文,并根据终端设备16所属VLAN的标识(VLANID),在报文的二层报文头加入内层VLAN标签。可选地,内层VLAN标签为4个字节,包括标签协议标识(Tag Protocol Identifier,TPID)、用户优先级(User Priority)、标准格式指示位(Canonical Format Indicator,CFI)和VLAN ID。结合图1a所示网络,上行报文的内层VLAN标签中的VLAN ID可以是VLAN 11、VLAN 12或VLAN 13。第一接入层设备12在报文中加入内层VLAN标签之后,可将加入内层VLAN标签的报文发送至第一汇聚层设备14。第一汇聚层设备14在该报文的二层报文头内继续加入外层VLAN标签,例如VLAN 100,从而形成带有双VLAN标签的报文,即上行QinQ报文。
其中,QinQ报文的二层头除了包括内层VLAN标签和外层VLAN标签之外,还会包括源MAC地址以及目的MAC地址,主要用于二层转发。可选地,如果QinQ报文是IP报文,则该QinQ报文还可以包括三层报文头,三层报文头主要包括目的IP地址、源IP地址等信息,主要用于三层转发。
第一汇聚层设备14将上行QinQ报文发送至核心层设备11。在核心层设备11上需要针对上行QinQ报文实现QinQ路由终结。其中QinQ路由终结是指剥掉(这里的剥掉主要是识别的意思)报文携带的VLAN标签(例如双层VLAN标签),基于报文中的目的IP地址对报文进行三层路由转发,即匹配报文对应的出端路由接口并将报文从出端路由接口发出的过程。
同理,对于服务器17向终端设备16发送的下行报文来说,第二接入层设备13接收服务器17发送的报文,并根据服务器17所属VLAN的VLAN ID,在报文的二层报文头加入内层VLAN标签。结合图1a所示网络,下行报文的内层VLAN标签中的VLAN ID可以是VLAN 21,VLAN22或VLAN 23。第二接入层设备13在报文中加入内层VLAN标签之后,可将加入内层VLAN标签的报文发送至第二汇聚层设备15。第二汇聚层设备15在该报文的二层报文头内继续加入外层VLAN标签,例如VLAN 200,从而形成带有双VLAN标签的下行QinQ报文。第二汇聚层设备15将上行QinQ报文发送至核心层设备11。在核心层设备11上需要针对下行QinQ报文实现QinQ路由终结。
图1b为本申请一实施例提供的另一种QinQ路由终结的网络拓扑图。如图1b所示,网络20包括核心层设备21、第一接入层设备22、第二接入层设备23、汇聚层设备24、终端设备25和服务器26。与图1a不同的是,图1b中,核心层设备21面向服务器26一侧,只有第二接入层设备23,没有汇聚层设备,且服务器26和第二接入层设备23位于同一VLAN内,例如VLAN200。图1b中,核心层设备21面向终端设备25一侧,可参见图1a所示实施例中的描述,在此不再赘述。在图1b所示网络20中,对于终端设备25向服务器26发送的上行报文来说,带有双层VLAN标签属于QinQ报文,而对于服务器26向终端设备25发送的下行报文来说,仅带有单层VLAN标签,可称为Dot1q报文。在核心层设备21上需要针对QinQ报文和Dot1q报文实现QinQ路由终结。
图1c为本申请一实施例提供的又一种QinQ路由终结的网络拓扑图。如图1c所示,网络30包括核心层设备31、第一接入层设备32、第二接入层设备33、汇聚层设备34、终端设备35和服务器36。与图1a不同的是,图1c中,核心层设备31面向终端设备35的一侧只有第一接入层设备32,没有汇聚层设备,且终端设备35和第一接入层设备32位于同一VLAN内,例如VLAN 100。在图1c所示网络30中,对于终端设备35向服务器36发送的上行报文来说,仅带有单层VLAN标签,可称为Dot1q报文,对于服务器36向终端设备35发送的下行报文来说,带有双层VLAN标签属于QinQ报文。在核心层设备31上需要针对QinQ报文和Dot1q报文实现QinQ路由终结。
在上述各种网络结构中,无论是QinQ报文还是Dot1q报文,核心层设备均要对报文进行QinQ路由终结。为此,本申请实施例提供一种基于硬件实现QinQ路由终结的方法。该方法的主要思想是:在核心层设备内使用可编程的交换芯片,例如ASIC芯片,并将定义QinQ路由终结流水线的配置文件配置到交换芯片中,以便将QinQ路由终结流水线固化到交换芯片中;进而在QinQ报文或者Dot1q报文进入交换芯片后,可按照QinQ路由终结流水线对进入交换芯片的报文进行QinQ路由终结。本申请实施例基于交换芯片的高速转发特性,能够有效提高实现QinQ路由终结的效率,可提高QinQ终结报文的转发效率,能够支持高带宽的使用场景。本申请实施例提供的方法可以应用在图1a-图1c所示网络拓扑中,针对QinQ报文或Dot1q报文实现QinQ路由终结。
下面通过详细实施例对基于可编程的交换芯片对QinQ报文或Dot1q报文进行QinQ路由终结处理的流程进行详细说明。如图2所示,一种实现QinQ路由终结的方法包括:
101、接收来自一入端路由接口的报文,该报文带有VLAN标签。
102、查找上述入端路由接口对应的输入路由接口表,当在该输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址时,从输入路由接口表中获取虚拟路由转发指向信息。
103、查找虚拟路由转发信息表,当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址时,从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。
104、根据输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址和所属VLAN的标签。
105、将报文中的源MAC地址和外层VLAN标签分别替换为出端路由接口的MAC地址和所属VLAN的标签,并将报文中的目的MAC地址和内层VLAN标签分别替换为报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
在步骤101中,入端路由接口指报文进入核心层设备的路由接口,该报文可以是上行报文也可以是下行报文。如图1a所示,如果该报文是上行报文,则入端路由接口可以是核心层设备11连接第一汇聚层设备14的路由接口;如果该报文是下行报文,则入端路由接口可以是核心层设备11连接第二汇聚层设备15的路由接口。报文带有的VLAN标签包括外层VLAN标签,可选地,该报文还可以带有内层VLAN标签。对于不包括内层VLAN标签的情况,内层VLAN标签可以设置为0。
在本实施例中,可以根据报文中的目的MAC地址和外层VLAN标签,判断该报文是否需要进行QinQ路由终结。如果报文中的目的MAC地址是入端路由接口的MAC地址,且报文中的外层VLAN标签是入端路由接口所属VLAN的标签,则该报文需要进行QinQ路由终结。基于此,可以预先为核心层设备上的每个路由接口形成输入路由接口表,并在输入路由接口表中配置该路由接口的MAC地址、所属VLAN的标签和虚拟路由转发指向信息。
基于上述,在步骤102中,查找入端路由接口对应的输入路由接口表,当在输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址时,说明该报文需要QinQ路由终结,则从输入路由接口表中获取虚拟路由转发指向信息。步骤102实质是识别报文携带的VLAN标签的过程。
在对报文进行QinQ路由终结的过程中,需要将报文中的源MAC地址和外层VLAN标签分别替换为出端路由接口的MAC地址和所属VLAN的标签,并将报文中的目的MAC地址和内层VLAN标签分别替换为报文目的端的MAC地址和所属VLAN的标签,基于此,需要获取出端路由接口的MAC地址和所属VLAN的标签,以及报文目的端的MAC地址和所属VLAN的标签。其中,报文目的端是指需要接收报文的设备。结合图1a-图1c所示网络,以终端设备向服务器发送的报文为例,报文的目的端为服务器;以服务器向终端设备发送的报文为例,报文的目的端为终端设备。
本实施例中,预先在交换芯片中配置虚拟路由转发信息表和输出路由接口表。在虚拟路由转发信息表中存储虚拟路由转发指向信息、报文目的端的IP地址,输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。在输出路由接口表中存储输出路由接口表索引、出端路由接口的MAC地址和所属VLAN的标签。值得说明的是,虚拟路由转发信息表中存储的报文目的端的IP地址不包括交换芯片所在的核心层设备的IP地址。
基于上述,在步骤103中,查找虚拟路由转发信息表,当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址时,说明该报文可以按照虚拟路由转发信息表中的相应信息进行三层路由转发,则从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。其中,输出路由接口表索引与输出路由接口表具有一一对应关系,是输出路由接口表的唯一标识。基于此,在步骤104中,可继续根据从虚拟路由转发信息表中获取的输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址和所属VLAN的标签。如果在虚拟路由转发信息表中未查找到虚拟路由转发指向信息和报文中的目的IP地址,可将该报文丢弃或者上报至核心层设备的CPU,以进行后续处理。
接着,将报文中的目的MAC地址和内层VLAN标签分别替换为报文目的端的MAC地址和所属VLAN的标签,并将报文中的源MAC地址和外层VLAN标签分别替换为出端路由接口的MAC地址和所属VLAN的标签,实现QinQ路由终结。
步骤103-步骤105实质上是基于报文中的目的IP地址对报文进行三层路由转发的过程,即匹配报文对应的出端路由接口并将报文从出端路由接口发出的过程。
值得说明的是,可以在获取到出端路由接口的MAC地址和所属VLAN的标签,以及报文目的端的MAC地址和所属VLAN的标签之后,再统一将报文中的源MAC地址、目的MAC地址、内层VLAN标签和外层VLAN标签替换掉;或者,也可以在获取到报文目的端的MAC地址和所属VLAN的标签之后,先行将报文中的目的MAC地址和内层VLAN标签替换掉;以及在获取到报文对应的出端路由接口的MAC地址和所属VLAN的标签之后,再将报文中的源MAC地址和外层VLAN标签替换掉。
下面以图1a中属于VLAN 11的终端设备M向图1a中属于VLAN 21的服务器N发送报文为例,详细说明本实施例提供的QinQ路由终结方法。
如图1a所示,终端设备M的MAC地址假如为AA-AA-AA-AA,IP地址为192.168.33.49。服务器N的MAC地址假如为BB-BB-BB-BB,IP地址为192.168.1.102。核心层设备11与第一汇聚层设备14连接的路由接口的MAC地址为CC-CC-CC-CC,该接口所属VLAN的VLAN ID为VLAN100。核心层设备11与第二汇聚层设备15连接的路由接口的MAC地址为DD-DD-DD-DD,所属VLAN的VLAN ID为VLAN 200。
其中,如图3a所示,终端设备M向第一接入层设备12发送的报文的二层报文头主要包括源MAC地址AA-AA-AA-AA和目的MAC地址CC-CC-CC-CC,其它字段未示出。相应地,终端设备M向第一接入层设备12发送的报文的三层报文头主要包括源IP地址192.168.33.49和目的IP地址192.168.1.102,其它字段未示出。
该报文进入第一接入层设备12后,第一接入层设备12根据与终端设备M连接的路由接口所属的VLAN 11在报文的二层报文头中加入内层VLAN标签VLAN 11。如图3b所示,第一接入层设备12向第一汇聚层设备14发送的报文的二层报文头主要包括源MAC地址AA-AA-AA-AA、目的MAC地址CC-CC-CC-CC和内层VLAN标签,其它字段未示出。其中,内层VLAN标签包括标签协议标识(Tag Protocol Identifier,TPID)、优先级(Priority,PRI)、规范格式指示(Canonical Format Indicator,CFI)和VLAN 11。相应地,该报文的三层报文头主要包括源IP地址192.168.33.49和目的IP地址192.168.1.102,其它字段未示出。
第一接入层设备12继续将该报文发送至第一汇聚层设备14,第一汇聚层设备14根据所属的VLAN 100在报文的二层报文头中加入外层VLAN标签,形成QinQ报文。如图3c所示,第一汇聚层设备14向核心层设备11发送的报文的二层报文头主要包括源MAC地址AA-AA-AA-AA、目的MAC地址CC-CC-CC-CC、内层VLAN标签和外层VLAN标签,其它字段未示出。其中,外层VLAN标签包括TPID、PRI、CFI和VLAN 100。相应地,该报文的三层报文头主要包括源IP地址192.168.33.49和目的IP地址192.168.1.102,其它字段未示出。
该报文从MAC地址为CC-CC-CC-CC的路由接口(入端路由接口)进入交换芯片。交换芯片中预先配置有MAC地址为CC-CC-CC-CC的路由接口对应的输入路由接口表。交换芯片查找入端路由接口对应的输入路由接口表,当在该输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址CC-CC-CC-CC时,从该输入路由接口表中获取虚拟路由转发指向信息,意味着该报文需要执行QinQ路由终结。然后,查询虚拟路由转发信息表,当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址:192.168.1.102时,从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址:BB-BB-BB-BB和所属VLAN的标签,该VLAN标签包括VLAN 21。接着,根据输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址:DD-DD-DD-DD,和所属VLAN的标签,该VLAN标签中的VLAN ID为VLAN 200。
然后,将报文中的源MAC地址AA-AA-AA-AA和外层VLAN标签VLAN100分别替换为出端路由接口的MAC地址DD-DD-DD-DD和所属VLAN的标签VLAN 200,并将报文中的目的MAC地址CC-CC-CC-CC和内层VLAN标签VLAN 11分别替换为报文目的端的MAC地址BB-BB-BB-BB和所属VLAN的标签VLAN 21,以实现QinQ路由终结。终结处理后的报文的二层报文头主要包括源MAC地址DD-DD-DD-DD、目的MAC地址BB-BB-BB-BB、内层VLAN标签和外层VLAN标签,其他字段未示出。其中,内层VLAN标签包括TPID、PRI、CFI和VLAN 21,外层VLAN标签包括TPID、PRI、CFI和VLAN 200。该报文的三层报文头主要包括源IP地址192.168.33.49和目的IP地址192.168.1.102,其它字段未示出。
值得说明的是,当本实施例提供的方法应用在如图1b所示的网络架构中对上行报文进行QinQ路由终结时,由于核心侧设备面向服务器的一侧没有汇聚层设备,发往服务器的报文只需带有单层VLAN标签,则可将虚拟路由转发信息表中,报文目的端所属VLAN的标签配置为0,基于此,可以将报文中的外层VLAN标签替换为出端路由接口所属VLAN的标签,将报文中的内层VLAN标签替换为0,并将报文中的源MAC地址和目的MAC地址分别替换为出端路由接口的MAC地址和报文目的端的MAC地址,从而实现普通路由转发。
当本实施例提供的方法应用在如图1c所示的网络架构中对下行报文进行QinQ路由终结时,由于核心侧设备面向终端设备的一侧没有汇聚层设备,发往终端设备的报文只需带有单层VLAN的标签即可,则可将虚拟路由转发信息表中,报文目的端所属VLAN的标签配置为0,基于此,可以将报文中的外层VLAN标签替换为出端路由接口所属VLAN的标签,,将报文中的内层VLAN标签替换为0,并将报文中的源MAC地址和目的MAC地址分别替换为出端路由接口的MAC地址和报文目的端的MAC地址,从而实现普通路由转发。
本实施例中,基于交换芯片的可编程特性,通过编程后的交换芯片依次查找输入路由接口表、虚拟路由转发信息表以及输出路由接口表,获得对报文进行QinQ路由终结所需的信息,进而基于所获得的信息实现QinQ路由终结,实现了一种基于硬件的QinQ路由终结方案,相比于软件的方式,交换芯片具有高速转发特性,有效提高了QinQ路由终结的效率,可支持高带宽的使用场景。
进一步地,本实施例中,将报文目的端所属VLAN的标签配置到虚拟路由转发信息表中,并将报文的内层VLAN标签替换为报文目的端所属VLAN的标签,实现对于带有双层VLAN标签的QinQ报文的QinQ路由终结处理,进而使得交换芯片除了支持普通路由转发之外,还支持QinQ路由终结路由功能。
在一些示例性实施例中,虚拟路由转发信息表可以包括:前缀表和下一跳表。基于此,如图4所示,在本申请另一实施例中,可通过可编程的交换芯片依次查询输入路由接口表、前缀表、下一跳表和输出路由接口表来实现QinQ路由终结。
如图4所示,在输入路由接口表中,存储有入端路由接口所属VLAN的标签、MAC地址以及虚拟路由转发标识(Virtual Routing Forwarding Identity,VRF-ID)。其中,入端路由接口的MAC地址(报文中的目的MAC地址)和所属VLAN的标签可作为该表的查询关键字(key),VRF-ID可作为该查询key对应的值(value)。在前缀表中,存储有报文目的端的IP地址、下一跳索引和动作信息。其中,VRF-ID和报文中的目的IP地址可作为前缀表的查询key,下一跳索引可作为前缀表对应的value。下一跳表中存储有报文目的端的MAC地址、所属VLAN的标签和输出路由接口表索引。其中,下一跳索引可作为下一跳表的查询key,报文目的端的MAC地址、所属VLAN的标签和输出路由接口表索引可作为该查询key对应的value。在输出路由接口表中,存储有输出路由接口表索引、出端路由接口的MAC地址和所属VLAN的标签。其中,输出路由接口表索引可作为输出路由接口表的查询key,出端路由接口的MAC地址和所属VLAN的标签可作为该查询key对应的value。如图4所示,上述4张表的每张表中,虚线上面的是对应本张表的查询key,虚线下面的是与本张表的查询key对应的value。值得说明的是,前缀表中存储的报文目的端的IP地址包括核心层设备的IP地址和核心层设备所在网络中其他设备的IP地址,例如图1a中终端设备M的IP地址、服务器N的IP地址。
当报文进入交换芯片后,交换芯片首先查找入端路由接口对应的输入路由接口表,当在输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址时,从输入路由接口表中获取虚拟路由转发指向信息。其中,虚拟路由转发指向信息为指向前缀表的VRF-ID。然后,查找前缀表,当在前缀表中查找到VRF-ID和报文中的目的IP地址时,从前缀表中获取下一跳索引和动作信息。其中,报文的动作信息包括丢弃、上报和转发三种。若在前缀表中未查找到报文中的目的IP地址,确定报文的动作信息为丢弃。若报文中的目的IP地址与交换芯片所在的核心层设备的IP地址相同,则确定报文的动作信息为上报协议栈。若在前缀表中查找到报文中的目的IP地址,且报文中的目的IP地址不是核心层设备的IP地址,则确定报文的动作信息为转发。
值得说明的是,若报文的动作信息为丢弃或上报,则该报文中的目的IP地址不对应下一跳索引,即不需要继续查询下一跳表。若报文的动作信息为转发,则对应下一跳索引,可根据报文目的端的IP地址和下一跳索引继续查询下一跳表。
其中,根据下一跳索引查找对应的下一跳表,可以获取输出路由接口表索引以及报文目的端的MAC地址(目的MAC地址)和所属VLAN的标签(内层VLAN标签)。可选地,下一跳表中还存储有出接口的标识,即Port ID,该出接口是报文从核心层设备转发出去的物理接口。基于此,还可以根据下一跳索引查找下一跳表,以得到报文对应的出接口的标识。
接着,根据输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址(源MAC地址)和所属VLAN的标签(外层VLAN标签)。
继而,将报文中的源MAC地址和外层VLAN标签分别替换为出端路由接口的MAC地址和所属VLAN的标签,并将报文中的目的MAC地址和内层VLAN标签分别替换为报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
在实现QinQ路由终结之后,交换芯片根据报文对应的出接口的标识,将报文从出接口转发出去。
在上述实施例或下述实施例中,输入接口表中的信息和输出接口表中的信息可预先通过命令行的方式配置。可选地,在接收来自一入端路由接口的报文之前,可以通过命令行的方式对核心层设备的输入接口表中的信息和输出接口表中的信息进行配置。交换芯片响应于命令行配置指令,在输入路由接口表中配置入端路由接口所属VLAN的标签和MAC地址以及虚拟路由转发指向信息,并在输出路由接口表中配置输出路由接口表索引以及出端路由接口的MAC地址和所属VLAN的标签。
其中,下一跳表中的信息和前缀表中的信息由CPU根据ARP报文生成。交换芯片根据CPU的配置命令,选定下一跳表,在下一跳表中配置输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签,并在前缀表中配置报文目的端的IP地址、下一跳索引和动作信息;其中,配置命令是CPU基于来自入端路由接口的ARP报文生成的。
当终端设备或者服务器需要向对端发送数据报文时,需要查找本地的ARP表,以获取对端的MAC地址。若ARP表中没有对端的MAC地址时,需要发起ARP打通,即发送ARP请求报文,并接收ARP应答报文。由于终端设备和服务器分属于不同的局域网,服务器或者终端设备发送的请求ARP报文以及应答ARP报文会先发送到的核心层设备,并由核心层设备进行转发。核心层设备中的CPU接收到ARP请求报文和ARP应答报文后,会解析ARP请求报文和ARP应答报文以学习到服务器的MAC地址、服务器所属VLAN的标签、终端设备的MAC地址、终端设备所属VLAN的标签,以及ARP请求报文和ARP应答报文转发出的出接口的标识。
下面以终端设备向服务器发送ARP请求报文为例,详细说明核心层设备学习的过程。
终端设备的ARP表中没有服务器的MAC地址时,终端设备会向核心层设备的入端路由接口发送ARP请求报文,ARP请求报文中带有终端设备的MAC地址、所属VLAN的标签和服务器的IP地址。核心层设备中的CPU会学习到终端设备的MAC地址、所属VLAN的标签、核心层设备面向终端设备的出接口的标识等信息,并向服务器转发ARP请求报文。服务器接收到ARP请求报文后,将ARP请求报文中的目的IP地址与本地IP地址比较,若相同,则根据本地MAC地址、本地IP地址、所属VLAN的标签生成ARP应答报文,并将ARP应答报文发送至核心层设备。核心层设备中的CPU接收到ARP应答报文,并从ARP报文中学习到服务器的MAC地址、所属VLAN的标签、核心层设备面向服务器的出接口的标识等信息,并将ARP应答报文转发至终端设备。至此,核心层设备根据ARP请求报文和ARP应答报文学习到服务器的MAC地址、所属VLAN的标签,终端设备的MAC地址、所属VLAN的标签,以及核心层设备面向服务器的出接口的标识(即ARP请求报文的出接口的标识)和核心层设备面向终端设备的出接口的标识(即ARP应答报文的出接口的标识)等信息。
然后,CPU根据学习到的上述路由信息生成配置命令,该配置命令中携带有报文目的端的MAC地址、IP地址、所属VLAN的标签以及动作信息。基于此,交换芯片从对应的物理存储空间中,选定一张空白的下一跳表。在下一跳表中配置输出路由接口表索引,并将从ARP应答报文中学习到的服务器的MAC地址和所属VLAN的标签作为报文目的端的MAC地址和所属VLAN的标签配置到下一跳表中;然后将ARP请求报文中的目的IP地址作为报文目的端的IP地址,联合下一跳索引和动作信息配置到前缀表中。进一步,还可以将ARP请求报文的出接口的标识作为报文的出接口的标识配置到下一跳表中。
在一些实施例中,虚拟路由转发信息表可实现为路由表,路由表是指路由器、交换机或者其他互联网网络设备上存储的路由信息表,该表中存有到达特定网络终端的路径。基于此,如图5所示,在本申请又一实施例中,可通过可编程的交换芯片依次查询输入路由接口表、路由表和输出路由接口表来实现QinQ路由终结。
如图5所示,在输入路由接口表中,存储有入端路由接口所属VLAN的标签、MAC地址以及虚拟路由转发指向信息。虚拟路由转发指向信息为指向路由表的路由表标识。其中,入端路由接口的MAC地址(报文中的目的MAC地址)和所属VLAN的标签可作为该表的查询key,路由表标识可作为该查询key对应的value。在路由表中,存储有路由表标识、报文目的端的IP地址、输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签之间的映射关系。其中,路由表标识和报文中的目的IP地址可作为该表的查询key,输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签可作为该查询key对应的value。在输出路由接口表中,存储有输出路由接口表索引、出端路由接口的MAC地址和所属VLAN的标签。其中,输出路由接口表索引可作为输出路由接口表的查询key,出端路由接口的MAC地址和所属VLAN的标签可作为该查询key对应的value。如图5所示,上述3张表的每张表中,虚线上面的是对应本张表的查询key,虚线下面的是对应本张表的value。值得说明的是,路由表中存储的报文目的端的IP地址不包括交换芯片所在的核心层设备的IP地址。
当报文进入交换芯片后,交换芯片首先查找入端路由接口对应的输入路由接口表,当在输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址时,从输入路由接口表中获取虚拟路由转发指向信息,即路由表标识。然后,查找路由表,当在路由表中查找到路由表标识和报文中的目的IP地址时,从路由表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。
可选地,路由表中还存储有出接口的标识Port ID与路由表中存储的上述路由信息之间的映射关系。基于此,当在路由表中查找到路由表标识和报文中的目的IP地址时,从路由表中获取出接口标识。
然后,根据输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址和所属VLAN的标签。将报文中的源MAC地址和外层VLAN标签分别替换为出端路由接口的MAC地址和所属VLAN的标签,并将报文中的目的MAC地址和内层VLAN标签分别替换为报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
在实现QinQ路由终结之后,交换芯片根据报文对应的出接口的标识,将报文从出接口转发出去。
在本申请各实施例中,可预先采用与交换芯片适配的编程语言,例如P4语言,编写QinQ路由终结流水线对应的代码,并对这些代码进行编译形成用于定义QinQ路由终结流水线的配置文件,并将配置文件存储在交换芯片中。基于此,在交换芯片初始化过程中,可加载预先编译成的用于定义QinQ路由终结流水线的配置文件,以将QinQ路由终结流水线固化到交换芯片中。
其中,P4是一种声明式编程语言,它主要用于编程数据包的处理程序以下达指令给数据转发平面的设备,例如交换机、网卡、防火墙、过滤器等。将QinQ路由终结流水线固化到交换芯片中后,交换芯片在接收到报文后,将按照QinQ路由终结流水线直接对报文进行QinQ路由终结处理。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请实施例还提供一种可编程的交换芯片,如图6所示,交换芯片60包括存储单元61、总线接口62以及动作执行单元63。
总线接口62,用于接收来自一入端路由接口的报文并送入动作执行单元63,该报文带有虚拟局域网VLAN标签。可选地,该总线接口62可以是PCI-E接口。
存储单元61,用于存储入端路由接口对应的输入路由接口表、虚拟路由转发信息表以及输出路由接口表。
存储单元61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储单元(SRAM),电可擦除可编程只读存储单元(EEPROM),可擦除可编程只读存储单元(EPROM),可编程只读存储单元(PROM),只读存储单元(ROM),磁存储单元,快闪存储单元,磁盘或光盘。
动作执行单元63,耦合至存储单元61和和总线接口62,用于:
查找入端路由接口对应的输入路由接口表,当在输入路由接口表中查找到报文中的外层VLAN标签和目的MAC地址时,从输入路由接口表中获取虚拟路由转发指向信息;查找虚拟路由转发信息表,当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址时,从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签;根据输出路由接口表索引查找对应的输出路由接口表,以获取报文对应的出端路由接口的MAC地址和所属VLAN的标签;将报文中的源MAC地址和外层VLAN标签分别替换为出端路由接口的MAC地址和所属VLAN的标签,并将报文中的目的MAC地址和内层VLAN的标签分别替换为报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
在一可选实施方式中,虚拟路由转发信息表包括:前缀表和下一跳表;虚拟路由转发指向信息为指向前缀表的虚拟路由转发标识;
动作执行单元63在查找虚拟路由转发信息表,当在虚拟路由转发信息表中查找到虚拟路由转发指向信息和报文中的目的IP地址时,从虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签时,具体用于:
查找前缀表,当在前缀表中查找到虚拟路由转发标识和报文中的目的IP地址时,从前缀表中获取下一跳索引和动作信息;当动作信息为转发时,根据下一跳索引查找对应的下一跳表,以获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。
在一可选实施方式中,动作执行单元63在接收来自一入端路由接口的报文之前,还用于:
响应于命令行配置指令,在输入路由接口表中配置入端路由接口所属VLAN的标签和MAC地址以及虚拟路由转发指向信息,并在输出路由接口表中配置输出路由接口表索引以及出端路由接口的MAC地址和所属VLAN的标签;根据中央处理器CPU的配置命令,选定下一跳表,在下一跳表中配置输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签,并在前缀表中配置报文目的端的IP地址、下一跳索引和动作信息;其中,配置命令是CPU基于来自入端路由接口的地址解析协议ARP报文生成的。
在一可选实施方式中,虚拟路由转发信息表为路由表,路由表存储有路由表标识、报文目的端的IP地址、输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签之间的映射关系;虚拟路由转发指向信息为指向路由表的路由表标识。
在一可选实施方式中,存储单元61还用于:存储预先编译成的用于定义QinQ路由终结流水线的配置文件;动作执行单元63在接收来自一入端路由接口的报文之前,还用于:在交换芯片的初始化过程中,加载预先配置文件,以将所述QinQ路由终结流水线固化到动作执行单元63中。
值得说明的是,上述动作执行单元63可由多个级联的匹配动作单元(MatchAction Unit,MAU)构成。其中,每个MAU负责上述QinQ路由终结流水线中的一个查表动作。对任一MAU来说,可根据其上一MAU发送的结果进行查表操作,并将查表结果送入与其级联的下一个MAU,直至QinQ路由终结流水线结束。
本实施例基于交换芯片的可编程特性,通过编程后的交换芯片依次查找输入路由接口表、虚拟路由转发信息表以及输出路由接口表,获得对报文进行QinQ路由终结所需的信息,进而基于所获得的信息实现QinQ路由终结,实现了一种基于硬件的QinQ路由终结方案,相比于软件的方式,交换芯片具有高速转发特性,有效提高了QinQ路由终结的效率,可支持高带宽的使用场景。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由交换芯片执行的各步骤。
本申请实施例还提供一种交换机,如图7所示,该交换机70包括上述实施例提供的交换芯片60,除此之外该交换机还包括CPU 71和存储器72等部件。其中,CPU 71通过总线接口与交换芯片60、存储器72等连接。CPU 71主要实现交换机70的控制逻辑。存储器72可包括RAM、ROM、Flash等。RAM是交换机70的主存储器,存储运行配置。ROM可作为交换机70的辅助存储器,存储开机诊断程序、引导程序和操作系统软件等数据;Flash可存储系统软件的映像文件等。交换芯片60主要针对进入交换机70的带有VLAN标签的报文实现QinQ路由终结。交换芯片60的主要功能和实现结构可参见前述实施例,在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种实现QinQ路由终结的方法,其特征在于,适用于可编程的交换芯片,所述方法包括:
接收来自一入端路由接口的报文,所述报文带有虚拟局域网VLAN标签;
查找所述入端路由接口对应的输入路由接口表,当在所述输入路由接口表中查找到所述报文中的外层VLAN标签和目的介质访问控制MAC地址时,从所述输入路由接口表中获取虚拟路由转发指向信息;所述虚拟路由转发指向信息为虚拟路由转发信息表中的虚拟路由转发标识VRF-ID;
查找虚拟路由转发信息表,当在所述虚拟路由转发信息表中查找到所述虚拟路由转发指向信息和所述报文中的目的网际协议IP地址时,从所述虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签;
根据所述输出路由接口表索引查找对应的输出路由接口表,以获取所述报文对应的出端路由接口的MAC地址和所属VLAN的标签;
将所述报文中的源MAC地址和外层VLAN标签分别替换为所述出端路由接口的MAC地址和所属VLAN的标签,并将所述报文中的目的MAC地址和内层VLAN的标签分别替换为所述报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
2.根据权利要求1所述的方法,其特征在于,所述虚拟路由转发信息表包括:前缀表和下一跳表;所述虚拟路由转发指向信息为指向所述前缀表的虚拟路由转发标识;
所述查找虚拟路由转发信息表,当在所述虚拟路由转发信息表中查找到所述虚拟路由转发指向信息和所述报文中的目的网际协议IP地址时,从所述虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签,包括:
查找所述前缀表,当在所述前缀表中查找到所述虚拟路由转发标识和所述报文中的目的IP地址时,从所述前缀表中获取下一跳索引和动作信息;
当所述动作信息为转发时,根据所述下一跳索引查找对应的下一跳表,以获取所述输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。
3.根据权利要求2所述的方法,其特征在于,在接收来自一入端路由接口的报文之前,所述方法还包括:
响应于命令行配置指令,在所述输入路由接口表中配置所述入端路由接口所属VLAN的标签和MAC地址以及所述虚拟路由转发指向信息,并在所述输出路由接口表中配置所述输出路由接口表索引以及出端路由接口的MAC地址和所属VLAN的标签;
根据CPU的配置命令,选定所述下一跳表,在所述下一跳表中配置所述输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签,并在所述前缀表中配置所述报文目的端的IP地址、所述下一跳索引和动作信息;
其中,所述配置命令是所述CPU基于来自所述入端路由接口的地址解析协议ARP报文生成的。
4.根据权利要求1所述的方法,其特征在于,所述虚拟路由转发信息表为路由表,所述路由表存储有路由表标识、报文目的端的IP地址、输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签之间的映射关系;所述虚拟路由转发指向信息为指向所述路由表的路由表标识。
5.根据权利要求1-4任一项所述的方法,其特征在于,在接收来自一入端路由接口的报文之前,所述方法还包括:
在所述交换芯片的初始化过程中,加载预先编译成的用于定义QinQ路由终结流水线的配置文件,以将所述QinQ路由终结流水线固化到所述交换芯片中。
6.一种交换芯片,其特征在于,包括:存储单元、总线接口以及动作执行单元;
所述总线接口,用于接收来自一入端路由接口的报文并送入所述动作执行单元,所述报文带有虚拟局域网VLAN标签;
所述存储单元,用于存储所述入端路由接口对应的输入路由接口表、虚拟路由转发信息表以及输出路由接口表;
所述动作执行单元,耦合至所述存储单元和所述总线接口,用于:
查找所述入端路由接口对应的输入路由接口表,当在所述输入路由接口表中查找到所述报文中的外层VLAN标签和目的MAC地址时,从所述输入路由接口表中获取虚拟路由转发指向信息;所述虚拟路由转发指向信息为虚拟路由转发信息表中的虚拟路由转发标识VRF-ID;
查找虚拟路由转发信息表,当在所述虚拟路由转发信息表中查找到所述虚拟路由转发指向信息和所述报文中的目的IP地址时,从所述虚拟路由转发信息表中获取输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签;
根据所述输出路由接口表索引查找对应的输出路由接口表,以获取所述报文对应的出端路由接口的MAC地址和所属VLAN的标签;
将所述报文中的源MAC地址和外层VLAN标签分别替换为所述出端路由接口的MAC地址和所属VLAN的标签,并将所述报文中的目的MAC地址和内层VLAN的标签分别替换为所述报文目的端的MAC地址和所属VLAN的标签,以实现QinQ路由终结。
7.根据权利要求6所述的交换芯片,其特征在于,所述虚拟路由转发信息表包括:前缀表和下一跳表;所述虚拟路由转发指向信息为指向所述前缀表的虚拟路由转发标识;
所述动作执行单元具体用于:
查找所述前缀表,当在所述前缀表中查找到所述虚拟路由转发标识和所述报文中的目的IP地址时,从所述前缀表中获取下一跳索引和动作信息;
当所述动作信息为转发时,根据所述下一跳索引查找对应的下一跳表,以获取所述输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签。
8.根据权利要求7所述的交换芯片,其特征在于,所述动作执行单元还用于:
响应于命令行配置指令,在所述输入路由接口表中配置所述入端路由接口所属VLAN的标签和MAC地址以及所述虚拟路由转发指向信息,并在所述输出路由接口表中配置所述输出路由接口表索引以及出端路由接口的MAC地址和所属VLAN的标签;
根据中央处理器CPU的配置命令,选定所述下一跳表,在所述下一跳表中配置所述输出路由接口表索引以及报文目的端的MAC地址和所属VLAN的标签,并在所述前缀表中配置所述报文目的端的IP地址、所述下一跳索引和动作信息;
其中,所述配置命令是所述CPU基于来自所述入端路由接口的地址解析协议ARP报文生成的。
9.根据权利要求6-8任一项所述的交换芯片,其特征在于,所述存储单元还用于:存储预先编译成的用于定义QinQ路由终结流水线的配置文件;
所述动作执行单元还用于:在所述交换芯片的初始化过程中,加载预先所述配置文件,以将所述QinQ路由终结流水线固化到所述动作执行单元中。
10.一种交换机,其特征在于,包括权利要求6-9任一项所述的交换芯片。
CN201711166432.XA 2017-11-21 2017-11-21 实现QinQ路由终结的方法、交换芯片及交换机 Active CN107968749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711166432.XA CN107968749B (zh) 2017-11-21 2017-11-21 实现QinQ路由终结的方法、交换芯片及交换机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711166432.XA CN107968749B (zh) 2017-11-21 2017-11-21 实现QinQ路由终结的方法、交换芯片及交换机

Publications (2)

Publication Number Publication Date
CN107968749A CN107968749A (zh) 2018-04-27
CN107968749B true CN107968749B (zh) 2021-04-20

Family

ID=62001450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711166432.XA Active CN107968749B (zh) 2017-11-21 2017-11-21 实现QinQ路由终结的方法、交换芯片及交换机

Country Status (1)

Country Link
CN (1) CN107968749B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800326B (zh) * 2019-04-08 2021-08-24 中移(苏州)软件技术有限公司 报文传输方法及装置、处理节点及存储介质
CN114268585B (zh) * 2019-11-07 2024-01-23 苏州盛科通信股份有限公司 基于tcam的三层路由转发的判断方法
CN112688849B (zh) * 2020-12-25 2022-06-24 京信网络系统股份有限公司 基于流分类的QinQ配置方法、装置、介质和通信设备
CN114039910B (zh) * 2021-11-17 2023-06-27 杭州云合智网技术有限公司 基于分组标签策略的数据转发的方法
CN114615216B (zh) * 2022-03-11 2023-07-21 深圳市风云实业有限公司 一种基于交换芯片的路由表动态调整方法
CN116996439B (zh) * 2023-09-27 2024-03-01 明阳时创(北京)科技有限公司 一种基于sdn的高效路由寻址方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767495A (zh) * 2004-10-28 2006-05-03 华为技术有限公司 保证城域传输设备中二层以太网交换机数据安全的方法
CN1838627A (zh) * 2005-03-22 2006-09-27 杭州华为三康技术有限公司 一种实现QinQ接入的方法
CN1838633A (zh) * 2005-03-22 2006-09-27 杭州华为三康技术有限公司 一种增强型vpn网络优化的方法及设备
CN101133605A (zh) * 2005-04-01 2008-02-27 思科技术公司 对基于mac的表执行扩展查找
CN101227407A (zh) * 2008-01-25 2008-07-23 华为技术有限公司 基于二层隧道协议的报文发送方法及装置
US20080225853A1 (en) * 2007-02-14 2008-09-18 Melman David Logical bridging system and method
CN101820392A (zh) * 2010-03-26 2010-09-01 中兴通讯股份有限公司 一种实现多业务转发的方法和网络处理器
CN103997460A (zh) * 2014-06-04 2014-08-20 福建星网锐捷网络有限公司 实现QinQ路由终结的方法、交换芯片和交换机

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767495A (zh) * 2004-10-28 2006-05-03 华为技术有限公司 保证城域传输设备中二层以太网交换机数据安全的方法
CN1838627A (zh) * 2005-03-22 2006-09-27 杭州华为三康技术有限公司 一种实现QinQ接入的方法
CN1838633A (zh) * 2005-03-22 2006-09-27 杭州华为三康技术有限公司 一种增强型vpn网络优化的方法及设备
CN101133605A (zh) * 2005-04-01 2008-02-27 思科技术公司 对基于mac的表执行扩展查找
US20080225853A1 (en) * 2007-02-14 2008-09-18 Melman David Logical bridging system and method
CN101227407A (zh) * 2008-01-25 2008-07-23 华为技术有限公司 基于二层隧道协议的报文发送方法及装置
CN101820392A (zh) * 2010-03-26 2010-09-01 中兴通讯股份有限公司 一种实现多业务转发的方法和网络处理器
CN103997460A (zh) * 2014-06-04 2014-08-20 福建星网锐捷网络有限公司 实现QinQ路由终结的方法、交换芯片和交换机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Research on double vlan scheme in ethernet network";Li Xinzhan,等;《 2009 2nd IEEE International Conference on Computer Science and Information Technology》;20090911;全文 *

Also Published As

Publication number Publication date
CN107968749A (zh) 2018-04-27

Similar Documents

Publication Publication Date Title
CN107968749B (zh) 实现QinQ路由终结的方法、交换芯片及交换机
EP3664383B1 (en) Scalable handling of bgp route information in vxlan with evpn control plane
CN108632098B (zh) 流分类器、业务路由触发器、报文处理的方法和系统
EP3273643B1 (en) Method for sending virtual extensible local area network packet, computer device, and readable medium
US10193707B2 (en) Packet transmission method and apparatus
CN107733799B (zh) 一种报文传输方法和装置
CN103200069B (zh) 一种报文处理的方法和设备
CN112087386B (zh) 一种报文处理的方法、设备和系统
US20170237655A1 (en) Forwarding Data Packets In Software Defined Networks
CN111512601A (zh) 分组的分段路由网络处理
CN109729012B (zh) 一种单播报文传输方法和装置
CN107579900B (zh) 从vlan网络接入vxlan网络的方法、装置及系统
CN108964940B (zh) 消息发送方法及装置、存储介质
CN107317752B (zh) 一种转发数据报文的方法及装置
US10454711B2 (en) Method for obtaining port path and apparatus
JP6722816B2 (ja) パケット転送
CN111010329B (zh) 一种报文传输方法及装置
CN111147372B (zh) 下行报文发送、转发方法和装置
CN107659484B (zh) 从vlan网络接入vxlan网络的方法、装置及系统
US20230067091A1 (en) Method and device for segment routing service processing, routing equipment, and storage medium
CN112822104A (zh) 一种数据报文的处理方法、设备、存储介质及系统
CN111404797B (zh) 控制方法、sdn控制器、sdn接入点、sdn网关及ce
CN104734930B (zh) Vlan接入vf网络的实现方法及装置、fcf
CN110022263B (zh) 一种数据传输的方法及相关装置
CN110620715B (zh) 虚拟扩展局域网通信方法、隧道端点和控制器

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
GR01 Patent grant
GR01 Patent grant