Trill基础
TRILL(Transparent Interconnection of Lots of Links)是一种把三层链路状态路由技术应用于二层网络的协议。TRILL通过扩展IS-IS路由协议实现二层路由,可以很好地满足数据中心大二层组网需求,为数据中心业务提供解决方案。
注:设备trill功能需要购买license。
Trill基础名词解释:
1、 RB:
RB(Router Bridge)指运行TRILL协议的二层交换机,根据RB在TRILL网络中的不同位置,可将其分为Ingress RB、Transit RB和Egress RB三种,分别表示入节点、中间节点及出节点。
2、 DRB:(接口DRB优先级默认为64)
DRB(Designated Router Bridge)指在TRILL网络中作为中间设备被指定承担某些特殊任务的RB,它与IS-IS中的指定中间系统DIS(Designated IS)相对应。DRB负责与网络中每台设备进行通信,最终使整个VLAN的LSDB(Link State DataBase)达到一致状态,同时DR需要完成如下工作:
1)、当网络中存在多于两台RB时,产生伪节点LSP(Link State PDUs);
2)、发送全序列号报文CSNP(Complete Sequence Number PDUs),同步LSDB;
3)、指定Designated VLAN,指定某个Carrier VLAN转发用户报文及TRILL控制报文;
4)、指定AF(Appointed Forwarder),每个CE(Custom Edge) VLAN只能由一个RB作为AF。
注:DRB选举规则:
1)、优先级较高的被优选为DRB;
2)、优先级相同,MAC地址较大的被优选为DRB。
3、 AF:
被指定用来转发流量的RB,只有AF可以作为Ingress和Egress,非AF只能作为Transit RB,即当服务器采用双上行接入TRILL网络时,如果服务器网卡不采用负载分担的方式接入,很容易产生环路。所以需要指定一台RB作为转发用户流量的RB。
注:AF由DRB负责指定,选举规则:
1)、检查TRILL网络入口的两台RB所使能的CE VLAN,具有与用户流量相同VLAN的RB被指定为AF;
2)、若满足条件1的不止一台,则比较DRB优先级,DRB优先级较高的RB被选举为AF;
3)、DRB优先级相同,则选取系统MAC地址较大的RB为AF;
4)、系统MAC地址相同,则选取接口PortID较大的RB为AF;
5)、PortID相同,则选取SystemID较大的RB为AF。
4、 CE VLAN:
用以接入TRILL网络的VLAN,通常配置在TRILL网络边缘设备上。用以生成组播路由。(承载普通以太报文)
5、 admin VLAN:
一种特殊的CE VLAN,用于承载TRILL网络网管流量,即带内管理vlan。
6、 Carrier VLAN:
用于转发TRILL数据报文和协议报文的VLAN。一台RB最多可配置三个不同的Carrier VLAN。(入方向上,普通以太报文在Carrier VLAN中被封装成TRILL报文,出方向上,TRILL报文在Carrier VLAN中被解封装为普通以太报文。)
注:Carrier VLAN必须为未创建的VLAN,而CE VLAN和admin VLAN必须是已经通过vlan命令创建的VLAN,且CE VLAN和admin VLAN不能与Carrier VLAN相同。
7、 Designated VLAN:
TRILL网络中可能配置多个Carrier VLAN,被指定转发TRILL数据报文和协议报文的Carrier VLAN被称为Designated VLAN,即DVLAN。
8、 Nickname:
Nickname相当于IP地址,用来唯一标识一台交换机。一台RB仅支持配置一个Nickname,且须保证Nickname全网唯一。Nickname优先级和根优先级两种属性的作用:
优先级主要用来在TRILL网络中解决Nickname冲突:
1)、如果一个TRILL网络中有两台设备的Nickname相同,则Nickname优先级较大的被发布,较小的被抑制;
2)、如果优先级相同,则比较两台RB的SystemID,较大的被发布,较小的被抑制。
根优先级的主要作用是用来参与选举组播树根,TRILL会选取Nickname根优先级最大的两个RB分别作为两棵组播树的树根。
9、 端口类型:
1)、Trunk端口:交换机之间进行互联的端口,只允许转发TRILL数据报文和协议报文,不允许转发Native Ethernet报文;
2)、Access端口:接入端口,链路上只收发Native Ethernet报文和协议报文,不收发TRILL数据报文;
3)、Hybrid端口:混合端口,既可以转发TRILL数据和协议报文,也可以转发Native Ethernet报文;
4)、P2P端口:一种特殊的Trunk Port,所连接的交换机不进行DRB选举;通常在P2P网络类型中,用于连接两台RB的接口,会设置为p2p类型。(缺省情况下,RB的端口为P2P)
10、 NET:
与IS-IS类似,采用网络实体名称NET(Network Entity Title)来标识交换机本身的网络层信息。
1)、Area ID:区域地址用来标识区域。与IS-IS不同的是,TRILL的区域地址规定为“00”。
2)、System ID:系统ID用来唯一标识一台主机或交换机,在设备的实现中,它的长度固定为48 Bit;System ID可以自动生成也可以通过配置得到,若未配置,则自动生成的与RB的桥MAC地址相同。
3)、SEL(Selector):作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。TRILL协议的SEL为“00”。
Trill报文格式:
Trill报文分为控制报文与数据报文,TRILL引入IS-IS作为控制面协议,使用PDU数据包来进行控制信息处理,并对IS-IS PDU进行了扩展,具体控制层报文可查看IS-IS协议。
与trill类似,有三种PDU:HELLO、LSP、SNP。
1、HELLO:用于建立和维持邻居关系,广播网中使LAN Hello;非广播网络中则使用P2P Hello;
2、LSP:用于交换链路状态信息;
3、SNP:分为CSNP(全序列号报文)和PSNP(部分序列号报文),CSNP发送LSDB中所有LSP的摘要信息(在广播网络上,CSNP由DRB定期发送发送,缺省10S;在点到点链路上,CSNP只在第一次建立邻接关系时发送) ; PSNP用来向邻居请求新的LSP以及确认邻居发送的LSP。
TRILL数据报文:
Trill路由计算:
当Trill网络中所有RB所维护的LSDB一致后,会利用SPF算法,分别进行单播转发表和组播转发表的计算。
1、 单播路由表生成:每台RB都以自己为根节点,生成到其他所有节点的最短路径树。结合邻居信息,获取到达邻居节点的出接口和下一跳,并根据邻居发布的Nickname信息,生成Nickname单播转发表。
2、 组播路由表生成:为了方便组播流量的传播,通常会形成不止一棵组播分发树。其形成过程如下:
1)、Root RB选举:每台设备根据整网所有设备发布的Nickname的根优先级和支持的分发树数目,获取根优先级最高的Nickname以及整网最小的分发树数目N,拥有最高根优先级的Nickname所属的RB被选举为Root RB。如果根优先级相同则system-id较大的RB会被选举为Root RB。
2)、分发树树根选举:Root RB有权指定分发树树根,如果没有指定则以Nickname根优先级最高的N个RB为分发树树根。
3)、分发树计算:分别以N个分发树树根为源节点,计算到整网所有其他节点的最短路径树。
4)、RPF检查表生成:基于每个Ingress RB通告的选择的分发树信息,生成RPF检查表,用于避免组播环路。
5)、剪枝计算:基于每个Ingress RB通告的信息,进行剪枝计算。
注:Nickname根优先级最高的节点、分发树树根必须单播可达,因此组播路由计算需要在单播计算之后。