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 根优先级最高的节点, 分发树树根必须单播可达, 因此组播路由计算需要在单播计算之后.
来源: http://www.bubuko.com/infodetail-3054428.html