(BCM方案)Linux网桥的实现分析与使用.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(BCM方案)Linux网桥的实现分析与使用.doc》由会员分享,可在线阅读,更多相关《(BCM方案)Linux网桥的实现分析与使用.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux网桥的实现和在BCM中的应用深圳市共进电子有限公司版权所有 不得复制2007年10月作者:陈万里目录简介21、LINUX桥的概念41.1、生成树算法和协议(翻译802.1D)41.1.1、拓扑信息的传播61.1.2、拓扑结构的改变导致重配71.1.3、通知拓扑改变71.1.4、端口状态(Port States)81.1.5、STP协议参数和时间值91.1.6、STP协议例子121.2、理解生成树(STP)协议121.2.1、以太网交换机在MAC层的体系结构121.2.2、生成树协议141.2.3结论171.3、桥用到的LINUX网络通知链171.4、生成树协议在LINUX中的实现17
2、2、桥代码中的重要数据结构182.1、BR_CONFIG_BPDU结构182.2、NET_BRIDGE结构192.3、NET_BRIDGE_PORT结构202.4、NET_DEVICE结构212.5、NET_BRIDGE、NET_BRIDGE_PORT、NET_DEVICE三个数据结构之间的关联25简介Linux网桥的实现和在BCM中的应用主要分析了linux2.4.x内核的网桥的实现方法,并且结合实际描述了Broadcom方案如何利用linux网桥,因为Broadcom方案用的是linux2.6.x内核,但是linux2.6.x内核在桥代码中只是多了Ebtables应用,其它并无变化,所以对
3、于桥的研究在linux2.4.x内核中和linux2.6.x内核中并无差别。桥代码中很大一部分是STP(spanning-tree protocol)协议的实现,此文档也把STP协议(IEEE 802.1D)重要的部分翻译成了中文,并且也写了一些一步一步帮助读者去理解STP协议的文档,相信结合原版协议能很快理解STP协议的工作方式和它在linux操作系统中怎样和桥其它相关代码结合在一起使用的。桥代码是在linux操作系统中实现的,所以用到了一些和linux操作系统结合的很紧密的操作系统相关的知识,本文也有相应的描述。网桥,类似于中继器,连接局域网中两个或者多个网段。它与中继器的不同之处就在于它
4、能够解析它收发的数据,读取目标地址信息(以太网头中的MAC数据),并决定是否向所连接网络的其他网段转发数据包。为了能够决策向那个网段发送数据包,网桥学习(learning)接收到的数据包的源MAC地址,在本地建立一个以MAC和端口为记录项的信息数据库,这就是网桥的工作原理。1、 LINUX桥的概念1.1 、生成树算法和协议(翻译802.1D)这章描述的配置算法和协议将一个由多个桥连接的局域网(LAN)的拓扑结构缩减成一棵生成树。Figure 8-1是一个普通的多个桥连接的局域网的例子,Figure 8-2是它的逻辑拓扑结构。Figure 8-1其中的一个桥作为根桥(Root Bridge)。每
5、个LAN有一个桥的端口向根桥转发数据并接收根桥发送的数据,这个端口就是这个LAN的指定端口(Designated Port),且这个桥也作为这个LAN的指定桥(Designated Bridge)。根桥是整个拓扑结构的指定桥。如果桥的端口在转发状态那么距离根桥最近的就是根端口,其它的是指定端口,如果在桥上即不是作为根端口又不是作为指定端口的桥端口不能进入转发状态。稳定的拓扑结构由以下的条件决定a)每一个桥的桥ID(Bridge Identifiers)。b)每一个桥的端口的路径价值(Path Identifier)。c)每一个端口的端口ID(Port Identifier)。有最高优先级的桥I
6、D作为根桥(数值越低优先级越高),每个桥端口都有一个指定的路径价值,指定端口是到根桥路径价值最低的端口:如果两个端口路径价值一样,桥ID最小的就作为指定端口。1.1.1 、拓扑信息的传播桥和桥之间发送一种叫做配置桥协议数据单元(Configuration BPDU)的帧来计算拓扑结构。一个含有BPDU信息的MAC帧发送它的信息到这个拓扑结构中的每个桥。BPDU信息是不会被桥直接转发的,但是收到BPDU信息的桥能用它来和自己的相关数据做比较并激励数据传输。每一个BPDU信息包括传输BPDU信息的桥认为的根桥的桥ID,从传输端口到根桥的路径价值,传输BPDU信息的桥的ID,传输BPDU信息的端口I
7、D,这些信息允许一个收到信息的桥来决定是否这个传输端口能有更好的条件成为指定端口和接收端口应该成为根端口。如下三个条件可以触发及时的传输信息到整个网络拓扑,以便决定桥端口的状态:a)所有桥开始都认为自己是根桥,并在固定的时间间隔发送配置BPDU信息。b)桥收到了一个认为它自己的根端口具有更好传输性能的配置信息,它会传输这个信息到这个网路拓扑中。c)桥收到了次一等的配置消息,它会传输它自己的信息回复这条配置消息,并让整个拓扑都收到这个消息。1.1.2 、拓扑结构的改变导致重配为了允许拓扑结构的重新配置,在整个LAN的网络拓扑中传输的拓扑信息有一个有限的时间生命。配置信息从根发出来以后时间就开始递
8、减。每个桥存储这个信息并监视它的变化。在一个稳定的拓扑结构中根桥在固定的一个时间间隔传输配置BPDU以致于拓扑信息不会超时而导致重配。1.1.3 、通知拓扑改变拓扑结构在一些情况下有可能重新配置,这样桥可能需要更新它的FDB(Filtering Database)信息。生成树算法和协议提供了一种机制来检查拓扑改变并通知根桥,并且根桥在收到拓扑改变通知后也会通知网络拓扑中的所有桥。当所有桥收到了网络拓扑改变通知以后它们会缩短FDB(Filtering Database)中动态项的超时时间。如下两图所示:1.1.4 、端口状态(Port States)端口状态改变的另一种表示方法:1.1.5 、S
9、TP协议参数和时间值这章讲解在桥之间传输的BPDU信息的各个参数和时间值,这些参数主要被包含在两类BPDU中:配置BPDU和拓扑改变BPDU,而各个参数的维护分别在桥和桥的端口中。1.1.5.1 、配置BPDU参数a)Root IdentifierSTP网络拓扑中的根桥的唯一身份(根桥ID)b)Root Path Cost到根桥的路径价值c)Bridge IdentifierSTP网络拓扑中的桥的唯一身份(桥ID)d)Port Identifier在每个桥中端口的编号e)Message Age非根桥记录的收到根桥发送的BPDU信息到再一次收到根桥发送BPDU信息的这段时间。如果Message
10、Age超过了Max Age(看下面介绍)桥将丢弃先前的配置信息,并进行重配。f)Max Age这个值被根桥设置。表示各个桥存储配置信息的最长时间。g)Hello Time根桥产生配置BPDU信息的时间间隔。h)Forward Delay端口状态到转发态所经历的时间。这个参数也被用来作为FDB超时的时间。i)Topology Change Acknowledgment响应拓扑改变通知。j)Topology Change为了通知所有桥这个网络拓扑结构有变化。1.1.5.2 、拓扑改变通知BPDU参数拓扑改变通知没有任何参数。1.1.5.3 、桥参数a)Designated Root被桥认为是根桥的
11、桥ID。b)Root Path Cost从非根桥到根桥的路径价值的总和。c)Root Port从非根桥到根桥路径价值最低的端口成为根端口,如果几个端口路径价值一样则优先级越高的端口成为根端口。d)Max Age在协议的配置信息被丢弃之前收到的配置信息保留的时间。e)Hello Time对一个想变成桥或者是根桥的桥在固定的时间发送的配置BPDU信息。f)Forward Delay从Listening状态到Learning状态和从Learning状态到Forwarding状态花费的时间。g)Bridge Identifier网络中传输的配置BPDU的桥的唯一编号。h)Bridge Max Age桥
12、作为根或想成为根桥的桥标识的它作为根桥的最大年龄。i)Bridge Hello Time非根桥向根桥发送TCN(Topology Change Notification)BPDU的时间间隔。j)Bridge Forward Delay和上面介绍的Forward Delay值一样。k)Topology Change Detected用来标识网络拓扑结构改变的布尔变量。l)Topology Change参数设置表示拓扑改变。m)Topology Change Time根桥产生配置消息指明拓扑改变的时间间隔。n)Hold Time在这个时间间隔至少应该收到一个配置BPDU信息。1.1.5.4 、桥时
13、间参数a)Hello Timer根桥定时传输配置BPDU信息的时间间隔。b)Topology Change Notification Timer如果没收到拓扑改变回应消息便会定时发送拓扑改变通知。c)Topology Change Time定时发送拓扑改变通知来通知桥进行重配。1.1.5.5 、端口参数a)Port Identifier桥的端口的编号。b)Port State标识各个端口行为的参数。c)Path Cost从这个端口到根桥的路径价值。d)Designated Root根桥的桥ID。e)Designated Cost从这个端口到根桥的路径价值。f)Designated Bridge
14、表示相对于这个端口的指定桥的桥ID。g)Designated Port指定桥中和它交互的端口的ID。h)Topology Change Acknowledge参数设置来回应拓扑改变通知。i)Configuration Pending参数设置表示在Holdtimer超时后应该传输配置BPDU性息。j)Change Detection Enabled表示是否理会拓扑改变通知。1.1.5.6 、端口时间参数a)Message Age Timer表示超时丢弃协议信息的时间。b)Forward Delay Timer和端口状态改变的时间值有关。c)Hold Timer在这个时间间隔至少应该收到一个配置B
15、PDU信息。1.1.6 、STP协议例子1.2 、理解生成树(STP)协议生成树算法和协议是自动生成网络拓扑结构的基础,本节只阐述了生成树算法和协议的内容,主要是帮助读者理解协议的原理。以太网交换机在第二层即MAC层必须具有路由功能。目前普遍使用的MAC层路由方式是IEEE802.1组织发布的标准:基于生成树算法的路由。在局域网内的交换机执行了生成树算法以后,会组成一个生成树动态拓扑结构,该拓扑结构使局域网内任意两个工作站之间不存在环路(也可以称做回路),以防止由此产生的局域网广播风暴。同时,生成树算法还负责监测物理拓扑结构的变化,并能在拓扑结构发生变化之后建立新的生成树。例如当一个交换机坏了
16、或某一条数据通路断了后,能提供一定的容错能力而重新配置生成树的拓扑结构。交换机根据生成树动态拓扑结构的状态信息来维护和更新MAC路由表,最终实现MAC层的路由。1.2.1 、以太网交换机在MAC层的体系结构以太网交换机在MAC层的功能主要是实现LAN的互连。根据IEEE802.1D协议的规定,在MAC层工作的体系结构必须包含以下内容:(1)一个用于连接交换机端口的MAC转发实体;(2)至少两个端口;(3)高层协议实体(逻辑链路控制(Logical Link Control或简称LLC)是局域网中数据链路层的上层部分,IEEE 802.2中定义了逻辑链路控制协议)。如图1所示。MAC转发实体主要
17、实现交换机不同端口间的内部通信。该实体存储各个端口的工作状态并维护一个过滤数据库。数据库中存放了一张MAC地址表(端口和mac的对应关系),用以实现MAC层的路由。当数据帧从一个端口的底层服务进程传上来时,MAC实体首先判断目的端口的工作状态,如果目的端口没有被阻塞或不是在DISABLE状态,MAC转发实体将依据MAC地址表的对应关系将该帧从目的端口转发出去。同时MAC转发实体还可以进行过滤、记录MAC地址等操作。交换机端口的功能是从与其相连的LAN上接收或传送数据。端口的状态由生成树算法规定,包括转发(FORWARDING)、学习(LEARNING)、监听(LISTENING)、阻塞(BLO
18、CKING)和禁止(DISABLED)状态。(阻塞:所有端口以阻塞状态启动以防止回路,由生成树确定哪个端口转换到转发状态,处于阻塞状态的端口不转发数据但可接受BPDU;监听:不发送接收数据,接收并发送bpdu,不进行地址学习(临时状态);学习:不接收或转发数据,接收并发送bpdu,开始地址学习MAC地址和端口对应表(临时状态);转发:端口能转送和接受数据)高层协议实体位于LLC(逻辑链路控制Logical Link Control)层,主要用于计算和配置LAN的拓扑结构。代码实现的生成树协议算法就是运行在该协议实体内,用来实现MAC层的路由。在运行生成树算法时,高层协议实体可以直接调用MAC转
19、发实体提供的服务,并能读取或更改MAC实体数据库中维护的信息,如从MAC实体中读取或更改某端口的状态信息等。在运行生成树算法时,交换机的高层协议实体将使用一个统一的组地址01-80-C2-00-00-00(全部多播地址从01-00-5e-00-00-00到01-00-5e-7f-ff-ff)作为目的MAC地址,该数据被称为BPDU(桥协议数据单元)。BPDU中携带了实现生成树算法的有关信息。在实现生成树算法时,从端口接收上来BPDU,由LLC层的服务进程将其传给交换机协议实体。在执行了生成树算法以后,交换机的协议实体将根据算法的结果更新端口的状态信息并更新过滤数据库,以决定交换机端口的工作状态
20、(阻塞或转发等),从而建立生成树拓扑结构。1.2.2 、生成树协议1.2.2.1 、生成树协议介绍生成树协议基于以下几点:(1)有一个唯一的组地址(01-80-C2-00-00-00)标识一个特定LAN上的所有的交换机。这个组地址能被所有的交换机识别;(2)每个交换机有一个唯一的标识(Brideg Identifier);(3)每个交换机的端口有一个唯一的端口标识(Port Identifier)。对生成树的配置进行管理还需要:对每个交换机分配一个相对的优先级;对每个交换机的每个端口分配一个相对的优先级;对每个端口分配一个路径花费。具有最高优先级的交换机被称为根(root)交换机。每个交换机端
21、口都有一个根路径花费,根路径花费是该交换机到根交换机所经过的各个跳段的路径花费的总和。一个交换机中根路径花费的值为最低的端口称为根端口,若有多个端口具有相同的根路径花费,则具有最高优先级(数值较低)的端口为根端口。在每个LAN中都有一个交换机被称为指定(designated)交换机,它属于该LAN中根路径花费最少的交换机。把LAN和指定交换机连接起来的端口就是LAN的指定端口(designated port)。如果指定交换机中有两个以上的端口连在这个LAN上,则具有最高优先级的端口被选为指定端口。拓扑结构如图2所示。由于交换机A具有最高优先级(桥标识最低),被选为根交换机,所以交换机A是LAN
22、 A和LAN B的指定交换机;假设交换机B的根路径花费为6,交换机C的根路径花费为4,那么交换机C被选为LAN C的指定交换机,亦即LAN C与交换机A之间的消息通过交换机C转发,而不是通过交换机B。LAN C与交换机B之间的链路是一条冗余链路。1.2.2.2 、BPDU编码交换机之间定期(默认2秒)发送BPDU包,交换生成树配置信息,以便能够对网络的拓扑、花费或优先级的变化做出及时的响应。BPDU分为两种类型,包含配置信息的BPDU包称为配置BPDU(Configuration BPDU),当检测到网络拓扑结构变化时则要发送拓扑变化通知BPDU(Topology Change Notific
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BCM 方案 Linux 实现 分析 使用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内