- 论坛徽章:
- 0
|
PDF下载:http://bbs.chinaitlab.com/viewFile.asp?Boardid=150&ID=8558
Cisco Catalyst LAN Switching
Preface
yUmi#sh start
!
Written by yUmis(牛奶咖喱) a.k.a. 红头发
Description 欢迎转po,请保留作者信息
Contact Me http://www.show-tym.com QQ:13030130
特别感谢yUmi,是她让我懂得了应该如何生活
Jul.1st.2004
!
Pt.1 Switching and Bridging Concepts
Ethernet
Ethernet(以太网)于20世纪70年代中期,由Xerox公司分部Palo Alto研究中心(PARC)开发的.Xerox最早发明的是一个2Mbps的以太网,后来又和Intel和DEC合作开发了出了10Mbps的以太网,俗称(Ethernet II或Ethernet DIX).后来IEEE通过802委员会(802 Committee)把Ethernet标准化为IEEE 802.3.它和Ethernet II十分相似
MAC地址
MAC地址用来标识以太网上每个节点(node)的地址,即物理地址.MAC地址为48位(bit)长,即6个字节.如下图:
MAC地址是烧录在网卡(Network Interface Controller,NIC)的ROM里的.为了保证MAC地址的唯一性,IEEE规定MAC地址前24位为厂商代码(vendor code),后24位为序列号(serial number)
Ethernet帧的格式
一些常见的以太网帧的格式,如下图:
preamble为前导符,7字节长,由10101010…重复组成,SFD为起始分界符,1字节长,由11组成,如下图:
Ethernet DIX帧里有类型(type)字段,用来鉴别层3的协议;而802.3 Ethernet帧把类型字段替换成了长度(length)字段,所以它无法辨别上层协议,这时就要用到802.2 LLC
还有2种常见的以太网帧的格式,如下图:
Novell的以太网帧只用于传输IPX流量,由于Novell没有想过IP会运行在其他层3协议上,所以它不需要类型字段,而且它也没有LLC
802.3 Ethernet Sub-Network Access Protocol(SNAP)的DSAP和SSAP字段的值为AA,OUI字段代表organizational unique identifier,3字节长,用于代表不同的组织.OUI由IEEE分配,Cisco的OUI为00000c
Carrier Sense Multiple Access with Collision Detection(CSMA/CD)
以太网使用一种叫做带冲突检测的载波监听多路访问(CSMA/CD)技术进行通信.这是一种比较友好的会话方式.比如你有话要说,但是你很礼貌的先听听看有没有别的人在说话(carrier sense),如果有人在说话,你就等他把话说完,你才开始说;如果没人说话,你就开始说.但是假如有2个人同时说话怎么办?假如有2个人同时说话了,双方一旦听到同时有除自己以外的人在说话的话(collision detection),就停止继续说话,2个人都随机等待一段时间,然后其中1个人再开始继续说话,另外那个人等他说完再接着说
Ethernet的通信方式就是这样的,如果双方同时要传输数据的话,将会产生一个collision的信号,由于电压超过正常的值,所以整个网段上的工作站都能注意到这个collision信号,接下来卷入这个collision事件的2个节点发送一个代表拥塞的信号给网段上的所有节点.此时线缆上不会有数据的传输(0Mbps),直到该冲突过程恢复以后.当这2个节点完成拥塞信号的传输以后,它们设置一个随机的计时器开始倒计时,先到0的节点会发现此时网段上没有工作站在进行传输,它就开始传输数据;后到0的那个节点发现之前那个节点已经在传输了,它就等待,等它传输完毕以后再进行传输
所以,在采用CSMA/CD机制的介质上,1次只能有1个节点可以进行传输.所以这也是把Ethernet叫做共享介质(shared medium)的原因
Fast Ethernet
当随着时间的推移,人们开始发现10Mbps的速率不够用是时候,就开始开发一种以太网的升级版本:Fast Ethernet.快速以太网的速率能够达到100Mbps.虽然基于IEEE 802.3u标准的快速以太网不是市场上第一个出现的100Mbps版本.IEEE 802.3u标准的快速以太网和802.3以太网的帧的格式是兼容的,唯一不一样的就是前者在速度上是后者的10倍,由于兼容性很好,802.3u就成为市场上的主流标准.快速以太网仍然采用CSMA/CD机制.由于以太网(包括快速以太网)都属于共享介质,所以在一个网段上,节点越多,产生冲突的机率就越大
Gigabit Ethernet
随着网络的发展,人们发现以快速以太网作为骨干介质越来越不能满足需要,而速率为155Mbps-622Mbps的ATM当时实现起来比较困难.IEEE后来又推出了基于802.3z的千兆以太网(Gigabit Ethernet).和之前的一样,帧的格式和Ethernet并无什么大的区别;在接线方面,千兆以太网,快速以太网和以太网的区别在于,千兆以太网没有采用铜线(copper wiring)标准
Full-Duplex Ethernet
当2个以太网节点通过10baseT互相直连,会有2条通道,其中1条为接收,另1条为发送.由于是直连,中间没有其他节点(比如hub),因此数据可以在没有冲突的情况下来回自由传输,这就叫全双工(full-duplex)以太网.如下图:
要实现全双工,2个节点必须直连,而且他们的网卡必须要支持全双工模式.由于采用全双工模式,发送和接收可以由2条通道同时进行,每条通道都为10Mbps,总共是20Mbps,所以有的时候人们又把全双工以太网称为20Mbps介质(快速和千兆以太网也是如此)
Physical Segment
当1个以太网网段的设备越多,产生冲突的可能性就越大.以太网网段能容纳的设备的数目是根据传输介质所规定的.物理网段,就是连接在传输线缆上的所有的设备的一个范围圈.换句话说就是,在一个物理网段上,所有设备都有产生冲突的可能性.另外1个用来描述物理网段的术语就是冲突域(collision domain).当然可以用某些设备对物理网段进行划分,比如路由器等等
Broadcasts and Logical Segmentation
TCP/IP使用广播来解析IP地址到MAC地址.一些路由协议也使用广播来对路由进行宣告,比如RIP和IGRP.广播不仅会消耗网络上的带宽,还会降低端用户比如工作站的处理能力.网桥(bridge)和交换机会转发广播,而路由器就不会.能够接收到别人发来的广播的所有节点组成的一个区域范围就叫广播域(broadcasting domain)或逻辑网段(logical segment)
Multicasts
多播(multicast)和广播类似,但是和广播的发送给所有节点相比,它是发送给一组特定类型的节点.节点类型通过地址来定义,比如一个帧的目标MAC地址为0100.0CCC.CCCC的就是发往所有的Cisco设备.网桥和交换机也会对多播进行转发
Frame-Forwarding Methods of a Switch
Cisco Catalyst对帧的3种转发方式如下图:
1.cut-through模式也叫fast forward或real time模式,它读取到帧的目标地址以后就立即进行转发
2.fragment free模式也叫modified cut-through模式,它读取到帧数据字段前64字节,然后进行转发
3.store-and-forward模式是读取整个帧,并进行FCS计算.由于帧的长短不一样,所以延迟根据帧的长短而变化
Pt.2 Transparent Bridging
网桥和交换机对帧的转发送采用的机制基本是一样的.网桥单独的根据目标MAC地址来转发帧.所有节点的MAC地址将被学习到,并以表的形式保存在RAM或cache memory中.在以太网环境中,转发帧的决定的过程叫透明桥接(transparent bridging),而在令牌环网络中该过程叫源路由桥接(source route bridging)
the Three Functions of a Transparent Bridge
透明网桥,如同它的名字,意思是它在以太网环境中对于端用户(end user)来说是透明的.它的3个作用:
1.学习
2.转发和过滤
3.避免环路(loop)
Learning
网桥要基于目标MAC地址来做转发决定,所以它要能学习到目标节点的MAC地址.当网桥连接到一个物理网段上去,它读取经过它的帧的源MAC地址,并做出推断,如果帧从来自某个它的特定的端口(port),它就认为工作站的位置是和那个端口相连.然后把这些信息放进自己的bridging table中,在放进去之前先计算FCS计算,这样能消除错误的判断.在Cisco Catalyst上,bridging table也叫做CAM(content address memory)
如下图:
A发送数据给B,B和网桥都接收到帧.当网桥接收到帧以后,学习到工作站A和port 1相连(因为是这个端口接收到A发来的帧的),于是它把工作站A的MAC地址和端口放进bridging table中
反过来,B对A做出应答的时候,如下图:
原理和刚才一样,B的MAC地址和端口信息被放进bridging table中去
Forwarding and Switching
网桥通过之前学习到的bridging table来做转发决定.这个决定是基于帧的目标MAC地址的.转发的过程如下图:
当A传输数据到C的时候,C的条目之前已经被学习到了,网桥就把帧转发到C所在的物理网段2
过滤的流程图如下:
当A发数据给B的时候,网桥根据bridging table判断出B和A在同一个物理网段,网桥就不会把帧发到物理网段2上去
Avoiding Loops
透明网桥的还有1个功能就是环路的避免.先来看看1个环路的产生,如下图:
A发送一个广播帧给Y和X,Y又发给Z,X也发给Z;Z又把从Y接收到的发给X,又把从X接收到的发给Y.这样就产生了一个bridge loop.阻止环路的产生的办法就是破坏掉冗余的链路,这就要考生成树协议(Spanning Tree Protocol,STP)完成
STP有几种版本,而且它们之间互不兼容.在交换机和网桥上实现STP之前要先验证下STP的版本,不同版本的STP是不会协同工作的.2种最常使用的STP版本是DEC版本的和IEEE版本的.Cisco的Catalyst在以太网上使用的是IEEE版本的STP,在Token Ring上使用的是IBM版本的STP
Spanning Tree Protocol
网桥会向其他那些有可能引起环路的交换机发送一种叫做BPDU(bridge protocol data unit)的包.Cisco的Catalyst每10秒从它所有的活跃端口向外发送BPDU,收到BPDU的交换机通过生成树算法(Spanning Tree Algorithm,STA)进行运算来决定需要关闭哪些冗余链路和端口,这一关闭的过程叫blocking.处于blocking状态的端口仍然是活跃的,它仍然能够接收和读取到BPDU,它会等到环路消除以后,才能转发帧.BPDU和STA的目的就是造就一个无环路的交换环境
the Root Bridge
所有的生成树(tree)都必须要有个根(root),作为根的那个网桥就叫根桥(root bridge),所有的网桥都分配了1个叫做网桥优先级(bridge priority)的数值.默认Catalyst的优先级都为32768.术语bridge ID是由MAC地址决定的,MAC地址最小的网桥就被选举为根桥
Which Ports Should Be Blocked?
当决定关闭一些产生环路的端口的时候,假如卷入的端口有2个甚至更多,那到底把哪些端口更改为blocking状态呢?这就要根据端口耗费(port cost)来决定.端口耗费一般是基于传输介质的速率来分配的,一般这个耗费的值是用1000除以传输介质的速率得到的,比如100Mbps的快速以太网的端口耗费就是10,以太网的是100
与根桥直接相的端口,或到达根桥距离最短的端口,就叫根端口(root port);假如有多条到达根桥的最短的链路,就比较port cost,耗费低的作为根端口;假如耗费一样,就比较bridge ID,ID小的作为根端口
还有个术语叫指定端口(designated port),它是在物理网段上,离根端口最近的那个端口
STP工作的一些步骤如下:
1.决定根桥:在优先级相同的情况下,比较bridge ID,ID小的作为根桥
2.决定指定端口:到达根桥的最短的链路的端口port cost低的作为指定端口;假如耗费一样,就比较bridge ID,ID小的作为指定端口.指定端口处于转发(forwarding)状态
3.决定根端口:与根桥直接相的端口,或到达根桥距离最短的端口,就叫根端口(root port);假如有多条到达根桥的最短的链路,就比较port cost,耗费低的作为根端口;假如耗费一样,就比较bridge ID,ID小的作为根端口
4.决定哪些端口应该被堵塞为blocking状态:只要是非根端口和指定端口的,都进入blocking状态
5.决定哪些端口处于转发状态:根端口和指定端口
例子如下图,拓扑图给出了已知的MAC地址,并且所有优先级均为32768:
注意A的MAC地址最小,优先级均为32768,所以A作为根桥,并且要注意的是根桥的所有端口均作为转发模式(指定端口).接下来决定根端口,直接与根桥相连的作为根端口,而且作为转发模式,所以可以判定出根端口个指定端口,bridge ID决定指定和非指定端口.但是注意D和E之间,由于D的bridge ID小,所以D的为指定端口,E的作为非指定端口,如下图:
Spanning Tree Port States
STP端口的几种状态如下图:
Pt.3 Token Ring and Source-Route Bridging
IEEE吸收了原先的Token Ring标准并加以小小的改动,制定了一套IEEE 802.5标准的Token Ring(1985年发布).它主要使用在IBM产品的环境中
Token Ring Architecture
20世纪70年代中期到末期,LAN技术变的越来越流行.蓝色巨人IBM决定开发1套自用的LAN介质,当时Ethernet并不能在IBM产品的环境下运做的很好.于是就产生了Token Ring.IEEE的Token Ring能够很好的和IBM的Token Ring兼容
Token Ring使用多路访问单元(Multiaccess Unit,MAU)来组建一个环(ring),所有的工作站都连接到MAU上的.其中物理拓扑为星型,逻辑拓扑为环型. Catalyst采用的是5类线缆和RJ-45连接器,物理拓扑如下图:
逻辑拓扑如下图:
Token Ring采用传递令牌(token)的方式来决定谁发送数据.谁拥有令牌,谁就可以传输帧.数据帧在环上传传输,目标工作站接收到这个帧以后对它进行拷贝,然后设置帧的1个位后继续把它放在环上传输,直到又回到源设备,源设备发现帧中有1位已经变动,说明它发出去的帧已经被目标设备收到.所以它重新生成一个token,并传递给别的工作站.如下图:
Token Ring仍然是一种共享介质,因为工作站要等待token的传递.环上的站点越多,等待的时间就越长
另外一种特殊的工作站,叫active monitor,是用来维护和保持Token Ring的稳定性的.它保证了token在环上的传递正常与否.如果token出错,active monitor会重新生成一个token
Token Ring传输数据的速率有2种:4Mbps和16Mbps.4Mbps版本的现金用的很少了,能够支持的产品也不是很多.另外,Token Ring可以以不同的速率传输数据可能会导致一些问题.一些Token Ring的NIC能够支持这2种速率.但是在它自动感应(autosense)之前,它先以默认的4Mbps的速率操作,然后工作站错误的以4Mbps的速率接入到环里去,而环一般都为16Mbps的速率,这样环就会短暂性的失去连接,导致一些问题的发生.所以在把工作站接入到环里的时候要先验证下速率是多少,是否匹配
Token Ring Segmentation
当环上的站点过多的时候,就需要对Token Ring分段:物理的或逻辑的创建更多的环
物理的创建更多的环可以在不影响层3协议的情况下,创建更多的环,产生更多的token,这样就可以有更多的会话.但是广播仍然会传播到整个Token Ring上去.如下图是一个没有分段的大型的Token Ring:
假设环的速率为16Mbps,那么总共的吞吐量为16Mbps
把环分为3段,如下图:
如图一个大环被分成3个单独的环,将会产生3个token,而且总的吞吐量将达到16Mbps*3=48Mbps.这3个环仍然处于同一个IP子网下,所以物理的分段不影响广播域的变化
Token Ring的物理分段可以由网桥,交换机和带有Token Ring接口的路由器完成
Token Ring的逻辑分段由路由器完成
Source-Route Bridging
源路由桥接是Token Ring的网桥和交换机使用的桥接方法,它和层3的路由协议十分相似:用数字鉴别物理环,就像用路由协议用网络号鉴别网络一样.每一个处于源路由环境的网桥都接收一个bridge number.如下图:
如图,每个环和网桥都有一个号码
组成Token Ring帧头部的一个字段叫RIF(routing information field).RIF字段包含了通过源路由桥接环境到达目标设备的选定了的路由信息.源设备为每一个数据包建立RIF字段,同时这也要求端节点设备拥有可以建立RIF字段的软件.源路由网桥读取到RIF字段以后,决定是否转发帧到相连的环上去
RIF字段包含2部分:
RC字段(route control)为第一部分,16位长
第二部分为RD(route designator字段.RD是数目根据帧要到达目标设备所穿越的网桥和环的数目而变化,如下图:
RIF字段里最多可以包含14个RD,这也限制了源路由桥接环境的最大跳数为13跳(hop)
下图是源路由桥接环境的通信过程:
A的RIF字段如下图:
Route Discovery
在源路由桥接环境里,源设备是如何发现目标设备的呢?为了能够发现目标设备,源节点使用一种叫做explorer packet的包.有几种类型的explorer packet.其中一种叫all-route explorer (ARE) packet.ARE packet会被所有的网桥转发.发现过程如下图:
当ARE packet到达目标环以后,ARE packet仍然会被继续转发直到达到RD的最大值或者已经有了RD.ARE packet将继续从R 101传送下去直到回到R 104.所以第一个ARE packet依次经过B1,B2,B3一直到B6,当第一个ARE packet完成一个轮回以后再次回到B1,B1看见已经之前有了RD,所以B1不会把这个包继续转发下去
另外一种explorer packet叫做Spanning Tree Explorer(STE) packet,也叫Single-Route Explorer(SRE) packet.ARE packet可以导致多个包到达目标设备,增加了额外的流量.源路由网桥运行STA来计算和转发STE packet,只从指定端口转发出去.源路由网桥所采用的STA多为IBM的版本而不是IEEE版本和老的DEC版本.Cisco Catalyst只使用IBM的版本
Source-Route Transparent Bridging
在一些环境里,端用户可能不需要使用软件建立RIF,在这样环境下,源路由网桥可以配置成2种形式的桥接:源路由和透明.有时也叫做SRT(Source-Route Transparent)桥接.SRT网桥查找Token Ring帧头部信息中一个特殊的位叫做RII(routing information indicator).RII实际上是目标MAC地址的第一位.当设置了这个位以后,暗示帧里包含的有RIF,因此帧被源路由桥接
相反的,没有设置RII的话,SRT网桥将透明的对这个帧进行桥接
Source-Route Translational Bridging
当以太网和Token Ring要在同一环境中实现的时候,就要用到路由器.然而一旦用到路由器的话,以太网和Token Ring上的设备就处于不同的逻辑网段了.如果你不想这么做,就可以用SRT/LB(Source-Route Translational Bridge).SRT/LB会很繁忙,因为它要在以太网这边实现透明桥接,又要在Token Ring这边实现源路由桥界
如果需要的话SRT/LB还能互相翻译以太网和Token Ring的帧
Cisco Catalyst如果没有外部路由器或route-switch模块的话就不能支持SRT/LB[/url] |
|