-
TRILL
运行原理
1
技术原理描述
1.1 TRILL
运行原理
运行
TRILL
协议的
Bridge
我
们称之为
RBridge
,即具有路由转发特性的网桥设
备,由
RBridge
构建的
TRILL
网络称之为
trill
< br>campus
,
Rbridge
通过运行自己
的链路状态协议(通过
IS-
IS
扩展的)认知
trill campus
< br>的拓扑。并使用最短
路径树算法生成从该
Rbridge
到达
trill campus
里的各
个
Rbridge
的路由转发
表(称之
为
trill
路由表)。
RBridg
e
又通过
ESADI(End Station
Address
Distribution
Informa
tion
终端地址交互协议
)
交互学习
各自的
Mac
地址,这样
Rbridg
e
就知道了终端
Mac
究竟属于哪个<
/p>
Rbridge
,
Rbridge
接收到普通以太网
数据帧时
(这里专指
802.1
)
查找
M
ac
表,
若该
Mac
< br>源发自某
Trill
edge
Rbridge
,
就将数据帧转换成
TRILL
数据帧在
trill campus
里转发,
TRILL
数据帧包含有
源目
Rbridge
信息,
而
p>
Rbridge
则有到达各个
Rbridg
e
的路由信息,
这样
Rbridge<
/p>
可以对
TRILL
数据帧进行转发,
p>
当一台
Rbridge
接收到一个
TRILL
数据帧时,
该
数据帧的目的
Rbridge
为其自身,则解封装
TRILL
报头,获得最初进入
trill
p>
campus
的以太网数据帧,再进行转发。
这也就是说
TRILL
作为二层转
发技术,
通过引入三层路由的链路状态发现协议将
此前的
Bridget
升级为了具备路由能力的
Ro
ute-Bridge
。
当然
TRILL
的运行原理并不仅仅局限于上述这些,事实上以上所描述的
仅仅为
802.1
单播数据帧的转发功能,从数据报类型上分还
包括广播报文和多播报文,
此类报文的处理正是二层链路协议的核心和重点,
不合理或存在漏洞的二层链路
协议会造成二层环路,纯
802.1
二层网络一旦出现环路将造成广播报文的激增,
整网将处于瘫患状态,直到环路解除为止。
TRILL
协议首先针对二层环路没有
TTL
的问题进行
了改进,
在
TRILL
报文头中引
p>
入了
TTL
字段,这样
TRILL
报文在
trill campus
中即使发生了环路问题也不至
于造成严重的后果。
另外
TRILL
协议对多播及广播报文
的转发设计了分发树(
distribution tree
)
的多播转发行为,
当然它的分发树类似于
STP
的生成树,
它也有一个类似于根桥
的
root bridge
,与
S
TP
的生成树算法不同的是
TRILL
的分发树是从
ISIS
的网
络拓扑中计
算产生的,
并为每一个
VLAN
生成一
棵分发树,
在发生
VLAN
变化或接<
/p>
口变化时,
这种分发树的过程不需要额外的配置,
完全是由
Rbridge
自动完成的。
当一台边缘
Rbridge
收到一个某
VLAN
的广播帧或多播帧时,
Rbridge
除了向自
己的其它普通
vlan
口分发该数据帧外,还要封装该数据帧为
TRILL
数据帧,目
的
Rbridge
为该
p>
VLAN
分发树的根桥,
通过根桥将该数据
帧扩散的与该
VLAN
相关
的其它所有
Rbridge
设备上。
以上是
TRILL
运行的基本原理,
TRILL
协议为实现上述运行方案设计了一整协议
规范,包括了数据平面和控制平面的
TRILL
运行规范。
p>
1.2
数据平面
TRILL
数据帧格式如下图:
TRILL
报文的源目
Rbridge
MAC Address
指示
TRILL
报文发出的源
Rbridge
和目
R
bridge
,这两个字段在
TRILL
报文逐跳转发过程中是会发生变化的,这不同于
我们传统的二层转发行为,
其变化的方式参看下一个图标的说明。
在
802.
1
报头
中通过
TRILL Ether
type
插入了一个
TRILL
报头,
之后才是最初的以太网报文。
TRILL
报头中包括版本
(ver),
多播标记(
M
< br>),选项长度(
Option
Length
),
TTL
(
Hop <
/p>
Count
)
,
出口
Rbridge
(
Egress
RBridge
Nickname
)
,
入口
Rbridge
(
Ingress
Rbridge Nicknam
e
)以及
TRILL
的选项(
Header Options
)。其中出口
R
bridge
为该
TRILL
的目标<
/p>
Rbridge
,可理解为该报文要从该
Rbridge
到
TRILL campus
< br>之外,入口
Rbridge
为报文是从该
Rbridge
进入
trill
campus
的。对于
802.1q
报文在
Trill
报文外层有一个
O
uter-Vlan
在里层有一个
Inner-Vlan
,
分别对应
于为
TR
ILL
转发使用的
VLAN
和进入
p>
trill campus
时生成的
Vla
n
。
在数据转发平面上,
Rbridge
只有两种数据帧的输入情况,一种是普通数据帧,
另一种是
TRILL
数据帧。我们以单播报文在
TRILL
网络里的转发为例看一下
R
bridge
是对单播数报文普通数据帧和
TRILL
数据帧的转发处理行为是怎样的。
见上图,
Host
A
发出一个单播报文要到
Host
B
,它们之间是一个
trill
p>
campus
,
首先
A
发送单播以太网报文给
RB1
,源
目
MAC
地址分别为
A
和
B
,
RB1
接收到该
普通报文,
查找
Ma
c
表,
获知该
Mac
< br>位于
Trill
网络的
RB3<
/p>
上,
于是
RB1
为该普
通报文封装了
TRILL
头,<
/p>
Ingress Rbridge
为
RB
1
,
Egress Rbridge
为
RB3
,然
后
RB1
查找到达
RB3
的
Trill
Nickname
表
< br>(即
Trill
路由表)
,
p>
找到要到达
RB3
的下一跳有
RB2
,
于是
RB1
填充
Distination
Rbridge
Mac
Addre
ss
为
RB2
的
Mac
,
并填充
Source
Rbridge Mac Address
为其自身
RB1
p>
的
Mac
,并将此报文发送给
RB2
。
RB2
接收到该报
文发现是
TRILL
单播报文,其目的地为
RB3
,
RB2
直接查找
Trill
路由表,找到
RB3
就是自己某接口上的邻居,于是修改
Distination
Rbridge Mac Address
为
< br>RB3
的
Mac
,同时修改
p>
Source Rbridge Mac Addresso
为其自
身
RB2
的
Mac
,
转发该报文。
RB3
收到该
p>
Trill
报文发现此报文目标
Trill
nickname
为其自身,则解封装该
Trill
报文,解封装后的报文继续进行二层转
发,丢给了
Host B
。
这里
RB1
与
RB2
之间的
TRILL
报文
Ou
ter-Vlan
为他们之间通过
TRILL
VLAN
协商
好的
Desig
nated VLAN
,该
Designated VLAN<
/p>
仅仅为了达到两台
Rbridge
互联互
通的目的,在一台交换机接收到一个
TRILL
数据帧时,真实起作用的是
Inner-
VLAN
,
包括该
Inner-VLA
N
的
C-Tag
字段,
以及
Inner-VLAN
的值,
数据面
Rbridge
维护有一张该
Rbridge
所关心的
VLAN
列
表,当接收到的
TRILL
数据帧
In
ner-VLAN
不在该列表中,则
Rbridge
忽视该报文,只进行转发,而如果存在
于该
VLA
N
列表中,当报文可被此
Rbridge
接收则送
CPU
。
对于多播数据转发如下图所示例子:
如上图,在
TRILL
campus
会为不同的
VLAN
创建分发树
(Distination
Tree)
,图
中红色线条表示
VLAN 10
的分发
树,蓝色线条表示
VLAN20
的分发树。与
< br>ISIS
的最短路径树不同的时,
这种分发树不存在环路
,
也就是说树中的任意两个结点
-
-
-
-
-
-
-
-
-
上一篇:高一英语简单阅读理解和七选五
下一篇:MSlSS手册