背景技术
为了实现高可靠性和冗余部署,当今大多数企业网络及其数据中心跨越了多个位于不同地理位置的物理站点,在这些站点部署类似的业务。为了实现站点间的资源动态调配和管理,虚拟机在数据中心之间要能够自由迁移,由于虚拟机迁移过程对用户透明,不能改变IP地址,所以必须在分布于异地的站点之间实现二层网络互联。
EVI(Ethernet Virtualization Interconnection,以太网虚拟化互联)技术基于现有的服务提供商网络和企业网络,给分散的物理站点提供灵活的二层互联功能。
EVI是一种先进的“MAC in IP”技术,用于实现基于IP核心网的L2VPN(L2Virtual Private Network,二层虚拟专用网)技术。EVI只是在站点的边缘设备上维护路由和转发信息,无需改变站点内部和核心网络的路由和转发信息。
部署EVI后的网络由核心网络、站点网络、EVI网络组成。部署EVI后的网络模型如图1所示,其中:
站点网络:通过一台或者多台边缘设备连接到核心网络的具有独立业务功能的二层网络,通常由单个组织管理控制,主要由主机和交换设备组成,边缘设备提供站点之间的二层交换功能;
EVI网络(EVI Network):站点边缘设备之间建立的虚拟网络,提供站点网络之间的二层互联,通告连接到边缘设备的所有主机和设备的MAC地址,将多个站点互联形成更大的二层转发域;
核心网络:主要由IP路由设备承载的提供站点网络之间互联的网络。
EVI网络实现VLAN在不同站点之间的扩展,主要由EVI-Link接口和虚拟连接组成,承载站点间扩展VLAN的二层流量,通过ENDP(EVI NeighborDiscovery Protocol,EVI邻居发现协议)来自动发现站点,简化网络的配置管理工作。通过EVI IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)协议在站点之间通告主机和设备的MAC地址可达性信息。
EVI网络中使用EVI IS-IS来交互各个站点中的MAC地址信息,EVI IS-IS使用hello报文来建立邻居及保持邻居关系,使用LSP(Link-state Packet,链路状态包)报文来承载本站点内扩展VLAN(Virtual Local Area Network,虚拟局域网)中的MAC地址信息,并发送到邻居站点。当站点上的配置策略允许部分远端MAC地址配置到本地MAC地址表用于转发时,会根据本站点中EVIIS-IS中LSDB(Link State Data Base,链路状态数据库)中的内容进行过滤,只有符合本站点的策略的远端MAC地址才会配置到本站点的MAC地址表中。
如果有站点(为描述方便,此处称为站点N)配置了策略以允许指定的远端MAC地址配置到本地MAC地址表,则只有符合该策略的远端MAC地址才会配置到本地MAC地址表中,但站点N的邻居站点无法感知到该策略,因此站点N的邻居站点仍然会将所有的MAC地址信息封装在LSP报文中通过骨干网传输给站点N。另外,根据EVI IS-IS的更新机制,站点N的邻居站点也会定时将所有的MAC地址信息封装在LSP报文中通过骨干网传输给站点N。这样会存在如下问题:
(1)站点N只需要部分远端MAC地址,但其它不需要的远端MAC地址仍然会通过LSP报文传输过来,并以LSP方式配置到LSDB中,占用EVI IS-IS站点内的LSDB的空间,并且EVI IS-IS也需要对这些LSP进行维护,占用CPU;
(2)站点N的邻居站点通过骨干网发送这些站点N不需要的MAC地址信息,会额外占用骨干网的链路带宽,并且,根据EVI IS-IS的更新机制,这些MAC地址信息会每隔一段时间进行更新,并通过LSP报文发送到连接站点,相当于在持续占用骨干网的链路带宽;
(3)当站点N的邻居站点上MAC地址信息有更新时,当更新的MAC地址不符合站点N上的配置策略,即该MAC地址是站点N所不需要的,但站点N的邻居站点仍然会将该MAC地址信息通过骨干网发送过来,额外占用骨干网的带宽及资源。
具体实施方式
本发明实施例提供了一种MAC地址信息通告方案,该方案可应用于EVI网络或类似的二层互联网络,比如OTV(Overlay TransportVirtualization,覆盖传输虚拟化)网络。下面以在EVI网络中的应用为例对本发明实施例进行详细描述。
本发明实施例在EVI网络中,通过各站点与其邻居站点协商MAC地址过滤能力,并在配置有远端MAC地址配置策略的站点与其邻居站点能力协商成功的情况下,将该策略发送给其邻居站点,使其邻居站点通过MAC地址过滤处理,只将符合该远端MAC地址配置策略的MAC地址信息发送给配置该策略的站点,从而达到减少网络流量的目的,以及减少站点间的无效MAC地址信息的传输。
具备MAC地址过滤能力的站点可根据邻居站点发送来的远端MAC地址配置策略,对需要通告给邻居站点的MAC地址信息进行过滤,从而仅将符合该策略的MAC地址信息发送给配置该策略的邻居站点。
上述能力协商过程可发生在建立EVI邻居的过程中,也可发生在维护EVI邻居的过程中。站点与其邻居站点之间通过交互EVI IS-IS hello报文来建立和维护EVI邻居关系。本发明实施例对这种EVI IS-IS hello报文进行扩展,使其携带站点是否使能了MAC地址过滤能力的指示信息,从而实现MAC地址过滤能力的协商。
本发明实施例通过扩展EVI IS-IS hello报文,即在EVI IS-IS hello报文中新增TLV(Type,Length,Value,类型、长度和数值)来携带是否使能MAC地址过滤能力的指示信息。图2示出了一种用于携带是否使能MAC地址过滤能力的指示信息的TLV的格式,其中各字段的说明如下:
Type:TLV的类型为SiteCapa,取值为181;
Length:TLV的长度,为1字节;
MaxMultiHomeNum:站点所支持的最多多归属个数;
CurMultiHomeNum:站点当前存在的多归属个数;
标志位字段:其中F标识位为本发明实施例新增的标识位,站点在接收到hello报文时会对该标识位进行解析,以识别发送该hello报文的邻居站点是否使能了MAC地址过滤能力。本发明的实施例中,以定义F=1时表示具备MAC地址过滤能力,F=0时表示不具备该能力为例描述。
下面以以下场景为例,描述该能力协商流程:站点1和站点2为邻居站点,站点1上首先使能MAC地址过滤能力,但站点2上未使能MAC地址过滤能力,因此能力协商失败;此后,站点2上使能MAC地址过滤能力,因此后续的能力协商成功。其中,站点1和站点2之间交互的EVI IS-IS hello报文中携带如图2所示的TLV。如图3所示,该流程可包括:
步骤301,站点1上的EVI IS-IS协议使能MAC地址过滤能力。
步骤302,站点1向站点2发送EVI IS-IS hello报文,其中携带有站点1使能了MAC地址过滤能力的指示信息。
具体的,站点1可根据配置的EVI IS-IS hello报文发送周期,当发送EVIIS-IS hello报文的时间到达时,发送EVI IS-IS hello报文。由于当前站点1已经使能了MAC地址过滤能力,因此在发送给站点2的hello报文type=181的TLV中的F标志位置1。
步骤303,站点2收到站点1发送的EVI IS-IS hello报文后,解析出其中Type=181的TLV中的F标志值为1,表明站点1使能了MAC地址过滤能力。站点2检查自己是否使能该能力,由于当前站点2还未使能该能力,因此站点2在回应给站点1的EVI IS-IS hello报文中,将Type=181的TLV中的F标志位置为0。站点2判决站点2与站点1之间的MAC地址过滤能力协商失败。
站点1收到站点2回复的EVI IS-IS hello报文后,解析出其中Type=181的TLV中的F标志位置0,表明站点2未使能MAC地址过滤能力,因此判决站点1和站点2的MAC地址过滤能力协商失败。
步骤304,在下一个EVI IS-IS hello报文发送周期到来之前,站点2使能了MAC地址过滤能力。
步骤305,当下一个EVI IS-IS hello报文发送周期到来时,站点1向站点2发送EVI IS-IS hello报文,该报文中type=181的TLV中的F标志位置1。
步骤306,站点2收到站点1发送的EVI IS-IS hello报文后,解析出其中Type=181的TLV中的F标志值为1,表明站点1使能了MAC地址过滤能力。站点2检查自己是否使能该能力,由于当前站点2已使能该能力,因此站点2在回应给站点1的EVI IS-IS hello报文中,将Type=181的TLV中的F标志位置为1。站点2判决站点2与站点1的MAC地址过滤能力协商成功。
站点1收到站点2回复的EVI IS-IS hello报文后,解析出其中Type=181的TLV中的F标志位置1,表明站点2使能了MAC地址过滤能力,因此判决站点1与站点2的MAC地址过滤能力协商成功。
如果站点与其邻居站点间的MAC地址过滤能力协商成功,且其中有站点上配置了远端MAC地址配置策略,则配置有远端MAC地址策略的站点将其配置的该策略发送给对端站点。具体的,本发明实施例通过在EVI IS-IS LSP报文增加一种TLV,用于携带本站点上的远端MAC地址策略信息,发送到邻居站点。图4示出了一种用于携带远端MAC地址配置策略信息的TLV,该TVL中可携带所允许的MAC地址及对应的扩展VLAN信息,其中各字段的说明如下:
Type:MAC-PO类型,取值为251;
Length:2+(1+6)*N,N表示MAC地址数量;
RESV:保留位,填0;
VLAN-ID:允许后面的MAC地址通过的VLAN,如果为0,则表示没有限定VLAN;
RESV(policy info):表示携带的策略相关信息;
P:策略动作是permit(允许)还是deny(拒绝),1表示permit,0表示deny;
MAC:匹配策略后的MAC地址信息。
下面仍以上述站点1和站点2的应用场景,以及图4所示的TLV为例,描述能力协商成功后的LSP报文交互过程。如图5所示,该流程可包括:
步骤501,站点1上配置远端MAC地址配置策略,允许远端MAC1配置到MAC地址表中。
步骤502,站点1检查本站点与站点2的MAC过滤能力协商是否成功。本流程中,检查结果为协商成功,因此继续以下流程。
步骤503,站点1将远端MAC地址配置策略信息按照MAC-PRO TLV格式填充该TLV并封装在LSP报文中发送到站点2。
具体到本流程中,站点1将MAC1按照MAC-PRO TLV格式填充该TLV并封装在LSP报文中发送到站点2。
步骤504,站点2收到该LSP报文后,解析出该LSP报文中携带的邻居站点(站点1)的远端MAC地址配置策略信息,并保存在本地的MAC地址过滤表中,MAC地址过滤表中记录了各邻居站点的远端MAC地址配置策略信息。
具体到本流程中,站点2收到该LSP报文后,解析该LSP报文中的MAC-PRO TLV,判断该LSP的发布者是否在本站点的邻居集合中,若该LSP的发布者在本站点的邻居集合(即所有其他站点与本站点建立的邻居的集合)中,则解析该LSP中携带的MAC1,并保存到本地的MAC地址过滤表中;如果判断该LSP的发布者不在本站点的邻居集合中,则不对该LSP进行解析。
步骤505,当发送LSP报文的周期到达时,站点2将封装有符合站点1的远端MAC地址配置策略的MAC地址信息发送给站点1。
具体到本流程中,站点2根据本地的MAC远端过滤表项中的MAC1的相关信息,封装成LSP(该LSP中的TLV是包含常规MAC地址信息的TLV,不包含MAP-PRO TLV)。当发送LSP的周期到达时,站点2只将该LSP泛洪给站点1,而不需要将所有的LSP都泛洪给站点1,也不需要将本地MAC地址表中的MAC地址信息与MAC地址过滤表进行匹配。
步骤506,站点1接收到的站点2发来的LSP报文后,解析出其中携带的MAC地址信息(该MAC地址信息符合站点1上的远端MAC地址配置策略),将该MAC地址信息配置到本地的MAC地址表中,并更新本地的LSDB(LinkState Data Base,链路状态数据库)。
该步骤中,由于站点1与站点2的能力协商成功,因此站点1可在接收到站点2发来的LSP报文后,将其中携带的MAC地址信息配置到本地MAC地址表中,而不用将站点2发来的MAC地址信息与本站点上配置的远端MAC地址配置策略进行匹配。
当站点1上的远端MAC地址配置策略有更新时,其处理流程同上述流程,在此不再赘述。
此后,当站点2上的MAC地址表中的MAC地址信息有更新时,站点2根据本地MAC地址过滤表中站点1对应的远端MAC地址配置策略,对更新的MAC地址信息进行过滤,如果通过MAC地址过滤后得到MAC地址信息,则该MAC地址信息符合站点1上的远端MAC地址配置策略,因此站点2将该MAC地址信息封装到LSP报文中泛洪到站点1;如果通过MAC地址过滤后没有得到符合站点1上的远端MAC地址配置策略的MAC地址信息,则站点2不会向站点1发送LSP报文。站点1接收到站点2发送的LSP报文后,将其中携带的MAC地址信息配置到本地的MAC地址表中。
如果站点1与站点2的MAC过滤功能协商失败,比如站点1未使能MAC过滤功能,并且站点1上配置远端MAC地址配置策略,这种情况下,当站点2上的MAC地址表更新或者LSP报文的发送周期到达时,按照现有方式向站点1发送LSP报文。当站点1接收到站点2发送的LSP报文后,根据本站点上的远端MAC地址配置策略过滤该LSP报文中携带的MAC地址信息,并将符合该策略的MAC地址信息配置到本地的MAC地址表中。
通过以上描述可以看出,采用本发明实施例,可实现:
(1)在站点上配置远端MAC地址配置策略允许指定MAC地址配置到MAC地址表的情况下,能有效的减少骨干网中LSP报文的交互,从而有效的减少骨干网中的链路带宽占用及报文转发时需要额外占用的CPU,该方法在有较多MAC地址信息且站点需要的MAC地址信息较少的情况下,效果尤为显著。
(2)能够减轻站点LSDB的维护工作及LSDB的容量。
(3)当本站点上的远端MAC地址配置策略更新时及对端MAC地址信息有变化时,能够及时全网同步。
基于相同的技术构思,本发明实施例还提供了一种网络设备。该网络设备为二层互联网络中的设备,比如上述实施例中的EVI站点。
参见图6,为本发明实施例提供的网络设备的结构示意图,该网络设备为大二层互联的站点网络中的边缘设备,比如上述EVI网络中的站点设备,如图所示,该网络设备可包括:
能力协商模块61,用于与同一虚拟化网络实例中的其它站点网络边缘设备协商MAC地址过滤能力;
策略发送模块62,用于在与邻居设备能力协商成功且本设备上配置有远端MAC地址配置策略的情况下,将本设备上配置的远端MAC地址配置策略发送给邻居设备进行保存;
策略保存模块63,用于在于邻居设备能力协商成功且接收到所述邻居设备发送来的远端MAC地址配置策略后,将接收到的远端MAC地址配置策略保存到本地;
MAC地址信息通告模块64,用于当本设备需要通告MAC地址信息给其邻居设备时,若与其邻居设备能力协商成功,并且查询到本地保存有该邻居设备的远端MAC地址配置策略,则将符合该远端MAC地址配置策略的MAC地址信息发送给该邻居设备。
具体的,能力协商模块61可在与同一虚拟化网络实例中的站点网络边缘设备协商MAC地址过滤能力的过程中,若本设备与其邻居设备均使能了MAC地址过滤能力,则判决本设备与其邻居设备能力协商成功。
具体的,能力协商模块61具体用于,向本设备的邻居设备发送协议报文,其中携带有用于指示本设备是否使能MAC地址过滤能力的指示信息;以及,接收本设备的邻居设备发送来的协议报文,其中携带有用于指示所述协议报文的发送设备是否使能MAC地址过滤能力的指示信息。
其中,所述协议报文中包含用于携带所述指示信息的信息单元,所述信息单元中的指定标志位用于指示本设备是否使能MAC地址过滤能力。
进一步的,MAC地址信息通告模块64还用于:当本设备接收到其邻居设备发送来的LSP报文后,若本设备与该邻居设备能力协商成功,则将所述LSP报文中携带的MAC地址信息配置到本地的MAC地址表中;若本设备与该邻居设备能力协商失败,且本设备上配置有远端MAC地址配置策略,则通过本设备上配置的远端MAC地址配置策略对所述LSP报文中携带的MAC地址信息进行过滤,将符合该策略的MAC地址信息配置到本地的MAC地址表中。
通过以上描述可以看出,通过MAC地址过滤功能,能有效的减少骨干网中的LSP报文的交互信息,减少骨干网中的链路带宽占用,并有效的减少站点LSDB的维护工作,当站点上的远端MAC地址配置策略有更新或邻居站点的MAC地址信息有变化时,能够及时同步全网更新。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。