CN108632145B - 一种报文转发方法和叶子节点设备 - Google Patents
一种报文转发方法和叶子节点设备 Download PDFInfo
- Publication number
- CN108632145B CN108632145B CN201710756807.1A CN201710756807A CN108632145B CN 108632145 B CN108632145 B CN 108632145B CN 201710756807 A CN201710756807 A CN 201710756807A CN 108632145 B CN108632145 B CN 108632145B
- Authority
- CN
- China
- Prior art keywords
- route
- message
- network segment
- node
- host
- 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
Images
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
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- 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/033—Topology update or discovery by updating distance vector protocols
-
- 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/22—Alternate routing
-
- 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/44—Distributed routing
-
- 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/48—Routing tree calculation
-
- 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/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Abstract
本申请提供一种报文转发方法和叶子节点设备,该方法可应用于包括骨干节点和叶子节点的数据中心内的任一叶子节点,该任一叶子节点与每个骨干节点建立BGP邻居,任一叶子节点执行如下方法:向骨干节点同步网段路由和主机路由;学习骨干节点同步的网段路由;当第一报文命中网段路由时,将第一报文发送给命中的网段路由的下一跳对应的骨干节点,以使该骨干节点将第一报文发送给命中的主机路由的下一跳对应的叶子节点。由于数据中心内的网段路由的数量远少于主机路由的数量,因此叶子节点上的路由表项和硬件表项承载能力能够满足数据中心少量的网段路由,从而可以解决叶子结点的路由表项规格和硬件表项规格受限的问题。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文转发方法和叶子节点设备。
背景技术
目前数据中心已普遍采用“骨干(Spine)节点+叶子(Leaf)节点”的组网方式,Leaf节点负责接入主机。
在一种方式下,数据中心可以采取分布式网关的部署方式,即每个Leaf节点都是一个分布式网关,这样Leaf节点既可提供二层接入,也可作为IP(Internet Protocol,网际协议)网关,提供跨网段转发。在分布式网关的部署方式下,各Leaf节点需要将本地上线的主机(可以是物理机,也可以是虚拟机)的MAC(Medium Access Control,媒体接入控制)地址和IP地址作为路由发布给其它Leaf节点,其它Leaf节点收到后会将其保存在路由表项(内存中),并下发到本节点的转发平面,即硬件芯片。
但随着数据中心规模的增大,一个数据中心内可能会有上万台服务器,每台服务器还可以虚拟化出多个虚拟机,比如假设数据中心内有2万台服务器,每台服务器虚拟出10个虚拟机,那么数据中心内将达到200000个主机,这对分布式网关的路由表项规格和硬件表项规格有了较大的要求。而出于成本的考虑,分布式网关通常不会是特别高端的设备,路由表项规格和硬件表项规格均有限,可能不足以承载规模较大的数据中心内部的所有路由。
发明内容
有鉴于此,本申请提供一种报文转发方法和Leaf节点设备,用以解决在数据中心采用分布式网关的部署方式时,Leaf节点的路由表项规格和硬件表项规格不足以承载整个数据中心内部的所有主机路由的问题。
具体地,本申请是通过如下技术方案实现的:
本申请第一方面,提供了一种路由发布方法,应用于包括Spine节点和Leaf节点的数据中心内的任一Leaf节点,所述任一Leaf节点与每个Spine节点建立BGP邻居,该方法包括:
向所述Spine节点同步网段路由和主机路由;
学习所述Spine节点同步的网段路由;
当第一报文命中网段路由时,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点,以使该Spine节点将所述第一报文发送给命中的主机路由的下一跳对应的Leaf节点。
本申请第三方面,提供了一种Leaf节点设备,所述Leaf节点设备包括:CPU和硬件芯片,其中,
所述CPU,用于向Spine节点同步的网段路由和主机路由;学习所述Spine节点同步的网段路由;并将学习到的网段路由下发到所述硬件芯片;
所述硬件芯片,用于当第一报文命中网段路由时,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点,以使该Spine节点将所述第一报文发送给命中的主机路由的下一跳对应的Leaf节点。
在本申请中,Spine节点会同时学习网段路由和主机路由,而Leaf节点会先从Spine节点处学习到网段路由,通过该网段路由可以实现将报文发送到Spine节点,最终由Spine节点将报文根据主机路由发送,如此Leaf节点即使不从Spine节点学习主机路由,也可以实现报文的转发。由于数据中心内的网段路由的数量远少于主机路由的数量,因此Leaf节点上的路由表项和硬件表项承载能力能够满足数据中心中少量的网段路由,从而可以解决Leaf节点的路由表项规格及硬件表项规格受限的问题。
附图说明
图1是本申请提供的一种Spine节点+Leaf节点组网示意图;
图2是本申请提供的方法流程图;
图3是本申请提供的Spine节点与Leaf节点之间的交互流程图;
图4是本申请提供的主机路由下发前后报文的转发示例图;
图5是本申请提供的装置结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前的数据中心部署,越来越倾向于分布式网关的部署方式,即每个Leaf节点都是一个分布式网关,各分布式网关之间可以通过标准的EVPN(Ethernet Virtual PrivateNetwork,以太网虚拟专用网络)协议建立VXLAN(Virtual Extensible LAN,虚拟扩展局域网)隧道,同步租户的路由。
但随着数据中心规模的增大和虚拟化技术的发展,一个数据中心内可能会有上万台服务器,每台服务器还可以虚拟化出多个虚拟机,这可能会导致数据中心内租户的路由数量远远超过分布式网关可支持的路由表项规格和硬件表项规格。
针对网关的硬件表项规格不能满足数据中心规模的问题,现有技术中有如下一种解决方案:各分布式网关的控制层面在收到远端同步来的路由后,不立即将路由下发到自身的转发层面,而是在有流量到达时,根据流量的目的MAC地址或目的IP地址,再将对应的路由下发到转发层面。但此方案只能解决分布式网关的硬件表项规格不能匹配路由数量的问题,由于分布式网关还是需要保存完整的路由,其路由表项规格大小不能匹配路由数量的问题还是无法解决。
本申请提供了一种报文转发方案,通过利用数据中心内处于中心位置的Spine节点的能力,来解决目前所面临的困境。为便于描述,下文基于Spine节点+Leaf节点组网,来说明本申请提供的方案。
参考图1,为一种典型的Spine节点+Leaf节点组网,该组网中的核心节点包括两种,第一种为Leaf节点,用于接入主机;第二种为Spine节点,负责连接Leaf节点。
在Leaf节点为IP网关的场景下,为了避免网关太多导致连接太多,通常不会采用网关之间建立BGP(Border Gateway Protocol,边界网关协议)连接的方式,而是使用Spine节点作为RR(Route Reflector,路由反射器),所有Leaf节点都和Spine节点建立BGP连接(建立BGP邻居),这样,各Leaf节点可以将本地上线的主机的路由发布给Spine节点,由Spine节点将路由发布给其它Leaf节点。实际应用中,Spine节点一般为高端设备,因此Spine节点的路由表项规格和硬件表项规格一般可以支持数据中心内的所有路由。
对于路由,可以包括网段路由和主机路由。网段路由即到达某一网段的路由,如图1中,目的IP地址为10.1.0.0/16、10.2.0.0/16和10.3.0.0/16的路由是网段路由;主机路由即到达某一个具体主机的路由,如图1中,目的IP地址为10.2.0.11./32和10.3.0.56/32的路由是主机路由。
现有技术中,在Spine节点作为RR的场景下,Leaf节点会将本地上线的主机的主机路由以及对应的网段路由一同发布给Spine节点,再由Spine节点将该主机路由和网段路由一同发布给其它Leaf节点。
而本申请中,为了节省Leaf节点的路由表项和硬件表项而又不影响报文的正常转发,在Spine节点上部署了特殊的路由发布策略,Spine节点初始只向各Leaf节点发布网段路由,主机路由则是按需发布。在各Leaf节点上,对于本节点上不存在的网段,其对应的路由的下一跳都是指向Spine节点,从而在存在多个Spine节点作为RR的情况下,会形成等价路由做负载分担。例如,在图1中,Leaf2和Leaf3的网段路由和主机路由都会对外发布,但是初始情况下,只有网段路由10.2.0.0/16和10.3.0.0/16会发布到Leaf1上,并且在Leaf1上形成等价路由,到达10.2.0.0/16的等价路由的下一跳为Spine1和Spine2,到达10.3.0.0/16的等价路由的下一跳也为Spine1和Spine2。
基于上面描述,下面对本申请提供的方法进行描述:
参见图2,在一个实施方案中,数据中心内包括Spine节点和Leaf节点,任一Leaf节点与每个Spine节点建立BGP邻居,任一Leaf节点均为IP网关(即该数据中心采用分布式网关架构),则任一Leaf节点在运行过程中执行如下步骤:
步骤201:向Spine节点同步网段路由和主机路由。
步骤202:学习Spine节点同步的网段路由。
步骤203:当第一报文命中该网段路由时,将该第一报文发送给命中的网段路由的下一跳对应的Spine节点,以使该Spine节点将该第一报文发送给命中的主机路由的下一跳对应的Leaf节点。
从步骤201至步骤203可以看出,本申请中Spine节点会同时学习网段路由和主机路由,而Leaf节点会先从Spine节点处学习到网段路由,通过该网段路由可以实现将报文发送到Spine节点,最终由Spine节点将报文根据主机路由发送,如此Leaf节点即使不从Spine节点学习主机路由,也可以实现报文的转发。由于数据中心内的网段路由的数量远少于主机路由的数量,因此Leaf节点上的路由表项和硬件表项承载能力能够满足数据中心中少量的网段路由,从而可以解决Leaf节点的路由表项规格及硬件表项规格受限的问题。
请参考图3,以下通过Spine节点和Leaf节点之间的交互,来阐述本申请的具体实施过程。图3所示为Spine节点和任一Leaf节点之间的交互流程图,可包括以下步骤:
步骤301:Leaf节点向Spine节点同步网段路由和主机路由。
这里,Leaf节点向Spine节点同步的网段路由和主机路由的下一跳为该Leaf节点自身的IP地址。
步骤302:Leaf节点学习Spine节点同步的其它Leaf节点的网段路由。
Spine节点在发布网段路由时会将网段路由的下一跳修改为自己,从而这里Leaf节点从Spine节点学习到的网段路由的下一跳为Spine节点的IP地址。
步骤303:Leaf节点上,控制层面学习到Spine节点同步的网段路由后,将该网段路由下发到转发层面。
步骤304:当第一报文命中该网段路由时,Leaf节点的转发层面对第一报文进行封装,并将封装后的第一报文发送给命中的网段路由的下一跳对应的Spine节点。
在一种实施方式中,当命中的网段路由的下一跳对应多个Spine节点时,转发层面可以将封装后的第一报文发送给满足预设的负载分担策略的一个Spine节点。
这里,步骤304中封装后的第一报文可以有两层IP头,其中内层源IP地址为报文发送方的主机IP地址,内层目的IP地址为报文接收方的主机IP地址,外层源IP地址为源Leaf节点(即报文发送方连接的Leaf节点)的IP地址,外层目的IP地址为Spine节点的IP地址。
步骤305:Spine节点对收到的报文进行解封装得到第一报文,查询与第一报文的目的IP地址(即报文接收方的主机IP地址)匹配的主机路由,若查询到,则对第一报文进行封装,并将封装后的第一报文发送给匹配主机路由的下一跳对应的Leaf节点;若查询不到,则丢弃该第一报文。
这里,步骤305中封装后的第一报文也有两层IP头,其中内层源IP地址和内层目的IP地址维持不变,仍为报文发送方和报文接收方的主机IP地址,稍有不同的是,此处封装后的第一报文外层源IP地址为Spine节点的IP地址,外层目的IP地址为目的Leaf节点(即报文接收方连接的Leaf节点)的IP地址。
如此,上述步骤301至步骤305即实现了报文的分级转发过程,在此过程中,由于报文发送方连接的源Leaf节点上只保存了网段路由,而Spine节点上有完整的主机路由和网段路由,因此源Leaf节点首先将命中网段路由的报文发送给Spine节点,Spine节点再将该报文转发给报文接收方连接的目的Leaf节点。
虽然上述步骤301至步骤305可以节省Leaf节点的路由表项和硬件表项,但是在转发过程中,报文需要走两次VXLAN隧道,分别是源Leaf节点与Spine节点之间的VXLAN隧道,以及Spine节点与目的Leaf节点之间的VXLAN隧道。报文走两次VXLAN隧道相比较报文直接走源Leaf节点与目的Leaf节点之间的VXLAN隧道,两种方式经过的物理路径是一样的,但在某些场景下,出于统计、管理等需求,还是希望报文能够在逻辑上不需要绕行Spine节点,而是能直接通过Leaf节点之间的VXLAN隧道进行传输。
为了实现报文能够在逻辑上不绕行Spine节点,Leaf节点的转发层面在根据本地的网段路由转发报文的同时,还需要触发控制层面,向Spine节点请求与待转发报文匹配的主机路由。为实现这一点,一种可行的方式是:在上述步骤303中,Leaf节点的控制层面可以为学习到的网段路由添加动作属性,并将添加有动作属性的网段路由下发到转发层面,该动作属性用于指示转发层面在有报文命中此网段路由时,通知控制层面向Spine节点请求与该报文匹配的主机路由。
基于步骤303控制层面增加的如上处理,在上述第一报文命中该添加了动作属性的网段路由后,转发层面在执行步骤304的同时,还可以执行如下步骤:
步骤306:在第一报文命中该网段路由时,Leaf节点上的转发层面还会通知控制层面向Spine节点发起路由请求。
作为一个实施例,转发层面通知控制层面发起路由请求的方式可以包括但不限于以下两种:
方式一:为上述命中网段路由的第一报文添加特殊标记,并将添加有特殊标记的第一报文上送到控制层面,该特殊标记用于指示控制层面无需转发此第一报文。这里,可以通过专门的报文上送接口将第一报文上送到控制层面。
方式一中,之所以为第一报文添加特殊标记,一来是因为转发层面已对第一报文做过转发,避免第一报文的重复发送;二来是因为控制层面的处理能力有限,如果让控制层面肩负报文的转发,可能会产生丢包等问题。
方式二:从上述命中网段路由的第一报文中提取目的IP地址等信息,并将提取的信息通过除报文上送接口以外的其它接口上送到控制层面。这里,提取的目的IP地址,用于令控制层面感知具体要向Spine节点请求哪一条主机路由。
步骤307:Leaf节点的控制层面收到转发层面的通知后,向Spine节点请求与第一报文匹配的主机路由。
作为一个实施例,Leaf节点的控制层面向Spine节点请求主机路由的方式包括但不限于以下两种:
方式一:控制层面可以通过TCP(Transmission Control Protocol,传输控制协议)或UDP(User Datagram Protoco,用户数据报协议),向Spine节点发起路由请求。
具体的,在方式一中,可以在Leaf节点和Spine节点上各增加一个独立于路由模块的模块,专门用来实现Leaf节点和Spine节点之间的路由请求交互。此种方式通过私有协议实现,与现有的路由协议无关。
方式二:控制层面可以通过扩展路由协议,向Spine节点发起路由请求。
由于目前常用的路由协议,如BGP协议一般不支持一个设备向另一个设备单独请求路由,因此方式二需要对路由协议进行扩展,然后通过Leaf节点和Spine节点上已有的路由模块实现路由请求交互。
步骤308:Spine节点根据Leaf节点的请求,将与第一报文匹配的主机路由发布给该Leaf节点。
这里,Spine节点在发布主机路由时不修改主机路由的下一跳,主机路由的下一跳仍为原始Leaf节点的IP地址。
作为一个实施方式,当Spine节点本地不存在与第一报文匹配的主机路由时,为了避免Leaf节点频繁地向Spine节点发起同一路由请求,Spine节点可以向Leaf节点下发路由请求抑制指令,以指示Spine节点上不存在与第一匹配的主机路由。Leaf节点在收到该路由请求抑制指令之后的预设时长内,不再向Spine节点请求与第一报文匹配的主机路由。需要说明的是,此路由请求抑制指令不会影响Leaf节点向Spine节点请求与其它报文匹配的主机路由,这里的其它报文指的是目的IP地址有别于第一报文的目的IP地址的报文。
步骤309:Leaf节点上,控制层面学习到Spine节点同步的与第一报文匹配的主机路由后,将该主机路由下发到转发层面。
步骤310:当第二报文命中与第一报文匹配的主机路由时,Leaf节点的转发层面对第二报文进行封装,并将封装后的第二报文发送给命中的主机路由的下一跳对应的Leaf节点。
在转发层面同时存在主机路由以及网段路由的情况下,按照路由最长匹配原则,报文会优先命中主机路由。步骤310中封装后的第二报文有两层IP头,其中内层源IP地址为报文发送方的主机IP地址,内层目的IP地址为报文接收方的主机IP地址,外层源IP地址为源Leaf节点的IP地址,外层目的IP地址为目的Leaf节点的IP地址。
如此,上述步骤306至步骤310即实现报文在逻辑上直接从Leaf节点到达另一Leaf节点,在逻辑上不绕行Spine节点。不过在物理路径上,报文还是会经过Spine节点,与步骤305不同的是,Spine节点收到封装后的第二报文后直接转发即可,不需要经历解封装报文、查找主机路由、封装报文这一过程。
通过上述步骤301至步骤310,可以实现在没有报文的时候,Leaf节点上无需学习其它Leaf节点的主机路由,减小了路由表项规模和硬件表项规模。在有报文的时候,Leaf节点又能够按需向Spine节点获取对应的主机路由,使报文按照理想的路径转发;同时,由于Leaf节点上只保存有流量转发需求的主机路由,因此主机路由在Leaf节点上也不会占用过多的路由表项和硬件表项。
作为一个实施例,为了进一步减小主机路由对Leaf节点的路由表项的占用情况,在Leaf节点的控制层面学习到Spine节点同步的主机路由并将主机路由下发到转发层面之后,如果在设定时长内没有报文命中该主机路由,则Leaf节点的控制层面可以老化该主机路由,同时通知转发层面老化该主机路由;转发层面在收到控制层面的通知后老化该主机路由;如此,可以及时释放该主机路由消耗的路由表项和硬件表项。至于网段路由,则不需要做老化。
为了使本领域技术人员更加清楚和明白,以下结合图1所示的Spine节点+Leaf节点组网场景来描述本申请的实现过程。
图1中,Spine1和Spine2为路由反射器,Leaf1-Leaf3为IP网关。Leaf2上有一目的IP地址为10.2.0.0/16的网段路由以及一目的地址为10.2.0.11./32的主机路由,Leaf3上有一目的IP地址为10.3.0.0/16的网段路由以及一目的地址为10.3.0.56./32的主机路由。
(1)Leaf2和Leaf3上的网段路由和主机路由都会同步给Spine1和Spine2,但初始情况下,Leaf1只会从Spine1和Spine2学习到网段路由,Leaf1学习到的网段路由在Leaf1上会形成等价路由,下一跳分别是Spine1和Spine2。
(2)Leaf1上,控制层面为收到的目的IP地址为10.2.0.0/16和10.3.0.0/16的网段路由添加动作属性,然后将网段路由下发到转发层面,该动作属性使得转发层面在根据网段路由转发报文的同时,还能通知控制层面向Spine1或Spine2请求与待转发报文匹配的主机路由。
(3)当Leaf1收到目的IP地址为10.3.0.56的报文时,由于只能匹配到目的IP地址为10.3.0.0/16的网段路由,根据具体的负载分担原则,转发层面会将报文通过VXLAN隧道发给某一个Spine,如Spine1。
(4)由于Spine1上有完整的主机路由和网段路由,查找后得到目的网关为Leaf3,Spine1将报文通过到Leaf3的VXLAN隧道发送给Leaf3。
这时,该报文的转发会经过Leaf1→Spine1,Spine1→Leaf3的VXLAN隧道。
(5)在Leaf1第一次收到目的IP地址为10.3.0.56的报文时,其转发层面还会通知控制层面,向Spine1请求目的IP地址为10.3.0.56的主机路由。
(6)Spine1将Leaf1所请求的主机路由返回给Leaf1。
(7)Leaf1的控制层面收到目的IP地址为10.3.0.56/32的主机路由后,将其下发给转发层面。后续对于目的IP地址为10.3.0.56的报文,Leaf1会将报文通过Leaf1→Leaf3的VXLAN隧道发送出去。
如图4所示,在Leaf1得到10.3.0.56/32的主机路由后,报文会通过Leaf1→Leaf3的VXLAN隧道(如图4中的虚线3所示)发送,而在Leaf1得到该主机路由之前,报文需要经过Leaf1→Spine1、Spine1→Leaf3的VXLAN隧道(如图4中的虚线1和虚线2所示)发送。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述。
以软硬件结合实现为例,本申请提供一种Leaf节点设备,该Leaf节点设备与Spine节点设备建立BGP邻居。请参考图5,Leaf节点设备的硬件环境通常至少包括CPU(CentralProcessing Unit,中央处理器)501以及硬件芯片502。当然,Leaf节点设备可能还包括其他硬件(例如存储器等)与CPU、硬件芯片交互实现本发明上述提供的操作,其中,上述其他硬件与CPU、硬件芯片交互可采用现有技术的方案,只要能够实现上述CPU和硬件芯片的功能即可。
CPU501可以用于实现Leaf节点设备的控制层面功能,硬件芯片502可以用于实现Leaf节点设备的转发层面功能,具体如下:
所述CPU501,用于向Spine节点同步网段路由和主机路由;学习所述Spine节点同步的网段路由;并将学习到的网段路由下发到所述硬件芯片。
所述硬件芯片502,用于当第一报文命中网段路由时,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点,以使该Spine节点将所述第一报文发送给命中的主机路由的下一跳对应的Leaf节点。
在其中一种实施方式中,所述硬件芯片502,用于在所述命中的网段路由的下一跳对应多个Spine节点时,将所述第一报文发送给满足预设的负载分担策略的一个Spine节点。
在其中一种实施方式中,所述硬件芯片502,在将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点时,还用于通知所述CPU501向所述Spine节点请求与所述第一报文匹配的主机路由。
所述CPU501,还用于在收到所述硬件芯片的通知后,向所述Spine节点请求所述与所述第一报文匹配的主机路由,并学习所述Spine节点同步的与所述第一报文匹配的主机路由;还用于将学习到的与所述第一报文匹配的主机路由下发到所述硬件芯片。
所述硬件芯片502,还用于当第二报文命中与第一报文匹配的主机路由时,将所述第二报文发送给该主机路由的下一跳对应的Leaf节点。
在其中一种实施方式中,所述CPU501,在将学习到的网段路由下发到所述硬件芯片时,用于为学习到的网段路由添加动作属性,并将包含动作属性的网段路由下发到所述硬件芯片。
所述硬件芯片502,在将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点时,还用于根据该网段路由包含的动作属性,向所述Spine节点请求与所述第一报文匹配的主机路由。
在其中一种实施方式中,所述CPU501,还用于若在预设时长内没有报文命中与所述第一报文匹配的主机路由,则老化该主机路由,并通知所述硬件芯片502老化该主机路由。
所述硬件芯片502,还用于在受到所述CPU501的通知后,老化该主机路由。
在其中一种实施方式中,在向所述Spine节点请求与所述第一报文匹配的主机路由之后,所述CPU501,还用于接收所述Spine节点发送的路由请求抑制指令,所述路由请求抑制指令指示不存在与所述第一报文匹配的主机路由;在预设时长内,禁止向所述Spine节点请求与所述第一报文匹配的主机路由。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种报文转发方法,其特征在于,应用于包括Spine节点和Leaf节点的数据中心内的任一Leaf节点,所述任一Leaf节点与每个Spine节点建立边界网关协议BGP邻居,该方法包括:
向所述Spine节点同步网段路由和主机路由;
学习所述Spine节点同步的网段路由;
当第一报文命中网段路由时,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点,以使该Spine节点将所述第一报文发送给命中的主机路由的下一跳对应的Leaf节点。
2.如权利要求1所述的方法,其特征在于,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点,包括:
在所述命中的网段路由的下一跳对应多个Spine节点时,将所述第一报文发送给满足预设的负载分担策略的一个Spine节点。
3.如权利要求1所述的方法,其特征在于,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点时,该方法还包括:
向所述Spine节点请求与所述第一报文匹配的主机路由;
学习所述Spine节点同步的与所述第一报文匹配的主机路由;
当第二报文命中与第一报文匹配的主机路由时,将所述第二报文发送给该主机路由的下一跳对应的Leaf节点。
4.如权利要求3所述的方法,其特征在于,所述向所述Spine节点请求与所述第一报文匹配的主机路由,包括:
将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点时,根据该网段路由包含的动作属性,向所述Spine节点请求与所述第一报文匹配的主机路由。
5.如权利要求3所述的方法,其特征在于,
若在预设时长内没有报文命中与所述第一报文匹配的主机路由,则老化该主机路由。
6.如权利要求3所述的方法,其特征在于,所述向所述Spine节点请求与所述第一报文匹配的主机路由之后,该方法还包括:
接收所述Spine节点发送的路由请求抑制指令,所述路由请求抑制指令指示不存在与所述第一报文匹配的主机路由;
在预设时长内,禁止向所述Spine节点请求与所述第一报文匹配的主机路由。
7.一种Leaf节点设备,其特征在于,所述Leaf节点设备与Spine节点设备建立边界网关协议BGP邻居,所述Leaf节点设备包括:中央处理器CPU和硬件芯片,其中,
所述CPU,用于向Spine节点同步网段路由和主机路由;学习所述Spine节点同步的网段路由;并将学习到的网段路由下发到所述硬件芯片;
所述硬件芯片,用于当第一报文命中网段路由时,将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点,以使该Spine节点将所述第一报文发送给命中的主机路由的下一跳对应的Leaf节点。
8.如权利要求7所述的Leaf节点设备,其特征在于,
所述硬件芯片,用于在所述命中的网段路由的下一跳对应多个Spine节点时,将所述第一报文发送给满足预设的负载分担策略的一个Spine节点。
9.如权利要求7所述的Leaf节点设备,其特征在于,
所述硬件芯片,在将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点时,还用于通知所述CPU向所述Spine节点请求与所述第一报文匹配的主机路由;
所述CPU,还用于在收到所述硬件芯片的通知后,向所述Spine节点请求所述与所述第一报文匹配的主机路由,并学习所述Spine节点同步的与所述第一报文匹配的主机路由;还用于将学习到的与所述第一报文匹配的主机路由下发到所述硬件芯片;
所述硬件芯片,还用于当第二报文命中与第一报文匹配的主机路由时,将所述第二报文发送给该主机路由的下一跳对应的Leaf节点。
10.如权利要求9所述的Leaf节点设备,其特征在于,
所述CPU,在将学习到的网段路由下发到所述硬件芯片时,用于为学习到的网段路由添加动作属性,并将包含动作属性的网段路由下发到所述硬件芯片;
所述硬件芯片,在将所述第一报文发送给命中的网段路由的下一跳对应的Spine节点时,还用于根据该网段路由包含的动作属性,通知所述CPU向所述Spine节点请求与所述第一报文匹配的主机路由。
11.如权利要求9所述的Leaf节点设备,其特征在于,
所述CPU,还用于若在预设时长内没有报文命中与所述第一报文匹配的主机路由,则老化该主机路由,并通知所述硬件芯片老化该主机路由;
所述硬件芯片,还用于在收到所述CPU的通知后,老化该主机路由。
12.如权利要求9所述的Leaf节点设备,其特征在于,
在向所述Spine节点请求与所述第一报文匹配的主机路由之后,所述CPU,还用于接收所述Spine节点发送的路由请求抑制指令,所述路由请求抑制指令指示不存在与所述第一报文匹配的主机路由;在预设时长内,禁止向所述Spine节点请求与所述第一报文匹配的主机路由。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710756807.1A CN108632145B (zh) | 2017-08-29 | 2017-08-29 | 一种报文转发方法和叶子节点设备 |
PCT/CN2018/102840 WO2019042303A1 (zh) | 2017-08-29 | 2018-08-29 | 报文转发 |
US16/643,479 US11165693B2 (en) | 2017-08-29 | 2018-08-29 | Packet forwarding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710756807.1A CN108632145B (zh) | 2017-08-29 | 2017-08-29 | 一种报文转发方法和叶子节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108632145A CN108632145A (zh) | 2018-10-09 |
CN108632145B true CN108632145B (zh) | 2020-01-03 |
Family
ID=63705757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710756807.1A Active CN108632145B (zh) | 2017-08-29 | 2017-08-29 | 一种报文转发方法和叶子节点设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11165693B2 (zh) |
CN (1) | CN108632145B (zh) |
WO (1) | WO2019042303A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11252192B1 (en) * | 2018-09-28 | 2022-02-15 | Palo Alto Networks, Inc. | Dynamic security scaling |
US20190109789A1 (en) * | 2018-12-06 | 2019-04-11 | Intel Corporation | Infrastructure and components to provide a reduced latency network with checkpoints |
CN110535744B (zh) * | 2019-08-29 | 2021-12-24 | 新华三信息安全技术有限公司 | 报文处理方法、装置及Leaf设备 |
CN110768901B (zh) * | 2019-10-24 | 2022-02-25 | 新华三技术有限公司 | 路由发布方法、路由选择方法、相关装置及系统 |
EP3965379A1 (en) * | 2020-09-04 | 2022-03-09 | Huawei Technologies Co., Ltd. | Data transmission method, apparatus, and network device |
CN113037647A (zh) * | 2021-03-17 | 2021-06-25 | 杭州迪普科技股份有限公司 | 报文处理方法、装置、设备及计算机可读存储介质 |
CN114978980B (zh) * | 2022-04-08 | 2024-01-19 | 新奥特(北京)视频技术有限公司 | Ip信号交叉点调度装置和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739520A (zh) * | 2012-05-31 | 2012-10-17 | 华为技术有限公司 | 查找方法及装置 |
CN103780490A (zh) * | 2012-10-17 | 2014-05-07 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
CN105721312A (zh) * | 2016-01-14 | 2016-06-29 | 盛科网络(苏州)有限公司 | 一种网络堆叠设备中实现路由分离的芯片实现方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9258255B2 (en) * | 2014-04-11 | 2016-02-09 | Cisco Technology, Inc. | Hierarchical programming of dual-stack switches in a network environment |
US10187290B2 (en) * | 2016-03-24 | 2019-01-22 | Juniper Networks, Inc. | Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures |
US10158564B2 (en) * | 2016-11-17 | 2018-12-18 | Cisco Technology, Inc. | Border leaf traffic convergence in a software defined network |
US10785701B2 (en) * | 2018-06-26 | 2020-09-22 | Ciscot Technology, Inc. | Hybrid control plane entity for fat tree route disaggregation |
-
2017
- 2017-08-29 CN CN201710756807.1A patent/CN108632145B/zh active Active
-
2018
- 2018-08-29 WO PCT/CN2018/102840 patent/WO2019042303A1/zh active Application Filing
- 2018-08-29 US US16/643,479 patent/US11165693B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739520A (zh) * | 2012-05-31 | 2012-10-17 | 华为技术有限公司 | 查找方法及装置 |
CN103780490A (zh) * | 2012-10-17 | 2014-05-07 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
CN105721312A (zh) * | 2016-01-14 | 2016-06-29 | 盛科网络(苏州)有限公司 | 一种网络堆叠设备中实现路由分离的芯片实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11165693B2 (en) | 2021-11-02 |
WO2019042303A1 (zh) | 2019-03-07 |
CN108632145A (zh) | 2018-10-09 |
US20200195551A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108632145B (zh) | 一种报文转发方法和叶子节点设备 | |
US11283707B2 (en) | Segment routing with fast reroute for container networking | |
JP6581277B2 (ja) | データパケット転送 | |
US10333836B2 (en) | Convergence for EVPN multi-homed networks | |
WO2021089052A1 (zh) | 报文传输方法、代理节点及存储介质 | |
US10320664B2 (en) | Cloud overlay for operations administration and management | |
CN109257265B (zh) | 一种泛洪抑制方法、vxlan网桥、网关及系统 | |
WO2021089004A1 (zh) | 报文传输方法、代理节点及存储介质 | |
US9621373B2 (en) | Proxy address resolution protocol on a controller device | |
CN106936777B (zh) | 基于OpenFlow的云计算分布式网络实现方法、系统 | |
US9374294B1 (en) | On-demand learning in overlay networks | |
EP2897347B1 (en) | Method for transmitting addresses correspondence relationship in second-layer protocol using link status routing | |
US9240944B2 (en) | Overlay services in communication networks | |
US10164910B2 (en) | Method and apparatus for an information-centric MAC layer | |
CN111736958B (zh) | 虚拟机迁移方法、系统、计算机设备及存储介质 | |
EP3069471B1 (en) | Optimized multicast routing in a clos-like network | |
EP3605959A1 (en) | Method, device and computer storage medium for implementing double control plane | |
JP6928076B2 (ja) | パケット監視 | |
JP2019521619A (ja) | パケット転送 | |
CN112737954B (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
CN110752989A (zh) | 一种东西向流量转发方法与装置 | |
US20210084125A1 (en) | Managing layer two network extension communications using maximum segment size (mms) modifications | |
JP6693141B2 (ja) | パケット転送装置、パケット転送方法、および、プログラム | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
JP2005252522A (ja) | パケット更新装置 |
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 |