一种报文传输方法和设备的制作方法

文档序号:7553345阅读:140来源:国知局
专利名称:一种报文传输方法和设备的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种大规模二层网络中的报文传输方法和设备。
背景技术
传统的三层数据中心架构中采用STP (Spanning Tree Protocol,生成树协议)来优化客户端到服务器的路径和支持连接冗余。由于STP的收敛性能等原因,一般情况下STP的网络规模不会超过100台交换机。同时由于STP需要阻塞冗余设备和链路,也降低了网络资源带宽利用率。传统的基于STP备份设备和链路方案已经不能满足数据中心规模、带宽的需求,并且STP协议几秒至几分钟的故障收敛时间,也不能满足数据中心的可靠性要求。因此,需要能够有新的技术,在满足二层网络规模的同时,也能够充分利用冗余设备和链路,提升链路利用率,而且数据中心的故障收敛时间能够降低到亚秒甚至毫秒级。虚拟化能够有效地提高服务器的利用率,降低能源消耗,降低客户的运维成本,所以虚拟化技术得到了极大的发展。虚拟化给数据中心带来的不仅是服务器利用率的提高,还有网络架构的变化。虚拟机迁移技术可以使数据中心的计算资源得到灵活的调配,进一步提高虚拟机资源的利用率。但是虚拟机迁移要求虚拟机迁移前后的IP和MAC (MediaAccess Control,介质访问控制)地址不变,这就需要虚拟机迁移前后的网络处于同一个二层域内部。由于客户要求虚拟机迁移的范围越来越大,甚至是跨越不同地域、不同机房之间的迁移,所以使得数据中心二层网络的范围越来越大,甚至出现了大规模二层网络(下文中简称为大二层网络)这一新领域专题。隧道技术能够实现覆盖多个接入交换机和核心交换机的数据中心内的大二层网络。隧道技术的典型代表是 TRILL (TRansparent Interconnection of Lots of Links,多链路透明互联)和SPB (Shortest Path Bridging,最短路径桥)技术,两者均是通过借用IS-1S (Intermediate System to Intermediate System,中间系统到中间系统)路由协议的计算和转发模式,实现二层网络的大规模扩展。这些技术目前正在标准化过程中,同时传统交换机不仅需要软件升级,还需要硬件支持。SPB协议支持Q-1n-Q模式UISspbv)和MAC-1n-MAC 模式(称为 SPBM),其中 SPBM(Shortest Path Bridging MAC Mode,MAC-1n-MAC模式的最短路径桥)是目前的主要推荐模式。在SPBM网络和TRILL网络中,厂商芯片对实际组网的支持不够,导致网络不能实现正常转发功能。下面将以SPBM网络为例,介绍其中的报文转发流程。SPBM网络中包括BEB (Backbone Edge Bridge,骨干网边缘网桥)设备、BCB(Backbone Core Bridge,骨干网核心网桥)设备和之间的骨干链路。BEB设备是SPBM网络的边缘设备,可将来自用户网络的报文进行MAC-1n-MAC封装,并转发到SPBM网络中;或者,将来自SPBM网络的MAC-1n-MAC报文进行解封装,并转发到用户网络。BCB设备是SPBM网络的核心设备,在对报文进行MAC-1n-MAC封装时,为其打上运营商所分配的B-MAC(BackboneMAC,骨干网 MAC)地址和 B-VLAN (Backbone-Virtual Local Area Network,骨干网虚拟局域网);按照B-MAC和B-VLAN转发MAC-1n-MAC报文,且只需要转发报文和学习骨干网中的MAC地址,不需要学习用户网络中大量的MAC地址。BEB设备上连接SPBM网络的端口称为上行口,连接用户网络的端口称为下行口 ;来自用户网络的报文被封装成MAC-1n-MAC报文之后,会通过BEB设备相应的上行口转发出去;来自SPBM网络的MAC-1n-MAC报文被解封装之后,会按照用户MAC地址通过BEB设备相应的下行口转发出去。图1所示为SPBM网络的一种组网结构,SPBM网络中运行SPB (Shortest PathBridging,最短路径桥)协议,对于不在同一个网段的主机I和主机2来说,相应的转发流程可以包括以下过程:一、针对主机I的ARP学习过程,该过程可以包括以下步骤:步骤1、主机 I 向 BEBl 发送 ARP (Address Resolution Protocol,地址解析协议)请求报文,该ARP请求报文的以太网报头的源MAC地址为主机I的MAC地址,且该ARP请求报文中携带作为发送端的主机I的MAC地址(1-1-1)和IP地址(1.1.1.2)、以及作为目标端的网关设备的IP地址和MAC地址,其中网关设备的MAC地址填充为全O,且该ARP请求报文以太网报头中的源MAC地址为主机I的MAC地址。步骤2、BEBI收到ARP请求报文后,进行源MAC地址学习,从而学习到主机I的MAC地址,在MAC地址表中记录MAC地址(1-1-1)与接收端口的对应关系,并对ARP请求报文进行MAC-1n-MAC封装,可以通过广播方式将经MAC-1n-MAC封装后的ARP请求报文发送给网关设备(在图1所示的应用场景下,网关设备部署在BCBl上)。步骤3、网关设备对MAC-1n-MAC封装后的ARP请求报文进行解封装,进行源MAC地址学习,从而学习主机I的MAC地址,在MAC地址表中记录主机I的MAC地址(1-1-1)与邻居信息的对应关系,该邻居信息包括MAC地址(1-1-1)对应的出端口(即ARP请求报文的接收端口)及MAC-1n-MAC转发时的封装信息;学习ARP请求报文中发送端的MAC地址(1-1-1)和IP地址(1.1.1.2),在路由表中记录MAC地址(1-1-1)、IP地址(1.1.1.2)和接收端口之间的对应关系。步骤4、网关设备对所述ARP请求报文进行响应,生成一 ARP应答报文,在该ARP应答报文中,发送端IP地址为网关设备的IP地址(1.1.1.1 ),发送端MAC地址为网关设备的MAC地址(3-3-3),目标端IP地址为主机I的IP地址(1.1.1.2),目标端MAC地址为主机I的 MAC 地址(1-1-1)。此外,该ARP应答报文的以太网报头的源、目的MAC地址分别为网关设备和主机I的MAC地址;网关设备对该ARP应答报文进行MAC-1n-MAC封装,将封装后的ARP应答报文发送给BEBI。步骤5、BEBl对MAC_in_MAC封装后的ARP应答报文进行解封装,得到ARP应答报文,根据该ARP应答报文进行源MAC地址学习,从而学习到网关设备的MAC地址,在MAC地址表中记录网关设备的MAC地址(3-3-3)与邻居信息的对应关系,该邻居信息包括MAC地址(3-3-3)对应的出端口(即ARP应答报文的接收端口)及MAC-1n-MAC转发时的封装信息。步骤6、BEB1利用ARP应答报文的目的MAC地址(1_1_1)查询MAC表,获得对应的端口,从而通过该端口将ARP应答报文发送给主机I。
步骤7、主机I在收到ARP应答报文后,学习到网关设备的IP地址(1.1.1.1)对应的 MAC 地址(3-3-3)。二、针对主机2的ARP学习过程,该过程类似于上述主机I的ARP学习过程,可以包括以下步骤:步骤1、主机2向BEB2发送ARP请求报文,该ARP请求报文的以太网报头的源MAC地址为主机2的MAC地址,且该ARP请求报文中携带作为发送端的主机2的MAC地址(2-2-2)和IP地址(2.2.2.2)、以及作为目标端的网关设备的IP地址和MAC地址,其中网关设备的MAC地址填充为全0,且该ARP请求报文以太网报头中的源MAC地址为主机2的MAC地址。步骤2、BEB2收到ARP请求报文后,进行源MAC地址学习,从而学习到主机2的MAC地址,在MAC地址表中记录MAC地址(2-2-2)与接收端口的对应关系,并对ARP请求报文进行MAC-1n-MAC封装,可以通过广播方式将经MAC-1n-MAC封装后的ARP请求报文发送给网关设备(在图1所示的应用场景下,网关设备部署在BCBl上)。步骤3、网关设备对MAC-1n-MAC封装后的ARP请求报文进行解封装,进行源MAC地址学习,从而学习主机2的MAC地址,在MAC地址表中记录主机2的MAC地址(2_2_2)与邻居信息的对应关系,该邻居信息包括MAC地址(2-2-2)对应的出端口(即ARP请求报文的接收端口)及MAC-1n-MAC转发时的封装信息;学习ARP请求报文中发送端的MAC地址(2_2_2)和IP地址(2.2.2.2),在路由表中记录MAC地址(2-2-2)、IP地址(2.2.2.2)和接收端口之间的对应关系。步骤4、网关设备对所述ARP请求报文进行响应,生成一 ARP应答报文,在该ARP应答报文中,发送端IP地址为网关设备的IP地址(2.2.2.1),发送端MAC地址为网关设备的MAC地址(3-3-3),目标端IP地址为主机2的IP地址(2.2.2.2),目标端MAC地址为主机2的 MAC 地址(2-2-2)。此外,该ARP应答报文的以太网报头的源、目的MAC地址分别为网关设备和主机2的MAC地址;网关设备对该ARP应答报文进行MAC-1n-MAC封装,将封装后的ARP应答报文发送给BEB2。步骤5、BEB2对MAC_in_MAC封装后的ARP应答报文进行解封装,得到ARP应答报文,根据该ARP应答报文进行源MAC地址学习,从而学习到网关设备的MAC地址,在MAC地址表中记录网关设备的MAC地址(3-3-3)与邻居信息的对应关系,该邻居信息包括MAC地址(3-3-3)对应的出端口(即ARP应答报文的接收端口)及MAC-1n-MAC转发时的封装信息。步骤6、BEB2利用ARP应答报文的目的MAC地址(2_2_2)查询MAC表,获得对应的端口,从而通过该端口将ARP应答报文发送给主机2。步骤7、主机2在收到ARP应答报文后,学习到网关设备的IP地址(2.2.2.1)对应的和MAC地址(3-3-3)。三、针对主机I向主机2发送报文的流程,该流程可以包括以下步骤:步骤1、主机I向主机2发送报文,该报文的目的IP地址为主机2的IP地址(2.2.2.2),目的MAC地址为网关设备的MAC地址(3-3-3)。步骤2、BEB1收到主机I发送给主机2的报文后,利用目的MAC地址查询MAC地址表,命中(3-3-3)的表项,依据(3-3-3)的表项的邻居信息对报文进行MAC-1n-MAC封装,并通过(3-3-3)表项对应的出端口将MAC-1n-MAC封装后的报文单播发送给网关设备。步骤3、网关设备对MAC-1n-MAC封装后的报文进行解封装,发现目的MAC地址是本设备MAC地址(3-3-3),则利用目的IP地址(2.2.2.2)查询路由表,得到对应的MAC地址为(2-2-2),并将报文的源MAC地址修改为本设备MAC地址(3_3_3),将报文的目的MAC地址修改为MAC地址(2-2-2)。步骤4、网关设备利用修改后的MAC地址(2-2-2)查询MAC地址表,命中(2_2_2)的表项,依据(2-2-2)的表项对应的邻居信息对修改后的报文进行MAC-1n-MAC封装,并通过(2-2-2)表项对应的出端口将MAC-1n-MAC封装后的报文发送给BEB2。步骤5、BEB2对MAC_in_MAC封装后的报文进行解封装,在得到相应报文之后,利用该报文的目的MAC地址(2-2-2 )查询MAC地址表,命中(2-2-2 )的表项,并通过(2-2-2 )表项对应的出端口将报文发送给主机2。针对主机2向主机I发送报文的流程,与上述流程类似。在上述步骤3和步骤4中,网关设备需要先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表;但是,当前现有部分厂商芯片无法实现先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表的处理过程,从而导致上述流程无法实现,即无法正常转发主机I发送给主机2的报文。

发明内容
本发明实施例提供一种报文传输方法和设备,在芯片的处理流程无法实现先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表时,可以正常转发不同终端设备之间需要传输的报文。为了达到上述目的,本发明实施例提供一种报文传输方法,应用于包括终端设备、边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,所述方法包括以下步骤:所述边缘桥设备接收来自所述网关设备的GRE封装的第一报文,所述第一报文是所述网关设备在对接收到的大二层网络封装的第二报文解封装后得到第三报文,且第三报文的目的MAC地址为所述网关设备的MAC地址时,根据第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系,并根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对第三报文进行GRE封装后生成并发送的;所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发;其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。所述边缘桥设备查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,之前还包括:所述边缘桥设备接收来自本地终端设备的ARP请求报文,所述ARP请求报文中携带所述本地终端设备的IP地址和MAC地址;所述边缘桥设备学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。所述边缘桥设备学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系,具体包括:所述边缘桥设备在连接本地终端设备的VLAN上使能ARP Snooping功能,且使能ARP Snooping功能表示所述边缘桥设备需要学习所述VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址;所述边缘桥设备在所述VLAN内的端口上收到所述ARP请求报文后,将所述ARP请求报文上送至本设备的CPU,以学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。本发明实施例提供一种报文传输方法,应用于包括终端设备、边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,所述方法包括以下步骤:所述网关设备接收大二层网络封装的第二报文,并对接收到的大二层网络封装的第二报文解封装后得到第三报文;当所述第三报文的目的MAC地址为所述网关设备的MAC地址时,所述网关设备根据所述第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系;所述网关设备根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对所述第三报文进行GRE封装后生成第一报文;所述网关设备将GRE封装的第一报文发送给所述边缘桥设备;由所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发;其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。所述网关设备查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系之前,所述方法还包括:所述网关设备接收终端设备相连的边缘桥设备转发的来自所述终端设备的ARP请求报文,该ARP请求报文中携带终端设备的IP地址和MAC地址;所述网关设备学习所述ARP请求报文中携带的终端设备的IP地址和MAC地址,并获得终端设备相连的边缘桥设备的IP地址和MAC地址;所述网关设备在本地路由表中记录终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系。所述网关设备获得终端设备相连的边缘桥设备的IP地址和MAC地址,具体包括:所述网关设备在拓扑表中预先维护所述大二层网络中各边缘桥设备的IP地址与MAC地址之间的对应关系;所述网关设备在收到来自边缘桥设备的ARP请求报文时,确定所述边缘桥设备的MAC地址,并通过所述边缘桥设备的MAC地址查询所述拓扑表,以得到所述边缘桥设备的IP地址。本发明实施例提供一种网关设备,应用于包括终端设备、边缘桥设备和所述网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,所述网关设备具体包括:接收模块,用于接收大二层网络封装的第二报文;解封装模块,用于对接收到的大二层网络封装的第二报文解封装后得到第三报文;查询模块,用于当所述第三报文的目的MAC地址为本网关设备的MAC地址时,根据所述第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系;封装模块,用于根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对所述第三报文进行GRE封装后生成第一报文;发送模块,用于将GRE封装的第一报文发送给所述边缘桥设备;由所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发;其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。还包括:维护模块;所述接收模块,还用于接收终端设备相连的边缘桥设备转发的来自终端设备的ARP请求报文,ARP请求报文中携带终端设备的IP地址和MAC地址;所述维护模块,用于学习所述ARP请求报文中携带的终端设备的IP地址和MAC地址,并获得终端设备相连的边缘桥设备的IP地址和MAC地址;以及,在本地路由表中记录终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系。所述维护模块,进一步用于在拓扑表中预先维护所述大二层网络中各边缘桥设备的IP地址与MAC地址之间的对应关系;在收到来自边缘桥设备的ARP请求报文时,确定所述边缘桥设备的MAC地址,并通过所述边缘桥设备的MAC地址查询所述拓扑表,以得到所述边缘桥设备的IP地址。本发明实施例提供一种边缘桥设备,应用于包括终端设备、所述边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,所述边缘桥设备具体包括:接收模块,用于接收来自所述网关设备的GRE封装的第一报文,所述第一报文是所述网关设备在对接收到的大二层网络封装的第二报文解封装后得到第三报文,且第三报文的目的MAC地址为所述网关设备的MAC地址时,根据第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系,并根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对第三报文进行GRE封装后生成并发送的;解封装模块,用于对所述第一报文解GRE封装得到第三报文;处理模块,用于根据所述第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定所述第三报文的目的IP地址对应的MAC地址后进行转发;其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。还包括:维护模块;所述接收模块,还用于接收来自本地终端设备的ARP请求报文,所述ARP请求报文中携带所述本地终端设备的IP地址和MAC地址;所述维护模块,用于学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。所述维护模块,具体用于在连接本地终端设备的VLAN上使能ARPSnooping功能,且使能ARP Snooping功能表示本边缘桥设备需要学习所述VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址;在所述VLAN内的端口上收到所述ARP请求报文后,将所述ARP请求报文上送至本设备的CPU,以学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,网关设备通过对报文进行GRE (Generic Routing Encapsulation,通用路由封装)封装,并向边缘桥设备发送GRE封装后的报文,以避免先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表的处理流程,从而在芯片的处理流程无法实现先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表时,可以正常转发不同终端设备之间需要传输的报文,避免在SPBM网络使用SPB协议或者在TRILL网络使用TRILL协议时,报文无法正常传输的情况。


图1是现有技术中SPBM网络的组网结构示意图;图2是本发明实施例的应用场景示意图;图3和图4是本发明实施例提供的一种报文传输方法流程示意图;图5是本发明实施例提供的一种网关设备的结构示意图;图6是本发明实施例提供的一种边缘桥设备的结构示意图。
具体实施例方式下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。针对现有技术中存在的问题,本发明实施例提出一种报文传输方法,该方法应用于包括终端设备、边缘桥设备和网关设备的大二层网络中,其中,边缘桥设备与终端设备直接连接;网关设备通过对报文进行GRE封装,并向边缘桥设备发送GRE封装后的报文,以避免先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表的处理流程,从而在芯片的处理流程无法实现先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表时,可以正常转发不同终端设备之间需要传输的报文。本发明实施例中,网关设备在收到大二层网络封装的第二报文时,对接收到的大二层网络封装的第二报文解封装后得到第三报文;当第三报文的目的MAC地址为本网关设备的MAC地址时,根据第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系;根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对第三报文进行GRE封装后生成第一报文,将GRE封装的第一报文发送给边缘桥设备。边缘桥设备接收来自网关设备的GRE封装的第一报文,对第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发。本发明实施例中,网关设备维护本地路由表的过程包括:网关设备接收终端设备相连的边缘桥设备转发的来自终端设备的ARP请求报文,该ARP请求报文中携带终端设备的IP地址和MAC地址;学习ARP请求报文中携带的终端设备的IP地址和MAC地址,并获得终端设备相连的边缘桥设备的IP地址和MAC地址;在本地路由表中记录终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系。进一步的,网关设备获得终端设备相连的边缘桥设备的IP地址和MAC地址,具体包括:网关设备在拓扑表中预先维护大二层网络中各边缘桥设备的IP地址与MAC地址之间的对应关系;在收到来自边缘桥设备的ARP请求报文时,确定边缘桥设备的MAC地址,并通过边缘桥设备的MAC地址查询拓扑表,以得到该边缘桥设备的IP地址。本发明实施例中,边缘桥设备维护本地路由表的过程包括:边缘桥设备接收来自本地终端设备的ARP请求报文,该ARP请求报文中携带本地终端设备的IP地址和MAC地址;学习ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录本地终端设备的IP地址与MAC地址的对应关系。进一步的,边缘桥设备学习本地终端设备的IP地址和MAC地址,并在本地路由表中记录本地终端设备的IP地址与MAC地址的对应关系具体包括:边缘桥设备在连接本地终端设备的VLAN上使能ARP Snooping功能,且使能ARP Snooping功能表示边缘桥设备需要学习该VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址;在该VLAN内的端口上收到ARP请求报文后,将所述ARP请求报文上送至本设备的CPU,以学习ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录本地终端设备的IP地址与MAC地址的对应关系。本发明实施例中,大二层网络为SPBM网络,边缘桥设备为BEB设备,大二层网络封装为MAC-1n-MAC封装;或者,大二层网络为TRILL网络,边缘桥设备为RB设备,大二层网络封装为TRILL封装。为了更加清楚的阐述本发明实施例提供的技术方案,以基于SPB协议的SPBM网络为例,则该SPBM网络的应用场景可以如图2所示;本发明实施例提出的报文传输方法,可以应用于包括源终端设备、源BEB设备、目的终端设备、目的BEB设备和网关设备的SPBM网络中。在主机I向主机2发送报文的过程中,源终端设备为主机1,源BEB设备为BEB1,目的终端设备为主机2,目的BEB设备为BEB2,且在图2所示应用场景下,网关设备部署在BCBl上。在主机2向主机I发送报文的过程中,源终端设备为主机2,源BEB设备为BEB2,目的终端设备为主机1,目的BEB设备为BEB1,且在图2所示应用场景下,网关设备部署在BCBl 上。一、在上述应用场景下,针对主机I的ARP学习过程,包括以下步骤:步骤1、主机I向BEBl发送ARP请求报文,该ARP请求报文中携带作为发送端的主机I的MAC地址(1-1-1)和IP地址(1.1.1.2)、以及作为目标端的网关设备的IP地址和MAC地址,其中网关设备的MAC地址填充为全0,且该ARP请求报文以太网报头中的源MAC地址为主机I的MAC地址。步骤2、BEBl在收到ARP请求报文后,进行源MAC地址学习,从而学习到主机I的MAC地址,在MAC地址表中记录MAC地址(1-1-1)与接收端口的对应关系;并学习ARP请求报文中携带的发送端的MAC地址(1-1-1)和IP地址(1.1.1.2),在路由表中记录MAC地址(1-1-1)、IP地址(1.1.1.2)和接收端口之间的对应关系。具体的,BEBl在接收到来自主机I的ARP请求报文(携带主机I的IP地址和MAC地址)后,该BEBl学习主机I的IP地址和MAC地址,并在路由表中记录主机I的IP地址与MAC地址的对应关系。本发明实施例中,可以配置各BEB设备在连接主机的VLAN上使能ARP Snooping(探测),使能ARP Snooping功能表示BEB设备需要学习该VLAN内所有端口收到的ARP报文中携带的IP地址和MAC地址;因此,BEB设备上连接主机的VLAN在使能ARP Snooping之后,该VLAN内所有端口上接收的ARP请求报文均会重定向到CPU (Central ProcessingUnit,中央处理单元),由CPU对重定向上送的ARP请求报文进行分析,以获取ARP请求报文中携带的发送端IP地址、发送端MAC地址、VLAN和入端口等信息。基于此,BEBl在连接主机I的VLAN上使能ARP Snooping功能之后,如果BEBl在该VLAN内的端口上收到ARP请求报文,则BEBl需要学习该ARP请求报文中携带的主机I的IP地址和MAC地址,并在本设备的路由表中记录该主机I的IP地址与MAC地址的对应关系,对于路由表中的其它信息不再赘述。步骤3、BEBI对ARP请求报文进行MAC_in_MAC封装,可以通过广播方式将经MAC-1n-MAC封装后的ARP请求报文发送给网关设备(网关设备部署在BCBl上)。步骤4、网关设备对MAC-1n-MAC封装后的ARP请求报文进行解封装,以得到相应的ARP请求报文;根据ARP请求报文进行源MAC地址学习,从而学习到主机I的MAC地址(1-1-1),在MAC地址表中记录MAC地址(1-1-1)与邻居信息的对应关系,该邻居信息包括MAC地址(1-1-1)对应的端口(即ARP请求报文的接收端口)及MAC-1n-MAC转发时的封装信息;学习ARP请求报文中携带的发送端的MAC地址(1-1-1)和IP地址(1.1.1.2),在路由表中记录发送端的MAC地址(1-1-1)、IP地址(1.1.1.2)和接收端口之间的对应关系。本发明实施例中,网关设备在接收到来自BEBl的ARP请求报文(携带主机I的MAC地址(1-1-1)和IP地址(1.1.1.2))后,该网关设备需要学习ARP请求报文中携带的主机
I的MAC地址(1-1-1)和IP地址(1.1.1.2),并进一步获得BEBl的IP地址(私网IP地址192.168.1.4)和MAC地址(5-5-5),从而在路由表中记录主机I的MAC地址(1-1-1)和IP地址(1.1.1.2)、以及BEBl的IP地址(192.168.1.4)和MAC地址(5_5_5)之间的对应关系。进一步的,为了使网关设备能够获得BEBl的IP地址和MAC地址,网关设备可以在拓扑表中预先维护网络中各BEB设备的IP地址与MAC地址间的对应关系;在收到来自BEBl的ARP请求报文时,网关设备直接确定BEBl的MAC地址,并通过BEBl的MAC地址查询拓扑表,得到BEBl的IP地址。具体的,SPBM网络中各设备需要保留一个VLAN (为防止二层转发环路,该保留VLAN上的二层转发功能需要关闭),该VLAN用来学习SPBM网络中其它设备保留VLAN的MAC地址和IP地址。基于此VLAN,SPBM网络中的各设备通过扩展ISIS协议的方式,将本设备上保留VLAN的MAC地址和IP地址逐跳地通知到SPBM网络中的所有设备;因此,网关设备可在拓扑表中预先维护SPBM网络中各BEB设备的IP地址与MAC地址间的对应关系。步骤5、网关设备对所述ARP请求报文进行响应,生成一 ARP应答报文,对该ARP应答报文进行MAC-1n-MAC封装,将封装后的ARP应答报文发送给BEBl ;在该ARP应答报文中,发送端IP地址为网关设备的IP地址(1.1.1.0,目标端IP地址为主机I的IP地址(1.1.1.2),发送端MAC地址为网关设备的MAC地址(3-3-3),目标端MAC地址为主机I的MAC地址(1-1-1),且该ARP应答报文的以太网报头的源、目的MAC地址分别为网关设备和主机I的MAC地址。步骤6、BEBl对MAC-1n-MAC封装后的ARP应答报文进行解封装,得到ARP应答报文,根据该ARP应答报文进行源MAC地址学习,从而学习到网关设备的MAC地址,在MAC地址表中记录网关设备的MAC地址(3-3-3)与邻居信息的对应关系,该邻居信息包括网关设备MAC地址(3-3-3)对应的出端口(即ARP应答报文的接收端口)和MAC-1n-MAC封装信息。步骤7、BEBI根据该ARP应答报文的目的MAC地址(1_1_1)查询MAC地址表,获得对应的出端口,从而通过该出端口将ARP应答报文发送给主机I。步骤8、主机I在收到ARP应答报文后,学习到网关设备的IP地址(1.1.1.1)和MAC地址(3-3-3 )之间的对应关系。二、在上述应用场景下,针对主机2的ARP学习过程,包括以下步骤:步骤1、主机2向BEB2发送ARP请求报文,该ARP请求报文中携带作为发送端的主机2的MAC地址(2-2-2)和IP地址(2.2.2.2)、以及作为目标端的网关设备的IP地址和MAC地址,其中网关设备的MAC地址填充为全0,且该ARP请求报文以太网报头中的源MAC地址为主机2的MAC地址。步骤2、BEB2在收到ARP请求报文后,进行源MAC地址学习,从而学习到主机2的MAC地址,在MAC地址表中记录MAC地址(2_2_2)与接收端口的对应关系;并学习ARP请求报文中携带的发送端的MAC地址(2-2-2)和IP地址(2.2.2.2),在路由表中记录MAC地址(2-2-2)、IP地址(2.2.2.2)和接收端口之间的对应关系。具体的,BEB2在接收到来自主机2的ARP请求报文(携带主机2的IP地址和MAC地址)后,该BEB2需要学习主机2的IP地址和MAC地址,并在路由表中记录主机2的IP地址与MAC地址的对应关系。本发明实施例中,可以配置各BEB设备在连接主机的VLAN上使能ARPSnooping,使能ARP Snooping功能表示BEB设备需要学习该VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址;因此,BEB设备上连接主机的VLAN在使能ARP Snooping后,该VLAN内所有端口上接收的ARP请求报文均会重定向到CPU,由CPU对重定向上送的ARP请求报文进行分析,以获取ARP请求报文携带的发送端IP地址、发送端MAC地址、VLAN和入端口等信息。基于此,BEB2在连接主机2的VLAN上使能ARP Snooping功能之后,如果BEB2在该VLAN内的端口上收到ARP请求报文,则BEB2需要学习该ARP请求报文中携带的主机2的IP地址和MAC地址,并在本设备的路由表中记录该主机2的IP地址与MAC地址的对应关系,对于路由表中的其它信息不再赘述。步骤3、BEB2对ARP请求报文进行MAC_in_MAC封装,可以通过广播方式将经MAC-1n-MAC封装后的ARP请求报文发送给网关设备(网关设备部署在BCBl上)。步骤4、网关设备对MAC-1n-MAC封装后的ARP请求报文进行解封装,以得到相应的ARP请求报文;根据ARP请求报文进行源MAC地址学习,从而学习到主机2的MAC地址(2-2-2),在MAC地址表中记录MAC地址(2_2_2)与邻居信息的对应关系,该邻居信息包括MAC地址(2-2-2)对应的端口(即ARP请求报文的接收端口)及MAC-1n-MAC转发时的封装信息;学习ARP请求报文中携带的发送端的MAC地址(2-2-2)和IP地址(2.2.2.2),在路由表中记录发送端的MAC地址(2-2-2)、IP地址(2.2.2.2)和接收端口之间的对应关系。本发明实施例中,网关设备在接收到来自BEB2的ARP请求报文(携带主机2的MAC地址(2-2-2)和IP地址(2.2.2.2 后,该网关设备需要学习ARP请求报文中携带的主机
2的MAC地址(2-2-2)和IP地址(2.2.2.2),并进一步获得BEB2的IP地址(私网IP地址192.168.1.5)和MAC地址(6-6-6),从而在路由表中记录主机2的MAC地址(2-2-2)和IP地址(2.2.2.2)、以及BEB2的IP地址(192.168.1.5)和MAC地址(6_6_6)之间的对应关系。进一步的,为了使网关设备能够获得BEB2的IP地址和MAC地址,网关设备可以在拓扑表中预先维护网络中各BEB设备的IP地址与MAC地址间的对应关系;在收到来自BEB2的ARP请求报文时,网关设备直接确定BEB2的MAC地址,并通过BEB2的MAC地址查询拓扑表,得到BEB2的IP地址。具体的,SPBM网络中各设备需要保留一个VLAN (为防止二层转发环路,该保留VLAN上的二层转发功能需要关闭),该VLAN用来学习SPBM网络中其它设备保留VLAN的MAC地址和IP地址。基于此VLAN,SPBM网络中的各设备通过扩展ISIS协议的方式,将本设备上保留VLAN的MAC地址和IP地址逐跳地通知到SPBM网络中的所有设备;因此,网关设备可在拓扑表中预先维护SPBM网络中各BEB设备的IP地址与MAC地址间的对应关系。步骤5、网关设备对所述ARP请求报文进行响应,生成一 ARP应答报文,对该ARP应答报文进行MAC-1n-MAC封装,将封装后的ARP应答报文发送给BEB2 ;在该ARP应答报文中,发送端IP地址为网关设备的IP地址(2.2.2.1),目标端IP地址为主机2的IP地址(2.2.2.2),发送端MAC地址为网关设备的MAC地址(3-3-3),目标端MAC地址为主机I的MAC地址(2-2-2),且该ARP应答报文的以太网报头的源、目的MAC地址分别为网关设备和主机2的MAC地址。步骤6、BEB2对MAC_in_MAC封装后的ARP应答报文进行解封装,得到ARP应答报文,根据该ARP应答报文进行源MAC地址学习,从而学习到网关设备的MAC地址,在MAC地址表中记录网关设备的MAC地址(3-3-3)与邻居信息的对应关系,该邻居信息包括网关设备MAC地址(3-3-3)对应的出端口(即ARP应答报文的接收端口)和MAC-1n-MAC封装信息。步骤7、BEB2根据该ARP应答报文的目的MAC地址(2_2_2)查询MAC地址表,获得对应出端口,从而通过该出端口将ARP应答报文发送给主机2。步骤8、主机2在收到ARP应答报文后,学习到网关设备的IP地址(2.2.2.1)和MAC地址(3-3-3 )之间的对应关系。三、在上述应用场景下,基于主机I的ARP学习过程和主机2的ARP学习过程,在主机I向主机2发送报文时,如图3所示,该报文传输方法包括以下步骤:步骤301,主机I向主机2发送报文,该报文的目的IP地址为主机2的IP地址(2.2.2.2),目的MAC地址为网关设备的MAC地址(3-3-3);该报文的源IP地址为主机I的IP地址(1.1.1.2),源MAC地址为主机I的MAC地址(1-1-1)。步骤302,BEBl接收主机I发送给主机2的上述报文(目的IP地址为主机2的IP地址(2.2.2.2),目的MAC地址为网关设备的MAC地址(3-3-3)),对报文进行MAC-1n-MAC封装,并将MAC-1n-MAC封装后的报文发送给网关设备。具体的,BEBl需要利用报文的目的MAC地址(3-3-3)查询MAC地址表,命中(3-3-3)的表项;依据(3-3-3)的表项的邻居信息对报文进行MAC-1n-MAC封装之后,需要利用(3-3-3)表项对应的出端口将MAC-1n-MAC封装后的报文单播发送给网关设备。步骤303,网关设备对MAC-1n-MAC封装后的报文进行解封装(具体解封装方式不再赘述,以得到主机I发送给主机2的报文),并在发现目的MAC地址是本设备MAC地址(3-3-3)时,利用报文的目的IP地址(2.2.2.2)查询路由表,得到目的IP地址(2.2.2.2)对应的 BEB2 的 IP 地址(192.168.1.5)和 MAC 地址(6-6-6)。具体的,在网关设备维护的路由表中,记录有主机2的MAC地址(2-2-2)和IP地Jah (2.2.2.2)、以及BEB2的IP地址(192.168.1.5)和MAC地址(6_6_6)之间的对应关系;因此,网关设备在利用目的IP地址(2.2.2.2)查询路由表时,可以得到BEB2的IP地址(192.168.1.5)以及 MAC 地址(6-6-6)。步骤304,网关设备利用BEB2的IP地址(192.168.1.5)和MAC地址(6_6_6)对报文进行GRE封装,具体的,先为该报文增加GRE头(GRE header)得到GRE报文;再根据BEB2的IP地址(192.168.1.5)和MAC地址(6_6_6),为该GRE报文增加传输协议的报文头(Delivery header)以及以太网报头,得到GRE封装后的报文;其中,在GRE封装后的报文的GRE隧道头部中,目的IP地址为BEB2的IP地址(192.168.1.5),目的MAC地址为BEB2的 MAC 地址(6-6-6)。步骤305,GRE封装后的报文的目的MAC地址为BEB2的MAC地址(6-6-6),网关设备根据该目的MAC地址将GRE封装后的报文发送给BEB2。步骤306,BEB2对GRE封装后的报文进行GRE解封装(具体解封装方式在此不再赘述,以得到主机I发送给主机2的报文),利用报文的目的IP地址(2.2.2.2)查询路由表,得到主机2的MAC地址(2-2-2)。
具体的,在BEB2维护的路由表中,记录有主机2的IP地址(2.2.2.2)与MAC地址(2-2-2)之间的对应关系;因此,BEB2在利用目的IP地址(2.2.2.2)查询路由表时,可以得到主机2的MAC地址(2-2-2 )。步骤307,BEB2将报文的目的MAC地址修改为主机2的MAC地址(2_2_2),将报文的源MAC地址修改为本设备的MAC地址(6-6-6)。情况一、如果网关设备对报文进行GRE封装时,剥掉报文的目的MAC地址和源MAC地址,则BEB2直接在报文中添加目的MAC地址为主机2的MAC地址(2_2_2),源MAC地址为本设备的MAC地址(6-6-6 )。方式二、如果网关设备对报文进行GRE封装时,未剥掉报文的目的MAC地址和源MAC地址,则BEB2将报文的目的MAC地址修改为主机2的MAC地址(2-2-2 ),将报文的源MAC地址修改为本设备的MAC地址(6-6-6)。步骤308,BEB2将修改后的报文发送给主机2。四、在上述应用场景下,基于主机I的ARP学习过程和主机2的ARP学习过程,在主机2向主机I发送报文时,如图4所示,该报文传输方法包括以下步骤:步骤401,主机2向主机I发送报文,该报文的目的IP地址为主机I的IP地址(1.1.1.2),目的MAC地址为网关设备的MAC地址(3-3-3);该报文的源IP地址为主机2的IP地址(2.2.2.2),源MAC地址为主机2的MAC地址(2-2-2)。步骤402,BEB2接收主机2发送给主机I的上述报文(目的IP地址为主机I的IP地址(1.1.1.2),目的MAC地址为网关设备的MAC地址(3-3-3)),对报文进行MAC-1n-MAC封装,并将MAC-1n-MAC封装后的报文发送给网关设备。具体的,BEB2需要利用报文的目的MAC地址(3_3_3)查询MAC地址表,命中(3-3-3)的表项;依据(3-3-3)的表项的邻居信息对报文进行MAC-1n-MAC封装之后,需要利用(3-3-3)表项对应的出端口将MAC-1n-MAC封装后的报文单播发送给网关设备。步骤403,网关设备对MAC-1n-MAC封装后的报文进行解封装(具体解封装方式不再赘述,以得到主机2发送给主机I的报文),并在发现目的MAC地址是本设备MAC地址(3-3-3)时,利用报文的目的IP地址(1.1.1.2)查询路由表,得到目的IP地址(1.1.1.2)对应的 BEBl 的 IP 地址(192.168.1.4)和 MAC 地址(5-5-5)。具体的,在网关设备维护的路由表中,记录有主机I的MAC地址(1-1-1)和IP地址(1.1.1.2)、以及BEBl的IP地址(192.168.1.4)和MAC地址(5-5-5)之间的对应关系;因此,网关设备在利用目的IP地址(1.1.1.2)查询路由表时,可以得到BEBl的IP地址(192.168.1.4)以及 MAC 地址(5-5-5)。步骤404,网关设备利用BEBl的IP地址(192.168.1.4)和MAC地址(5_5_5)对报文进行GRE封装,具体的,先为该报文增加GRE头(GRE header)得到GRE报文;再根据BEBl的IP地址(192.168.1.4)和MAC地址(5_5_5),为该GRE报文增加传输协议的报文头(Delivery header)以及以太网报头,得到GRE封装后的报文;其中,在GRE封装后的报文的GRE隧道头部中,目的IP地址为BEBl的IP地址(192.168.1.4),目的MAC地址为BEBl的 MAC 地址(5-5-5)。步骤405,GRE封装后的报文的目的MAC地址为BEBl的MAC地址(5_5_5),网关设备根据该目的MAC地址GRE封装后的报文发送给BEBl。
步骤406,BEBl对GRE封装后的报文进行GRE解封装(具体解封装方式在此不再赘述,以得到主机2发送给主机I的报文),利用报文的目的IP地址(1.1.1.2)查询路由表,得到主机I的MAC地址(1-1-1)。具体的,在BEBl维护的路由表中,记录有主机I的IP地址(1.1.1.2)与MAC地址(1-1-1)之间的对应关系;因此,BEBl在利用目的IP地址(1.1.1.2)查询路由表时,可以得到主机I的MAC地址(1-1-1)。步骤407,BEBl将报文的目的MAC地址修改为主机I的MAC地址(1_1_1 ),将报文的源MAC地址修改为本设备的MAC地址(5-5-5)。情况一、如果网关设备对报文进行GRE封装时,剥掉报文的目的MAC地址和源MAC地址,则BEBl直接在报文中添加目的MAC地址为主机I的MAC地址(1_1_1 ),源MAC地址为本设备的MAC地址(5-5-5 )。方式二、如果网关设备对报文进行GRE封装时,未剥掉报文的目的MAC地址和源MAC地址,则BEBl将报文的目的MAC地址修改为主机I的MAC地址(1_1_1 ),将报文的源MAC地址修改为本设备的MAC地址(5-5-5)。步骤408,BEBl将修改后的报文发送给主机I。需要说明的是,上述为基于SPB协议的SPBM网络的报文传输流程,对于基于TRILL协议的TRILL网络,BEB设备为相应的入口路由桥(Ingress RB, Ingress Routing Bridge)设备(相当于源BEB设备)和出口 RB设备(Egress RB)(相当于目的BEB设备),BCB设备为相应的传输RB (Transit RB)设备;在TRILL网络中,与上述报文传输流程相比,只是多了ECMP (Equal Cost Multipath Routing,等价多路径)的处理,即网关设备在向入口 RB设备和出口 RB设备发送报文时,需要根据报文的字段计算出哈希值,从而选择一条最优路径来发送报文,其他流程与上述报文传输流程类似,在此不再赘述。当然,本发明实施例提供的方法并不局限于基于SPB协议的SPBM网络和基于TRILL协议的TRILL网络,对于其它按照上述流程实现报文转发的网络,均在本发明保护范围之内,对于其它网络的处理在此不再赘述。综上所述,本发明实施例中,网关设备通过对报文进行GRE封装,并向BEB设备发送GRE封装后报文,以避免先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表的处理流程,从而在芯片的处理流程无法实现先利用目的IP地址查询路由表,再利用目的MAC地址查询MAC地址表时,可以正常转发不同终端设备之间需要传输的报文;进一步的,可以避免在SPBM网络使用SPB协议或者在TRILL网络中使用TRILL协议时,报文无法正常传输的情况,使其依然可在相应网络中转发。基于与上述方法同样的发明构思,本发明实施例中还提供了一种网关设备,应用于包括终端设备、边缘桥设备和所述网关设备的大二层网络中,所述边缘桥设备与所述终端设备直接连接,如图5所示,所述网关设备包括:接收模块11,用于接收大二层网络封装的第二报文;解封装模块12,用于对接收到的大二层网络封装的第二报文解封装后得到第三报文;查询模块13,用于当所述第三报文的目的MAC地址为本网关设备的MAC地址时,根据所述第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系;封装模块14,用于根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对所述第三报文进行GRE封装后生成第一报文;发送模块15,用于将GRE封装的第一报文发送给所述边缘桥设备;由所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发;其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。所述接收模块11,还用于接收终端设备相连的边缘桥设备转发的来自终端设备的ARP请求报文,ARP请求报文中携带终端设备的IP地址和MAC地址;该网关设备还包括:维护模块16 ;用于学习所述ARP请求报文中携带的终端设备的IP地址和MAC地址,并获得终端设备相连的边缘桥设备的IP地址和MAC地址;以及,在本地路由表中记录终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系。所述维护模块16,进一步用于在拓扑表中预先维护所述大二层网络中各边缘桥设备的IP地址与MAC地址之间的对应关系;在收到来自边缘桥设备的ARP请求报文时,确定所述边缘桥设备的MAC地址,并通过所述边缘桥设备的MAC地址查询所述拓扑表,以得到所述边缘桥设备的IP地址。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。基于与上述方法同样的发明构思,本发明实施例中还提供了一种边缘桥设备,应用于包括终端设备、所述边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,如图6所示,所述边缘桥设备具体包括:接收模块21,用于接收来自所述网关设备的GRE封装的第一报文,所述第一报文是所述网关设备在对接收到的大二层网络封装的第二报文解封装后得到第三报文,且第三报文的目的MAC地址为所述网关设备的MAC地址时,根据第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系,并根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对第三报文进行GRE封装后生成并发送的;解封装模块22,用于对所述第一报文解GRE封装得到第三报文;处理模块23,用于根据所述第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定所述第三报文的目的IP地址对应的MAC地址后进行转发;其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。所述接收模块21,还用于接收来自本地终端设备的ARP请求报文,所述ARP请求报文中携带所述本地终端设备的IP地址和MAC地址;该边缘桥设备还包括维护模块24,用于学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。所述维护模块24,具体用于在连接本地终端设备的VLAN上使能ARP Snooping功能,且使能ARP Snooping功能表示本边缘桥设备需要学习所述VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址;在所述VLAN内的端口上收到所述ARP请求报文后,将所述ARP请求报文上送至本设备的CPU,以学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种报文传输方法,应用于包括终端设备、边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,其特征在于,所述方法包括以下步骤: 所述边缘桥设备接收来自所述网关设备的GRE封装的第一报文,所述第一报文是所述网关设备在对接收到的大二层网络封装的第二报文解封装后得到第三报文,且第三报文的目的MAC地址为所述网关设备的MAC地址时,根据第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系,并根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对第三报文进行GRE封装后生成并发送的; 所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发; 其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。
2.如权利要求1所述的方法,其特征在于,所述边缘桥设备查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,之前还包括: 所述边缘桥设 备接收来自本地终端设备的ARP请求报文,所述ARP请求报文中携带所述本地终端设备的IP地址和MAC地址; 所述边缘桥设备学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。
3.如权利要求2所述的方法,其特征在于,所述边缘桥设备学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系,具体包括: 所述边缘桥设备在连接本地终端设备的VLAN上使能ARP Snooping功能,且使能ARPSnooping功能表示所述边缘桥设备需要学习所述VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址; 所述边缘桥设备在所述VLAN内的端口上收到所述ARP请求报文后,将所述ARP请求报文上送至本设备的CPU,以学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。
4.一种报文传输方法,应用于包括终端设备、边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,其特征在于,所述方法包括以下步骤: 所述网关设备接收大二层网络封装的第二报文,并对接收到的大二层网络封装的第二报文解封装后得到第三报文;当所述第三报文的目的MAC地址为所述网关设备的MAC地址时,所述网关设备根据所述第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系; 所述网关设备根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对所述第三报文进行GRE封装后生成第一报文; 所述网关设备将GRE封装的第一报文发送给所述边缘桥设备;由所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发; 其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。
5.如权利要求4所述的方法,其特征在于,所述网关设备查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系之前,所述方法还包括: 所述网关设备接收终端设备相连的边缘桥设备转发的来自所述终端设备的ARP请求报文,该ARP请求报文中携带终端设备的IP地址和MAC地址; 所述网关设备学习所述ARP请求报文中携带的终端设备的IP地址和MAC地址,并获得终端设备相连的边缘桥设备的IP地址和MAC地址; 所述网关设备在本地路由表中记录终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系。
6.如权利要求5所述的方法,其特征在于,所述网关设备获得终端设备相连的边缘桥设备的IP地址和MAC地址,具体包括: 所述网关设备在拓扑表中预先维护所述大二层网络中各边缘桥设备的IP地址与MAC地址之间的对应关系; 所述网关设备在收到来自边缘桥设备的ARP请求报文时,确定所述边缘桥设备的MAC地址,并通过所述边缘桥设备的MAC地址查询所述拓扑表,以得到所述边缘桥设备的IP地址。
7.—种网关设备,应用于包括终端设备、边缘桥设备和所述网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,其特征在于,所述网关设备具体包括: 接收模块,用于接收大二层网络封装的第二报文; 解封装模块,用于对接收到的大二层网络封装的第二报文解封装后得到第三报文;查询模块,用于当所述第三报文的目的MAC地址为本网关设备的MAC地址时,根据所述第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系; 封装模块,用于 根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对所述第三报文进行GRE封装后生成第一报文; 发送模块,用于将GRE封装的第一报文发送给所述边缘桥设备;由所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发; 其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。
8.如权利要求7所述的设备,其特征在于,还包括:维护模块;所述接收模块,还用于接收终端设备相连的边缘桥设备转发的来自终端设备的ARP请求报文,ARP请求报文中携带终端设备的IP地址和MAC地址; 所述维护模块,用于学习所述ARP请求报文中携带的终端设备的IP地址和MAC地址,并获得终端设备相连的边缘桥设备的IP地址和MAC地址; 以及,在本地路由表中记录终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系。
9.如权利要求8所述的设备,其特征在于, 所述维护模块,进一步用于在拓扑表中预先维护所述大二层网络中各边缘桥设备的IP地址与MAC地址之间的对应关系;在收到来自边缘桥设备的ARP请求报文时,确定所述边缘桥设备的MAC地址,并通过所述边缘桥设备的MAC地址查询所述拓扑表,以得到所述边缘桥设备的IP地址。
10.一种边缘桥设备,应用于包括终端设备、所述边缘桥设备和网关设备的大二层网络中,其中,所述边缘桥设备与所述终端设备直接连接,其特征在于,所述边缘桥设备具体包括: 接收模块,用于接收来自所述网关设备的GRE封装的第一报文,所述第一报文是所述网关设备在对接收到的大二层网络封装的第二报文解封装后得到第三报文,且第三报文的目的MAC地址为所述网关设备的MAC地址时,根据第三报文的目的IP地址,查找本地路由表中维护的终端设备IP地址和MAC地址、以及与终端设备相连的边缘桥设备的IP地址和MAC地址之间的对应关系,并根据查找到的第三报文的目的IP地址对应的边缘桥设备的IP地址和MAC地址,对第三报文进行GRE封装后生成并发送的; 解封装模块,用于对所述第一报文`解GRE封装得到第三报文; 处理模块,用于根据所述第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定所述第三报文的目的IP地址对应的MAC地址后进行转发; 其中,所述大二层网络为SPBM网络,所述边缘桥设备为BEB设备,所述大二层网络封装为MAC-1n-MAC封装;或者,所述大二层网络为TRILL网络,所述边缘桥设备为RB设备,所述大二层网络封装为TRILL封装。
11.如权利要求10所述的设备,其特征在于,还包括:维护模块; 所述接收模块,还用于接收来自本地终端设备的ARP请求报文,所述ARP请求报文中携带所述本地终端设备的IP地址和MAC地址; 所述维护模块,用于学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。
12.如权利要求11所述的设备,其特征在于, 所述维护模块,具体用于在连接本地终端设备的VLAN上使能ARPSnooping功能,且使能ARP Snooping功能表示本边缘桥设备需要学习所述VLAN内所有端口收到的ARP请求报文中携带的IP地址和MAC地址; 在所述VLAN内的端口上收到所述ARP请求报文后,将所述ARP请求报文上送至本设备的CPU,以学习所述ARP请求报文中携带的本地终端设备的IP地址和MAC地址,并在本地路由表中记录所述本地终端设备的IP地址与MAC地址的对应关系。
全文摘要
本发明公开了一种报文传输方法和设备,该方法包括边缘桥设备接收来自网关设备的GRE封装的第一报文;所述边缘桥设备对所述第一报文解GRE封装得到第三报文,根据第三报文的目的IP地址,查找本地路由表中维护的本地终端设备的IP地址与MAC地址的对应关系,确定第三报文的目的IP地址对应的MAC地址后进行转发。本发明实施例中,可以正常转发不同终端设备之间需要传输的报文。
文档编号H04L29/12GK103139075SQ20131008029
公开日2013年6月5日 申请日期2013年3月13日 优先权日2013年3月13日
发明者彭剑远, 郑国良 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1