首页> 中国专利> 一种多链接互连网络分域互连的方法和系统

一种多链接互连网络分域互连的方法和系统

摘要

本发明公开了一种多链接互连(TRILL)网络分域互连的方法,划分不同的TRILL域;各TRILL域中的边界路由网桥(BRB)将远端TRILL域的位置信息和兄弟TRILL域的位置信息通知本地TRILL域的路由网桥;BRB在检测到数据帧的目的MAC不在本地TRILL域和远端TRILL域时,将本地TRILL域的位置信息封装到所述数据帧中,并向远端TRILL域发送所述数据帧;在检测到数据帧的目的MAC在本地TRILL域或远端TRILL域时,将所述数据帧发送到目的MAC对应的路由网桥;本发明同时还公开了一种TRILL网络分域互连的系统,通过本发明的方案,能够实现TRILL网络的分域管理,解决了大量TRILL域互连时MAC信息的海量问题。

著录项

  • 公开/公告号CN102684985A

    专利类型发明专利

  • 公开/公告日2012-09-19

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201110065414.9

  • 申请日2011-03-17

  • 分类号H04L12/56;H04L12/46;

  • 代理机构北京派特恩知识产权代理事务所(普通合伙);

  • 代理人张颖玲

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 06:33:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-29

    授权

    授权

  • 2014-04-02

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20110317

    实质审查的生效

  • 2012-09-19

    公开

    公开

说明书

技术领域

本发明涉及网络通信技术,尤其涉及一种多链接互连(TRILL,Transparent Interconnection over Lots of Links)网络分域互连的方法和系统。

背景技术

TRILL是互联网工程任务组(IETF)推荐的连接层(L2)网络标准,用于 解决大型数据中心(DC,Data Center)中生成树协议(STP,Spanning Tree protocol)的不足。在L2网络中,STP通过阻塞冗余链路来避免环路,但同时 也造成了冗余链路带宽的浪费(被阻塞)。TRILL通过将IS-IS(Intermediate System to Intermediate System)路由协议引入L2网络,解决了L2环路问题, 同时保留了L2多路径或称为等价多路径(ECMP,Equivalent Cost Multiple Path)。

在TRILL网络中,运行TRILL协议的设备称为路由网桥(RBridge)。在 TRILL网络的入口,RBridge负责将端系统(End System)的单播数据帧封装成 TRILL格式,即在原始数据帧前面添加TRILL头和外部帧头,封装后的数据帧 称为TRILL数据帧,并注入TRILL网络的入口路由网桥(Ingress);而在TRILL 网络的出口,RBridge负责将TRILL数据帧解封为原始数据帧并转发给端系统 的出口路由网桥(Egress)。除了Ingress和Egress外,其他RBridge负责将TRILL 单播数据帧从Ingress一跳一跳地传送到Egress,称为传输路由网桥。

TRILL的应用场景主要是DC。一方面,随着DC规模的不断增大,一个 TRILL网络中的RBridge需要处理的控制面消息会越来越多,对拓扑变化的响 应也会变慢;另一方面,在云计算中,DC之间的互通是在所难免的,因此TRILL 网络之间的互连也是个无法回避的问题。目前TRILL协议对一个TRILL网络 内的控制面和数据面的技术进行了详细描述,但尚未涉足TRILL网络之间的互 通领域。

在目前的DC互连技术中,思科的OTV(Overlay Transport Virtualization) 技术具有代表性,它采用了MAC in IP的封装技术实现了DC之间的互连。为 了实现DC之间的互通,DC的边界设备需要存储到达其他DC内的设备的MAC 信息(DC间的MAC信息表),随着互连的DC不断增多以及DC规模的不断 增大,这张MAC信息表会迅速膨胀到难以承受的程度。因此,OTV技术在DC 的互连规模上存在不足。

发明内容

有鉴于此,本发明的主要目的在于提供一种TRILL网络分域互连的方法和 系统,实现TRILL网络的分域管理,并解决不同TRILL域的互通问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明提供的一种TRILL网络分域互连的方法,将TRILL网络按层划分 出不同的TRILL域;该方法还包括:

各TRILL域中的边界路由网桥(BRB,Border RBridge)将远端TRILL域 的位置信息和兄弟TRILL域的位置信息通知本地TRILL域的RBridge;

BRB在检测到数据帧的目的媒体接入控制(MAC)地址不在本地TRILL 域和远端TRILL域时,将本地TRILL域的位置信息封装到所述数据帧中,并 向远端TRILL域发送所述数据帧;在检测到数据帧的目的MAC在本地TRILL 域或远端TRILL域时,将所述数据帧发送到目的MAC对应的RBridge。

上述方案中,所述各TRILL域中的BRB将远端TRILL域的位置信息和兄 弟TRILL域的位置信息通知本地TRILL域的RBridge,为:所述各TRILL域 中的BRB将远端TRILL域的位置信息和从父亲TRILL域中学习到的兄弟 TRILL域的位置信息封装成类型/长度/值(TLV,Type\Length\Value)格式,并 按照TRILL网络的路由协议(TRILL-IS-IS)发送到本地TRILL域的RBridge。

上述方案中,所述将本地TRILL域的位置信息封装到所述数据帧中,为: 在数据帧的TRILL头的选项域增加选项信息,将本地TRILL域的位置信息记 录在所述选项信息中;和/或,在TRILL头的Ingress字段添加本地TRILL域的 位置信息。

上述方案中,所述将本地TRILL域的位置信息封装到所述数据帧中,为: BRB在将所述数据帧从本地TRILL域发送到更高层的TRILL域时,将本地 TRILL域的位置信息封装到所述数据帧中。

上述方案中,该方法进一步包括:所述目的MAC对应的RBridge接收到 所述数据帧后,除正常的源MAC学习外,还根据数据帧的TRILL头中记录的 该数据帧经过的TRILL域的位置信息,学习到达源MAC所需经过的TRILL域 的位置信息。

上述方案中,该方法进一步包括:当发送回程消息时,所述目的MAC对 应的RBridge将学习到的到达源MAC所需经过的TRILL域的位置信息封装到 回程消息的TRILL头中,按照所述位置信息发送回程消息,收到所述回程消息 的BRB按照所述位置信息转发所述回程消息,并将本地TRILL域的位置信息 封装到所述回程消息中;所述源MAC对应的RBridge收到所述回程消息后, 学习到达目的MAC所需经过的TRILL域的位置信息。

本发明提供的一种TRILL网络分域互连的系统,该系统包括:网络划分单 元、位置信息通知单元、检测单元、重封装发送单元、数据帧发送单元;其中,

网络划分单元,用于将TRILL网络按层划分出不同的TRILL域;

位置信息通知单元,设置于各TRILL域中的BRB中,用于将远端TRILL 域的位置信息和兄弟TRILL域的位置信息通知本地TRILL域的RBridge;

检测单元,设置于各TRILL域中的BRB中,用于在检测到数据帧的目的 MAC不在本地TRILL域和远端TRILL域时,通知重封装发送模块;在检测到 数据帧的目的MAC在本地TRILL域或远端TRILL域时,通知数据帧发送模块;

重封装发送单元,设置于各TRILL域中的BRB中,用于将本地TRILL域 的位置信息封装到所述数据帧中,并向远端TRILL域发送所述数据帧;

数据帧发送单元,设置于各TRILL域中的BRB中,用于将数据帧发送到 本地TRILL域或远端TRILL域中目的MAC对应的RBridge。

上述方案中,所述位置信息通知单元,具体用于将远端TRILL域的位置信 息和从父亲TRILL域中学习到的兄弟TRILL域的位置信息封装成TLV格式, 并按照TRILL-IS-IS发送到本地TRILL域的RBridge。

上述方案中,所述重封装发送单元,具体用于在数据帧的TRILL头的选项 域增加选项信息,将本地TRILL域的位置信息记录在所述选项信息中;和/或, 在TRILL头的Ingress字段添加本地TRILL域的位置信息。

上述方案中,所述单元进一步包括:学习单元,用于设置于目的MAC对 应的RBridge中时,除正常的源MAC学习外,还根据数据帧的TRILL头中记 录的该数据帧经过的TRILL域的位置信息,学习到达源MAC所需经过的TRILL 域的位置信息。

上述方案中,所述学习单元,进一步用于当发送回程消息时,将学习到的 到达源MAC所需经过的TRILL域的位置信息封装到回程消息的TRILL头中, 按照所述位置信息发送回程消息。

上述方案中,所述重封装发送单元,还用于收到所述回程消息后,按照到 达源MAC所需经过的TRILL域的位置信息转发所述回程消息,并将本地TRILL 域的位置信息封装到所述回程消息中。

本发明提供了一种TRILL网络分域互连的方法和系统,将TRILL网络按 层划分出不同的TRILL域;各TRILL域中的BRB将远端TRILL域和兄弟TRILL 域的位置信息通知本地TRILL域的RBridge;BRB在检测到数据帧的目的MAC 不在本地TRILL域和远端TRILL域时,将本地TRILL域的位置信息封装到所 述数据帧中,并向远端TRILL域发送所述数据帧;在检测到数据帧的目的MAC 在本地TRILL域或远端TRILL域时,将所述数据帧发送到目的MAC对应的 RBridge;如此,实现TRILL网络的分域管理,并实现不同TRILL域的互通, 解决了大量TRILL域互连时MAC信息的海量问题。

本发明提供的一种TRILL网络分域互连的方法和系统还具有如下优点:

1)在TRILL域的互连中引入分层的概念(至少是两层):把只提供内部服 务的TRILL域称为私有TRILL域,而把对外提供服务的TRILL域称为知名 TRILL域,知名TRILL域内可以进一步划分私有TRILL域,还可以把私有TRILL 域细分为更小的私有域,通过分层划分TRILL域能够实现TRILL网络的分域 管理;

2)将TRILL域的概念从物理层面升华到逻辑层面:属于同一个逻辑TRILL 域的RBridge可以分布不同的物理位置,它们之间可以跨越非TRILL网络;

3)保持了每个TRILL域的独立性:一个TRILL域中的RBridge信息不会 泄漏到其他的TRILL域,有利于网络安全;

4)易扩展:通过TRILL域的位置信息的嵌套,可以实现多层TRILL域互 连;

5)网络互连规模得以扩大:通过引入TRILL分域及分层的概念,可以实 现众多TRILL域的大规模互连,而且BRB的转发负担不会显著加重;

6)可以实现跨越多种网络实现TRILL域的互连:如果是跨越IP网络,可 以用BRB的公有IP作为TRILL域的位置信息;如果是VPLS网络,可以用BRB 的MAC信息作为TRILL域的位置信息;为了跨越多种异构网络,可以用TRILL 域的全球代号(Nickname)作为TRILL域的出入口信息。

附图说明

图1为本发明实现TRILL网络分域互连的方法的流程示意图;

图2为本发明TRILL头的选项域的格式的示意图;

图3为本发明在TRILL头的选项域记录本地TRILL域的位置信息和远端 TRILL的位置信息的格式示意图;

图4为本发明中一个封装后的数据帧的结构示意图;

图5为本发明本发明实现一种TRILL网络分域互连的系统的结构示意图;

图6为本发明实施例一中将一个大型DC内的TRILL网络进行TRILL域划 分的示意图;

图7为本发明实施例一实现一种TRILL网络分域互连的方法的流程示意 图;

图8为本发明实施例二中将区域A和区域B进行TRILL域划分的示意图;

图9为本发明实施例二实现一种TRILL网络分域互连的方法的流程示意 图。

具体实施方式

本发明引入了TRILL域及域的分层概念,主要包括:

TRILL域是一个组织和分支等类似机构管辖下的诸多TRILL设备的总称。 为了便于管理,可以把一个DC中的大型TRILL网络划分为不同的TRILL域; 为了便于扩展,TRILL域可以是分层的,而且具有私有和知名的概念:把只提 供内部服务的TRILL域称为私有TRILL域,而把对外提供服务的TRILL域称 为知名TRILL域。在实施中,优选把一个规模适度的TRILL网络看成一个 TRILL域。

本发明中,TRILL域可以用域ID来标识,比如:域的Nickname-可以通 过指定特定的比特位区别于设备的Nickname。私有TRILL域至少具有一个私 有的域ID,该ID在同一组织或机构内部互通的TRILL域之间具有唯一性;知 名的TRILL域具有知名范围内(比如全球或区域内)唯一的、且知名的TRILL 域ID。实际组网中,可以根据需要对TRILL域的分层情况加以扩展或裁剪, 在保证域ID不冲突的情况下,可以灵活选择域ID及对TRILL域的进行分层。

本发明还引入BRB的概念,所述BRB是一个TRILL域的出入口设备,至 少有一个接口位于指定的TRILL域中,并且至少还有一个接口与其他TRILL 域或非TRILL网络相连。这里,所述指定的TRILL域为本地TRILL域,所述 其他TRILL域为远端TRILL域。在相互可见的BRB之间,它们的设备标识符 在互连范围内必须是唯一的,所述设备标识符一般为设备的Nickname。另外, 根据连接的TRILL域的层次不同,BRB也是分层的,低层TRILL域的BRB可 以作为普通的RBridge出现在上一层的TRILL域中。在满足上述条件的路由网 桥中,具体选择哪些作为BRB,可通过手工配置和/或借助动态路由的分发机制 等方式指定。

所述BRB对RBridge的功能主要做了如下扩展:

1)对离开本地TRILL域的数据帧进行重新封装,包括:在数据帧的TRILL 头中添加本地TRILL域的位置信息,比如:域ID、BRB的Nickname等,回程 的数据帧可以用所述TRILL域的位置信息寻址并进入本地TRILL域;所述离 开本地TRILL域的TRILL数据帧为目的MAC不在本地MAC表中或TRILL 头中携带的目的MAC所在TRILL域的位置信息不同于本地TRILL域的位置信 息的数据帧;所述位置信息具有嵌套性,依次记录数据帧穿越的不同层次的 TRILL域;

2)将重新封装的数据帧转发给下一个TRILL域的BRB;如果需要穿越非 TRILL网络,还需要在TRILL头外面添加其他的报文头标识非TRILL网络的 位置信息,比如IP头;

3)解析封装有TRILL域的位置信息的数据帧,根据TRILL头和内层MAC 头中的目的MAC信息,查询本地MAC表,确定是继续转发还是丢弃该数据帧, 如果需要转发,先重新封装再转发。

本发明的基本思想是:将TRILL网络按层划分出不同的TRILL域;各 TRILL域中的BRB将远端TRILL域的位置信息和兄弟TRILL域的位置信息通 知本地TRILL域的RBridge;BRB在检测到数据帧的目的MAC不在本地TRILL 域和远端TRILL域时,将本地TRILL域的位置信息封装到所述数据帧中,并 向远端TRILL域发送所述数据帧;在检测到数据帧的目的MAC在本地TRILL 域或远端TRILL域时,将所述数据帧发送到目的MAC对应的RBridge。

下面通过附图及具体实施例对本发明做进一步的详细说明。

本发明实现一种TRILL网络分域互连的方法,如图1所示,该方法包括以 下几个步骤:

步骤101:将TRILL网络按层划分出不同的TRILL域;

具体的,将DC中的大型TRILL网络按知名TRILL域和私有TRILL域划 分出不同的TRILL域,各TRILL域按层可以分为父亲TRILL域、子TRILL域、 兄弟TRILL域等,所述父亲TRILL域下连接一个以上子TRILL域,连接到同 一个父亲TRILL域的子TRILL域为兄弟TRILL域,在BRB中设置专用的标识 位来表示BRB所连接的TRILL域为父亲TRILL域、或子TRILL域、或兄弟 TRILL域。

步骤102:各TRILL域中的BRB将远端TRILL域的位置信息和兄弟TRILL 域的位置信息通知本地TRILL域的RBridge;

具体的,各TRILL域中的BRB将远端TRILL域的位置信息和从父亲TRILL 域中学习到的兄弟TRILL域的位置信息封装成TLV格式,并按照TRILL网络 的TRILL-IS-IS发送到本地TRILL域的RBridge。

步骤103:BRB检测数据帧的目的MAC,如果在本地TRILL域或远端 TRILL域,则执行步骤105;如果不在本地TRILL域和远端TRILL域,则执行 步骤104;

本步骤中,所述BRB检测数据帧的目的MAC,一般是:所述BRB检测所 述数据帧的目的MAC是否在本地MAC表中、或所述数据帧的目的MAC所在 TRILL域的位置信息并非本地TRILL域;所述本地MAC表包括本地TRILL域 和远端TRILL域中所有主机的MAC地址;所述目的MAC所在TRILL域的位 置信息一般是由回程消息中的TRILL头携带。

步骤104:BRB将本地TRILL域的位置信息封装到所述数据帧中,并向远 端TRILL域发送所述数据帧,远端TRILL域中的BRB接收到所述数据帧后执 行步骤103;

进一步的,为了减少数据帧中携带的TRILL域位置信息的数量,所述BRB 将本地TRILL域的位置信息封装到所述数据帧中,可以是:BRB仅在将所述数 据帧从本地TRILL域发送到更高层的TRILL域如父亲TRILL域时,才将本地 TRILL域的位置信息封装到数据帧中。

具体的,在图2所示数据帧的TRILL头的选项域(options字段)增加选项 信息,将本地TRILL域的位置信息记录在所述选项信息中;和/或,在TRILL 头的Ingress字段添加本地TRILL域的位置信息;并将远端TRILL域的位置信 息添加到所述TRILL头,向远端TRILL域发送所述数据帧,远端TRILL域中 的BRB接收到所述数据帧后执行步骤103;

所述选项信息主要包括:本地TRILL域的位置信息和远端TRILL的位置 信息,如图3所示,LOC_TRLL_LOC字段用于记录本地TRILL域的位置信息, RMT_TRLL_LOC字段用于记录远端TRILL的位置信息;上述两个选项是逐跳 (hop-by-hop)的非必遵(non-critical)选项,不支持该选项的RBridge需要透 明传输该信息。

所述TRILL域的位置信息可以是TRILL域的Nickname,也可以是唯一标 识一台BRB的IP地址、MAC地址或Nickname等信息。所述TRILL域的位置 信息的选择可以根据跨越的网络灵活选取,并根据选取的出入口信息定义选项 域的值、域的类型和长度;进一步的,还可以对所述位置信息进行转义处理。

这里,所述TRILL头选项域中TRILL域的位置信息具有嵌套性,用于记 录数据帧穿越的不同层次的TRILL域,为回程的数据帧穿越不同层次的TRILL 域到达目的主机提供寻址信息;封装后的数据帧的结构实例如图4所示,包括 透传网络的报文头、TRILL头、内层MAC帧头和用户数据,其中,所述透传 网络的报文头用于存放穿越的非TRILL网络的IP,所述TRILL头用于存放穿 越TRILL域的位置信息。

本步骤中,BRB在对来自远端TRILL域的数据帧进行封装时,如果检测到 即将进入的TRILL域的位置信息已包含在TRILL头中,则将该TRILL域的位 置信息剥离掉,并将剩余的TRILL域的位置信息复制到新的TRILL头中;

本步骤进一步还包括:所述BRB检测远端TRILL域中除自身外是否有其 他BRB,在没有时,将所述数据帧抛弃。

步骤105:BRB在检测到数据帧的目的MAC在本地TRILL域或远端TRILL 域时,将所述数据帧发送到目的MAC对应的RBridge;

本步骤进一步包括:所述目的MAC对应的RBridge接收到所述数据帧后, 除了正常的源MAC学习外,还根据数据帧的TRILL头中记录的该数据帧经过 的TRILL域的位置信息,学习到达源MAC所需经过的TRILL域的位置信息;

本步骤还包括:当发送回程消息时,所述目的MAC对应的RBridge将学 习到的到达源MAC所需经过的TRILL域的位置信息封装到回程消息的TRILL 头中,按照所述位置信息发送回程消息,收到所述回程消息的BRB按照所述位 置信息转发所述回程消息,并将本地TRILL域的位置信息封装到所述回程消息 中;源MAC对应的RBridge收到所述回程消息后,学习到达目的MAC所需经 过的TRILL域的位置信息。

本实施例通过在TRILL头中封装本地TRILL域的位置信息,解决了一个 TRILL网络分域之后或多个TRILL网络跨越传统网络的互连问题。与OTV技 术相比,本实施例中BRB只需要维护到达其他TRLL域的BRB的信息,而无 需维护到达其他TRILL域内各设备的MAC信息,解决了大量TRILL域互连时 MAC信息的海量问题。而且通过将BRB指定为不同的TRILL域的转发者,还 可以进一步减少每个BRB维护的到达其他BRB的信息,实现出入一个TRILL 域的负荷分担。

为了实现上述方法,本发明还提供一种TRILL网络分域互连的系统,如图 5所示,该系统包括:网络划分单元51、位置信息通知单元52、检测单元53、 重封装发送单元54、数据帧发送单元55;其中,

网络划分单元51,用于将TRILL网络按层划分出不同的TRILL域;

位置信息通知单元52,设置于各TRILL域中的BRB中,用于将远端TRILL 域的位置信息和从远端TRILL域的父亲TRILL域中学习到的兄弟TRILL域的 位置信息通知本地TRILL域的RBridge;

具体的,所述位置信息通知模块52将远端TRILL域的位置信息和从远端 TRILL域的父亲TRILL域中学习到的兄弟TRILL域的位置信息封装成TLV格 式,并按照TRILL-IS-IS发送到本地TRILL域的RBridge。

检测单元53,设置于各TRILL域中的BRB中,用于在检测到数据帧的目 的MAC不在本地TRILL域和远端TRILL域时,通知重封装发送单元54;在 检测到数据帧的目的MAC在本地TRILL域或远端TRILL域时,通知数据帧发 送单元55;

重封装发送单元54,设置于各TRILL域中的BRB中,用于将本地TRILL 域的位置信息封装到所述数据帧中,并向远端TRILL域发送封装后的数据帧;

数据帧发送单元55,设置于各TRILL域中的BRB中,用于将数据帧发送 到本地TRILL域或远端TRILL域中目的MAC对应的RBridge;

所述重封装发送单元54将本地TRILL域的位置信息封装到所述数据帧中, 具体为:所述重封装发送单元54在数据帧的TRILL头的选项域增加选项信息, 将本地TRILL域的位置信息记录在所述选项信息;和/或,在TRILL头的Ingress 字段添加本地TRILL域的位置信息;

所述系统进一步包括:学习单元56,在设置于目的MAC对应的RBridge 中时,除了正常的源MAC学习外,还根据数据帧的TRILL头中记录的该数据 帧经过的TRILL域的位置信息,学习到达源MAC所需经过的TRILL域的位置 信息;在设置于源MAC对应的RBridge中时,当收到回程消息后,学习到达 目的MAC所需经过的TRILL域的位置信息;

所述学习单元56,进一步用于当发送回程消息时,将学习到的到达源MAC 所需经过的TRILL域的位置信息封装到回程消息的TRILL头中,按照所述位 置信息发送回程消息;

相应的,所述重封装发送单元54,还用于收到所述回程消息后,按照到达 源MAC所需经过的TRILL域的位置信息转发所述回程消息,并将本地TRILL 域的位置信息封装到所述回程消息中。

下面结合具体实施例详细说明本发明的方法的实现过程和原理。

实施例一

本实施例中,如图6所示,为了便于管理和降低控制面消息的数量,将一 个大型DC内的TRILL网络划分成三个兄弟TRILL域:TRILL 1、TRILL 2和 TRILL 3,并用更高一层的父亲TRILL域-TRILL X将它们连接在一起。其中 TRILL X域内的RB1、RB2和RB3为BRB。本实施例实现一种TRILL网络分 域互连的方法,如图7所示,该方法包括以下几个步骤:

步骤701:将TRILL网络按层划分出不同的TRILL域;

具体的,将如图6所示的一个大型DC内的TRILL网络按知名TRILL域和 私有TRILL域划分成三个私有TRILL域:TRILL 1、TRILL 2和TRILL 3和一 个知名TRILL域-TRILL X。

步骤702:各TRILL域中的BRB将远端TRILL域的位置信息和兄弟TRILL 域的位置信息通知本地TRILL域的RBridge;

具体的,RB 1向TRILL 2、RB2向TRILL 3、RB3向TRILL 1中泛洪TLV 格式的LSP,通知远端TRILL域的位置信息,使TRILL 1、TRILL 2、TRILL 3 内的RBridge知道通过各自域内的BRB可以到达哪些TRILL域;并且,RB1、 RB2和RB3还分别向TRILL X域内泛洪TLV格式的LSP,相互通知所连接的 低一层的TRILL域的位置信息,比如:RB1将连接的TRILL 2的Nickname通 知RB2、RB3。

步骤703:H1发送源MAC为自身,目的MAC为H3的原始数据帧至TRILL 1中的RB1;

步骤704:TRILL 1中的RB1收到所述原始数据帧后,在本地的MAC表 中没有找到H3,以未知目的帧的方式对该帧进行封装,并沿分发树分发封装后 的TRILL数据帧;

这里,所述以未知目的帧的方式对该帧进行封装,一般是该帧的Ingress为 自身,Egress为一棵能到达TRILL 1中所有RBridge的分发树的树根。

步骤705:TRILL 1中的RB3收到所述数据帧后,检测到H3不在TRILL 1 和TRILL X内,所述RB3将TRILL 1的位置信息封装到所述原始数据帧中, 并向TRILL X发送封装后的数据帧;

这里,所述检测到H3不在TRILL 1和TRILL X内为:检测到TRILL 1和 TRILL X的MAC表内没有H3;

所述RB3将TRILL 1的位置信息封装到所述原始数据帧中,可以是:将 TRILL头中的Ingress设置为TRILL 1的Nickname,Egress设置为一棵可以到 达TRILL X内其他所有RBridge的分发树的树根;

本步骤还包括:除RB3以外的RBridge收到所述原始数据帧后,检测到本 地MAC表内没有H3,依然沿着原分发树分发该原始数据帧。

步骤706:TRILL X域内的RB2收到封装后的数据帧后,检测到H3在TRILL 3内,则将所述数据帧TRILL头中的Egress设置为TRILL 3内的RB3,Ingress 不变,以单播的方式发送所述数据帧到TRILL 3的RB3;

这里,所述检测到H3在TRILL 3内为:检测到TRILL X的MAC表内没 有H3,但TRILL 3的MAC表内有H3;

本步骤还包括:RB1收到RB3分发来的数据帧之后,检测到H3不在TRILL X和TRILL 2内,继续沿RB3选定的分发树向下游分发该数据帧。

步骤707:TRILL 3内的RB3收到RB2发送的数据帧后,解封装所述数据 帧,将获取的原始数据帧发送给H3;

本步骤进一步包括:所述TRILL 3内的RB3学习到TRILL 1的位置信息。

步骤708:当H3需要向H1回复报文时,将目的MAC为H1,源MAC为 H3的原始数据帧发送给TRILL 3内的RB3;

步骤709:TRILL 3内RB3根据学习到的TRILL 1的位置信息,获知H1 在远端的TRILL 1内,将所述TRILL 1的位置信息封装到所述原始数据帧中, 发送给RB2;

所述将所述TRILL 1的位置信息封装到所述原始数据帧中,可以是将 Ingress设置为自身,Egress设置为TRILL 1的域Nickname。

步骤710:RB2收到所述原始数据帧后,检测到TRILL 1的位置信息,将 TRILL 3的位置信息封装到所述原始数据帧中,并发送到TRILL 1的RB3;

所述将TRILL 3的位置信息封装到所述原始数据帧中,可以是将Ingress 设置为TRILL 3的域Nickname。

步骤711:TRILL 1的RB3收到封装后的数据帧,检测到H1在TRILL 1 内的RB1,将所述数据帧TRILL头中的Egress设置为TRILL 1内的RB1,Ingress 不变,将所述数据帧单播给TRILL 1内的RB1;

步骤712:TRILL 1内的RB1收到该数据帧后,解封装所述数据帧,将解 封装获取的原始数据帧转发给H1;

本步骤进一步包括:所述TRILL 1内的RB1学习到TRILL 3的位置信息。

本实施例中,经过上述过程,TRILL 1中的RB 1和TRILL 3中的RB3分别 学习到了到达H3和H1的路径,后续H1和H3之间的数据转发将沿着学习到 的路径进行。

另外,在上述实施例中,域的位置信息还可以携带在TRILL头中的选项域 中。数据帧在从低层域进入高层域时,比如:从TRILL 1进入TRILL X时,连 接这两个域的BRB(比如TRILL 1中的RB3)将低层域(即TRILL 1)的位置 信息添加到本地TRILL域位置信息选项字段(LOC_TRILL_LOC)中,与目的 端(比如H3)相连的RBridge(比如TRILL 3中的RB3)从选项域中学习源 MAC的位置信息;在返程数据帧中,与目的端相连的RBridge的TRILL头的 远端TRILL域位置信息选项字段(RMT_TRILL_LOC)中携带远端TRILL域 (即TRILL 1)的位置信息,BRB通过远端TRILL域的位置信息将数据帧转发 到目的端。

实施例二

本实施例中,如图8所示,区域A和区域B内分别有两个私有TRILL域: TRILL 1和TRILL2,无论是区域A、B内还是区域A、B间的TRILL域都通过 IP网络连接在一起。为了避免不同区域A、B间TRILL域的域名冲突,分别用 地区知名的TRILL A和TRILL B将各自区域内的私有TRILL域在逻辑上连接 在一起,然后用全球知名的TRILL X将上述地区知名的TRILL A和TRILL B 逻辑上连接在一起。本实施例实现一种TRILL网络分域互连的方法,如图9所 示,该方法包括以下几个步骤:

步骤901:将TRILL网络按层划分出不同的TRILL域;

具体的,如图8所示,将区域A和区域B内分别划分两个私有TRILL域: TRILL 1和TRILL 2,无论区域A、B内还是区域A、B间的TRILL域都通过 IP网络连接在一起,并划分出地区知名的TRILL A和TRILL B将各自区域内的 私有TRILL域在逻辑上连接在一起,然后划分出全球知名的TRILL X将上述 地区知名的TRILLA和TRILL B逻辑上连接在一起。

步骤902:各TRILL域中的BRB将远端TRILL域的位置信息和兄弟TRILL 域的位置信息通知本地TRILL域的RBridge;

具体的,区域A内的RB2和RB3,将自身相连的私有TRILL 1和TRILL 2 的位置信息泛洪到TRILL A中,并将TRILL A以及在TRILL A中学习到的区 域A内的私有TRILL域的位置信息泛洪到各自相连的私有TRILL域中。这样, 私有TRILL域中的RBridge会获得本区域(即区域A)内中存在的其他私有 TRILL域即兄弟TRILL域的位置信息,另外,本区域内的RB2和RB3也会分 别学习到对方所连接的私有TRILL域,包括到达所述私有TRILL域的IP路径;

区域B内也进行类似的控制信息的发布,从而保证区域B内TRILL 1和 TRILL 2之间的逻辑上的连通性;

另外,全球知名TRILL X的RB4和RB3分别将TRILL A和B的位置信息 分发到TRILL X内,使RB4和RB3分别学习到TRILL A和B的位置信息,包 括到达TRILL A和B的IP路径,并且,TRILL X的RB4和RB3还将学习到的 TRILL A和TRILL B的位置信息泛洪到区域A和区域B中,使区域A和区域B 内的RBridge学习到另一个区域级TRILL域的位置信息,包括IP路径。

步骤903:H1发送源MAC为H1、目的MAC为H5的原始数据帧至区域 A内的TRILL 2的RB1;

步骤904:区域A内的TRILL 2的RB1收到原始数据帧后,未在MAC表 中发现H5对应的表项,以未知目的帧的方式对该帧进行封装,并沿分发树分 发封装后的TRILL数据帧;

步骤905:区域A内的以TRILL 2为本地TRILL域的RB3收到所述原始 数据帧后,检测到H5不在TRILL 2和TRILL A内,所述RB3将TRILL 2的位 置信息封装到所述原始数据帧中,并向TRILL A发送封装后的数据帧;

这里,所述H5不在TRILL 2和TRILL A内为H5不在RB3连接的TRILL 2 和TRILL A的MAC表内;

所述将TRILL 2的位置信息封装到所述原始数据帧中,可以是:将TRILL 头中的Ingress设置为自身,Egress设置为一棵可以到达TRILL A内其他所有 RBridge的分发树的树根,并将TRILL 2的位置信息添加到TRILL头的 LOC_TRILL_LOC字段中;

所述向TRILL A发送封装后的数据帧,一般是:对封装后的数据帧添加IP 头后,组播给TRILL A内的所有RBridge;

本步骤还包括:RB2收到所述原始数据帧后,检测到本地MAC表内没有 H5,继续沿分发树分发该TRILL数据帧;所述本地MAC表为RB2连接的TRILL 1和TRILL A的MAC表。

步骤906:TRILL A内的RB4收到该数据帧后,解封装后检测到H5不在 TRILL A和TRILL X内,所述RB4将TRILL A的位置信息封装到所述数据帧 中,并添加IP头后向TRILL X组播封装后的数据帧;

这里,所述检测到H5不在TRILL A和TRILL X内为:检测到TRILL A和 TRILL X的MAC表内没有H5;

所述将TRILL A的位置信息封装到所述数据帧中,可以是:将TRILL头 中的Ingress设置为自身,Egress设置为一棵可以到达TRILL X内所有RBridge 的分发树的树根,并将TRILL A的位置信息追加到TRILL头的 LOC_TRILL_LOC字段中;

本步骤还包括:TRILLA内的RB2收到该数据帧后,解封装后检测到本地 MAC表内没有H5、且远端TRILL域TRILL1内没有其他BRB,丢弃该报文;

步骤907:TRILL X内的RB3收到所述数据帧后,解封装后检测到H5不 在TRILL X和TRILL B内,所述RB3对所述数据帧重新进行封装,并添加IP 头后向TRILL B组播封装后的数据帧;

这里,所述检测到H5不在TRILL X和TRILL B内为:检测到TRILL X和 TRILL B的MAC表内没有H5;

所述对所述数据帧重新进行封装,可以是:将TRILL头中的Ingress设置 为自身,Egress为一棵可以到达TRILL B内所有RBridge的分发树的树根,拷 贝原TRILL头的LOC_TRILL_LOC选项字段信息。

步骤908:TRILL B中的RB1收到所述数据帧后,检测到H5在TRILL 2 内,则设置TRILL头中的Ingress为自身、Egress为RB2,拷贝原TRILL头的 LOC_TRILL_LOC选项字段信息,之后单播给TRILL 2中的RB2;

这里,所述检测到H5在TRILL 2内为:检测到TRILL B的MAC表中没 有H5,但TRILL 2的MAC表中有H5;

本步骤还包括:TRILL B中的RB2收到所述数据帧后,检测到本地MAC 表内没有H5,丢弃该报文。

步骤909:区域B中TRILL 2中的RB2收到数据帧后,解封装所述数据帧, 将获取的原始数据帧发送给H3;

本步骤进一步包括:所述区域B中TRILL 2中的RB2学习到到达H1需要 穿越TRILL域的位置信息,即:依次穿越TRILLA和TRILL 2。

步骤910:H5回复或发送目的地为H1的原始数据帧到RB2;

步骤911:RB2对原始数据帧进行封装,包括:设置Ingress为自身、Egress 为TRILL B内的RB1,并将到达H1需要穿越TRILL域的位置信息添加到TRILL 头的RMT_TRILL_LOC选项字段中,之后将封装后的数据帧单播给RB1;

步骤912:区域B内TRILL 2的RB1收到该数据帧后,根据到达H1需要 穿越TRILL域的位置信息封装该数据帧,添加IP头后,单播给TRILL B中的 RB3;

本步骤中,所述根据到达H1需要穿越TRILL域的位置信息封装该数据帧, 可以是:设置该数据帧的Ingress为自身、Egress为RB3,并在TRILL头的 LOC_TRILL_LOC选项中添加区域B内TRILL 2的位置信息,拷贝原TRILL 头中的RMT_TRILL_LOC选项信息。

步骤913:TRILL X中的RB3收到所述数据帧,解封装后,根据到达H1 需要穿越TRILL域的位置信息获知要到达H1需要首先到达TRILL A,重新封 装该数据帧,添加IP头后,单播给TRILL X中的RB4;

本步骤中,所述重新封装该数据帧,可以是:设置该数据帧的Ingress为自 身、Egress为RB4,在TRILL头的LOC_TRILL_LOC选项中追加TRILL B的 位置信息,拷贝原TRILL头中的RMT_TRILL_LOC选项信息。

步骤914:TRILL A中的RB4收到所述数据帧,解封装后,根据到达H1 需要穿越TRILL域的位置信息获知要到达H1需要先到达TRILL 2,重新封装 该数据帧,添加IP头后,单播给TRILL A中的RB3;

本步骤中,所述重新封装该数据帧,可以是:设置该数据帧的Ingress为自 身、Egress为TRILL A中的RB3,剥去TRILL头中的RMT_TRILL_LOC选项 中的TRILL A的位置信息,并拷贝剩余的RMT_TRILL_LOC选项域信息,拷 贝原TRILL头的LOC_TRILL_LOC选项信息。

步骤915:区域A中TRILL 2内的RB3收到所述数据帧,解封装后,通过 查找本地MAC表获知H1与RB1相连,重新封装该数据帧,单播给本地TRILL 域内的RB1;

本步骤中,所述重新封装该数据帧,可以是:设置该数据帧的Ingress为自 身、Egress为TRILL 2内的RB1,丢弃TRILL头中RMT_TRILL_LOC选项域 信息,并拷贝原TRILL头的LOC_TRILL_LOC选项信息。

步骤916:区域A中TRILL 2内的RB1收到所述数据帧,解封装后,将原 始数据帧转发给H1;

本步骤进一步包括:所述区域A中TRILL 2内的RB1学习到到达H5需要 穿越的TRILL域的位置信息。

通过上述过程,区域A中的TRILL 2内的RB 1和区域B中TRILL 2中的 RB2分别学习到了到达H5和H1的路径,后续H1和H5之间的数据转发将按 照学习到的路径进行。

另外,在上述实施例中,BRB也可以将部分TRILL域的位置信息在TRILL 头的Ingress和/或Egress字段传递,而将更低层级的TRILL域的位置信息移到 TRILL头的选项域中,从而减小TRILL头的大小,加快数据转发速度。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号