CN102957616B - 在asic中转发trill网络报文的方法及*** - Google Patents
在asic中转发trill网络报文的方法及*** Download PDFInfo
- Publication number
- CN102957616B CN102957616B CN201110237690.9A CN201110237690A CN102957616B CN 102957616 B CN102957616 B CN 102957616B CN 201110237690 A CN201110237690 A CN 201110237690A CN 102957616 B CN102957616 B CN 102957616B
- Authority
- CN
- China
- Prior art keywords
- message
- information
- trill
- outgoing interface
- pet name
- 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
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种在ASIC中转发TRILL网络报文的方法及***。该方法包括以下步骤:报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;入接口信息获取,并根据入接口的配置信息进行查表;查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去。本发明可充分利用以太网交换芯片高带宽、低成本的优势,为构建TRILL网络的数据中心降低网络部署的成本。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种在ASIC中转发TRILL网络报文的方法及***。
背景技术
TRILL是Transparent Interconnection of Lots of Links,多链接透明互联的缩写,是IETF(互联网工程任务组)推荐的连接层(L2)“以太帧多路径转发”网络标准,可以克服生成树协议(STP)在规模和链路带宽利用率方面存在的问题。STP通过阻塞冗余链路来避免环路,只留一个活跃路径,而其他路径都被阻止成了闲置的带宽;当活跃路径发生故障时,网络必须在新路径上重新融合,需要花费几秒钟的时间,效率低下。TRILL通过将链路状态路由协议IS-IS(Intermediate System to Intermediate System)引入L2网络,解决了环路问题,同时保留了L2多路径,将网络负荷分解到多个路径上,有效利用网络带宽。
在TRILL网络中,运行TRILL协议的设备称为路由桥(RBridge),即具有路由转发特性的网桥设备,可交互学习各自的物理地址即介质接入地址(MAC地址)进行寻址,具有普通二层转发功能和三层路由功能。RBridge通过运行自己的链路状态协议(通过IS-IS扩展的)认知TRILL网络的拓扑,并使用最短路径树算法生成从该Rbridge到达TRILL网络里的各个Rbridge的路由转发表(称之为TRILL转发表或TRILL路由表)。在TRILL网络的入口,RBridge负责将端***的单播、多播或广播数据帧封装成TRILL数据帧(即在原始数据帧前添加TRILL头和外部帧头)在TRILL网络里转发。在TRILL网络的出口,RBridge负责将TRILL数据帧解封装TRILL报头,获得最初进入TRILL网络的以太网数据帧,再进行转发给端***。
目前尚没有在ASIC(Application Specific Integrated Circuit,专用集成电路)中实现TRILL网络报文转发的方法及***。
发明内容
为了解决上述问题,本发明提供了一种在ASIC中转发TRILL网络报文的方法及***,可以充分利用以太网交换芯片高带宽、低成本的优势,有效利用网络带宽。
具体技术方案如下:
本发明实施例提供的一种在ASIC中转发TRILL网络报文的方法,包括:
报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;
入接口信息获取,并根据入接口的配置信息进行查表;
查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;
出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;
报文封装,将接收到的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的端口中发送出去。
所述接收到的报文类型是以太网报文时,进行上行报文处理,将本地以太网收到的以太网报文转发至TRILL网络。
接收到的报文是TRILL报文、OAM报文和协议报文时,进行下行报文处理,其中,所述查表步骤具体为:
邻居信息检查,检查接收到的报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理;
端口检查,检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取;
昵称检查,检查报文的目的昵称是否为本设备昵称。
根据本发明之一优选实施例,所述以太网报文为组播报文时,查表得到的出接口的配置信息为一个组播组信息,
相应地,在所述出接口信息获取之前还包括组播信息获取的步骤,根据所述组播组信息索引对应一个组播组的出接口信息;
并在所述报文封装时,将以太网报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
根据本发明之一优选实施例,所述昵称检查是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行出接口信息获取,如果是,则判断所述TRILL报文是否为组播报文。
根据本发明之一优选实施例,当所述TRILL报文为单播报文时,进行解封装处理和内部信息查表,具体为:
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息;
当所述TRILL报文为组播报文时,在查表后先进行组播组信息获取,根据所述组播组信息索引对应一个组播组的出接口信息,所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发;
如果TRILL报文的目的昵称存在本地组播组成员时,还将所述TRILL报文进行解封装处理和内部信息查表,其中所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。
根据本发明之一优选实施例,所述一个组播组的出接口信息是分别进行出接口信息获取,并将TRILL报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
根据本发明之一优选实施例,所述接收到的报文类型是OAM报文时,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,所述OAM报文包括TRILL报文的封装,经过解析后进行查表时,所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。
根据本发明之一优选实施例,所述接收到的报文类型是协议报文时,进行下行报文处理,将协议报文转发给CPU做进一步的处理,所述协议报文包括以太网类型字段,经过解析后进行查表时,所述端口检查得到出接口信息为CPU接口,则进行出接口信息获取,将解析后的协议报文进行封装后转发给CPU。
相应地,本发明实施例提供的一种在ASIC中转发TRILL网络报文的***,包括:
用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型的模块;
用于获取入接口配置信息,并根据入接口的配置信息进行查表的模块;
用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息的模块;
用于根据查表的结果,得到需要转发出去的出接口信息的模块;
用于将接收到的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的端口中发送出去的模块,
其中,查表模块包括邻居信息检查模块、端口检查模块和昵称检查模块,邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找;昵称检查模块以TRILL报文的目的昵称为关键字进行查找。
由以上技术方案可以看出,本发明提供的一种在ASIC中转发TRILL网络报文的方法和***,解决在ASIC中TRILL网络的报文转发问题,可实现多路径转发,有效利用网络带宽。本发明将TRILL网络报文转发方法固化在ASIC中,可充分利用以太网交换芯片高带宽、低成本的优势,为构建TRILL网络的数据中心降低网络部署的成本。
附图说明
图1是TRILL网络的拓扑图;
图2是报文组成示意图;
图3是本发明在ASIC中转发TRILL网络报文的上行流程图;
图4是本发明在ASIC中转发TRILL网络报文的下行流程图;
图5是本发明在ASIC中上行转发单播报文的流程图;
图6是本发明在ASIC中上行转发组播报文的流程图;
图7是本发明在ASIC中下行转发单播报文的流程图;
图8是本发明在ASIC中下行转发组播报文的流程图;
图9是本发明在ASIC中转发TRILL网络报文的***结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,为一种典型的TRILL网络的拓扑图,本地以太网包括服务器和若干主机,通过路由桥(RBridge1、…RBridge6)连接到TRILL网络。本发明方案将以这个网络拓扑中的RBridge1为例进行介绍。
所述报文是网络中交换与传输的数据单元,包含了将要发送的完整的数据信息,是网络传输单位。在传输时不断地封装成分组、包、帧来传输,封装的方式就是添加报文头。
本发明中,待转发的TRILL网络报文类型可以包括以太网报文、TRILL报文、OAM报文和协议报文。其中,如图2所示,以太网报文的组成包括以太网数据和目的MAC/源MAC。进行TRILL报文封装是将以太网报文封装在TRILL报文中,添加TRILL报文头信息,包括目的昵称/源昵称以及外层目的MAC/源MAC,经过TRILL封装后,在TRILL报文头的上层协议字段标识所封装的报文为以太网报文类型。
TRILL报文头中包括版本(ver),组播标记(M),选项长度(Option Length),生存时间TTL(Hop Count),目的昵称(Egress RBridge Nickname),源昵称(Ingress RBridge Nickname)以及TRILL的选项(Header Options)等信息。
因而,TRILL报文中包括源目RBridge的MAC地址、VLAN(Virtual Local Area Network,虚拟局域网)信息、入接口信息(源昵称)、出接口信息(目的昵称)以及数据报文,其中,源目RBridge的MAC地址指示TRILL报文发出的源RBridge和目的RBridge。
如图3所示,是本发明在ASIC中转发TRILL网络报文的上行流程图,该方法包括以下步骤:
步骤101:报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。
对于报文解析的处理可通过寄存器配置完成,不写成固定的值。在后续标准更新后,可以不需要更换硬件设备,只需要修改软件代码,实现与最新标准的同步,提供一定的灵活性,节省网络维护的费用。
步骤102,入接口信息获取,并根据入接口的配置信息进行查表。
步骤103,查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。
在查表的过程中,针对查表结果的情况,设置有一条默认条目,根据该默认条目的配置可以在查表无结果时直接进行步骤108,将报文丢弃或者上送给CPU处理,这样可以节省处理流程。
如果报文是单播报文,查表可以直接得到单个出接口的配置信息,直接进入步骤105。
对于组播报文的情形,经过查表得到的是一个组播组信息,不能直接得到单个出接口的配置信息,则进入步骤104。
步骤104,组播信息获取,用于获取组播组信息,并根据组播组信息索引对应一个组播组的出接口信息。
步骤105,出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息。其中,所述出接口信息是报文的目的昵称信息。
步骤106,报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。
步骤107,报文转发,将已经封装好的TRILL报文从对应的出接口中发送出去。
如图4所示,是本发明在ASIC中转发TRILL网络报文的下行流程图,该方法包括以下步骤:
步骤201:报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。所述TRILL报文头还包括外层源MAC地址、外层目的MAC地址和TRILL报文的目的昵称。
对于报文解析的处理可通过寄存器配置完成,不写成固定的值。在后续标准更新后,可以不需要更换硬件设备,只需要修改软件代码,实现与最新标准的同步,提供一定的灵活性,节省网络维护的费用。
步骤202,入接口信息获取,并根据入接口的配置信息进行查表。
查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。
在进行查表时,先进行步骤203邻居信息检查,检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行步骤204,如果不匹配,则进行丢弃报文处理直接进行步骤212,将报文丢弃,这样可以节省处理流程。
步骤204,端口检查,是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行步骤205,如果不是,则直接进行步骤209。
步骤205,昵称检查,是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行步骤209,如果是,则进一步判断所述TRILL报文是否为组播报文。
如果报文是单播报文,查表可以直接得到单个出接口的配置信息,直接进入步骤207。
对于组播报文的情形,经过查表得到的是一个组播组信息,不能直接得到单个出接口的配置信息,则进入步骤206。
步骤206,组播组信息获取,用于获取组播组信息,并根据组播组信息索引对应一个组播组的出接口信息,进入步骤209。所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发。对于组播组信息中的TRILL报文的目的昵称存在本地组播组成员时,在进入步骤209出接口信息获取后,无法得到每个出接口信息,还将所述TRILL报文进行步骤207解封装处理和步骤208内部信息查表后,找到一个组出接口信息后,再进入步骤206。
步骤207,解封装处理,是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;再进行步骤208。
步骤208,内部信息查表,用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息,进入步骤209。
步骤209,出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息。其中,所述出接口信息是报文的目的昵称信息。
步骤210,报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。
步骤211,报文转发,将已经封装好的TRILL报文从对应的出接口中发送出去。
为了更清楚地表述,以下针对各种转发情形做详细说明:
1,上行报文处理。
对于RBridge1来说,上行报文的处理是指将从主机收到的以太网报文转发到TRILL网络中的过程。当RBridge1收到本地以太网报文后,如果是单播报文,其处理流程如图5所示;如果是组播报文,其处理流程如图6所示。
如图5所示,ASIC对接收到的报文依次进行步骤101,报文解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。步骤102,入接口信息获取,并根据入接口的配置信息进行查表。步骤103,查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。步骤105,出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息。步骤106和步骤107,报文封装和报文转发,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去。
如图6所示,如果以太网报文为组播报文,与图5所示的单播报文的发送方式稍有不同。组播报文在查表得到的出接口的配置信息为一个组播组信息,因而在步骤105出接口信息获取之前,还包括组播信息获取的步骤104,根据所述组播组信息索引对应一个组播组的出接口信息。
对应的,步骤105出接口信息获取是逐一获取的过程,并将以太网报文一一复制后进行步骤106报文封装,根据不同的出接口信息进行封装。封装完后,进行步骤107报文转发,将多份报文分别发送出去。
2,下行报文处理。
和上行报文相反,对于RBridge1来说,下行报文的处理是指将从TRILL网络中收到的报文转发到本地以太网的过程。当RBridge1收到TRILL报文后,如果是单播报文,其处理流程如图7所示;如果是组播报文,其处理流程如图8所示。
如图7所示,相对于上行报文,下行报文的处理相对复杂,主要增加了几个处理TRILL报文的流程。步骤201、202、209、210、211与步骤101、102、105、106、107分别对应。在查表过程中,包括步骤203、204、205,具体是:
步骤203,邻居信息检查,检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;对于组播报文,步骤203邻居信息检查是还需要检查TRILL报文中的源昵称和目的昵称与入接口是否相匹配。如果不匹配,则进行步骤212丢弃报文。
步骤204,端口检查,以TRILL报文的外层目的MAC地址为关键字进行查找,如果该MAC地址为本设备端口的MAC,则需要进入步骤205进一步处理;如果不是,则进入步骤209进行普通二层转发。
步骤205,昵称检查,以TRILL报文的目的昵称为关键字进行查找,如果该昵称是本设备昵称,则需要转发到本地以太网,需要进入步骤207处理;如果不是,则根据此次查表获得的出接口信息进入步骤209进行转发。值得一提的是,此时不是本设备昵称进行的报文转发是基于TRILL报文的目的昵称,与普通二层转发有区别,不会进行解封装的过程。
步骤207,解封装处理,是将TRILL报文中的以太网报文头和TRILL报文头剥去,露出原始的以太网数据,进入步骤208。
步骤208,内部信息查表,以内部以太网目的MAC和VLAN为关键字查表,获得出接口信息进行普通二层转发,进入步骤209。
如图8所示,对于下行的组播报文,有可能存在两次转发的过程。图1中的RBridge1如果收到从RBridge4发过来的组播报文,首先,需要根据TRILL报文的目的昵称转发给其他的RBirdge,在步骤205昵称检查后,需要进行步骤206,组播组信息获取,用于获取组播组信息,并根据组播组信息索引对应一个组播组的出接口信息,进入步骤209。所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行进行基于TRILL昵称的转发。
其次,对于组播组信息中的TRILL报文的目的昵称存在本地组播组成员时,在步骤209中出接口信息获取中无法得到每个出接口信息,还将所述TRILL报文进行步骤207解封装处理和步骤208内部信息查表后,再进入步骤206进行转发,此时由于目的昵称是本地,则转发给本地的主机。之前所有的报文转发都只有一次转发过程,但在这种情况下存在两次。因此,为了减少ASIC设计中流水线的级数,在这里设计了一个内部环回接口,通过重用之前步骤206、209和210等来达到两次转发的目的。
在昵称检查之后,首先获得外层转发的组播组信息,然后将报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于TRILL昵称的转发。当存在本地成员的时候,不会获得出接口信息,直接转入解封装处理。解封装完成后以内部目的MAC和VLAN为关键字进行查表,获得内层转发的组播组信息,然后将解完封装的报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于内层目的MAC和VLAN的转发,转发至本地主机。
3,OAM报文的处理
OAM报文(Operation Administration and Maintenance)是操作维护管理报文,属于TRILL网络,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,其处理流程参见图7所示。针对OAM报文***并不执行复杂的OAM状态机,而是通过解析报文,识别为OAM报文,然后送给CPU处理。
所述OAM报文包括TRILL报文的封装,经过步骤201、202解析后进行查表时,先进行步骤203邻居信息检查,检查接收到的OAM报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行步骤204端口检查,如果不匹配,则进行丢弃报文处理。
所述端口检查是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行步骤205昵称检查,如果不是,则直接进行出接口信息获取;
所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行步骤209出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。
4,协议报文的处理
所述接收到的报文类型是协议(IS-IS)报文时,属于TRILL网络,进行下行报文处理,将协议报文转发给CPU做进一步的处理,其处理流程参见图7所示。针对协议报文***也不执行复杂的协议状态机,而是通过解析报文,识别其为协议报文,然后送给CPU处理。
所述协议报文包括以太网类型字段,经过步骤201、202解析后进行查表时,先进行步骤203邻居信息检查,检查接收到的协议报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行步骤204端口检查,如果不匹配,则进行丢弃报文处理;
所述端口检查得到出接口信息为CPU接口,则进行步骤209出接口信息获取,将解析后的协议报文进行封装后转发给CPU。
值得一提的是,对于从CPU下发的OAM和协议报文,尚未经过TRILL网络封装,则可以跳过之前所有的查表过程,直接TRILL转发或者普通二层转发,将报文从普通网络接口发出去即可。
相应地,本发明在ASIC中转发TRILL网络报文的***,如图9所示,包括:
报文解析模块301,用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。
入接口信息获取模块302,用于获取入接口配置信息,并根据入接口的配置信息进行查表。
查表模块303,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。
组播信息获取模块304,当出接口的配置信息为组播组信息时,根据所述组播组信息索引对应一个组播组的出接口信息。
解封装处理模块305,用于将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息。
内部信息查表模块306,用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。
出接口信息获取模块307,用于根据查表的结果,得到需要转发出去的出接口信息。
报文封装模块308,用于将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。
报文转发模块309,将已经封装好的TRILL报文从对应的出接口中发送出去。
所述报文解析模块301、入接口信息获取模块302、查表模块303、组播信息获取模304、解封装处理模块305、内部信息查表模块306、出接口信息获取模块307、报文封装模块308、报文转发模块309均固化于ASIC中。
针对报文上行处理:
对于RBridge1来说,上行报文的处理是指将从主机收到的以太网报文转发到TRILL网络中的过程。当RBridge1收到本地以太网报文后,如果是单播报文,其处理流程如图5所示;如果是组播报文,其处理流程如图6所示。
在ASIC中报文解析模块301对收到的报文进行解析,得到查表所需要的各种信息。入接口信息获取模块302根据入接口的配置信息来决定是否需要进行查表。在查表模块303中,用解析得到的目的MAC地址和VLAN信息作为关键字进行查表。在出接口信息获取模块307中,根据查表的结果,得到需要转发出去的端口信息。在报文封装模块308中,将原始以太网报文封装在TRILL报文中,交给报文转发模块309进行转发。
在查表模块303中,设置一条默认条目,这样在查表的时候必然可以返回结果,通过对这个默认条目的配置来实现查表无结果时候的处理,可以让报文丢弃或者上送给CPU处理,这样就避免了对查表无结果的专门处理流程。
在整个过程中,组播报文的处理和单播稍有不同。组播报文在查表模块303之后不能直接得到出接口信息,而是得到一个组播组信息。因而,还包括一个组播组信息获取模块,根据这个组播组信息再去索引所有该组播组对应的出接口信息,然后出接口信息获取模块307将原始报文进行一一复制,报文封装模块308根据不同的出接口信息进行不同的封装,最后报文转发模块309再转发多份报文出去。
针对下行报文处理:
和上行报文相反,对于RBridge1来说,下行报文的处理是指将从TRILL网络中收到的报文转发到本地以太网的过程。当RBridge1收到TRILL报文后,如果是单播报文,其处理流程如图7所示;如果是组播报文,其处理流程如图8所示。
相对于上行报文,下行报文的处理相对复杂,主要增加了几个处理TRILL报文的模块。在查表模块中包括邻居信息检查模块(图未示)、端口检查模块(图未示)和昵称检查模块(图未示)的处理。
邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;对于组播报文,该模块还需要检查TRILL报文中的源昵称和目的昵称与入接口是否相匹配。如果不匹配,则需要丢弃报文。
端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找,如果该MAC地址为本设备端口的MAC,则需要进一步处理;如果不是,则进入普通二层转发。
昵称检查模块以TRILL报文的目的昵称为关键字进行查找,如果该昵称是本设备昵称,则需要转发到本地以太网,需要进入解封装处理模块305处理;如果不是,则根据此次查表获得的出接口信息进行转发。此时报文的转发是基于TRILL报文的目的昵称,与普通二层转发有区别。
解封装处理模块305将TRILL报文中的外层以太网和TRILL报头剥去,露出原始的以太网数据。内部信息查表模块306以内部以太网目的MAC和VLAN为关键字查表,获得出接口信息进行二层转发。
对于下行的组播报文,存在两次转发的过程。图1中的RBridge1如果收到从RBridge4发过来的组播报文,首先需要根据TRILL报文的目的昵称转发给其他的RBirdge;其次当RBridge1存在本地组播组成员的时候,需要将该报文进行解封装处理,然后根据内部的目的MAC和VLAN转发给本地的主机。之前所有的报文转发都只有一次转发过程,但在这种情况下存在两次。因此,为了减少ASIC设计中流水线的级数,在这里设计了一个内部环回接口,通过重用之前的模块来达到两次转发的目的。
在昵称检查之后,首先获得外层转发的组播组信息,然后将报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于TRILL昵称的转发。当存在本地成员的时候,不会获得出接口信息,直接转入“解封装处理”模块。解封装完成后以内部目的MAC和VLAN为关键字进行查表,获得内层转发的组播组信息,然后将解完封装的报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于内层目的MAC和VLAN的转发。
本发明将介绍一种ASIC中实现TRILL报文转发的方法,主要介绍在ASIC中对TRILL报文处理的逻辑。该方法完全遵循IETF目前所制定的TRILL标准,实现TRILL报文的单播、组播以及协议报文上送CPU等一系列行为。通过逻辑固化在ASIC中后,可以实现TRILL报文的线速转发。并且,本发明作为以太网交换芯片的一个子特性,与其他以太网交换芯片的特性相结合,适用于数据中心等对TRILL有需求的以太网交换机中,降低部署TRILL的费用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种在ASIC中转发TRILL网络报文的方法,包括:
报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;
入接口信息获取,并根据入接口的配置信息进行查表;
查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;
出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;
报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去;
其特征在于,
所述接收到的报文类型是以太网报文时,进行上行报文处理,将本地以太网收到的以太网报文转发至TRILL网络;
所述接收到的报文是TRILL报文、OAM报文和协议报文时,进行下行报文处理,其中,所述查表步骤具体为:
邻居信息检查,检查接收到的报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理;
端口检查,检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取;
昵称检查,检查报文的目的昵称是否为本设备昵称。
2.根据权利要求1所述的方法,其特征在于,所述以太网报文为组播报文时,查表得到的出接口的配置信息为一个组播组信息,
相应地,在所述出接口信息获取之前还包括组播信息获取的步骤,根据所述组播组信息索引对应一个组播组的出接口信息;
并在所述报文封装时,将以太网报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
3.根据权利要求1所述的方法,其特征在于,所述接收到的报文是TRILL报文时,进行下行报文处理,将TRILL网络的TRILL报文转发至本地以太网,所述TRILL报文头还包括外层源MAC地址、外层目的MAC地址和TRILL报文的目的昵称。
4.根据权利要求3所述的方法,其特征在于,所述昵称检查是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行出接口信息获取,如果是,则判断所述TRILL报文是否为组播报文。
5.根据权利要求4所述的方法,其特征在于,当所述TRILL报文为单播报文时,进行解封装处理和内部信息查表,具体为:
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息;
当所述TRILL报文为组播报文时,在查表后先进行组播组信息获取,根据所述组播组信息索引对应一个组播组的出接口信息,所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发;
如果TRILL报文的目的昵称存在本地组播组成员时,还将所述TRILL报文进行解封装处理和内部信息查表,其中
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。
6.根据权利要求5所述的方法,其特征在于,所述一个组播组的出接口信息是分别进行出接口信息获取,并将TRILL报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
7.根据权利要求1所述的方法,其特征在于,所述接收到的报文类型是OAM报文时,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,所述OAM报文包括TRILL报文的封装,经过解析后进行查表时,所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。
8.根据权利要求1所述的方法,其特征在于,所述接收到的报文类型是协议报文时,进行下行报文处理,将协议报文转发给CPU做进一步的处理,所述协议报文包括以太网类型字段,经过解析后进行查表时,所述端口检查得到出接口信息为CPU接口,则进行出接口信息获取,将解析后的协议报文进行封装后转发给CPU。
9.一种在ASIC中转发TRILL网络报文的***,包括:
用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型的模块;
用于获取入接口配置信息,并根据入接口的配置信息进行查表的模块;
用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息的模块;
用于根据查表的结果,得到需要转发出去的出接口信息的模块;
用于将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去的模块,其特征在于,
所述查表模块包括邻居信息检查模块、端口检查模块和昵称检查模块,邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找;昵称检查模块以TRILL报文的目的昵称为关键字进行查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110237690.9A CN102957616B (zh) | 2011-08-18 | 2011-08-18 | 在asic中转发trill网络报文的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110237690.9A CN102957616B (zh) | 2011-08-18 | 2011-08-18 | 在asic中转发trill网络报文的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102957616A CN102957616A (zh) | 2013-03-06 |
CN102957616B true CN102957616B (zh) | 2015-09-23 |
Family
ID=47765866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110237690.9A Active CN102957616B (zh) | 2011-08-18 | 2011-08-18 | 在asic中转发trill网络报文的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102957616B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177046A (zh) * | 2019-04-18 | 2019-08-27 | 中国人民解放军战略支援部队信息工程大学 | 基于拟态思想的安全交换芯片、实现方法及网络交换设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103346962B (zh) * | 2013-06-20 | 2016-08-17 | 杭州华三通信技术有限公司 | 未知单播报文转发方法及路由桥 |
CN104702506B (zh) * | 2013-12-09 | 2018-10-19 | 华为技术有限公司 | 一种报文传输方法、网络节点及报文传输*** |
CN103701703B (zh) * | 2013-12-31 | 2017-05-10 | 新华三技术有限公司 | 一种邻居关系管理方法及装置 |
CN104811386B (zh) * | 2014-01-29 | 2018-03-16 | 华为技术有限公司 | 报文转发方法、设备及*** |
CN104113463B (zh) * | 2014-07-24 | 2018-07-31 | 深圳市共进电子股份有限公司 | 一种基于网桥的数据报文处理方法、装置及网桥 |
CN104539545B (zh) * | 2014-12-31 | 2018-01-12 | 新华三技术有限公司 | Trill网络中的组播报文转发方法和设备 |
CN107528781A (zh) * | 2016-06-22 | 2017-12-29 | 中兴通讯股份有限公司 | 组播报文的转发方法及装置、路由器 |
CN107566316A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 一种报文解析方法、装置及网络处理器 |
CN106658236B (zh) * | 2016-10-31 | 2020-05-05 | 盛科网络(苏州)有限公司 | 基于多层vlan标签处理的gpon业务承载芯片实现方法 |
CN106789644B (zh) * | 2016-11-29 | 2020-01-07 | 深圳市楠菲微电子有限公司 | 一种trill组播报文的转发方法和装置 |
CN108989206B (zh) * | 2018-08-22 | 2021-10-15 | 迈普通信技术股份有限公司 | 报文转发方法及装置 |
CN110852391A (zh) * | 2019-11-13 | 2020-02-28 | 中国人民解放军91977部队 | 一种基于多种分类器的以太网报文分类方法和装置 |
CN117376272A (zh) * | 2023-12-08 | 2024-01-09 | 广州通则康威科技股份有限公司 | 一种报文长度调整方法、装置、***和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827009A (zh) * | 2009-03-04 | 2010-09-08 | 丛林网络公司 | 利用服务vlan标识符在trill网络中路由帧 |
CN101964746A (zh) * | 2009-07-24 | 2011-02-02 | 丛林网络公司 | 在多宿的传统网桥节点的最短路径计算机网络中路由帧 |
-
2011
- 2011-08-18 CN CN201110237690.9A patent/CN102957616B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827009A (zh) * | 2009-03-04 | 2010-09-08 | 丛林网络公司 | 利用服务vlan标识符在trill网络中路由帧 |
CN101964746A (zh) * | 2009-07-24 | 2011-02-02 | 丛林网络公司 | 在多宿的传统网桥节点的最短路径计算机网络中路由帧 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177046A (zh) * | 2019-04-18 | 2019-08-27 | 中国人民解放军战略支援部队信息工程大学 | 基于拟态思想的安全交换芯片、实现方法及网络交换设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102957616A (zh) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102957616B (zh) | 在asic中转发trill网络报文的方法及*** | |
US9019976B2 (en) | Redundant host connection in a routed network | |
CN101296186B (zh) | 一种路由交换设备、方法和交换线卡板 | |
CN102868614B (zh) | Trill网络中的报文转发方法和路由网桥 | |
CN103929461B (zh) | 堆叠***中的mac地址信息同步方法及装置 | |
CN101573913B (zh) | 用于多播路由选择的方法和设备 | |
CN101877671B (zh) | 镜像报文的发送方法、交换芯片及以太网路由器 | |
CN100531138C (zh) | 运营商边界节点、虚拟专用局域网服务通信方法及*** | |
CN100407704C (zh) | 媒体接入控制层地址的动态学习方法 | |
CN101848186B (zh) | 一种塑料光纤三层以太网交换机 | |
CN102368727A (zh) | 跨ip网络的trill网络通信方法、***和设备 | |
CN102143026A (zh) | 一种在虚拟二层网络中避免环路的方法 | |
CN101640703A (zh) | 二层mac清除/重路由 | |
CN102724131B (zh) | 一种ip报文等价路由均衡实现的方法及装置 | |
US20140086100A1 (en) | Multi-Chassis Cluster Synchronization Using Shortest Path Bridging (SPB) Service Instance Identifier (I-SID) Trees | |
US20070217438A1 (en) | Ring node device and method of connecting terminal to ring node device | |
CN102801622B (zh) | 一种数据报文的转发方法及转发装置 | |
CN103841013A (zh) | Trill网络中的报文转发方法及设备 | |
JP4953360B2 (ja) | 運用保守管理フレームを処理する通信装置及びプログラム | |
CN102769567B (zh) | 一种多链接透明互联网络数据帧的转发方法和装置 | |
CN113630345A (zh) | 一种国产化24端口6u_vpx三层千兆网络交换模块 | |
CN101729361A (zh) | 报文处理的方法和装置 | |
CN102857417A (zh) | Trill网络中数据的传输方法及*** | |
GB2514634A (en) | Dynamic multicast state aggregation in transport networks | |
CN112543142B (zh) | 基于fpga实现rstp环网协议的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, Suzhou Industrial Park, Suzhou, Jiangsu Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |