一种堆叠链路建立方法、设备及系统与流程

文档序号:11996276阅读:419来源:国知局
一种堆叠链路建立方法、设备及系统与流程
本发明涉及通信技术领域,尤其涉及一种堆叠链路建立方法、设备及系统。

背景技术:
现如今,大多数企业网络及其数据中心均跨越了多个位于不同地理位置的物理站点,为了对数据中心资源进行整合、降低管理成本,通常会对数据中心的资源进行虚拟化。其中,数据中心的虚拟化技术主要包括网络虚拟化、存储虚拟化和服务器虚拟化这三方面内容。其中,服务器虚拟化是通过专用的虚拟化软件(例如VMware)在一台物理服务器上虚拟出多台虚拟机,每台虚拟机都独立运行,拥有自己的操作系统、应用程序和虚拟硬件环境(包括虚拟的CPU、内存、网卡等)。为了实现站点间的资源动态调配和管理,虚拟机在数据中心的不同站点之间要能够自由迁移。如图1所示,虚拟机可以在Site(站点)1的服务器Server1和Site2的服务器Server2之间进行迁移。由于虚拟机迁移过程对用户透明,不能改变IP地址,否则用户的访问流量会中断,所以必须在分布于异地的站点之间实现二层网络互联。在现有技术中,解决此类问题的办法主要是MAC(MediaAccessControl,介质访问控制)inIP(InternetProtocol,网络之间的互联协议)技术,主要代表的是EVI(EthernetVirtualizationInterconnect,以太网虚拟化互联)技术。EVI是一种先进的“MACinIP”技术,是一种基于IP核心网的二层VPN(VirtualPrivateNetwork,虚拟私人网络)技术。它可以基于现有的服务提供商网络和企业网络,为分散的物理站点提供二层互联功能。EVI只是在站点的边缘设备上维护路由和转发信息,无需改变站点内部和IP核心网络的路由和转发信息。在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:在目前的实现中,对于二层网络互联,其中主要是EVI技术,但其存在如下局限:(1)支持点对多点通信,但是在不同实施例之间,VLAN必须隔离,不能共享VLAN资源;(2)通过双归属实现链路备份和负载分担,但同一VLAN内只能做链路备份,负载分担只能基于不同VLAN来实现;(3)需要用户自己保证路径的MTU符合组网需求,但在IP核心网中,如果链路不是专用链路的,很难保证路径的MTU符合组网需求;(4)EVI边缘设备异地分布,网络维护和管理不方便。由此,可以看出,现有采用EVI技术时,无法实现二层网络在三层网络中的透明穿越,从而无法达到对于网络的稳定性的保证。

技术实现要素:
本发明实施例的目的在于提供一种堆叠链路建立方法、设备及系统,以解决现有技术中无法实现的二层网络在三层网络中透明穿越的问题。为了达到上述目的,本发明实施例提供了一种堆叠链路建立方法,应用于至少具有两个成员设备的堆叠建立中,该至少两个成员设备分别通过接入设备接入IP网络,所述方法包括:成员设备将本成员设备的第一堆叠端口与一隧道端口绑定,该隧道端口配置有隧道参数,所述隧道参数包括本成员设备上的隧道端口的IP地址,以及另一成员设备上的隧道端口的IP地址;该成员设备以所述另一成员设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述成员设备与另一成员设备之间的隧道链路的建立,所述隧道链路就是成员设备之间进行堆叠时的堆叠链路。优选地,所述该成员设备以所述另一成员设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述成员设备与另一成员设备之间的隧道链路的建立,具体包括:所述成员设备通过本成员设备的第一堆叠端口向所述另一成员设备的第二堆叠端口发送双向转发检测BFD控制报文,该BFD控制报文的源IP地址为该成员设备上的隧道端口的IP地址,目的地址为所述另一成员设备上的隧道端口的IP地址,且该BFD控制报文中携带有隧道端口与第一堆叠端口绑定的信息;所述成员设备通过本成员设备的第一堆叠端口接收所述另一成员设备通过其第二堆叠端口发送的响应所述BFD控制报文的BFD响应报文,所述BFD响应报文中携带有所述另一成员设备的第二堆叠端口与隧道端口绑定的信息;所述成员设备从所述BFD响应报文中获得所述另一成员设备的第二堆叠端口与隧道端口绑定的信息,并将本成员设备上的隧道端口置为Up状态,使得所述成员设备的第一堆叠端口与所述另一成员设备的第二堆叠端口之间隧道链路建立成功。所述在成员设备与另一成员设备之间的隧道链路的建立之后,还包括:所述成员设备设置本成员设备的隧道端口为Up状态后,收集本成员设备的隧道端口的MAC地址,并将所述MAC地址添加到拓扑收集报文中;所述成员设备对拓扑收集报文进行GRE封装,并通过本成员设备的隧道端口向另一成员设备的隧道端口发送所述封装后的拓扑收集报文。一种堆叠链路建立方法,应用于包括至少两个成员设备的IP网络中,所述两个成员设备通过各自连接的接入设备在IP网络中连接,所述接入设备通过设备端口与对应的成员设备进行连接,所述方法包括:接入设备将本接入设备的设备端口与一隧道端口关联,其中,所述接入设备的设备端口与一成员设备的第一堆叠端口连接,所述接入设备的隧道端口配置有隧道参数,所述隧道参数包括本接入设备上的隧道端口的IP地址及MAC地址,以及与另一成员设备连接的另一接入设备上的隧道端口的IP地址;所述接入设备以所述另一接入设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述接入设备与另一接入设备之间的隧道链路的建立;所述接入设备以所述接入设备的隧道端口的MAC地址为源地址,向所述一成员设备的第一堆叠端口发起端口MAC通告报文,以使所述一成员设备在所述第一堆叠端口记录所述隧道端口的MAC地址,实现堆叠链路的建立,以便所述一成员设备通过第一堆叠端口发送报文时,以所述隧道端口的MAC地址为目的地址封装报文并发送。一种堆叠设备,包括:关联处理模块,用于将本设备的第一堆叠端口与一隧道端口绑定,该隧道端口配置有隧道参数,所述隧道参数包括本设备上的隧道端口的IP地址,以及与本设备进行堆叠的另一设备上的隧道端口的IP地址;建立处理模块,用于以所述另一设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述设备与另一设备之间的隧道链路的建立,所述隧道链路就是本设备与所述另一设备之间进行堆叠时的堆叠链路。优选地,所述建立处理模块,具体用于通过本设备的第一堆叠端口向所述另一设备的第二堆叠端口发送双向转发检测BFD控制报文,该BFD控制报文的源IP地址为该设备上的隧道端口的IP地址,目的地址为所述另一设备上的隧道端口的IP地址;以及用于通过本设备的第一堆叠端口接收所述另一设备通过其第二堆叠端口发送的响应所述BFD控制报文的BFD响应报文,所述BFD响应报文中携带有所述另一设备的第二堆叠端口与隧道端口绑定的信息;以及用于从所述BFD响应报文中获得所述另一设备的第二堆叠端口与隧道端口绑定的信息,并将本设备上的隧道端口置为Up状态,使得所述设备的第一堆叠端口与所述另一设备的第二堆叠端口之间隧道链路建立成功。优选地,还包括:拓扑处理模块,用于本设备的隧道端口为置为Up状态后,收集本设备的隧道端口的MAC地址,并将所述MAC地址添加到拓扑收集报文中,以及用于对拓扑收集报文进行GRE封装,并通过本设备的隧道端口向另一设备的隧道端口发送所述封装后的拓扑收集报文。一种接入设备,包括:关联处理模块,用于将本设备的设备端口与一隧道端口关联,其中,所述本设备的设备端口与一成员设备的第一堆叠端口连接,所述本设备的隧道端口配置有隧道参数,所述隧道参数包括本设备上的隧道端口的IP地址及MAC地址,以及与另一成员设备连接的另一接入设备上的隧道端口的IP地址,所述另一成员设备为与本设备连接的成员设备进行堆叠的堆叠设备;隧道链路建立模块,用于以所述另一接入设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成本设备与另一接入设备之间的隧道链路的建立;MAC通告模块,用于以所述本设备的隧道端口的MAC地址为源地址,向所述一成员设备的第一堆叠端口发起端口MAC通告报文,以使所述一成员设备在所述第一堆叠端口记录所述隧道端口的MAC地址,实现堆叠链路的建立,以便所述一成员设备通过第一堆叠端口发送报文时,以所述隧道端口的MAC地址为目的地址封装报文并发送。一种系统,包括至少两个成员设备,所述两个成员设备分别通过接入设备接入IP网络,包括:所述成员设备的第一堆叠端口与接入设备的设备端口连接;所述接入设备将本接入设备的设备端口与一隧道端口关联,所述接入设备的隧道端口配置有隧道参数,所述隧道参数包括本接入设备上的隧道端口的IP地址及MAC地址,以及与另一成员设备连接的另一接入设备上的隧道端口的IP地址;所述接入设备以所述另一接入设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述接入设备与另一接入设备之间的隧道链路的建立;所述接入设备以所述接入设备的隧道端口的MAC地址为源地址,向所述成员设备的第一堆叠端口发起端口MAC通告报文;所述成员设备接收到所述MAC通告报文后,在所述第一堆叠端口记录所述隧道端口的MAC地址,实现堆叠链路的建立。优选地,所述成员设备通过第一堆叠端口发送报文时,以所述隧道端口的MAC地址为目的地址封装报文并发送。与现有技术相比,本发明实施例所提出的技术方案具有以下优点:通过本发明方案的提出,实现了在堆叠设备之间的堆叠端口之间建立隧道链路,使得堆叠设备之间可以跨三层网络的堆叠,从而实现了跨越三层网络的二层互联,拓展了二层网络的范围,增强了二层互联网络的稳定性。附图说明图1是现有技术中的虚拟机在异地站点间的迁移架构图;图2是本发明实施例一提供的堆叠链路建立方法的流程示意图;图3A是本发明实施例二提供的堆叠链路建立方法的流程示意图;图3B是本发明实施例二提供的堆叠设备之间进行堆叠时的网络结构示意图;图4是本发明实施例三提供的堆叠实现的流程示意图;图5是本发明实施例四提供的堆叠链路建立方法的流程示意图;图6A是本发明实施例五提供的堆叠链路建立方法的流程示意图;图6B是本发明实施例五提供的堆叠设备之间进行堆叠时的网络结构示意图;图7是本发明实施例六提供的堆叠设备的结构示意图;图8是本发明实施例七提供的接入设备的结构示意图;图9是本发明实施例八提供的系统的结构示意图。具体实施方式下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。为便于对本发明实施例技术方案有更好的了解,下面首先对堆叠技术进行简单说明:堆叠技术就是将具有堆叠端口的设备,通过堆叠端口连接起来,将该堆叠起来的多个设备作为一个对象来管理,对于外界网络设备而言,就像是由多个设备组成的一个虚拟设备。其中,IRF(IntelligentResilientFramework,智能弹性架构)就是一种堆叠技术,可将多台设备连接在一起,进行必要的配置后,虚拟化成一台设备。使用这种技术可以集合多台设备的硬件资源和软件处理能力,实现多台设备的协同工作、统一管理和不间断维护。其中,所述的具有堆叠端口的设备也称为堆叠设备,至于堆叠技术的具体实现和具体配置以及通信过程在此不再详细赘述。现有堆叠技术中,成员设备之间进行堆叠时,成员设备之间的堆叠链路是通过建立二层链路来建立连接,即成员设备之间是二层链接,而本实施例技术方案中,将提供一种跨IP网络,即跨三层网络的堆叠,进行堆叠的成员设备之间可通过将堆叠端口绑定隧道的方式,在堆叠端口之间建立隧道链路作为堆叠链路,使得成员设备之间可通过IP网络进行链路连接,从而实现跨三层网络的设备堆叠。这样,堆叠后的成员设备就可以通过建立的隧道链路来进行通信,实现跨三层网络的二层互联,其中这里的隧道链路也可称为堆叠链路。参见图2,为本发明实施例一提供的堆叠链路建立方法的流程示意图。本实施例在堆叠设备之间的堆叠端口之间建立隧道链路,该建立的隧道链路就是成员设备进行堆叠的堆叠链路,实现了堆叠设备之间的跨三层网络的堆叠,其中,各成员设备也可称为堆叠设备。具体地,如图2所示,本实施例方法可包括如下步骤:步骤101、成员设备将本成员设备的第一堆叠端口与一隧道端口绑定,该隧道端口配置有隧道参数,所述隧道参数包括本成员设备上的隧道端口的IP地址,以及另一成员设备上的隧道端口的IP地址;步骤102、该成员设备以所述另一成员设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成成员设备与另一成员设备之间的隧道链路的建立。其中,所述的两个成员设备均是与IP网络连接的堆叠设备,其上均具有两个堆叠端口,该两个成员设备上可预先配置隧道端口参数,该预先配置的隧道端口参数具体可以是实现隧道建立所需要的参数,包括隧道两端的IP地址等。上述步骤102中,成员设备在将堆叠端口与隧道端口绑定后,即可发送链路探测报文,通过探测报文可确定二者之间的隧道链路是否导通,若导通则说明隧道链路建立完成,两成员设备之间也就实现了跨三层网络的堆叠。其中,所述的链路探测报文具体就是可以实现链路是否导通的测试报文,例如BFD控制报文等。本实施例中,堆叠设备之间是通过在IP网络上建立隧道链路,将其作为堆叠设备之间的堆叠链路,从而实现了堆叠设备的跨三层网络堆叠,即实现了二层网络在三层网络中的透明穿越。需要说明的是:由于本实施例中的隧道链路是进行IP报文传输的链路,这与传统堆叠设备之间的堆叠链路为二层链路不同,因此,本实施例中的堆叠设备之间通过隧道链路进行报文传输时,与传统的堆叠链路不同之处就在于传输的报文是以IP报文进行传输,需要在传统的二层链路报文基础上进行隧道报文封装即可。本实施例中,通过在堆叠设备的堆叠端口绑定隧道端口的方式,实现了在堆叠设备之间的堆叠端口之间建立隧道链路,使得堆叠设备之间可以跨三层网络的堆叠,从而实现了跨越三层网络的二层互联,增强了二层互联网络的稳定性。下面以IP网络中含有两个成员设备的情况做阐述,该两个成员设备通过IP网络连接,每个成员设备包含有两个堆叠端口,这里称之为第一堆叠端口和第二堆叠端口,也可称为端口1和端口2,这里的成员设备也可称为堆叠设备,即可支持堆叠技术的设备。为便于对本发明技术方案的理解,除非特别说明,下面本实施例中将以IRF中的成员设备,即支持IRF技术的堆叠设备为例,对本发明实施例技术方案进行详细说明。参见图3A,为本发明实施例二提供的堆叠链路建立方法的流程示意图;参见图3B,为本发明实施例二中堆叠设备之间进行堆叠时的网络结构示意图。本实施例中,堆叠设备,即具有堆叠口的成员设备上通过绑定隧道的方式,实现跨三层网络,这里为IP网络的设备堆叠,为便于理解,将其中一个成员设备称为设备1,另一成员设备称为设备2,具体地,如图3A和图3B所示,本实施例堆叠链路建立过程可包括如下步骤:步骤201,设备1将本成员设备的第一堆叠端口与一隧道端口绑定,其中,隧道端口是一个三层逻辑口,该隧道端口配置有隧道参数。本实施例中,隧道端口可预先认为设定和创建,具体地,首先,会在设备1创建建立隧道的隧道端口,并为该隧道端口配置如下隧道参数:隧道端口的IP地址,即隧道位于设备1一端的IP地址,为设备1上配置的IP地址中的一个IP地址,本实施例中为1.0.0.2;设备2上的隧道端口的IP地址,即隧道位于设备2一端的IP地址,为设备2上配置的IP地址中的一个IP地址,本实施例中为3.0.0.2,设备2就是要与设备1之间进行跨IP网络堆叠的堆叠设备;网关地址,即设备1的网络接入设备的IP地址,本实施例中为1.0.0.1,设备1可通过该接入设备接入IP网络;隧道端口的MAC地址,用于二层报文交互,可为在创建隧道端口时为其自动分配的MAC地址;认证字,用于进行BFD(BidirectionalForwardingDetection,双向转发检测)报文认证,该认证字为一串字符串,可用于BFD报文的验证。通过对隧道端口的上述参数配置,就可以利用隧道端口的上述参数进行三层网络的通信。本实施例中,所述的将第一堆叠端口与隧道端口绑定,即将第一堆叠端口作为隧道端口来看待,使得通过第一堆叠端口发送或接收报文时,均是IP报文。其中,第一堆叠端口是与一个物理口绑定的二层逻辑端口,这里将第一堆叠端口又与一个隧道端口绑定,使其成为一个三层逻辑口,这样就可以通过三层逻辑口实现与另一设备的三层逻辑口之间的IP通信。本实施例中,隧道端口的IP地址除了可以是IPv4地址外,也可以为IPv6地址,具体可以根据IP网络的配置而设置。其中,网关地址,即成员设备的网络接入设备的IP地址应在同一网段;堆叠端口在配置时,仍旧需要遵循堆叠设备的逻辑口连接方式,即一个堆叠设备上的堆叠端口1需要与另一堆叠设备上的端口2相连,即本成员设备的隧道端口绑定端口1,则与其建立隧道链路的另一成员设备的隧道端口应绑定端口2。步骤202,设备1通过第一堆叠端口向设备2的第二堆叠端口发送BFD控制报文,该BFD控制报文的源IP地址为设备1上的隧道端口的IP地址,目的地址为设备2上的隧道端口的IP地址,且该BFD控制报文中携带有隧道端口与第一堆叠端口绑定的信息。实际应用中,所述的设备2上也会遵循上述步骤201的方式,在自身上创建隧道端口,且隧道端口与自身的第二堆叠端口绑定,即与端口2绑定;同时配置有相应的隧道参数。本步骤中,设备1上的隧道端口配置完成且与堆叠端口绑定后,即可根据隧道端口的配置参数中的另一成员设备,即设备2的隧道端口的IP地址,向其发送BFD报文,以进行隧道链路探测,与其建立隧道链路,从而确定设备1与设备2之间的隧道是否可用。本步骤中,设备1对BFD报文进行封装后,即可向所在网关发送ARP(AddressResolutionProtocol,地址解析协议)请求报文,建立和所在网关的ARP表项,通过网关发送该封装后的BFD控制报文给设备2的端口2,并在该BFD控制报文中携带设备1的相关信息,包括设备1中端口1与隧道端口绑定的信息,以及其它信息,例如,设备1中与隧道端口绑定的堆叠端口信息等。实际应用中,这些信息也可以不用携带,为了堆叠设备之间可以准确的知道对端的堆叠设备的情况,本实施例会将这些信息通告给对端的堆叠设备。其中,所述的BFD(BidirectionalForwardingDetection,双向转发检测)报文是一种链路探测报文,其包括控制报文和响应报文,BFD报文的具体格式可参见下表1,该BFD报文的格式与通常的BFD报文格式相同,或类似,其中,H字段表示是否接收到对端成员设备的BFD报文,只是在该BFD报文中需要携带设备中绑定隧道端口的端口信息。表1:具体地,设备1配置好隧道端口后,就可发送和接收UDP目的端口号为4784的BFD报文,当发送报文时,报文的源IP地址为设备1的隧道端口的IP地址,这里也可称为IRF-tunnel(即设备1与设备2之间的隧道)的源IP地址,目的IP地址为IRF-tunnel的目的地址,即设备2上隧道端口的IP地址,认证方式是MeticulousKeyedMD5,MD5KEY通过隧道端口配置的认证字做MD5计算得出。如表1所示,BFD报文中的Diag字段包含5个比特,其中左边的第5高位比特协议预留,没有使用,这里用这个比特传递IRF-tunnel绑定的IRF口信息,0表示绑定端口1,1表示绑定端口2。步骤203,设备2接收到该BFD控制报文后,对该BFD控制报文进行解析。本步骤中,设备2收到该BFD控制报文后,可利用认证字(设备2在配置隧道端口时会有该认证字)进行MD5(Message-DigestAlgorithm5,信息-摘要算法5)认证,并在认证通过后,可解析得到该BFD控制报文中携带的设备1的相关信息,包括设备1中与隧道端口绑定的端口信息。具体地,BFD报文封装完成后,设备1通过端口1发送ARP请求报文,建立和网关的ARP表项,之后发送H字段为0的BFD控制报文到网关,经网关路由,最后到达对端成员设备即设备2的端口1;设备2收到BFD控制报文后,进行MD5认证,认证通过后,解析AuthType字段中携带的设备1的相关信息,作为BFD的会话(session)信息本地保存,并发送响应报文;之后,设备1会发送H字段为1的BFD控制报文给设备2。设备2收到H字段为1的BFD报文后,会把BFDSession设置成Up状态,并把隧道端口置为Up状态。同样地,在此过程中,设备2会发送响应报文给设备1,并发送H字段为1的BFD报文,这样,设备1接收到该报文后,也会将自己的隧道端口置为Up状态。实际应用中,设备1或设备2只要隧道端口配置完成,就会解析网关ARP,并启动BFD计时器,确定是否有BFD报文发送给自己,若有则进行解析,并发送H字段为1的BFD报文,并将自身的隧道端口置为Up状态;若没有接收到BFD报文,则自己会主动发送H字段为0的BFD报文,以探测隧道链路。若在BFD计时器超时时,仍旧没有BFD报文,则会将隧道端口置为down,同时可启动报警,以通告隧道链路无法建立。本实施例中,该步骤是以设备1首先发起BFD报文为例进行说明。步骤204,设备2通过第二堆叠端口向设备1发送BFD控制报文的BFD响应报文,在该BFD响应报文中携带了设备2的隧道端口与第二堆叠端口绑定的信息。具体地,设备2在获取到设备1的信息后,通过端口2返回BFD响应报文给设备1的端口1,并在其中携带了自身的设备信息,包括与隧道端口绑定的端口信息。当然,实际应用中这些设备信息也是可以不用携带的,只是为了便于对端设备知道。步骤205,设备1在接收到该BFD响应报文后,获取其中的设备2的与隧道端口绑定的第二堆叠端口的信息。如步骤203中所述,设备2返回的BFD报文中的H字段为1,使得设备1接收到BFD报文后,可将相应的隧道端口置为Up状态。当设备1收到该BFD响应报文后,同样需要执行如设备2接收到BFD报文后的步骤,即利用认证字进行MD5认证,并在认证通过后,解析该BFD响应报文,获得其中的成员设备上的相关信息。步骤206,设备1与设备2之间的隧道链路建立成功。当设备1和设备2的隧道端口Up后,设备1和设备2之间的隧道链路就会导通,他们之间的隧道链路就建立起来,设备1和设备2之间的堆叠端口之间就建立了通信,从而成功在设备1的第一堆叠端口与设备2的第二端口之间建立隧道链路,该隧道链路就是设备1与设备2之间的堆叠链路。具体的,如上述步骤所述,当设备1接收到设备2发送的BFD响应报文后,即可将自身设备的BFDSession(会话)置为Up状态,表明自身设备能够发送报文到对端设备2,且能够得到对端设备2的响应,即自身设备到对端设备2的堆叠隧道是贯通的,之后将自身设备的隧道端口置为Up状态。同样地,设备2接收到BFD报文后,确认设备1的隧道端口后,也会将自身的隧道端口Up。这样,两个设备之间就会通过建立的隧道链路进行IP通信,从而实现了跨三层网络的设备的堆叠。本实施例中,当设备1与设备2之间的隧道链路建立后,就可以进行堆叠设备之间的拓扑信息采集,实现设备之间的堆叠,只是设备1与设备2上与隧道端口绑定的堆叠端口在发送和接收的报文均是IP报文,其它端口则是二层报文,但整个堆叠时的拓扑信息采集过程与传统堆叠过程相同或类似。本实施例中,通过在堆叠设备的堆叠端口绑定隧道端口,从而可通过IP网络建立与其它堆叠设备之间的隧道链路,使得堆叠设备可跨IP网络,即跨越三层网络的二层互联,增强了二层网络互联的稳定性。上述本发明实施例中,设备在将自身设备的隧道端口置为Up状态之前,还可包括:当BFDSession装置为Up时,若成员设备需要业务环回组配合时,需要先检查业务环回组的状态,在该业务环回组为Up时,将该隧道端口置为Up状态,否则,返回接收BFD响应报文,其中的业务环回组用于成员设备从隧道端口发送报文的封装/解封装。对于另一成员设备到成员设备,即设备2到设备1的堆叠隧道建立过程,与上述成员设备到另一成员设备,即设备1到设备2的堆叠隧道建立过程相同,在此不再做具体的阐述。参见图4,为本发明实施例三提供的堆叠实现的流程示意图。在上述图3A所示实施例技术方案基础上,在隧道链路建立完成后,即堆叠设备之间建立隧道连接后,即可实现堆叠设备的拓扑收集、角色选举以及堆叠管理和维护等,具体地,如图4所示,本实施例可包括如下步骤:步骤401-步骤406,同步骤201-步骤206。步骤407,设备1与设备2之间的堆叠链路建立成功,即设置本成员设备的隧道端口为Up状态后,收集本成员设备的隧道端口的MAC地址以及其它拓扑信息,并添加到拓扑收集报文中。当设备1的隧道端口被置为Up状态后,设备1就可以收集自身的拓扑信息,并可将自身的拓扑信息发送至邻居,包括通过堆叠口之间建立本地堆叠链路的本地邻居,以及通过IP网络连接建立隧道链路的设备2等。本实施例中,设备1与其它设备进行堆叠时,除了采用本实施例通过建立隧道链路进行连接外,还可根据传统方式建立堆叠链路进行连接,即设备1可跨IP网络与其它成员设备,例如设备2连接,也可通过二层链路与其它成员设备建立连接。其中,通过二层链路与其它成员设备建立连接,具体可以是通过链路直连建立堆叠链路,或者穿越二层网络建立堆叠链路,实现堆叠设备之间的堆叠。本实施例中,成员设备收集的拓扑信息,具体是成员设备组成堆叠设备时,各成员设备需要知道其它成员设备的端口信息,以便实现成员设备的堆叠维护和管理。步骤408,设备1将收集到拓扑收集报文发送给邻居设备,包括设备2。其中,设备1可通过隧道端口将拓扑收集报文打包成IP报文,通过IP网络传输至设备2的隧道端口,使得设备2可及时获得设备1的拓扑信息。同时,设备1也会接收其它设备,包括设备2发送的拓扑报文。具体地,设备1在进行拓扑发现和收集工作前,需要检查设备1上的堆叠端口是否绑定了隧道端口,若没有绑定隧道端口,则说明设备1通过该堆叠端口建立了堆叠链路与其它设备连接,此时,堆叠端口建立的堆叠链路层状态为Up时,就可以发送拓扑收集报文,进行拓扑发现和收集;若堆叠端口绑定了隧道端口,例如设备1的端口1,则需要等到将隧道端口置为Up后才向外发送拓扑收集报文。这是因为:两台远程的设备,通过建立上述的隧道链路连接时,堆叠端口的链路层Up的时间理论上就要早于隧道端口的Up时间,因此隧道端口的Up时间,才是两个设备之间的链路可用的开始时间;如果按原有的流程在设备的堆叠端口Up时就开始发送拓扑收集报文,这些报文其实并不能到达对端的设备,当然也不会收到对端发送来的拓扑收集报文;但是拓扑收集报文发送后,计时器就会启动,超时后会认为没有邻居把自己的角色设置成主设备(Master),等隧道端口Up以后,收到对端的拓扑收集报文后,两端在自己身份都是Master的情况,只能发生合并(Merge),导致一方重启,这个过程重复下去,就表现为的一端设备反复重启,不能形成堆叠。步骤409,设备1收集到形成堆叠的所有设备的拓扑收集报文,收集到完整的拓扑信息后,就可以进进行角色选举,选举出master。拓扑信息收集完毕后,就可以进行角色选举,具体选举过程与传统的堆叠选举相同,在此不再赘述。角色选举完成后,就完成整个堆叠的建立,此后就可以正常的进行通信以及堆叠的管理和维护。其具体实现与传统堆叠技术相同或类似,不同之处在于,成员设备在通过与隧道端口绑定的堆叠端口通信,即进行堆叠数据,或拓扑数据传输时,需要对报文进行封装和解封装,下面将对此做说明。本实施例中,当设备上的隧道端口down时,设备就会响应该down事件,进行响应的拓扑管理,其具体实现与现有堆叠中堆叠端口down处理相同或类似,在此不再赘述。由以上可以看出,本实施例中堆叠设备之间通过隧道链路建立堆叠连接时,拓扑报文的收集是通过IP报文来传输,其它与现有堆叠实现过程相同,这样,设备之间就可以实现跨三层网络的堆叠。本实施例中,成员设备之间建立堆叠完成后,就可以通过设备上的隧道端口进行报文的发送,具体地,若设备的交换芯片支持在隧道端口中对发送报文加GRE(GenericRoutingEncapsulation,通用路由封装)二次封装,则可直接调用发送引擎发送GRE封装的隧道报文;否则对报文进行业务环回处理。以隧道端口为出端口的报文(包括CPU发出的报文和转发到其他堆叠的成员设备的报文),在芯片转发模块的出逻辑处理的时候,先重定向到业务环回组所属芯片的入逻辑,入逻辑对收到的报文做GRE封装,然后把载荷报文的dot1p优先级到DSCP优先级,在出逻辑中,报文的出端口设置为业务环回组端口,业务环回组发送的报文被环回到芯片的入逻辑,此时报文的目的MAC(网关IP对应的MAC地址),已经被学习到隧道端口以及业务环回芯片与交换芯片的连接口,所以报文被转发回交换芯片,从隧道端口转发出去。GRE封装中的载荷部分包含原始报文从二层头开始的整个数据帧内容。乘客协议类型使用8100。可以看出,在堆叠设备在通过隧道端口绑定的堆叠端口发送报文时,需要封装成隧道报文进行发送。本实施例中,在设备与其它设备之间的堆叠完成后,在堆叠设备接收到目的MAC为与隧道端口的MAC相同的报文时,就可以对报文进行三层处理。具体地,如果是BFD报文,则做隧道端口保活的相关处理;如果是GRE报文,则先对报文解封装,对报文的载荷部分入隧道端口芯片的入逻辑处理。若隧道端口的MAC芯片收到ARP报文时,做上CPU和广播处理,收到其它的报文做丢弃处理。其中,隧道端口对报文的发送和接收都在默认VLAN1内进行。可以看出,堆叠设备通过隧道端口绑定的堆叠端口接收到报文时,会对隧道封装报文解封装,然后就与其它堆叠端口相同的处理方式对报文进行处理。本实施例中,两个堆叠设备通过隧道链路完成竞选后,为防止Merge过程中设备自动重启导致隧道端口相关的配置丢失,再Merge执行前,先提示用户保存配置,配置保存结束后,由用户手工重启设备。在设备启动阶段,隧道端口配置与其它堆叠端口配置一起,先于其它设备配置被提前读取,并进行隧道端口的创建及设备角色选举过程。为方便对此阶段过程的诊断与维护,本实施例还可提供IRFshell(命令)功能:如果设备在给定的时间内(例如3分钟)不能完成设备的选举过程,用户可以进入IRFshell执行堆叠端口与隧道端口相关的配置、显示和保存的命令,进行诊断和维护。上述各方法实施例是以在成员设备上绑定隧道端口的方式,来建立成员设备之间的跨三层网络堆叠,实际应用中,也可在成员设备的网络接入设备之间创建隧道链路,并在接入设备上创建与隧道端口关联的聚合端口,并将该聚合端口与成员设备的堆叠端口连接,使得两成员设备之间仍旧可以通过隧道链路进行堆叠连接,实现跨三层网络的堆叠。下面将以具体实现为例进行说明。参见图5,为本发明实施例四提供的堆叠链路建立方法的流程示意图。本实施例中,以IP网络中含有两个成员设备的情况做阐述,该两个成员设备通过各自连接的接入设备接入IP网络,为便于理解,将其中一个成员设备称为成员设备1,另一成员设备称为成员设备2,与成员设备1连接的接入设备为接入设备1,与成员设备2连接的接入设备称为接入设备2,具体的,如图5所示,本实施例方法可包括如下步骤:步骤501,接入设备将其上的设备端口与一隧道端口关联,其中,所述接入设备的设备端口与一成员设备的第一堆叠端口连接,该隧道端口配置有隧道参数,所述隧道参数包括所述接入设备上的隧道端口的IP地址及MAC地址,以及与另一成员设备连接的另一接入设备上的隧道端口的IP地址;步骤502,所述接入设备以所述另一接入设备上的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成与所述另一接入设备之间的隧道链路的建立;步骤503,所述接入设备以所述隧道端口的MAC地址为源地址,向所述一成员设备的第一堆叠端口发起端口MAC通告报文,以使所述一成员设备在所述第一堆叠端口记录所述隧道端口的MAC地址,实现堆叠链路的建立,以便所述一成员设备通过第一堆叠端口发送报文时,以所述隧道端口的MAC地址为目的地址封装报文并发送。本实施例中,通过在接入设备与成员设备的堆叠端口连接的设备端口上关联隧道端口,并将隧道端口的MAC地址通告给堆叠端口,使得堆叠端口可在成员设备之间发送报文时,即可基于该隧道端口的MAC地址作为目的地址,发送至隧道端口,并由隧道端口处封装成隧道IP报文,发送至另一接入设备,而另一接入设备则可以将该隧道IP报文解封装后,通过与其关联的设备端口将解封装后的报文再发送至对应的另一成员设备的堆叠端口,从而可以在两个成员设备之间通过隧道链路进行数据通信,实现了跨三层网络的堆叠。本实施例方法与上述通过在成员设备上将堆叠口与隧道端口绑定方法的具体实现类似,主要不同之处在于,本实施例是在接入设备上将与堆叠端口连接的设备端口与隧道端口关联,其同样可以实现跨三层网络的堆叠。本实施例中,当成员设备发送报文,包括堆叠数据以及拓扑数据时,则可首先将其进行外层MAC封装,发送至接入设备的隧道端口,然后再由隧道端口进行GRE封装,发送至对端的接入设备。参见图6A,为本发明实施例五提供的堆叠链路建立方法的流程示意图;图6B为本发明实施例五中堆叠设备之间进行堆叠时的网络结构示意图。本实施例中,以IP网络中含有两个成员设备的情况做阐述,该两个成员设备通过各自连接的接入设备接入IP网络,为便于理解,将其中一个成员设备称为设备1,另一成员设备称为设备2,与设备1连接的接入设备为接入设备1,与设备2连接的接入设备称为接入设备2,具体的,如图6A和图6B所示,本实施例方法可包括如下步骤:步骤601,接入设备1将自身上设备端口与一隧道端口关联,其中,所述设备端口与设备1的第一堆叠端口连接,所述隧道端口配置有隧道参数。与图3A所示实施例中的步骤201类似,该隧道端口可为预先设置和创建的三层逻辑口,具体地,可在接入设备1上创建建立隧道的隧道端口,并为该隧道端口配置参数如下:隧道端口的IP地址,即隧道位于接入设备1一端的IP地址,为接入设备1上配置的IP地址中的一个IP地址,本实施例中为1.0.0.1;接入设备2上的隧道端口的IP地址,即隧道位于接入设备2一端的IP地址,为接入设备2上配置的IP地址中的一个IP地址,本实施例中为4.0.0.2,设备1和设备2之间就是通过接入设备1和接入设备2进行堆叠连接;网关地址,即设备1的网络接入设备的IP地址,本实施例中为2.0.0.1,接入设备接入IP网络的IP地址;隧道端口的MAC地址,可为在创建隧道端口时为其自动分配的MAC地址;认证字,用于进行BFD(BidirectionalForwardingDetection,双向转发检测)报文认证,该认证字为一串字符串,可用于BFD报文的验证。步骤602、接入设备1以设置的隧道端口与接入设备2的隧道端口之间建立隧道链路。本实施例中,当隧道端口参数配置完成后,即可通过发送链路探测报文方式,以确定隧道链路导通时,完成接入设备1与接入设备2之间的隧道链路的建立。具体地,本步骤中,隧道链路建立时,具体可通过发送BFD控制报文的方式来建立,其具体实现过程与上述图3A所示实施例类似,其具体建立过程,在此不再赘述。其中,隧道链路建立成功后,接入设备1会将隧道链路置为Up状态,此时,接入设备即可将与隧道链路绑定的设备端口也置为Up状态,相应地,与该设备端口连接的设备1上的第一堆叠端口也会置为Up状态。其中所述的设备端口,具体可以是在接入设备1上创建的一个静态聚合组,该设备端口也可称为静态聚合口,是一个二层聚合逻辑口,其与设备1上的第一堆叠端口之间对接。步骤603、接入设备1通过设备端口向设备1的堆叠端口发送隧道端口的MAC通告报文。具体地,当设备端口置为Up后,接入设备就可以将通过该设备端口向设备1发送端口MAC通告报文,该报文的目的地址可以是私有的组播地址,源地址为隧道端口的MAC地址,协议字段可以是私有协议表示号。这样,设备1就可以接收到该MAC通告报文,获得隧道端口的MAC地址。步骤604、设备1获取该MAC通告报文中的隧道端口的MAC地址,并记录下来。设备1收到该MAC通告报文后,即可将记录隧道端口的MAC地址,同时,将第一堆叠端口置为Up,表示堆叠链路建立完成,此时就可以进行拓扑信息的采集和管理。实际应用中,可在该成员设备上设置一MAC地址记录单元,初始时该地址记录单元记录的MAC地址可为0,当接收到接入设备发送的隧道端口的MAC地址时,即可将该MAC地址记录在该地址记录单元中。这样,只要MAC地址记录单元中的MAC地址不为0,就说明堆叠链路建立完成,就可以发送或接收报文,否则,说明堆叠链路未建立完成。此外,设备1将自身的第一堆叠端口置为Up后,会向接入设备1发送确认报文,以通知接入设备1停止发送通告报文。本实施例中,设备1的堆叠链路建立完成后,进行拓扑信息的发送或其它报文的发送时,会根据记录的隧道端口的MAC地址,对需要发送至设备2的第二隧道端口的拓扑收集报文和其它报文,会先进行外层MAC封装,具体报文格式如下表2所示。表2:表2中,IRF-TunnelMAC就是接入设备1上的隧道端口的MAC地址,RF-portMAC就是设备1的第一堆叠端口的MAC地址,其它字段就是需要发送到设备2的第二堆叠端口的报文的原始内容,内容不做更改。而接入设备1的设备端口接收到设备1的目的MAC地址为隧道端口的MAC地址的报文后,会做三层处理,首先剥离外层MAC地址,并对剩余的报文内容进行IP封装,封装成GRE报文,并通过建立的隧道链路将GRE报文发送到网关做路由处理,转发至接入设备2的隧道端口。而接入设备1接收到IP地址为隧道端口的IP地址的报文时,首先会检查报文类型,若为BFD报文,即链路探测报文,则对隧道链路做保活处理,如果是GRE报文,则进行解封装,并将解封装后的报文内容通过隧道端口绑定的设备端口,发送至设备1的第一堆叠端口,这样,设备1就可以通过隧道链路实时接收到设备2通过该隧道链路发送过来的报文。同样地,接入设备2和设备2会做与接入设备1和设备1相同或类似的操作过程,其具体实现过程可参考上述说明。本实施例中,当接入设备检测到隧道链路中断以后,会对和隧道端口连接的设备端口做去激活操作,即将设备端口置为down,与该设备端口连接的成员设备检测到该端口状态变化时,会将堆叠端口置为down,同时成员设备会进行拓扑管理处理,例如重新即进行拓扑信息的采集和处理等。上述本发明各方法实施例中,实现了跨越三层网络的二层互联,对服务器虚拟化提供便捷途径;实现了大二层互联设备的便捷管理与维护,为大二层互联网络的稳定性、可度量性提供了新的途径。图7为本发明实施例六提供的堆叠设备的结构示意图。基于与上述方法相同的技术构思,本发明实施例提供了一种堆叠设备,其具体可以是上述图2-图4任一方法实施例中的成员设备。具体地,如图7所示,本实施例堆叠设备可包括:关联处理模块71,用于将本设备的第一堆叠端口与一隧道端口绑定,该隧道端口配置有隧道参数,所述隧道参数包括本设备上的隧道端口的IP地址,以及与本设备进行堆叠的另一设备上的隧道端口的IP地址;建立处理模块72,用于以所述另一设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述设备与另一设备之间的隧道链路的建立,所述隧道链路就是本设备与所述另一设备之间进行堆叠时的堆叠链路。本实施例中,关联处理模块71可进行隧道端口与堆叠端口的绑定,并通过建立处理模块72对绑定后进行隧道链路的建立,并最终确定堆叠链路建立完成,其具体实现过程可参见上述本发明方法实施例的说明,在此不再赘述。上述图7所示实施例中,所述的建立处理模块72,具体可用于通过本设备的第一堆叠端口向所述另一设备的第二堆叠端口发送双向转发检测BFD控制报文,该BFD控制报文的源IP地址为该设备上的隧道端口的IP地址,目的地址为所述另一设备上的隧道端口的IP地址;以及用于通过本设备的第一堆叠端口接收所述另一设备通过其第二堆叠端口发送的响应所述BFD控制报文的BFD响应报文,所述BFD响应报文中携带有所述另一设备的第二堆叠端口与隧道端口绑定的信息;以及用于从所述BFD响应报文中获得所述另一设备的第二堆叠端口与隧道端口绑定的信息,并将本设备上的隧道端口置为Up状态,使得所述设备的第一堆叠端口与所述另一设备的第二堆叠端口之间隧道链路建立成功。此外,如图7所示,上述的堆叠设备还可包括:拓扑处理模块73,用于本设备的隧道端口为置为Up状态后,收集本设备的隧道端口的MAC地址,并将所述MAC地址添加到拓扑收集报文中,以及用于对拓扑收集报文进行GRE封装,并通过本设备的隧道端口向另一设备的隧道端口发送所述封装后的拓扑收集报文。图8为本发明实施例七提供的接入设备结构示意图。本实施例接入设备可作为上述图5-图6B任一方法实施例中的接入设备,具体地,如图8所示,该接入设备可包括:关联处理模块81,用于将本设备的设备端口与一隧道端口关联,其中,所本设备的设备端口与一成员设备的第一堆叠端口连接,所述本设备的隧道端口配置有隧道参数,所述隧道参数包括本设备上的隧道端口的IP地址及MAC地址,以及与另一成员设备连接的另一接入设备上的隧道端口的IP地址,所述另一成员设备为与本设备进行堆叠的堆叠设备;隧道链路建立模块82,用于以所述另一接入设备的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成所述本设备与另一接入设备之间的隧道链路的建立;MAC通告模块83,用于以所述本设备的隧道端口的MAC地址为源地址,向所述一成员设备的第一堆叠端口发起端口MAC通告报文,以使所述一成员设备在所述第一堆叠端口记录所述隧道端口的MAC地址,实现堆叠链路的建立,以便所述一成员设备通过第一堆叠端口发送报文时,以所述隧道端口的MAC地址为目的地址封装报文并发送。本实施例接入设备可在成员设备之间建立堆叠链路时,通过建立隧道链路并与成员设备之间建立二层链路方式,来实现成员设备之间的堆叠,其具体实现可参见上述本发明方法实施例的说明,在此不再赘述。图9为本发明实施例八提供的系统的结构示意图。本实施例系统具体是与上述图5-图6B所示方法对应的系统,可以实现成员设备之间的堆叠,本实施例系统可包括:至少两个成员设备,所述两个成员设备分别通过接入设备接入IP网络,具体地,如图9所示,包括设备1、接入设备2、设备3和接入设备4,其中,设备1和设备2是两个堆叠设备,设备1通过接入设备2接入IP网络,设备2通过接入设备4接入IP网络。本实施例中,设备1的第一堆叠端口与接入设备1的设备端口连接;接入设备2可将本接入设备2的设备端口与一隧道端口关联,该接入设备2的隧道端口配置有隧道参数,隧道参数包括本接入设备上的隧道端口的IP地址及MAC地址,以及与另一成员设备,即设备2连接的另一接入设备,即接入设备4上的隧道端口的IP地址;接入设备2以接入设备4的隧道端口的IP地址为目的地址,发起隧道链路探测报文,以确定隧道链路导通时,完成接入设备2与接入设备4之间的隧道链路的建立;接入设备2以接入设备2的隧道端口的MAC地址为源地址,向成员设备,即设备1的第一堆叠端口发起端口MAC通告报文;设备1接收到MAC通告报文后,在第一堆叠端口记录隧道端口的MAC地址,实现堆叠链路的建立。同时,设备2和接入设备4具有相同的功能和执行过程,这样,设备1与设备3之间就可以建立跨IP网络的堆叠连接,从而实现设备1与设备2之间的跨二层网络的堆叠。本实施例中,设备1通过第一堆叠端口发送报文时,就可以隧道端口的MAC地址为目的地址封装报文并发送。其具体实现可参见上述本发明方法实施例的说明,在此不再赘述。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1