CN108696415B - 一种发送和接收信息的方法及设备 - Google Patents
一种发送和接收信息的方法及设备 Download PDFInfo
- Publication number
- CN108696415B CN108696415B CN201710220956.6A CN201710220956A CN108696415B CN 108696415 B CN108696415 B CN 108696415B CN 201710220956 A CN201710220956 A CN 201710220956A CN 108696415 B CN108696415 B CN 108696415B
- Authority
- CN
- China
- Prior art keywords
- message
- identification information
- l3vni
- vrf
- value
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明公开了一种发送和接收信息的方法及设备,用以解决现有技术中现有的EVPN中,一个设备只能利用VRF上的一个MPLS Lable实现与另一个设备之间的通信,缺乏灵活性问题,本发明实例中,第一设备从第一设备上的VRF对应的多个标识信息中选择至少一个标识信息;第二设备接收来自第一设备发送的包含标识信息的报文,第二设备在确定自身VRF对应的多个标识信息中至少一个标识信息在述报文中后,对所述报文进行处理;第一设备在设置报文时可以将不同的标识信息置于报文中,只要第二设备的标识信息位于报文中,均能对报文进行处理,第一设备可以利用VRF上的每个标识信息实现与对应的第二设备通信,进而提高了信息传输的灵活性。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种发送和接收信息的方法及设备。
背景技术
随着数据中心的大规模部署,数据中心间的互访需求随之增加。为了实现传统网络的平滑升级,EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)成为数据中心出口设备之间交互主要控制方式。EVPN采用MP-BGP协议在控制面实现远端MAC地址学习,数据转发层面采用了VXLAN(Virtual Extensible LAN,虚似扩展局域网)的隧道封装方式满足跨数据中心互联的应用需求。目前基于EVPN+VXLAN的技术方案已经成为业内主流的数据中心互联方案。
目前EVPN协议主要用于解决属于不同设备的两个VRF(Virtual RouteForwarding,虚拟路由转发表)内的网段互通。为了实现属于不同数据中心内两个VRF内网段的互通,需要在设备上配置本端的VRF信息,包括VRF的RD、RT(一个VRF可以携带多个RT)、MPLS Lable(Multiprotocol Label Switching Lable,多协议标记交换标识),MPLS Lable也可以表示为Global L3 VNI(Global Layer 3Virtual Extensible LAN ID,全局三层虚拟网络标识)。只有当两个VRF内配置的RT和MPLS Lable一致时,两个VRF内网段才可以互通。其中RT相同用于保证两个设备利用VRF能相互学习对端的网段路由并生成VRF路由表;MPLS Lable相同用于约定两个设备在VRF内网段互通时VXLAN报文所携带的VNI值。但由于一个VRF值只能与一个MPLS Lable绑定,一个设备只能利用VRF的一个MPLS Lable与其他设备实现三层通信。
综上,现有的EVPN中,一个设备只能利用VRF上的一个MPLS Lable实现与另一个设备之间的通信,缺乏灵活性。
发明内容
本发明提供一种发送和接收信息的方法及设备,用以解决现有技术中现有的EVPN中,一个设备只能利用VRF上的一个MPLS Lable实现与另一个设备之间的通信,缺乏灵活性问题。
本发明实施例提供了一种发送信息的方法,该方法包括:
第一设备从所述第一设备上的虚拟路由转发表VRF对应的多个标识信息中选择至少一个标识信息;
所述第一设备将选择的标识信息置于报文中并发送给至少一个第二设备,以使对应的标识信息在所述报文中的第二设备对所述报文进行处理。
本发明实施例提供了一种接收信息的方法,该方法包括:
第二设备接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;
所述第二设备在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
本发明实施例提供了一种发送信息的第一设备,该第一设备包括:
第一处理模块,用于从所述第一设备上的虚拟路由转发表VRF对应的多个标识信息中选择至少一个标识信息;
第一传输模块,用于将选择的标识信息置于报文中并发送给至少一个第二设备,以使对应的标识信息在所述报文中的第二设备对所述报文进行处理。
本发明实施例提供了一种接收信息的第二设备,该第二设备包括:
第二传输模块,用于接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;
第二处理模块,用于在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
所述第一设备将选择的标识信息置于报文中并发送给至少一个第二设备,以使对应的标识信息在所述报文中的第二设备对所述报文进行处理
本发明实例中,第一设备从所述第一设备上的VRF对应的多个标识信息中选择至少一个标识信息;第二设备接收来自第一设备发送的包含标识信息的报文,第二设备在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理;由于VRF对应的多个标识信息使得第一设备在设置报文时可以将不同的标识信息置于报文中,不同的第二设备在接收到报文后,只要第二设备的标识信息位于报文中,均能对报文进行处理,使得第一设备可以利用VRF上的每个标识信息实现与对应的第二设备通信,进而提高了信息传输的灵活性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例信息传输系统结构示意图;
图2为本发明实施例一种报文的Common header的示意图;
图3为本发明实施例一种Wide Community携带的数据的示意图;
图4为本发明实施例一种Wide Community TLVs的示意图;
图5为本发明实施例第一种Wide Community TLVs中Value的示意图;
图6为本发明实施例第二种Wide Community TLVs中Value的示意图;
图7为本发明实施例第一种Wide Community的示意图;
图8为本发明实施例第二种Wide Community TLVs中Value的示意图;
图9为本发明实施例第三种Wide Community TLVs中Value的示意图;
图10为本发明实施例第二种Wide Community的示意图;
图11为本发明实施例第一种信息传输的系统的示意图;
图12为本发明实施例第三种Wide Community的示意图;
图13为本发明实施例第四种Wide Community的示意图;
图14为本发明实施例第二种信息传输的系统的示意图;
图15为本发明实施例第五种Wide Community的示意图;
图16为本发明实施例第六种Wide Community的示意图;
图17为本发明实施例EVPN场景下设备的处理流程示意图;
图18为本发明实施例EVPN场景下设备的具体的处理流程示意图;
图19为本发明实施例第一设备的结构示意图;
图20为本发明实施例第二设备的结构示意图;
图21为本发明实施例发送信息的方法流程示意图;
图22为本发明实施例接收信息的方法流程示意图;
图23为本发明实施例传输信息的方法示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合说明书附图对本发明实施例作进一步详细描述。
在下面的说明过程中,先从第一设备侧和第二设备侧的配合实施进行说明,最后分别从第一设备侧和第二设备侧的实施进行说明,但这并不意味着二者必须配合实施,实际上,当第一设备侧与第二设备侧分开实施时,也解决了分别在第一设备侧和第二设备侧所存在的问题。只有两者结合使用时,会获得更好的技术效果。
如图1所示,本发明实施例信息传输系统包括第一设备10和第二设备20。
第一设备10,用于从所述第一设备上的VRF对应的多个标识信息中选择至少一个标识信息;将选择的标识信息置于报文中并发送给至少一个第二设备,以使对应的标识信息在所述报文中的第二设备对所述报文进行处理;
第二设备20,用于接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
其中,第一设备上可以存在多个VRF,也可以只存在一个VRF。每个VRF可以对应多个标识信息,所述标识信息用于确定第一设备上的对应的一个VRF;
第二设备上也可以存在多个VRF,也可以只存在一个VRF。每个VRF可以对应多个标识信息,所述标识信息用于确定第二设备上的对应的一个VRF;
具体的,标识信息可以是L3VNI(Layer 3Virtual Extensible LAN ID,三层虚拟扩展局域网标识),也可以是L3VNI和RT(ROUTE TARGET,路由目标)。下面就这两种情况进行介绍:
需要说明的是,本发明实施例中L3VNI是三层虚拟网络标识,不同于GlobalL3VNI,Global L3VNI表示的是全局三层虚拟网络标识,一个VRF只有一个Global L3VNI,在本发明中一个VRF中可以设置多个L3VNI,第一设备可以利用VRF中的多个L3VNI与其他设备实现通信。
第一种、标识信息为L3VNI:
所述第一设备从所述第一设备上的VRF对应的多个L3VNI中选择至少一个L3VNI。
例如,所述第一设备上的一个VRF对应的多个L3VNI,分别为L3VNI=1、L3VNI=2、L3VNI=3、L3VNI=4。第一设备可以多个L3VNI中选择一个L3VNI=1,也可以选择多个L3VNI,如可以选择L3VNI=2和L3VNI=3。
需要说明的是,从多个L3VNI中选择至少一个L3VNI,可以是设备进行选定的,也可以是系统设置的,也可以是人为设置的。
第一设备从多个L3VNI中选择至少一个L3VNI后,第一设备会将选择的至少一个L3VNI置于报文中。在EVPN场景中,Draft Ietf Idr Wide BGP Communities中定义了四种类型报文,也即四种不同类型的Wide BGP Communities Attribute(Wide Border GatewayProtocol Communities Attribute,宽大边界网关协议团体属性),分别为:Type 1:WideCommunity(宽大团体),Type 2:BGP Wide Community(边界网关协议宽大团体)4:4,Type3:BGP Wide Community Nx4和Type 4:BGP Wide Community 16+Nx4。第一设备可以从这四种类型的Wide BGP Communities Attribute中选择一种报文,将选择的至少一个L3VNI置于该报文中。
Draft Ietf Idr Wide BGP Communities中定义了四种类型报文都有相同格式的Common header(头部),如图2所示。
每一种报文类型都有不同的参数,在具体实施中,可以对其中一种报文格式进行修改,以将第一设备选择的L3VNI置于报文中。下面以对Wide Community进行修改为例,说明如何将选择的L3VNI置于报文中。
图3为Wide Community携带的数据,Wide Community携带的数据包含有CommunityValue(团体类型值)、source AS Number(原网元AS号)、context AS Number(目标网元AS号)以及Target TLVs(Target Type Length Value,目标类型长度内容)。
Community Value表示该Community的属性,这里可以选择一定的数值或者标识以表示此报文是多路由属性的报文,例如设定数值010或者标识L3VNI FOR DIFFERENT ROUTETARGET表示报文的属性为多路由属性;第一设备设置报文属性为多路由属性,则第二设备在接收到第一设备的Wide Community后,若Community Value为多路由属性对应的数值或者标识,则可以确定该报文中包含有L3VNI,并获取L3VNI。
source AS Number是产生这个报文的设备的AS号;
context AS Number是执行目标设备的AS号;
其中,设备包括但不限于路由器、SDN(Software Defined Network,软件定义网络)控制器、路由反射器、策略服务器等。
Target TLVs表示该报文携带数据的Type(类型)、Length(长度)和Value(内容)。其中,Wide Community的TLVs的格式可以参见图4。图4中,Type用于表示报文携带数据类型,Length用以表示报文携带数据长度;Value用以表示报文携带数据内容。.
为了将第一设备选择的L3VNI放置在报文中,可以对现有TLVs中的Value进行修改以使其可以携带选择的L3VNI。
具体的,可以将TLVs的Value定义为包含有Type、Length和Value的形式。Type用于表示携带的L3VNI的类型,Length用以表示携带的L3VNI的长度,Value用以表示携带的L3VNI的具体内容,具体可以参见图5。
图5中,TLVs的Value中的Type可以采用新定义的数值,也可以用现有的Type值表示。例如,可以定义当含有一个L3VNI时Type值为1000,当含有多个L3VNI时type值为1001;也可以选择现有协议定义的Type值。
TLVs的Value中的Length用于表示携带的L3VNI的长度,具体数值应根据所携带的L3VNI确定。
TLVs的Value中的Value表示携带的L3VNI的具体数值。
如图6所示,为当只携带一个L3VNI且L3VNI的值为1时的TLVs的Value的格式。
图6中,TLVs的Value中的Type为4,Length为8,表示携带有L3VNI,且长度为8,TLVs的Value中的Value为L3VN=1,表示只携带一个L3VNI且L3VNI的值为1。
如图7所示,当只携带一个L3VNI且L3VNI的值为1时的Wide Community的格式。
图7中,报文的Type为1表明该报文为Wide Community,Community Value为L3VNIFOR DIFFERENT ROUTE表示该报文的属性为多路由属性,相应的在TARGET TLVs的Value中携带有L3VNI,TARGET TLVs的Value中的Type为4,Length为8,表示携带有L3VNI,且长度为8,TLVs的Value中的Value为L3VN=1,表示只携带一个L3VNI且L3VNI的值为1。
上述仅是以其中一种报文的修改为例,在实际应用中,可以对其他报文进行修改使其可以携带第一设备选择的L3VNI,也可以创建新的报文格式。凡是可以通过对报文修改使其携带有标识信息的方式均适用于本发明实施例。
需要说明的是,在报文传输过程中,第二设备在接收到报文时对路由进行学习需要确定RT,由于RT不存在报文中。这里RT可以采用固定值,也可以采用约定的方式使得RT为公知的,这样报文中不需要携带RT。
第二种、所述标识信息包括L3VNI和RT:
当所述标识信息包括L3VNI和RT时,在VRF中可以存在多组L3VNI和RT,且RT与L3VNI存在对应关系,也即一个RT对应一个L3VNI,不同的RT可以对应相同的L3VNI,不同的RT可以对应不同的L3VNI。
所述第一设备从所述第一设备上的VRF对应的多个RT中选择至少一个RT;
例如,所述第一设备上的一个VRF对应的多个RT,分别为RT=1:1、RT=2:2、RT=3:3、RT=4:4。第一设备可以多个RT中选择一个RT=1:1,也可以选择多个RT,如可以选择RT=2:2和RT=3:3。
所述第一设备确定所述选择的RT对应的L3VNI。
例如,所述第一设备上选择RT=1,RT=1对应有一个L3VNI,L3VNI=1。第一设备上选择RT=2:2和RT=3:3,RT=2:2和RT=3:3可以对应一个L3VNI,如对应L3VNI=2;RT=2:2和RT=3:3可以分别对应不同的L3VNI,如RT=2:2对应L3VNI=2,RT=3:3对应L3VNI=3。
其中,从多个RT中选择至少一个RT,以及确定所述选择的RT对应的L3VNI,可以是设备进行选定的,也可以是系统设置的,也可以是人为设置的。
需要说明的是,本发明实施例中一个RT并不局限于只对应一个L3VNI,也即一个RT可以对应多个L3VNI,在确定RT对应的L3VNI时,可以从多个L3VNI中选取一个,选择的原则应以不影响设备间的通信为前提。
第一设备从多个RT中选择至少一个RT和对应的L3VNI后,第一设备会将选择的至少一个RT和对应的L3VNI置于报文中,在EVPN场景中,Draft Ietf Idr Wide BGPCommunities中定义了四种类型报文也即四种不同类型的Wide BGP CommunitiesAttribute,分别为:Type 1:Wide Community,Type 2:BGP Wide Community 4:4,Type 3:BGP Wide Community Nx4和Type 4:BGP Wide Community 16+Nx4。第一设备可以从这四种类型的Wide BGP Communities Attribute中选择一种报文,将选择的至少一个L3VNI置于该报文中。
Draft Ietf Idr Wide BGP Communities中定义了四种类型报文都有相同格式的头部,如图2所示。
每一种报文类型都有具有不同的参数,在具体实施中,可以对其中一种报文格式进行修改,以将第一设备选择的L3VNI和RT置于报文中。下面以对Wide Community进行修改为例,说明如何将选择的L3VNI和RT置于报文中。
图3为Wide Community携带的数据,Wide Community携带的数据包含有CommunityValue、source AS Number、context AS Number以及Target TLVs。
Community Value表示该Community的属性,这里可以选择一定的数值或者标识以表示此报文是多路由属性的报文;例如设定数值010或者标识L3VNI FOR DIFFERENT ROUTETARGET表示报文的属性为多路由属性;第一设备设置报文属性为多路由属性,则第二设备在接收到第一设备的Wide Community后,若Community Value为多路由属性对应的数值或者标识,则可以确定该报文中包含有L3VNI和RT,并获取L3VNI和RT。
source AS Number是产生这个报文的设备的AS号;
context AS Number是执行目标设备的AS号;
其中,设备包括但不限于路由器、SDN控制器、路由反射器、策略服务器等。
Target TLVs表示该属性携带数据的Type、Length和Value值。其中,WideCommunity TLVs的格式可以参见图4。图4中,Type用于表示报文携带数据类型,Length用以表示报文携带数据长度;Value用以表示报文携带数据内容。.
为了将第一设备选择的L3VNI和RT放置在报文中,可以对现有的TLVs中的Value进行修改以使其可以携带选择的L3VNI和RT。
具体的,可以将TLVs的Value定义为包含有Type、Length和Value的形式,具体可以参见图5。
图5中,由于标识信息包含有L3VNI和RT,第一设备可以针对RT和L3VNI分别在TLVs的Value中进行设置。
例如,针对RT设置一个RT LIST字段,对应有RT LIST的Type、Length和Value。其中,RT LIST的Type用以表示该RT LIST类型,RT LIST的Length用以表示RT LIST的长度,RTLIST的Value用以表示携带的RT的具体数值。
针对L3VNI设置一个L3VNI字段,对应有L3VNI的Type、Length和Value,其中,L3VNI的Type用以表示该L3VNI类型,L3VNI的Length用以表示L3VNI的长度,L3VNI的Value用以表示携带的L3VNI的具体数值。
L3VNI的Type可以采用新定义的数值,也可以用现有的Type值表示,例如,可以定义当含有一个L3VNI Type值为1000,当含有多个L3VNI时Type值为1001;也可以选择现有协议定义的Type值。
如图8所示,为当只携带一个L3VNI和一个RT的TLVs的value的格式。
图8中,TLVs的Value中的RT LIST的Type为n,Length为8,表示携带有RT,且长度为8,RT LIST的Value为RT=1:1,表示只携带一个RT且RT为1:1;
L3VNI的Type为m,Length为3,表示携带有L3VNI,且长度为3,TLVs的Value中的Value为L3VN=1,表示只携带一个L3VNI且L3VNI的值为1。
如图9所示,为当只携带一个L3VNI和两个RT的TLVs的value的格式。
图9中,TLVs的Value中的RT LIST的Type为n,Length为10,表示携带有RT,且长度为8,RT LIST的Value为RT=1:1、RT=2:2,表示携带两个RT且RT为1:1和2:2;
L3VNI的Type为m,Length为3,表示携带有L3VNI,且长度为3,TLVs的Value中的Value为L3VN=1,表示只携带一个L3VNI且L3VNI的值为1。
如图10所示,当只携带一个L3VNI和两个RT的Wide Community的格式。
图10中,报文的Type为1表明该报文为Wide Community,Community Value为L3VNIFOR DIFFERENT ROUTE表示该报文的属性为多路由属性,TLVs的Value中的RT LIST的Type为n,Length为8,表示携带有RT,且长度为8,RT LIST的Value为RT=1:1,表示只携带一个RT且RT为1:1;
L3VNI的Type为m,Length为3,表示携带有L3VNI,且长度为3,TLVs的Value中的Value为L3VN=1,表示只携带一个L3VNI且L3VNI的值为1。
第一设备将设置的包含有标识信息的报文发送给至少一个第二设备。
其中,第一设备将报文发送给与第一设备连接的所有第二设备,也可以有选择的发送给部分第二设备。
第二设备在接收到来自第一设备发送的包含标识信息的报文后,判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中,如果是,则对所述报文进行处理;否则不对报文进行处理,或者抛弃报文。
具体的,标识信息可以是L3VNI,也可以是L3VNI和RT;下面就这两种情况进行介绍第二设备如何确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中:
第一种、标识信息为L3VNI:
下面以第一设备发送的报文为Wide Community为例说明第二设备如何判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中。
当第二设备接收到Wide Community报文后,首先判断报文中的Community Value是否表示报文属性为多路由属性,若是则获取报文中的L3VNI;否则第二设备可以选择按照协议规定的方式对报文进行处理,也可以不处理。
当第二设备接收到Wide Community报文后,也可以不判断报文中的CommunityValue是否表示报文属性为多路由属性,直接判断报文中是否存在L3VNI,若报文中存在L3VNI,则获取L3VNI,若没有则不对报文进行处理,或者采用现有的方式对报文进行处理。
当Wide Community中的Community Value表示报文属性为多路由属性时,第二设备可以从TLVs的Value中获取L3VNI。
其中,获取的L3VNI可以是一个,也可以是多个。
假设收到的报文格式为图7所示的格式,则第二设备可以从TLVs的Value获取的L3VNI为1。
第二设备在获取L3VNI后,会与自身的VRF对应的多个L3VNI进行比较;若VRF对应的至少一个L3VNI与获取的L3VNI相同,也就是说自身VRF对应的多个L3VNI中至少一个L3VNI在所述报文中,则说明第二设备可以对所述报文进行处理,获取其中的数据。
例如,获取的L3VNI为1,第二设备判断自身的VRF中的L3VNI是否有1,若有,则说明第二设备确定自身VRF对应的多个L3VNI中至少一个L3VNI在所述报文中,第二设备可以对该报文进行处理。
若第二设备上的VRF中L3VNI均不为1,则第二设备不对该报文进行处理。
例如,获取的L3VNI为1和2,第二设备判断自身的VRF中的L3VNI是否有1或2,若有,则说明第二设备确定自身VRF对应的多个L3VNI中至少一个L3VNI在所述报文中,第二设备可以对该报文进行处理;
若第二设备上VRF中L3VNI均不为1也不为2,则第二设备不对该报文进行处理。
第二种、标识信息为L3VNI和RT:
下面以第一设备发送的报文为Wide Community为例说明第二设备如何判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中。
当第二设备接收到Wide Community报文后,首先判断报文中的community value是否表示报文属性为多路由属性,若是则获取报文中的L3VNI和RT;否则第二设备可以选择按照协议规定的方式对报文进行处理,也可以不处理。
当第二设备接收到Wide Community报文后,也可以不判断报文中的communityvalue是否表示报文属性为多路由属性,直接获取报文中是否存在L3VNI和RT,若报文中存在L3VNI和RT,则获取L3VNI和RT,若没有则不对报文进行处理,或者采用现有的方式对报文进行处理。
当Wide Community中的Community Value表示报文属性为多路由属性时,第二设备可以从TLVs的Value中获取L3VNI和RT。
其中,确定的RT可以是一个,也可以是多个,确定的RT对应的L3VNI可以是一个,也可以是多个。
若所述报文接收到的Wide Community格式如图9所示,则第二设备可以从TLVs的Value确定RT为1:1,对应的L3VNI为1。
若所述报文接收到的Wide Community格式如图10所示,则第二设备可以从TLVs的Value确定RT为1:1和2:2,对应的L3VNI为1。
第二设备在确定L3VNI和RT后,会与自身的VRF对应的RT进行比较;若VRF对应的至少一个RT与获取的RT相同,也就是说自身VRF对应的多个RT中至少一个RT在所述报文中,则第二设备需要进一步判断相同的RT对应的L3VNI是否在报文中;若自身VRF对应的与报文中的RT相同的RT对应的L3VNI与报文中相同的RT对应的L3VNIT相同,则确定自身VRF对应的在报文中的所述至少一个RT对应的L3VNI在所述报文中;
第二设备接收到的报文如图10所示,第二设备判断自身的VRF对应的RT是否为1:1,若第二设备自身的VRF对应的RT为1:1和2:2,说明VRF对应的至少一个RT与获取的RT相同都为1:1;第二设备需要进一步判断相同的RT对应的L3VNI是否在报文中,若第二设备自身的VRF中RT=1:1对应的L3VNI为1,报文中RT=1:1对应的L3VNI也是1,说明自身VRF对应的与报文中的RT相同的RT对应的L3VNI与报文中相同的RT对应的至少一个L3VNI相同,都为1,经过两次的判断,第二设备确定自身VRF的标识信息在报文中,可以对报文进行处理;
若第二设备自身的VRF对应的L3VNI为2,说明第二设备上的VRF对应的L3VNI与获取的L3VNI不相同;则第二设备上对应的L3VNI不同;
第二设备先判断自身的VRF中RT是否在报文中,若第二设备上的VRF对应的RT为3:3,与报文中的RT不同,说明第二设备自身VRF对应RT不在报文中,第二设备不需要判断自身的VRF的L3VNI是否在报文中。
也就是说,第二设备自身的VRF至少一个L3VNI和该L3VNI对应的RT均在报文中,第二设备才能对报文进行处理,只要有一个不在报文中,第二设备都不能对报文进行处理。
需要说明的是,第二设备可以先判断至少一个L3VNI是否在报文中,再判断相同的L3VNI对应的至少一个RT是否在报文中;也可以先判断至少一个RT是否在报文中,再判断相同的RT对应的L3VNI是否在报文中;也就是说第二设备判断L3VNI和RT是否在报文中的先后顺序并非是固定的,可以根据实际需要进行设置。
例如,判断的RT为1:1,对应的L3VNI为1,第二设备中判断自身的VRF中的RT是否为1:1,若存在RT为1:1的VRF,则进一步判断VRF中RT为1:1对应的L3VNI是否为1,若是,则第二设备可以对该报文进行处理;
若VRF中RT为1:1对应的L3VNI为3,则第二设备不对该报文进行处理。
例如,判断的RT为1:1和2:2,对应的L3VNI为1,第二设备中判断自身的VRF中的RT是否为1:1或2:2,若存在RT为1:1或2:2的VRF,则进一步判断在该VRF中RT为1:1和2:2对应的L3VNI是否为1,若是,则第二设备可以对该报文进行处理;若VRF中RT为1:1和2:2对应的L3VNI分别为3和4,第二设备上VRF中RT为1:1和2:2对应的L3VNI中不存在1,则第二设备不能对该报文进行处理。
下面给出两种具体的实施例,以说明利用本发明的方式发送和接收信息的过程。
第一种,第一设备利用自身的VRF与第二设备进行通信。
如图11所示,第一设备上存在一个VRF为VRF1,第二设备上存在两个VRF分别为VRF2和VRF3。VRF1包括RT为1:1对应的L3VNI=1,RT为2:2对应的L3VNI=2;第二设备的VRF2包括RT为1:1对应的L3VNI=1;第二设备的VRF3包括RT为2:2对应的L3VNI=2。
第一设备的VRF1包括RT=1:1,L3VNI=1,与第二设备的VRF2的RT=1:1,L3VNI=1是相同的,当第一设备发送包含有(L3VNI=1、RT=1:1)的报文时,第二设备可以对报文进行处理,学习路由。
第一设备的VRF1包括RT为2:2,L3VNI=2,与第二设备的VRF2的RT为2:2,L3VNI=2是相同的,当第一设备发送包含有(L3VNI=2、RT=2:2)的报文时,第二设备可以对报文进行处理,学习路由。
图12为第一设备根据VRF1发送的报文,且第二设备根据VRF2可以进行处理的报文,可以看出TLVs的Value中的RT为1:1,L3VNI为1,与第二设备VRF2中的RT和对应的L3VNI相同。
图13为第一设备根据VRF1发送的报文,且第二设备根据VRF3可以进行处理报文,可以看出TLVs的Value中的RT为2:2,L3VNI为2,与第二设备VRF3中的RT和对应的L3VNI相同。
第二种,第一设备利用自身的VRF可以与第二设备进行通信,也可以与第三设备进行通信。
如图14所示,第一设备上存在一个VRF为VRF1,第二设备上存在一个VRF为VRF2,第三设备上存在一个VRF为VRF3,第四设备上存在一个VRF为VRF4;第一设备的VRF1包括两个RT,每个RT对应不同的L3VNI。RT为1:1对应的L3VNI=1,RT为2:2对应的L3VNI=3;第二设备的VRF2包括两个RT,每个RT对应不同值得L3VNI。RT为1:1对应的L3VNI=1,RT为3:3对应的L3VNI=2;第三设备的VRF3包括一个RT、一个L3VNI,RT为2:2对应的L3VNI=3;第四设备的VRF4包括一个RT、一个L3VNI,RT为3:3对应的L3VNI=2。
第一设备的VRF1包括RT为1:1,L3VNI=1,与第二设备的VRF2的RT为1:1,L3VNI=1是相同的,当第一设备发送包含有(L3VNI=1、RT=1:1)的报文时,第二设备可以对报文进行处理,学习路由。
第一设备的VRF1包括RT为2:2,L3VNI=3,与第三设备的VRF3的RT为2:2,L3VNI=3是相同的,当第一设备发送包含有(L3VNI=3、RT=2:2)的报文时,第三设备可以对报文进行处理,学习路由。
第二设备的VRF2包括RT为3:3,L3VNI=2,与第四设备的VRF4的RT为3:3,L3VNI=2是相同的,当第二设备发送包含有(L3VNI=2、RT=3:3)的报文时,第四设备可以对报文进行处理,学习路由。
如图15所示,为第一设备根据VRF1发送的报文,且第二设备根据VRF2可以进行处理的报文,可以看出TLVs的Value中的RT为1:1,L3VNI为1与第二设备VRF2中的RT和对应的L3VNI相同;
如图16所示,为第一设备根据VRF1发送的报文,且第三设备根据VRF3可以进行处理的报文,可以看出TLVs的Value中的RT为2:2,L3VNI为3与第三设备VRF3中的RT和对应的L3VNI相同。
如图17所示,在EVPN场景下设备的处理流程,第一设备通过EVPN协议将流规范(Traffic Flow Specifications)传递给第二设备,第二设备收到后进行相应解析并执行。所述第一设备包括但不限于路由器,交换机、SDN控制器,路由反射器等。所述第二设备包括但不限于路由器,交换机、SDN控制器,路由反射器等。所述EVPN中包含通过本发明的多对RT和L3VNI。
如图18所示,在EVPN场景下设备的具体的处理流程,第一设备根据EVPN协议配置本地VRF,通过BGP(Border Gateway Protocol,边界网关协议)的update(更新)报文中添加新的wide community attribute携带该VRF所携带的多对RT和L3VNI。并将该报文发送给BGP的邻居第二设备和第三设备,第二设备和第三设备在接收到报文后,根据EVPN协议对报文进行解析,根据自身VRF的RT值判断是否学习该VRF内的路由表,判断L3VNI的值是否和本地一致判断是否可以正常封装报文进行通信,确定能够通信后,利用L3VNI对报文进行封装。
在EVPN场景下,由于封装的BGP update报文中可以携带多对RT和L3VNI,与第二设备以及第三设备上的VRF互通的RT和L3VNI可以均在报文中,第二设备和第三设备可以接收报文,并对报文处理,学习路由,进而实现第一设备与多个设备的通信。
基于同一发明构思,本发现实施例还提供了一种发送信息的第一设备,由于该设备解决问题的原理与本发明实施例信息传输的系统相似,因此该设备的实施可以参见系统的实施,重复之处不再赘述。
如图19所示,本发明实施例第一设备包括第一处理模块1901和第一传输模块1902:
第一处理模块1901,用于从所述第一设备上的虚拟路由转发表VRF对应的多个标识信息中选择至少一个标识信息;
第一传输模块1902,用于将选择的标识信息置于报文中并发送给至少一个第二设备,以使对应的标识信息在所述报文中的第二设备对所述报文进行处理。
具体的,标识信息可以是L3VNI,也可以是L3VNI和RT。下面就这两种情况进行介绍:
第一种、标识信息为L3VNI:
所述第一处理模块1901从所述第一设备上的VRF对应的多个L3VNI中选择至少一个L3VNI。
为了将第一处理模块1901选择的L3VNI放置在报文中,第一传输模块1902可以对现有Wide Community中的TLVs中的Value进行修改以使其可以携带选择的L3VNI。
具体的,可以将TLVs的Value定义为包含有Type、Length和Value的形式。Type用于表示携带的L3VNI的类型,Length用以表示携带的L3VNI的长度,Value用以表示携带的L3VNI的具体内容。
TLVs的Value中的Length用于表示携带的L3VNI的长度,具体数值应根据所携带的L3VNI确定。
TLVs的Value中的Value表示携带的L3VNI的具体数值。
所述第一传输模块1902设置报文属性为多路由属性,以使接收到报文的所述第二设备在确定报文属性为多路由属性后从报文的Target TLVs中获取所述标识信息;
例如,Wide Community中的Community Value表示该Community的属性,第一传输模块1902可以选择一定的数值或者标识以表示此报文是多路由属性的报文,例如设定数值010或者标识L3VNI FOR DIFFERENT ROUTE TARGET表示报文的属性为多路由属性;第一传输模块1902设置报文属性为多路由属性,则第二设备在接收到第一传输模块1902的WideCommunity后,若Community Value为多路由属性对应的数值或者标识,则可以确定该报文中包含有L3VNI,并获取L3VNI。
上述仅是以其中一种报文的修改为例,在实际应用中,可以对其他报文进行修改使其可以携带第一设备选择的L3VNI,也可以创建新的报文格式。凡是可以通过对报文修改使其携带有标识信息的方式均适用于本发明实施例。
需要说明的是,在报文传输过程中,第二设备在接收到报文时对路由进行学习需要确定RT,由于RT不存在报文中。这里RT可以采用固定值,也可以采用约定的方式使得RT为公知的,这样报文中不需要携带RT。
第二种、所述标识信息包括L3VNI和RT:
所述第一处理模块1901从所述第一设备上的VRF对应的多个RT中选择至少一个RT;
所述第一处理模块1901确定所述选择的RT对应的L3VNI。
第一处理模块1901从多个RT中选择至少一个RT和对应的L3VNI后,第一传输模块1902会将选择的至少一个RT和对应的L3VNI置于报文中,为了将第一设备选择的L3VNI和RT放置在报文中,第一传输模块1902可以对现有的Wide Community的TLVs中的Value进行修改以使其可以携带选择的L3VNI和RT。
具体的,可以将TLVs的Value定义为包含有Type、Length和Value的形式。
针对RT设置一个RT LIST字段,对应有RT LIST的Type、Length和Value。其中,RTLIST的Type用以表示该RT LIST类型,RT LIST的Length用以表示RT LIST的长度,RT LIST的Value用以表示携带的RT的具体数值。
针对L3VNI设置一个L3VNI字段,对应有L3VNI的Type、Length和Value,其中,L3VNI的Type用以表示该L3VNI类型,L3VNI的Length用以表示L3VNI的长度,L3VNI的Value用以表示携带的L3VNI的具体数值。
L3VNI的Type可以采用新定义的数值,也可以用现有的Type值表示,例如,可以定义当含有一个L3VNI Type值为1000,当含有多个L3VNI时Type值为1001;也可以选择现有协议定义的Type值。
所述第一传输模块1902设置报文属性为多路由属性,以使接收到报文的所述第二设备在确定报文属性为多路由属性后从报文的Target TLVs中获取所述标识信息;
例如,Wide Community中的Community Value表示该Community的属性,第一传输模块1902可以选择一定的数值或者标识以表示此报文是多路由属性的报文,例如设定数值010或者标识L3VNI FOR DIFFERENT ROUTE TARGET表示报文的属性为多路由属性;第一传输模块1902设置报文属性为多路由属性,则第二设备在接收到第一传输模块1902的WideCommunity后,若Community Value为多路由属性对应的数值或者标识,则可以确定该报文中包含有L3VNI和RT,并获取L3VNI和RT。
第一传输模块1902将设置的包含有标识信息的报文发送给至少一个第二设备。
其中,第一传输模块1902将报文发送给与第一设备连接的所有第二设备,也可以有选择的发送给部分第二设备。
基于同一发明构思,本发现实施例还提供了一种接收信息的第二设备,由于该设备解决问题的原理与本发明实施例信息传输的系统相似,因此该设备的实施可以参见系统的实施,重复之处不再赘述。
如图20所示,本发明实施例第二设备包括第二传输模块2001和第二处理模块2002;
第二传输模块2001,用于接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;
第二处理模块2002,用于在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
第二传输模块2001在接收到来自第一设备发送的包含标识信息的报文后,第二处理模块2002判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中,如果是,则对所述报文进行处理;否则不对报文进行处理,或者抛弃报文。
具体的,标识信息可以是L3VNI,也可以是L3VNI和RT;下面就这两种情况进行介绍第二处理模块2002确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中:
第一种、标识信息为L3VNI:
下面以第一设备发送的报文为Wide Community为例说明第二设备如何判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中。
当第二传输模块2001接收到Wide Community报文后,第二处理模块2002首先判断报文中的Community Value是否表示报文属性为多路由属性,若是则获取报文中的L3VNI;否则第二处理模块2002可以选择按照协议规定的方式对报文进行处理,也可以不处理。
当第二传输模块2001、接收到Wide Community报文后,第二处理模块2002也可以不判断报文中的Community Value是否表示报文属性为多路由属性,直接判断报文中是否存在L3VNI,若报文中存在L3VNI,则获取L3VNI,若没有则不对报文进行处理,或者采用现有的方式对报文进行处理。
当Wide Community中的Community Value表示报文属性为多路由属性时,第二处理模块2002可以从TLVs的Value中获取L3VNI。
其中,获取的L3VNI可以是一个,也可以是多个。
第二处理模块2002在获取L3VNI后,会与自身的VRF对应的多个L3VNI进行比较;若VRF对应的至少一个L3VNI与获取的L3VNI相同,也就是说自身VRF对应的多个L3VNI中至少一个L3VNI在所述报文中,则说明第二处理模块2002可以对所述报文进行处理,获取其中的数据。
第二种、标识信息为L3VNI和RT:
下面以第一设备发送的报文为Wide Community为例说明第二处理模块2002如何判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中。
当第二传输模块2001接收到Wide Community报文后,第二处理模块2002首先判断报文中的community value是否表示报文属性为多路由属性,若是则获取报文中的L3VNI和RT;否则第二处理模块2002可以选择按照协议规定的方式对报文进行处理,也可以不处理。
当第二传输模块2001接收到Wide Community报文后,第二处理模块2002也可以不判断报文中的community value是否表示报文属性为多路由属性,直接获取报文中是否存在L3VNI和RT,若报文中存在L3VNI和RT,则获取L3VNI和RT,若没有则不对报文进行处理,或者采用现有的方式对报文进行处理。
当Wide Community中的Community Value表示报文属性为多路由属性时,第二设备可以从TLVs的Value中获取L3VNI和RT。
其中,确定的RT可以是一个,也可以是多个,确定的RT对应的L3VNI可以是一个,也可以是多个。
第二处理模块2002在确定L3VNI和RT后,会与自身的VRF对应的RT进行比较;若VRF对应的至少一个RT与获取的RT相同,也就是说自身VRF对应的多个RT中至少一个RT在所述报文中,则第二设备需要进一步判断相同的RT对应的L3VNI是否在报文中;若自身VRF对应的与报文中的RT相同的RT对应的L3VNI与报文中相同的RT对应的L3VNIT相同,则确定自身VRF对应的在报文中的所述至少一个RT对应的L3VNI在所述报文中;
第二设备自身的VRF至少一个RT和该RT对应的L3VNI均在报文中,第二处理模块2002才能对报文进行处理,只要有一个不在报文中,第二处理模块2002都不能对报文进行处理。
基于同一发明构思,本发现实施例还提供了一种发送信息的方法,由于该方法解决问题的原理与本发明实施例信息传输的系统相似,因此该方法的实施可以参见系统的实施,重复之处不再赘述。
如图21所示,本发明实施例发送信息的方法包括:
步骤2101:第一设备从所述第一设备上的虚拟路由转发表VRF对应的多个标识信息中选择至少一个标识信息;
步骤2102:第一设备将选择的标识信息置于报文中并发送给至少一个第二设备,以使对应的标识信息在所述报文中的第二设备对所述报文进行处理。
其中,第一设备上可以存在多个VRF,也可以只存在一个VRF。每个VRF可以对应多个标识信息,所述标识信息用于确定第一设备上的对应的一个VRF;
具体的,标识信息可以是L3VNI,也可以是L3VNI和RT。下面就这两种情况进行介绍:
第一种、标识信息为L3VNI:
所述第一设备从所述第一设备上的VRF对应的多个L3VNI中选择至少一个L3VNI。
需要说明的是,从多个L3VNI中选择至少一个L3VNI,可以是设备进行选定的,也可以是系统设置的,也可以是人为设置的。
为了将第一设备选择的L3VNI放置在报文中,可以对现有Wide Community的TLVs中的Value进行修改以使其可以携带选择的L3VNI。
具体的,可以将TLVs的Value定义为包含有Type、Length和Value的形式。Type用于表示携带的L3VNI的类型,Length用以表示携带的L3VNI的长度,Value用以表示携带的L3VNI的具体内容。所述第一传输模块设置报文属性为多路由属性,以使接收到报文的所述第二设备在确定报文属性为多路由属性后从报文的Target TLVs中获取所述标识信息;
例如,Wide Community中的Community Value表示该Community的属性,第一设备可以选择一定的数值或者标识以表示此报文是多路由属性的报文,例如设定数值010或者标识L3VNI FOR DIFFERENT ROUTE TARGET表示报文的属性为多路由属性;第一设备设置报文属性为多路由属性,则第二设备在接收到第一设备的Wide Community后,若CommunityValue为多路由属性对应的数值或者标识,则可以确定该报文中包含有L3VNI,并获取L3VNI。
上述仅是以其中一种报文的修改为例,在实际应用中,可以对其他报文进行修改使其可以携带第一设备选择的L3VNI,也可以创建新的报文格式。凡是可以通过对报文修改使其携带有标识信息的方式均适用于本发明实施例。
需要说明的是,在报文传输过程中,第二设备在接收到报文时对路由进行学习需要确定RT,由于报文中不包含RT,在此种情况下RT可以采用固定值,也可以采用约定的方式使得RT为公知的,这样报文中不需要携带RT。
第二种、所述标识信息包括L3VNI和RT:
当所述标识信息包括L3VNI和RT时,在VRF中可以存在多组L3VNI和RT,且RT与L3VNI存在对应关系,也即一个RT对应一个L3VNI,不同的RT可以对应相同的L3VNI,不同的RT可以对应不同的L3VNI。
所述第一设备从所述第一设备上的VRF对应的多个RT中选择至少一个RT;
所述第一设备确定所述选择的RT对应的L3VNI。
需要说明的是,从多个RT中选择至少一个RT,以及确定所述选择的RT对应的L3VNI,可以是设备进行选定的,也可以是系统设置的,也可以是人为设置的。
为了将第一设备选择的L3VNI和RT放置在报文中,可以对现有的Wide Community的TLVs中的Value进行修改以使其可以携带选择的L3VNI和RT。
具体的,可以将TLVs的Value定义为包含有Type、Length和Value的形式。
针对RT设置一个RT LIST字段,对应有RT LIST的Type、Length和Value。其中,RTLIST的Type用以表示该RT LIST类型,RT LIST的Length用以表示RT LIST的长度,RT LIST的Value用以表示携带的RT的具体数值。
针对L3VNI设置一个L3VNI字段,对应有L3VNI的Type、Length和Value,其中,L3VNI的Type用以表示该L3VNI类型,L3VNI的Length用以表示L3VNI的长度,L3VNI的Value用以表示携带的L3VNI的具体数值。所述第一传输模块设置报文属性为多路由属性,以使接收到报文的所述第二设备在确定报文属性为多路由属性后从报文的Target TLVs中获取所述标识信息;
例如,Wide Community中的Community Value表示该Community的属性,第一设备可以选择一定的数值或者标识以表示此报文是多路由属性的报文,例如设定数值010或者标识L3VNI FOR DIFFERENT ROUTE TARGET表示报文的属性为多路由属性;第一设备设置报文属性为多路由属性,则第二设备在接收到第一设备的Wide Community后,若CommunityValue为多路由属性对应的数值或者标识,则可以确定该报文中包含有L3VNI和RT,并获取L3VNI和RT。
第一设备将设置的包含有标识信息的报文发送给至少一个第二设备。
其中,第一设备将报文发送给与第一设备连接的所有第二设备,也可以有选择的发送给部分第二设备。
基于同一发明构思,本发现实施例还提供了一种接收信息的方法,由于该方法解决问题的原理与本发明实施例信息传输的系统相似,因此该方法的实施可以参见系统的实施,重复之处不再赘述。
如图22所示,本发明实施例接收信息的方法包括:
步骤2201:第二设备接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;
步骤2202:第二设备在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
第二设备在接收到来自第一设备发送的包含标识信息的报文后,判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中,如果是,则对所述报文进行处理;否则不对报文进行处理,或者抛弃报文。
具体的,标识信息可以是L3VNI,也可以是L3VNI和RT;下面就这两种情况进行介绍第二设备如何确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中:
第一种、标识信息为L3VNI:
下面以第一设备发送的报文为Wide Community为例说明第二设备如何判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中。
当第二设备接收到Wide Community报文后,首先判断报文中的Community Value是否表示报文属性为多路由属性,若是则获取报文中的L3VNI;否则第二设备可以选择按照协议规定的方式对报文进行处理,也可以不处理。
当第二设备接收到Wide Community报文后,也可以不判断报文中的CommunityValue是否表示报文属性为多路由属性,直接判断报文中是否存在L3VNI,若报文中存在L3VNI,则获取L3VNI,若没有则不对报文进行处理,或者采用现有的方式对报文进行处理。
当Wide Community中的Community Value表示报文属性为多路由属性时,第二设备可以从TLVs的Value中获取L3VNI。
其中,获取的L3VNI可以是一个,也可以是多个。
第二设备在获取L3VNI后,会与自身的VRF对应的多个L3VNI进行比较;若VRF对应的至少一个L3VNI与获取的L3VNI相同,也就是说自身VRF对应的多个L3VNI中至少一个L3VNI在所述报文中,则说明第二设备可以对所述报文进行处理,获取其中的数据。
第二种、标识信息为L3VNI和RT:
下面以第一设备发送的报文为Wide Community为例说明第二设备如何判断自身VRF对应的多个标识信息中是否至少一个标识信息在所述报文中。
当第二设备接收到Wide Community报文后,首先判断报文中的community value是否表示报文属性为多路由属性,若是则获取报文中的L3VNI和RT;否则第二设备可以选择按照协议规定的方式对报文进行处理,也可以不处理。
当第二设备接收到Wide Community报文后,也可以不判断报文中的communityvalue是否表示报文属性为多路由属性,直接获取报文中是否存在L3VNI和RT,若报文中存在L3VNI和RT,则获取L3VNI和RT,若没有则不对报文进行处理,或者采用现有的方式对报文进行处理。
当Wide Community中的Community Value表示报文属性为多路由属性时,第二设备可以从TLVs的Value中获取L3VNI和RT。
其中,确定的RT可以是一个,也可以是多个,确定的RT对应的L3VNI可以是一个,也可以是多个。
第二设备在确定L3VNI和RT后,会与自身的VRF对应的RT进行比较;若VRF对应的至少一个RT与获取的RT相同,也就是说自身VRF对应的多个RT中至少一个RT在所述报文中,则第二设备需要进一步判断相同的RT对应的L3VNI是否在报文中;若自身VRF对应的与报文中的RT相同的RT对应的L3VNI与报文中相同的RT对应的L3VNIT相同,则确定自身VRF对应的在报文中的所述至少一个RT对应的L3VNI在所述报文中;
第二设备自身的VRF至少一个L3VNI和该L3VNI对应的RT均在报文中,第二设备才能对报文进行处理,只要有一个不在报文中,第二设备都不能对报文进行处理。
需要说明的是,第二设备可以先判断至少一个L3VNI是否在报文中,再判断相同的L3VNI对应的至少一个RT是否在报文中;也可以先判断至少一个RT是否在报文中,在判断相同的RT对应的L3VNI是否在报文中;也就是说第二设备判断L3VNI和RT是否在报文中的先后顺序并非是固定的,可以根据实际需要进行设置。
如图23所示,本发明实施例传输信息的方法包括:
步骤2301:第一设备从第一设备上的VRF对应的多个RT中选择至少一个RT;
步骤2302:第一设备确定所述选择的RT对应的L3VNI;
步骤2303:第一设备将选择的RT和对应的L3VNI置于报文的Target TLVs中;
步骤2304:第一设备将报文发送给至少一个第二设备;
步骤2305:第二设备接收来自第一设备发送的包含RT和对应的L3VNI的报文;
步骤2306:第二设备判断自身VRF对应的多个RT中至少一个RT是否在所述报文中,若是则执行步骤2307,否则执行步骤2309;
步骤2307:第二设备判断自身VRF对应的在报文中的至少一个RT对应的至少一个L3VNI是否在所述报文中,若是则执行步骤2308,否则执行步骤2309;
步骤2308:第二设备对所述报文进行处理;
步骤2309:第二设备抛弃所述报文。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种发送信息的方法,其特征在于,该方法包括:
第一设备从所述第一设备上的虚拟路由转发表VRF对应的多个标识信息中选择至少一个标识信息;
所述第一设备将选择的标识信息置于报文中并发送给至少一个第二设备,以使自身VRF对应的多个标识信息中至少一个标识信息在所述报文中的第二设备对所述报文进行处理。
2.如权利要求1所述的方法,其特征在于,所述标识信息为第三层虚拟扩展局域网标识L3VNI;或
所述标识信息包括L3VNI和路由目标RT。
3.如权利要求1所述的方法,其特征在于,所述标识信息包括L3VNI和RT;
所述第一设备从所述第一设备上的VRF对应的多个标识信息中选择至少一个标识信息,还包括:
所述第一设备从所述第一设备上的VRF对应的多个RT中选择至少一个RT;
所述第一设备确定所述选择的RT对应的L3VNI。
4.如权利要求3所述的方法,其特征在于,所述第一设备将选择的标识信息置于报文中,包括:
所述第一设备将选择的RT和对应的L3VNI置于报文的目标类型长度及值Target TLVs中。
5.如权利要求4所述的方法,其特征在于,所述第一设备将选择的标识信息置于报文中并发送给至少一个第二设备之前,还包括:
所述第一设备设置报文属性为多路由属性,以使接收到报文的所述第二设备在确定报文属性为多路由属性后从报文的Target TLVs中获取所述标识信息。
6.一种接收信息的方法,其特征在于,该方法包括:
第二设备接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;
所述第二设备在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
7.如权利要求6所述的方法,其特征在于,所述标识信息为L3VNI;或
所述标识信息包括L3VNI和RT。
8.如权利要求7所述的方法,其特征在于,所述标识信息包括L3VNI和RT;
所述第二设备确定自身VRF对应的多个标识信息中至少一个标识信息包含在报文中的标识信息,包括:
所述第二设备确定自身VRF对应的多个RT中至少一个RT在所述报文中;
所述第二设备确定自身VRF对应的在报文中的所述至少一个RT对应的至少一个L3VNI在所述报文中。
9.如权利要求7所述的方法,其特征在于,所述第二设备确定自身VRF对应的多个标识信息中至少一个标识信息包含在报文中的标识信息之前,还包括:
所述第二设备在确定报文属性为多路由属性后,从报文的Target TLVs确定所述标识信息。
10.一种发送信息的第一设备,其特征在于,该第一设备包括:
第一处理模块,用于从所述第一设备上的虚拟路由转发表VRF对应的多个标识信息中选择至少一个标识信息;
第一传输模块,用于将选择的标识信息置于报文中并发送给至少一个第二设备,以使自身VRF对应的多个标识信息中至少一个标识信息在所述报文中的第二设备对所述报文进行处理。
11.如权利要求10所述的第一设备,其特征在于,所述标识信息为第三层虚拟扩展局域网标识L3VNI;或
所述标识信息包括L3VNI和路由目标RT。
12.如权利要求10所述的第一设备,其特征在于,所述标识信息包括L3VNI和RT;
所述第一处理模块,还用于:
从所述第一设备上的VRF对应的多个RT中选择至少一个RT;
确定所述选择的RT对应的L3VNI。
13.如权利要求12所述的第一设备,其特征在于,所述第一传输模块,具体用于:
将选择的L3VNI和对应的RT置于报文的目标类型长度及值Target TLVs中。
14.如权利要求13所述的第一设备,其特征在于,所述第一传输模块,还用于:
设置报文属性为多路由属性,以使接收到报文的所述第二设备在确定报文属性为多路由属性后从报文的Target TLVs中获取所述标识信息。
15.一种接收信息的第二设备,其特征在于,该第二设备包括:
第二传输模块,用于接收来自第一设备发送的包含标识信息的报文,其中所述报文中的标识信息是所述第一设备从第一设备的VRF对应的多个标识信息中选择的;
第二处理模块,用于在确定自身VRF对应的多个标识信息中至少一个标识信息在所述报文中后,对所述报文进行处理。
16.如权利要求15所述的第二设备,其特征在于,所述标识信息为L3VNI;或
所述标识信息包括L3VNI和RT。
17.如权利要求16所述的第二设备,其特征在于,所述标识信息包括L3VNI和RT;
所述第二处理模块,具体用于:
确定自身VRF对应的多个RT中至少一个RT在所述报文中;
确定自身VRF对应的在报文中的所述至少一个RT对应的至少一个L3VNI在所述报文中。
18.如权利要求16所述的第二设备,其特征在于,所述第二处理模块,还用于:
在确定报文属性为多路由属性后,从报文的Target TLVs确定所述标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710220956.6A CN108696415B (zh) | 2017-04-06 | 2017-04-06 | 一种发送和接收信息的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710220956.6A CN108696415B (zh) | 2017-04-06 | 2017-04-06 | 一种发送和接收信息的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108696415A CN108696415A (zh) | 2018-10-23 |
CN108696415B true CN108696415B (zh) | 2021-09-10 |
Family
ID=63842045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710220956.6A Active CN108696415B (zh) | 2017-04-06 | 2017-04-06 | 一种发送和接收信息的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108696415B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131030B (zh) * | 2019-12-24 | 2020-10-30 | 浪潮思科网络科技有限公司 | 一种在evpn下的路由处理方法及设备、介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027396A (zh) * | 2016-04-29 | 2016-10-12 | 杭州华三通信技术有限公司 | 一种路由控制方法、装置和系统 |
US9590824B1 (en) * | 2014-08-05 | 2017-03-07 | Cisco Technology, Inc. | Signaling host move in dynamic fabric automation using multiprotocol BGP |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9900250B2 (en) * | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
-
2017
- 2017-04-06 CN CN201710220956.6A patent/CN108696415B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9590824B1 (en) * | 2014-08-05 | 2017-03-07 | Cisco Technology, Inc. | Signaling host move in dynamic fabric automation using multiprotocol BGP |
CN106027396A (zh) * | 2016-04-29 | 2016-10-12 | 杭州华三通信技术有限公司 | 一种路由控制方法、装置和系统 |
Non-Patent Citations (2)
Title |
---|
"Cisco VXLAN EVPN Multifabric Design White Paper";Cisco Systems;《URL:https://www.cisco.com/c/en/us/products/collateral/switches/nexus-9000-series-switches/white-paper-c11-738503.html》;20170323;全文 * |
"Deploy a VXLAN Network with an MP-BGP EVPN Control Plane White Paper";Cisco Systems;《URL:https://www.cisco.com/c/en/us/products/collateral/switches/nexus-7000-series-switches/white-paper-c11-735015.html》;20150629;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108696415A (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9960991B2 (en) | Method, apparatus and system for determining service transmission path | |
US10263808B2 (en) | Deployment of virtual extensible local area network | |
US20160119229A1 (en) | Method for Establishing Tunnel, Method for Allocating Label, Device and Network System | |
WO2014136864A1 (ja) | パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム | |
CN108574630A (zh) | Evpn报文处理方法、设备及系统 | |
CN110401599B (zh) | 数据包的处理方法及装置、存储介质、电子装置 | |
CN109218178A (zh) | 一种报文处理方法及网络设备 | |
CN108574639A (zh) | Evpn报文处理方法、设备及系统 | |
CN107181663A (zh) | 一种报文处理方法、相关设备及计算机可读存储介质 | |
CN105634942B (zh) | 转发报文的方法和交换机 | |
CN107306222B (zh) | 标签交换路径上的流量工程隧道建立的方法和设备 | |
CN109729019B (zh) | 一种evpn组网中专线业务的限速方法及装置 | |
CN107026796B (zh) | 一种vpn路由通告方法、数据流转发方法及相关设备 | |
CN105376154A (zh) | 渐进式mac地址学习 | |
WO2022062506A1 (zh) | 一种数据处理方法、装置、存储介质及电子装置 | |
EP3364613A2 (en) | Method and device for transmitting traffic via specified path | |
EP3253012B1 (en) | Method and apparatus for obtaining port path | |
CN114095305A (zh) | Bier报文转发的方法、设备以及系统 | |
EP3836492A1 (en) | Pseudo wire load sharing method and device | |
CN113037527B (zh) | 网络切片创建方法、报文转发方法及其装置 | |
CN108512755B (zh) | 一种路由信息的学习方法及装置 | |
CN112187649A (zh) | 一种报文转发方法、报文处理方法及装置 | |
CN105453513A (zh) | 报文转发方法、转发表项下发方法及网络设备 | |
JP5161298B2 (ja) | 非マルチプルスパニングツリープロトコル制御プレーン群を識別するためのシステム及び方法 | |
CN106034071B (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 |