01-TRILL配置
本章节下载: 01-TRILL配置 (569.81 KB)
目 录
TRILL(TRansparent Interconnection of Lots of Links,多链路透明互联)协议通过将三层路由技术IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)的设计思路引入二层网络,从而将二层的简单、灵活性与三层的稳定、可扩展和高性能有机融合起来,非常适合数据中心构建大型二层网络的需要。
· RB(Routing Bridge,路由桥):运行TRILL协议的设备称为RB,也写作RBridge。根据RB在TRILL网络中的位置,又可将其分为Ingress RB、Transit RB和Egress RB三种,分别表示报文进入TRILL网络的入节点、在TRILL网络中经过的中间节点以及离开TRILL网络的出节点,如图1-2所示。
· TRILL网络:由RB构成的二层网络称为TRILL网络,如图1-3所示。
· System ID:是RB在TRILL网络中的唯一标识,长度固定为6个字节。
· Nickname:是RB在TRILL网络中的地址,长度固定为2个字节。
· LSDB(Link State DataBase,链路状态数据库):TRILL网络中所有链路的状态组成了链路状态数据库。
· LSPDU(Link State Protocol Data Unit,链路状态协议数据单元):简称LSP,用于描述链路状态并在邻居设备间进行扩散。
· DRB(Designated Routing Bridge,指定路由桥):与IS-IS中的DIS(Designated IS,指定中间系统)相类似,在广播网络中也存在一个DRB。除了可以简化网络拓扑,DRB还负责为广播网络中各RB上的VLAN分配AVF和指定端口等。
· AVF(Appointed VLAN-x Forwarder,指定VLAN转发者)和指定端口:为了防止环路,广播网络上一个VLAN中的所有本地流量必须从同一RB上的同一端口出、入TRILL网络,该RB称为该VLAN的AVF,相应的端口称为指定端口。
有关LSDB、LSPDU和DIS的详细介绍,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
TRILL报文分为协议报文和数据报文两种。TRILL协议报文包括TRILL Hello(以下简称Hello报文)、LSP、CSNP(Complete Sequence Number PDU,全时序报文)、PSNP(Partial Sequence Number PDU,部分时序报文)、MTU-prob和MTU-ack等,均采用802.1Q格式封装,目的地址为固定的组播地址0180-C200-0041,其内容直接封装在数据链路层的帧结构中。以下将重点介绍TRILL数据报文的格式。
图1-1 TRILL数据报文的格式
如图1-1所示,TRILL数据报文在原始以太网报文之前添加了TRILL头和外层以太网头。其中,TRILL头中各字段的含义如表1-1所示。
表1-1 TRILL头各字段含义
字段 |
说明 |
Ethertype |
类型固定为0x22F3 |
V |
版本号,当前为0。每个RB收到TRILL报文时都必须检查此位,若不正确则将其丢弃 |
R |
为扩展而保留。Ingress RB打TRILL头时将其设为0,Transit RB和Egress RB均不关注此位 |
M |
多目的属性。0表示已知单播报文,1表示组播报文 由于组播、广播和未知单播报文在TRILL网络中的转发机制相同,因此本文中将这三种报文都统称为组播报文 |
Op-Length |
Options字段的长度,0表示没有Options字段 |
Hop Count |
跳数,用于防止环路。当TRILL报文的跳数为0时,RB将丢弃该报文 |
Egress RB Nickname |
Egress RB的Nickname |
Ingress RB Nickname |
Ingress RB的Nickname |
Options |
可选字段,当Op-Length的取值为非0时才会有本字段 |
TRILL协议在各RB之间通过周期性通告Hello报文以建立并维持邻居关系,在形成邻居关系的RB之间扩散LSP,最终在全网RB上形成相同的LSDB。各RB在LSDB的基础上使用SPF(Shortest Path First,最短路径优先)算法生成从自己到其他RB的路由转发表项,用以指导数据报文的转发。
二层和三层数据报文在TRILL网络中的转发机制不同,以下分别进行介绍。
对于在同一VLAN内转发的二层流量,单播和组播报文的转发过程分别如下。
如图1-2所示,单播报文的二层转发过程如下:
(1) 当单播报文进入TRILL网络时,Ingress RB为原始以太网报文先打上TRILL头(类似于IP头),再打上外层以太网头(类似于IP报文前的MAC头),由此完成TRILL报文的封装。
(2) 此后,类似于IP报文在路由器间的转发过程,各RB根据TRILL头中的Egress RB Nickname将TRILL报文进行逐跳转发,直至送达Egress RB。在此过程中,外层以太网头在每一跳都要被修改,而TRILL头中只有Hop Count值逐跳递减。
(3) 当TRILL报文到达Egress RB后被解封装,还原成原始以太网报文离开TRILL网络。
由于TRILL头前打上了外层以太网头,因此传统的以太网交换机可透传TRILL报文,RB之间也可通过传统以太网交换机相连接。
在TRILL网络中,RB根据LSDB中的信息为每个VLAN都计算生成一棵TRILL分发树,以指导组播报文的转发。
如图1-3所示,当VLAN 10中的组播报文进入TRILL网络时,RB 1作为Ingress RB将其封装成TRILL报文,该报文中的Egress RB为VLAN 10所对应TRILL分发树的根桥RB 2,目的MAC地址为组播MAC地址0180-C200-0040。当报文到达根桥后再扩散到整棵TRILL分发树上,最后通过RB 3解封装后送达S2;而RB 4由于其所在网段没有该报文的接收者,于是将其丢弃。
图1-3 组播报文二层转发示意图
TRILL网络中的组播报文根据其所属VLAN的不同选择不同的分发树进行转发。由于各分发树的拓扑不同,从而可在一定程度上实现流量的负载分担,但并未利用开销相同的等价路径来分担流量。当网络中存在多条等价路径时,各分发树都会选择伪节点ID(请参见“三层技术-IP路由配置指导”中的“IS-IS”)最大的那条路径转发报文。如图1-4所示,RB 1与RB 2之间有两条等价路径,假设RB 1—RB 2这条路径的伪节点ID较大,那么以RB 1为根桥的分发树和RB 4为根桥的分发树都会选择此路径。
图1-4 TRILL组播等价多路径示意图
而TRILL组播等价多路径功能可以将等价路径分给不同的分发树,从而实现更好的负载分担效果。当网络中存在N条等价路径时,各分发树使用J mod N选择其中一条来转发报文(J为分发树的编号,是根据根桥优先级由高到低为各分发树从0开始依次编号)。如图1-4中,将RB 1—RB 2这条路径分给以RB 1为根桥的分发树,而将RB 1—RB 3—RB 2这条路径分给以RB 4为根桥的分发树。
此外,TRILL分发树还支持根桥快速切换机制,当RB通过计算单播路由发现有分发树的根桥不可达时,会主动老化LSDB中该根桥的LSP,促使TRILL网络重新计算分发树,以保证组播报文能够快速切换到新生成的分发树上。
与TRILL相关的协议规范有:
· RFC 6325:Routing Bridges (RBridges): Base Protocol Specification
· RFC 6326:Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS
· RFC 6327:Routing Bridges (RBridges): Adjacency
· RFC 1195:Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
· RFC 7978:Transparent Interconnection of Lots of Links (TRILL): RBridge Channel Header Extension
· RFC 6905:Requirements for Operations, Administration, and Maintenance (OAM) in Transparent Interconnection of Lots of Links (TRILL)
TRILL功能受License限制,请在使用本功能前安装有效的License。有关License的详细介绍,请参见“基础配置指导”中的“License管理”。
仅FE/SG系列接口板和以下接口板支持TRILL功能:
· 下列SC系列接口板:LSUM2GP24TSSC3、LSUM2GP44TSSC3、LSUM2GT24PTSSC3、LSUM2GT24TSSC3、LSUM2GT48SC3、LSUM2GV48SC3、LSQ1QGC4SC3、LSQ1QGS4SC3、LSQ1QGS8SC3、LSQ1TGS32SC3、LSQ1TGS48SC3、LSQ1TGT24SC3、LSQM2GP24TSSC3、LSQM2GP44TSSC3、LSQM2GT24PTSSC3、LSQM2GT24TSSC3、LSQM2GT48SC3、LSQM4GV48SC3
· 下列SF系列接口板:LSUM2TGS16SF3、LSQM2TGS16SF3
· LSU1CGC2SE0接口板
· 二层以太网接口视图下的配置只对当前端口生效;二层聚合接口视图下的配置对当前接口及其成员端口均生效;聚合成员端口上的配置,只有当成员端口退出聚合组后才能生效。对于二层聚合接口,TRILL分发树的相关计算都只在二层聚合接口上进行,其成员端口并不参与其中。
· 为保证TRILL网络与生成树网络的正常对接,应在TRILL网络中关闭生成树协议。此外,还应将生成树网络中与TRILL网络相连的端口配置为边缘端口,否则当拓扑改变时,这些端口需经过两倍Forward Delay时间才能进入Forwarding状态,而此时RB上已完成DRB选举,因此可能导致链路上出现多个DRB并产生AVF抑制,从而影响流量切换的收敛时间。有关生成树协议的详细介绍,请参见“二层技术-以太网交换配置指导”中的“生成树”。
· 由于TRILL网络本身可以避免产生环路,因此不必也不建议在TRILL端口上使能环路检测功能。有关环路检测的详细介绍,请参见“二层技术-以太网交换配置指导”中的“环路检测”。
· 在IRF中配置TRILL协议时,请将IRF桥MAC地址的保留时间配置为永久保留,否则当IRF设备分裂后可能导致流量中断。有关IRF的相关配置,请参见“虚拟化技术配置指导”中的“IRF”。
表1-2 TRILL配置任务简介
配置任务 |
说明 |
详细配置 |
使能TRILL协议 |
必选 |
|
配置RB的System ID和Nickname |
可选 |
|
配置TRILL端口的类型 |
可选 |
|
配置TRILL端口的DRB优先级 |
可选 |
|
配置TRILL端口的链路开销 |
可选 |
|
配置通告VLAN和指定VLAN |
可选 |
|
调整TRILL时间参数 |
可选 |
|
配置LSP相关参数和功能 |
可选 |
|
调整SPF算法相关参数 |
可选 |
|
配置TRILL分发树 |
可选 |
|
配置TRILL等价多路径 |
可选 |
|
配置TRILL组播路由采用差异化下刷策略 |
可选 |
|
开启TRILL邻接状态输出开关 |
可选 |
|
配置TRILL网管功能 |
可选 |
|
配置TRILL GR |
可选 |
|
配置TRILL监测的Track项 |
可选 |
在端口上使能TRILL协议之前,必须先全局使能TRILL协议。
当在端口上使能了TRILL协议之后,RB上的缺省配置就足以保证其在TRILL网络中的正常运行。使能了TRILL协议的端口称为TRILL端口。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
全局使能TRILL协议,并进入TRILL视图 |
trill |
缺省情况下,TRILL协议处于全局关闭状态 |
退回系统视图 |
quit |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
在端口上使能TRILL协议 |
trill enable |
缺省情况下,端口上的TRILL协议处于关闭状态 |
System ID和Nickname都是RB在TRILL网络中的重要标识:
· System ID:是RB在TRILL网络中的唯一标识,可以由系统自动分配或用户手工配置。
· Nickname:是RB在TRILL网络中的地址,可以由系统自动分配或用户手工配置。如果TRILL网络中不同RB拥有相同的Nickname,则优先级较高者保留此Nickname;如果优先级也相同,则System ID较大者保留此Nickname,其余RB再由系统为其自动分配一个新的Nickname。
如果用户为RB新配置的System ID与原有的不同,系统将重置TRILL进程。
表1-4 配置RB的System ID和Nickname
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
配置RB的System ID |
system-id system-id |
缺省情况下,RB启动后会根据自己的MAC地址自动生成一个System ID |
配置RB的Nickname |
nickname nickname [ priority priority ] |
缺省情况下,RB的Nickname由系统自动分配,其持有Nickname的优先级为64 |
TRILL端口类型有以下几种:
· Access类型:又分为非Alone属性和Alone属性两种类型。非Alone属性的Access端口只能处理本地数据报文和Hello报文;Alone属性的Access端口不会收、发Hello报文,不参与DRB选举和AVF协商。
· Hybrid类型:该类型的端口同时具有Access和Trunk的属性,能够处理本地数据报文和过路数据报文。
· Trunk类型:该类型的端口能够处理过路数据报文和部分二层协议报文(如LLDP报文),不能处理本地数据报文。
公网侧两个TRILL端口直连时,不允许配置两个端口的类型都为Hybrid类型。
表1-5 配置TRILL端口的类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置TRILL端口的类型 |
trill link-type { access [ alone ] | hybrid | trunk } |
缺省情况下,TRILL端口的类型为Access类型(非Alone属性) |
当网络类型为广播网时,TRILL需要选举DRB:DRB优先级较高的RB优先被选中为DRB;若两个RB的DRB优先级相同,则MAC地址最大者会被选为DRB。
表1-6 配置TRILL端口的DRB优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置TRILL端口的DRB优先级 |
trill drb-priority priority |
缺省情况下,TRILL端口的DRB优先级为64 |
TRILL端口的链路开销可以由系统自动计算或用户手工配置,其中手工配置优先,即:只要进行了手工配置,就取手工配置值;如果没有进行手工配置,若开启了自动计算功能则取自动计算值,若关闭了自动计算功能则取缺省值2000。
手工配置时,请确保本端和对端TRILL端口的链路开销值相同。
TRILL端口链路开销值自动计算的公式如下:链路开销值=20000000000000÷端口波特率。
表1-7 配置TRILL端口的链路开销
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
开启TRILL端口链路开销值的自动计算功能 |
auto-cost enable |
缺省情况下,TRILL端口链路开销值的自动计算功能处于开启状态 |
退回系统视图 |
quit |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置TRILL端口的链路开销值 |
trill cost cost-value |
缺省情况下,TRILL端口的链路开销值为2000 |
本节中将用到以下概念和符号:
· 使能VLAN:表示端口允许通过的VLAN。
· AVF VLAN:表示端口作为AVF的VLAN。
· “∩”和“∪”:都是集合运算符号,分别表示“取交集”和“取并集”。
RB之间的Hello报文,是通过一个VLAN集合来交互的,具体来说:
· DRB在以下VLAN集合中发送Hello报文:使能VLAN ∩(指定VLAN ∪ 通告VLAN)。
· 非DRB在以下VLAN集合中发送Hello报文:使能VLAN ∩(指定VLAN ∪(通告VLAN ∩ AVF VLAN))。
而除Hello报文外的其它TRILL协议报文和本地数据报文,则全部通过指定VLAN来交互。因此,请确保所配置的指定VLAN处于使能VLAN的范围内,否则可能导致TRILL邻居无法建立或TRILL数据报文无法转发。
此外,由于TRILL端口会在上述VLAN集合的每个VLAN内都发送Hello报文,这样当VLAN集合较大时,设备会因发送大量Hello报文而占用过多CPU资源,从而无法及时处理其它协议的报文。为了避免这种情况,可以通过减少通告VLAN的范围来缩小VLAN集合的范围。
表1-8 配置通告VLAN和指定VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置通告VLAN |
trill announcing-vlan { vlan-list | null } |
缺省情况下,未配置通告VLAN,此时通告VLAN与使能VLAN的范围相同 |
配置指定VLAN |
trill designated-vlan vlan-id |
缺省情况下,未配置指定VLAN,此时指定VLAN由系统从使能VLAN中自动选出 |
通过本配置可对以下TRILL时间参数进行调整:
· Hello报文的发送间隔和失效数目:RB定期发送Hello报文以维持邻接关系。Hello报文的发送间隔越短,网络收敛越快,但也会占用更多的系统资源。Hello报文的发送间隔与失效数目的乘积为邻接关系保持时间,即RB监测到链路失效并进行路由重计算的时间。RB通过Hello报文将邻接关系保持时间通知给其邻居,若该邻居在邻接关系保持时间内未收到此报文,便宣告邻接关系失效。
· 环路避免的抑制时间:AVF的存在保证了在一条链路上与一个VLAN相关的报文,只会有唯一的出口或入口,其他RB收到与该VLAN相关的报文时将不做任何处理。然而,当RB发现链路上的根桥发生了变化,或其他RB宣称的AVF与本RB的AVF发生冲突时,会将相关的AVF抑制一段时间以避免环路的产生。抑制时间超时后,如果本RB仍是该VLAN的AVF,则重新履行AVF的职能。
· CSNP报文的发送间隔:当网络类型为广播网时,DRB定期发送CSNP报文进行全网的LSDB同步。CSNP报文记录了本地LSDB中所有LSP的摘要,当一个RB收到一个CSNP报文时,就会与本地的LSDB进行比较,检查其中的LSP是否有老化和缺失。如果CSNP报文中有某个LSP摘要而本地LSDB中没有,RB将发送PSNP报文以请求获取该LSP的信息。
表1-9 调整TRILL时间参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置Hello报文的发送间隔 |
trill timer hello interval |
缺省情况下,Hello报文的发送间隔为10秒 本命令用来配置RB发送Hello报文的时间间隔,而DRB发送Hello报文的时间间隔则为RB的1/3,以保证DRB失效后可被快速检测到 |
配置Hello报文的失效数目 |
trill timer holding-multiplier count |
缺省情况下,Hello报文的失效数目为3 |
配置环路避免的抑制时间 |
trill timer avf-inhibited time |
缺省情况下,环路避免的抑制时间为30秒 |
配置CSNP报文的发送间隔 |
trill timer csnp interval |
缺省情况下,CSNP报文的发送间隔为10秒 |
通过本配置可对以下LSP相关参数和功能进行配置:
· LSP的最大生存时间:当RB生成一个LSP时,会将该LSP的最大生存时间作为LSP中的剩余生存时间告知其他RB。当LSDB中一个LSP的剩余生存时间为0时,说明该LSP已失效,RB将从LSDB中删除该LSP的内容,只保留其摘要,并将该LSP的剩余生存时间置0后泛洪给其他RB以清除此LSP。
· LSP的刷新周期:对于一个本地生成的LSP,当其剩余生存时间≤(最大生存时间-刷新周期)时,即使该LSP中的内容没有任何改变,也要重新更新此LSP,这样可避免网络中的LSP老化太频繁,保证网络稳定性。
· LSP重新生成的时间间隔:网络拓扑的变化会导致重新生成LSP,通过调节LSP重新生成的时间间隔,可以抑制网络频繁变化可能导致的对带宽资源和设备资源的过多占用。在网络变化不频繁的情况下,将LSP重新生成的时间间隔缩小到minimum-interval,而在网络变化频繁的情况下可进行相应惩罚,将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
· RB可生成的LSP最大长度:LSP的实际最大长度将由本配置值、端口的MTU值和所有其他RB在LSP中携带的自身能生成的LSP最大长度这三者中的最小值来决定。
· RB可接收的LSP最大长度:如果RB所收到LSP的长度超过此值,便丢弃此LSP。
· LSP的过载标志位:当RB发送的LSP的过载标志位被置位时,就表示该RB发生了问题,无法正确执行路由选择和报文转发。当RB因内存不足等原因无法记录完整的LSDB时,会导致区域路由计算错误,此时可以将故障RB的LSP的过载标志位置,从而将该RB从TRILL网络中暂时隔离,以便进行故障排除。
· LSP快速扩散功能:LSP的变化会导致重新计算SPF。开启本功能后,设备会将导致SPF重新计算的LSP快速扩散出去,从而有效缩短拓扑变化时全网设备上LSDB不一致的时间,提高全网的快速收敛性能。
· LSP的最小发送间隔和一次发送的最大数目:为了避免网络中的LSP老化太频繁,RB需要定期发送LSP,以使全网RB上的LSDB和路由计算保持稳定有效。
· 旁路伪节点功能:开启本功能后,如果当前端口为DRB且只有一个邻居,则不再生成伪节点的LSP,以减少网络中LSP的数量。
· 由于LSP的实际刷新时间会受LSP的最小发送间隔和一次发送LSP的最大数目的影响,因此请合理配置LSP的最大生存时间和刷新周期,以免LSP被意外老化。
· RB可生成的LSP最大长度不得大于RB可接收的LSP最大长度,否则系统将提示出错。
· 请不要在作为TRILL分发树根桥的RB上将LSP的过载标志位置位,否则将导致使用该根桥的流量转发不通。
表1-10 配置LSP相关参数的功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
配置LSP的最大生存时间 |
timer lsp-max-age time |
缺省情况下,LSP的最大生存时间为1200秒 |
配置LSP的刷新周期 |
timer lsp-refresh time |
缺省情况下,LSP的刷新周期为900秒 |
配置LSP重新生成的时间间隔 |
timer lsp-generation maximum-interval [ minimum-interval [ incremental-interval ] ] |
缺省情况下,LSP重新生成的最大时间间隔为2秒,最小时间间隔为10毫秒,时间间隔惩罚增量为20毫秒 |
配置RB可生成的LSP最大长度 |
lsp-length originate size |
缺省情况下,RB可生成的LSP最大长度为1458字节 |
配置RB可接收的LSP最大长度 |
lsp-length receive size |
缺省情况下,RB可接收的LSP最大长度为1492字节 |
将LSP的过载标志位置位并配置保持置位状态的时间 |
set overload [ timeout ] |
缺省情况下,LSP的过载标志位未置位 |
开启LSP快速扩散功能 |
flash-flood [ flood-count flooding-count | max-timer-interval flooding-interval ] * |
缺省情况下,LSP快速扩散功能处于关闭状态 |
退回系统视图 |
quit |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置LSP的最小发送间隔和一次发送的最大数目 |
trill timer lsp interval [ count count ] |
缺省情况下,LSP的最小发送间隔为10毫秒,一次发送LSP的最大数目为5个 |
开启旁路伪节点功能 |
trill bypass-pseudonode enable |
缺省情况下,旁路伪节点功能处于关闭状态 |
根据本地维护的LSDB,RB通过SPF算法算出以自己为根的最短路径树,并根据此树决定到达目的网络的下一跳。通过调节SPF算法的时间间隔,可抑制网络频繁变化而导致的带宽资源和设备资源的过多占用。
系统在网络变化不频繁时将连续路由计算的时间间隔缩小至minimum-interval,而在网络变化频繁时进行相应的惩罚,即增加incremental-interval×2n-2(n为连续触发路由计算的次数),但最大不超过maximum-interval。
表1-11 调整SPF算法相关参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
配置TRILL使用SPF算法进行路由计算的时间间隔 |
timer spf maximum-interval [ minimum-interval [ incremental-interval ] ] |
缺省情况下,TRILL使用SPF算法进行路由计算的最大时间间隔为10秒,最小时间间隔为10毫秒,时间间隔惩罚增量为20毫秒 |
在TRILL网络中,RB根据LSDB中的信息计算整网的TRILL分发树,以指导组播报文的转发。优先级较大的RB将被选为TRILL分发树的根桥。
LSP中携带了TRILL分发树计算数量的信息:本RB希望整网计算的TRILL分发树数量、本RB支持的最多能计算的TRILL分发树数量(固定为15棵)以及本RB当前已计算的TRILL分发树数量。整网的RB均根据作为TRILL分发树根桥优先级最高的RB希望整网计算的TRILL分发树数量与网络中各RB支持的最多能计算的TRILL分发树数量中的最小值,取这两个值中的较小值(假设为n)作为本RB要计算的TRILL分发树数目。根据作为TRILL分发树根桥优先级最高的RB所发布LSP中的Nickname列表,取前n个,就是本RB计算所使用的TRILL分发树根桥列表。
在多核CPU设备上,可以开启TRILL分发树计算支持多线程功能,以提升TRILL分发树的计算效率。开启本功能后,每棵TRILL分发树将分别使用一个线程进行计算。
入流量选择TRILL分发树的策略分为稳定优先(即尽量保持原分发树不变)和负载均衡优先(即入流量在全部分发树上进行负载分担)。删除AVF VLAN时,在稳定优先策略下剩余AVF VLAN保持原分发树不变,在负载均衡优先策略下剩余AVF VLAN按负载均衡原则重新分配给各分发树。但添加、删除分发树、添加AVF VLAN时,不论在稳定优先策略还是负载均衡优先策略下,入流量都重新在全部分发树上进行负载均衡分配。
当新增一棵TRILL分发树时,为了让全部TRILL分发树对入流量进行负载分担,Ingress RB需要将部分已分配给其它树的AVF VLAN重新分配给新树,以使新树分担本地流量。但在其他RB尚未声明使用新树前,本地流量是无法使用新树进行转发的。因此,可以配置入流量分配给新TRILL分发树的延时时间。
在稳定优先策略下,当VLAN在各TRILL分发树上分布不均衡时,可对TRILL分发树转发的流量进行手工均衡。
表1-12 配置TRILL分发树
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
配置RB作为TRILL分发树根桥的优先级 |
tree-root priority priority |
缺省情况下,RB作为TRILL分发树根桥的优先级为32768 |
配置RB希望整网计算的TRILL分发树数量 |
trees calculate count |
缺省情况下,RB希望整网计算的TRILL分发树数量为1棵 |
(可选)开启TRILL分发树计算支持多线程功能 |
multicast multi-thread enable |
缺省情况下,TRILL分发树计算支持多线程功能处于关闭状态 |
(可选)配置入流量选择TRILL分发树的策略为负载均衡优先 |
ingress assign-rule load-balancing |
缺省情况下,入流量选择TRILL分发树的策略为稳定优先 |
(可选)配置入流量分配给新TRILL分发树的延时时间 |
ingress assign-delay seconds |
缺省情况下,入流量分配给新TRILL分发树的延时时间为300秒 |
(可选)对TRILL分发树转发的流量进行手工均衡 |
set ingress-load-balancing |
请在稳定优先策略下使用 |
对于单播流量,如果到一个目的地有几条开销相同的路径,TRILL会自动将流量在这些路径间进行负载分担,这叫做TRILL单播等价多路径。用户可以调整TRILL单播等价多路径的最大路径数。
对于组播流量,当TRILL组播等价多路径功能关闭时,由于根桥不同而使各分发树拓扑不同,从而可在一定程度上实现组播流量的负载分担,但并未利用开销相同的等价路径来分担流量;当开启该功能后,TRILL可将这些等价路径分给不同的分发树,从而实现更好的负载分担效果。本功能的配置在TRILL网络中所有RB上应完全一致,否则可能造成组播流量不通。
表1-13 配置TRILL等价多路径
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
配置TRILL单播等价多路径的最大路径数 |
max-unicast-load-balancing number |
缺省情况下,TRILL单播等价路由的最大条数为32条 |
开启TRILL组播等价多路径功能 |
multicast-ecmp enable [ p2p-ignore ] |
缺省情况下,TRILL组播等价多路径功能处于关闭状态 |
TRILL组播路由表项分为RB表项、RB+VLAN表项和RB+VLAN+MAC表项三级。在特定的组网和配置下,如果TRILL组播路由相关的下级表项与上一级表项完全相同,此时只需下刷上一级表项便可正确指导转发,这便是差异化下刷策略,即仅当下级表项与上一级表项不同时才下刷。
例如:若一棵TRILL分发树的RB表项、RB+VLAN 1表项和RB+VLAN 1+MAC表项均相同,则只需下刷RB表项即可,VLAN 1中的TRILL数据报文可以直接查找RB表项进行转发。
本功能只能应用在RB表项、RB+VLAN表项和RB+VLAN+MAC表项的出端口和本地标识都相同的特殊组网中,否则将导致大量表项同一时间集中下刷而使性能下降。
表1-14 配置TRILL组播路由采用差异化下刷策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
配置TRILL组播路由采用差异化下刷策略 |
flush-policy difference |
缺省情况下,TRILL组播路由未采用差异化下刷策略 |
开启邻接状态输出开关后,TRILL邻接状态的变化会输出到配置终端上。
表1-15 开启TRILL邻接状态输出开关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
开启TRILL邻接状态输出开关 |
log-peer-change enable |
缺省情况下,邻接状态输出开关处于开启状态 |
开启了TRILL的告警功能之后,TRILL会生成告警信息,以向网管软件报告本模块的重要事件。该信息将发送至SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
TRILL使用IS-IS的MIB(Management Information Base,管理信息库)对NMS(Network Management System,网络管理系统)提供TRILL对象的管理,但标准IS-IS MIB中定义的MIB为单实例管理对象,无法同时对IS-IS和TRILL进行管理。因此,参考RFC 4750中对OSPF多实例的管理方法,为管理TRILL定义一个上下文名称,以区分来自NMS的SNMP请求是要对IS-IS还是TRILL进行管理。需要注意的是,由于上下文名称只是SNMPv3独有的概念,因此对于SNMPv1/v2c,会将团体名映射为上下文名称以对不同协议进行区分。
表1-16 配置TRILL网管功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启TRILL的告警功能 |
snmp-agent trap enable trill [ adjacency-state-change | area-mismatch | buffsize-mismatch | id-length-mismatch | lsdboverload-state-change | lsp-parse-error | lsp-size-exceeded | max-seq-exceeded | maxarea-mismatch | new-drb | own-lsp-purge | protocol-support | rejected-adjacency | skip-sequence-number | topology-change | version-skew ] * |
缺省情况下,TRILL的告警功能处于开启状态 |
进入TRILL视图 |
trill |
- |
配置管理TRILL的SNMP实体所使用的上下文名称 |
snmp context-name context-name |
缺省情况下,未配置管理TRILL的SNMP实体所使用的上下文名称 |
GR(Graceful Restart,平滑重启)是一种在协议重启或主备倒换时保证转发业务不中断的机制。需要协议重启或主备倒换的设备将重启状态通知给邻居,允许邻居重新建立邻接关系而不终止连接。GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系的、协助完成GR流程的设备。
设备缺省都是GR Helper,请在欲作为GR Restarter的设备上进行以下配置。
表1-17 配置TRILL GR
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入TRILL视图 |
trill |
- |
使能TRILL的GR能力 |
graceful-restart |
缺省情况下,TRILL的GR能力处于关闭状态 |
(可选)配置TRILL的GR重启间隔 |
graceful-restart interval interval |
缺省情况下,TRILL的GR重启间隔为300秒 |
(可选)配置TRILL GR重启时抑制SA位置位(表示不置位) |
graceful-restart suppress-sa |
缺省情况下,TRILL GR重启时SA位将被置位 |
当RB之间通过以太网相连时,可以将TRILL和CFD(Connectivity Fault Detection,连通错误检测)通过Track项关联起来,从而使RB上的端口能够快速感知链路对端的线路故障。有关CFD和Track的详细介绍,请分别参见“可靠性配置指导”中的“CFD”和“Track”。
· 必须通过在CFD中配置外向MEP来探测两台RB的连通性。
· 只支持单跳检测,CFD报文不能通过其它RB进行中转。
表1-18 配置TRILL监测的Track项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置TRILL监测的Track项 |
trill track track-entry-number |
缺省情况下,TRILL未监测任何Track项 |
在完成上述配置后,在任意视图下执行display命令可以显示TRILL配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除TRILL的统计信息。
表1-19 TRILL显示和维护
配置 |
命令 |
显示TRILL邻接表信息 |
display trill adjacent-table [ count | nickname nickname interface interface-type interface-number ] |
显示TRILL摘要信息 |
display trill brief |
显示TRILL单播转发表信息 |
display trill fib [ count | nickname nickname ] |
显示TRILL的GR状态信息 |
display trill graceful-restart status |
显示TRILL入流量的转发信息 |
display trill ingress-route [ vlan vlan-list ] |
显示TRILL端口信息 |
display trill interface [ interface-type interface-number | verbose ] |
显示TRILL链路状态数据库信息 |
display trill lsdb [ local | lsp-id lsp-id | verbose ] * |
显示TRILL组播转发表的入表项信息 |
display trill mfib ingress [ vlan vlan-id [ local-entry | remote-entry ] ] |
显示TRILL组播转发表的出表项信息 |
display trill mfib transit [ nickname nickname [ prune-entry | rpf-entry | vlan vlan-id [ mac mac-address ] ] ] |
显示TRILL组播路由表信息 |
display trill multicast-route [ tree-root nickname [ vlan vlan-list [ mac-address mac-address ] ] ] |
显示TRILL邻居表信息 |
display trill neighbor-table |
显示TRILL邻居统计信息 |
display trill peer [ interface interface-type interface-number ] |
显示TRILL RPF检查表信息 |
display trill rpf-table tree-root nickname |
显示TRILL网络的拓扑信息 |
display trill topology [ verbose ] |
显示TRILL单播路由表信息 |
display trill unicast-route [ nickname nickname ] [ verbose ] |
清除TRILL进程当前的动态运行数据 |
reset trill |
在数据中心的二层网络中配置TRILL协议,具体要求如下:
· 在所有接入层设备的下行端口上都使能TRILL协议,用于连接普通二层网络或终端设备以实现将原始数据报文接入TRILL网络。
· 在所有接入层设备的上行端口上都使能TRILL协议,端口类型为Trunk类型,用于将封装后的TRILL数据报文接入TRILL网络。
· 在所有汇聚层设备的下行端口上都使能TRILL协议,端口类型为Trunk类型,用于转发TRILL数据报文。
· 在所有汇聚层设备的上行端口上都使能TRILL协议,用于将解封装后的原始数据报文接入核心层。
· 在TRILL网络中配置四棵分别以RB 6~RB 9为根桥的TRILL分发树,且根桥优先级依次降低。
分层网络由上至下依次为核心层、汇聚层和接入层,通常将设备上连接其上层设备和下层设备的端口分别称为上行端口和下行端口。
图1-5 TRILL典型配置组网图
本节中只列出TRILL的相关配置,其他配置步骤略。
(1) 配置接入层设备的下行端口
# 在RB 1上全局使能TRILL协议,并在其下行端口Ten-GigabitEthernet1/0/1上使能TRILL协议。
<RB1> system-view
[RB1] trill
[RB1-trill] quit
[RB1] interface ten-gigabitethernet 1/0/1
[RB1-Ten-GigabitEthernet1/0/1] trill enable
[RB1-Ten-GigabitEthernet1/0/1] quit
RB 2~RB 5的配置与RB 1相似,配置过程略。
(2) 配置接入层设备的上行端口
# 在RB 1的上行端口Ten-GigabitEthernet1/0/2~Ten-GigabitEthernet1/0/5上使能TRILL协议,并配置其端口类型为Trunk类型。
[RB1] interface range ten-gigabitethernet 1/0/2 to ten-gigabitethernet 1/0/5
[RB1-if-range] trill enable
[RB1-if-range] trill link-type trunk
[RB1-if-range] quit
RB 2~RB 5的配置与RB 1相似,配置过程略。
(3) 配置汇聚层设备的下行端口
# 在RB 6上全局使能TRILL协议,并在其下行端口Ten-GigabitEthernet1/0/1~Ten-GigabitEthernet1/0/5上分别使能TRILL协议,并配置其端口类型为Trunk类型。
<RB6> system-view
[RB6] trill
[RB6-trill] quit
[RB6] interface range ten-gigabitethernet 1/0/1 to ten-gigabitethernet 1/0/5
[RB6-if-range] trill enable
[RB6-if-range] trill link-type trunk
[RB6-if-range] quit
RB 7~RB 9的配置与RB 6相似,配置过程略。
(4) 配置汇聚层设备的上行端口
# 在RB 6的上行端口Ten-GigabitEthernet1/0/6和Ten-GigabitEthernet1/0/7上使能TRILL协议。
[RB6] interface ten-gigabitethernet 1/0/6
[RB6-Ten-GigabitEthernet1/0/6] trill enable
[RB6-Ten-GigabitEthernet1/0/6] quit
[RB6] interface ten-gigabitethernet 1/0/7
[RB6-Ten-GigabitEthernet1/0/7] trill enable
[RB6-Ten-GigabitEthernet1/0/7] quit
RB 7~RB 9的配置与RB 6相似,配置过程略。
(5) 配置TRILL分发树
# 配置RB 6作为TRILL分发树根桥的优先级为65535,其希望整网计算的TRILL分发树数量为4。
[RB6] trill
[RB6-trill] tree-root priority 65535
[RB6-trill] trees calculate 4
[RB6-trill] quit
# 配置RB 7作为TRILL分发树根桥的优先级为65534,其希望整网计算的TRILL分发树数量为4。
[RB7] trill
[RB7-trill] tree-root priority 65534
[RB7-trill] trees calculate 4
[RB7-trill] quit
# 配置RB 8作为TRILL分发树根桥的优先级为65533,其希望整网计算的TRILL分发树数量为4。
[RB8] trill
[RB8-trill] tree-root priority 65533
[RB8-trill] trees calculate 4
[RB8-trill] quit
# 配置RB 9作为TRILL分发树根桥的优先级为65532,其希望整网计算的TRILL分发树数量为4。
[RB9] trill
[RB9-trill] tree-root priority 65532
[RB9-trill] trees calculate 4
[RB9-trill] quit
假设RB 1~RB 9的Nickname依次为0x5801~0x5809。
通过display trill unicast-route命令可以查看TRILL单播路由表信息。例如:
# 显示RB 1上的TRILL单播路由表所有表项的摘要信息。
[RB1] display trill unicast-route
Destination Interface NextHop
-----------------------------------------------
0x5801 N/A N/A
0x5802 XGE1/0/2 0x5806
XGE1/0/3 0x5807
XGE1/0/4 0x5808
XGE1/0/5 0x5809
0x5803 XGE1/0/2 0x5806
XGE1/0/3 0x5807
XGE1/0/4 0x5808
XGE1/0/5 0x5809
0x5804 XGE1/0/2 0x5806
XGE1/0/3 0x5808
XGE1/0/4 0x5808
XGE1/0/5 0x5809
0x5805 XGE1/0/2 0x5806
XGE1/0/3 0x5807
XGE1/0/4 0x5808
XGE1/0/5 0x5809
0x5806 XGE1/0/2 Direct
0x5807 XGE1/0/3 Direct
0x5808 XGE1/0/4 Direct
0x5809 XGE1/0/5 Direct
通过display trill multicast-route命令可以查看TRILL组播路由表信息。例如:
# 显示RB 1上的TRILL组播路由表信息。
[RB1] display trill multicast-route
Root Flag
-------------------------------------
0x5806 Valid
0x5807 Valid
0x5808 Valid
0x5809 Valid
# 在RB 1上显示以RB 6为TRILL分发树根桥的TRILL组播路由表信息。
[RB1] display trill multicast-route tree-root 5806
Root: 0x5806
LocalRcvFlag: True
List of VLANs:
1
List of outgoing ports (1 in total):
XGE1/0/2
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!