《CCNP SWITCH 300-115认证考试指南》——2.2节2层交换原理

简介:

本节书摘来自异步社区《CCNP SWITCH 300-115认证考试指南》一书中的第2章,第2.2节2层交换原理,作者 【美】David Hucaby(戴维 胡卡比),更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 2层交换原理
CCNP SWITCH 300-115认证考试指南

2.2 2层交换原理
假设存在这样一个简单的网络,所有接入的主机都共享同一份可用带宽。这种网络被称为共享介质的网络,普遍由以太网集线器所组建的早期局域网(LAN)所采用。带有冲突检测的载波监听多路访问(CSMA/CD)技术定义了一台设备应当如何在共享式的LAN中传输数据。

关键

当多台连接于共享介质的主机试图在同一时间点发送数据时,冲突便会产生,那么此时所有产生冲突的设备必须向后退避(立即停止数据的发送),并等待一段时间后才被允许重新发送数据。这种传输介质使得所有主机必须强制工作在半双工模式,也就是说,在任意时间点上,只有一台主机可以发送数据1。另外,当一台主机在发送数据帧时,其他互连的主机都可以监听到它所发送的数据帧。当一台主机发送了错误的数据帧时,其他主机也不得不监听这样的错误。这种类型的LAN是一个冲突域,因为在这个范围内任意设备的数据传输都有可能造成冲突。

普通的以太网交换机工作在OSI模型的第2层,并基于数据帧所携带的目的MAC地址来决策数据帧的转发,而不是简单地对数据帧进行物理复制。这意味着交换机所连接的设备无需再共享以太网介质。相反地,从最为基础的角度而言,以太网交换机在所连接的主机之间提供了如下几种形式的隔离。

严格限制了冲突域的范围。对于每一个交换端口,一个冲突域包含了交换端口自身和所有直连于该端口的设备——单独的一台主机,或者通过共享介质集线器共同连接的一系列主机。
主机可以工作在全双工模式。由于传输介质不会出现冲突,因此主机能够同时发送和接收(不仅仅是监听)数据。
带宽不再共享。相反地,每一个交换端口能够提供专用的带宽,甚至还包括从交换矩阵到另一个交换端口的整个转发过程(数据帧转发的路径是动态变更的)2。
错误的数据帧不会被转发。每一个交换端口都会检查接收到的数据帧是否正确。如果数据帧无误,那么该数据帧会被重新生成,然后执行转发;反之则被丢弃。这种行为被称为存储转发交换技术:数据包被接收,存储检查,最后转发出去。
允许把广播流量限制到一个可接受的水平。
支持其他类型的智能过滤或转发。

2.2.1 透明桥接
从本质上而言,一台2层交换机就是一台多点透明网桥,但是交换机的每一个交换端口都拥有自己的以太LAN分段,并且这些分段相互隔离。数据帧的转发完全是基于它所包含的目的MAC地址。因此,除非交换机获知了目的地址的位置,否则它无法转发该数据帧(当交换机不知道目的地址的位置时,它会采取一系列特殊的行为来应对这个问题)。图2-1比较了拥有两个端口的透明网桥、多端口网桥以及2层交换机之间的差异。


927ee3e676dfccc87f79060f4924468a663a546e

交换机转发以太网数据帧的整个过程,实际上就是找到数据帧目的MAC地址所在的交换端口的位置(即使用目的MAC地址的设备所连接的交换端口)。例如,图2-1所示的2层交换机知道MAC地址为0000.5555.5555的设备位于交换端口8,并且属于VLAN Y。它还知道目的地址为广播MAC并且目标范围为VLAN Y的数据帧必须从所有属于VLAN Y的端口泛洪出去。

一台交换机必须被显式地告知特定主机的所在位置,或者必须自己学习到这一信息。你可以通过交换机的命令行接口(CLI)配置MAC地址的所在位置,但是当网络中主机数量过多或主机经常更换连接端口时,该任务会变得异常繁重。

为了动态地学习到特定主机MAC地址的位置信息,交换机会监听所有的入站数据帧,并记录一张地址信息表。在图2-1中,这些地址信息被保存在转发表中。当一个交换端口接收到一个数据帧后,交换机会检查该数据帧的源MAC地址。如果地址表中尚未出现过该MAC地址,那么MAC地址、交换端口以及数据帧所在VLAN都会被记录在地址表(转发表)中。根据入站数据帧来学习MAC地址的位置信息,这一过程是非常简单和直观的。

关键

入站数据帧同样也包含了目的MAC地址。为了能够正确地转发该数据帧,交换机会在地址表中查找和目的MAC地址匹配的条目,并期望找到该地址对应的交换端口及VLAN信息。如果找到了匹配条目,那么该数据帧会从相应的交换端口转发出去;如果无法在地址表中找到匹配条目,那么交换机必须执行更多“激进的”行为:数据帧将按照“尽最大努力”的转发行为从所有属于源VLAN的交换端口泛洪出去(除了接收到该数据帧的端口)。这种转发行为被称为未知单播泛洪,因为单播数据帧的目的位置是未知的。

图2-2说明了这一过程。为了突出重点并简化分析过程,这里假设所有交换端口都属于相同的VLAN。例如,交换端口3接收到了一个目的MAC地址为0000.aaaa.aaaa的数据帧。交换机在自己的转发表中进行查找,但是却无法找到与之匹配的条目。因此,交换机会复制该数据帧,并把这些数据帧的副本从其他端口泛洪出去(这些端口与端口3属于相同的VLAN)。交换机假定MAC地址为0000.aaaa.aaaa的主机连接于这些端口中的某一个,并能够接收到泛洪的数据帧。当然,如果数据帧的目的地址为广播MAC地址,那么交换机会本能地把数据帧从属于源端口所在VLAN的全部端口泛洪出去。交换机持续监听自己所有端口的入站数据帧,并不断学习源MAC地址的相关信息。但是需要注意的是,这种学习过程只有当生成树协议(STP)算法已经确定某个端口为稳定可用的状态时才被允许3。STP关注如何去维护一个无环的2层网络,从而避免数据帧被无休止地转发下去。如果在2层网络中产生了环路,那么被泛洪的数据帧可能按照环回的路径,一遍又一遍地被转发,直至交换机因CPU使用率过高而宕机。本书的第6章~第9章将非常详细地介绍STP的相关主题。

与未知单播的转发行为相似,包含广播或组播地址的数据帧也会被泛洪。但是这些目的地址并不是未知的——交换机能够非常容易地识别这些使用了标准取值的“特殊”地址。例如,以太网广播地址总是ffff.ffff.ffff,IPv4组播地址是以01xx.xxxx.xxxx开头,而IPv6组播地址是以3333.xxxx.xxxx开头。这些目的地址代表了多个接收者,所以根据定义,它们必须被泛洪。对于组播数据帧而言,交换机默认会执行泛洪,除非交换机已经学习到了特定接收者的位置4。


fcc98e9422a5e192c8225625ab940e9efbb6b7ae

2.2.2 追踪数据帧
你应当对数据帧在穿越2层交换机时所需经历的操作拥有一个基本的理解,这有助于你更好地掌握如何去配置交换机的一些复杂特性。图2-3展示了一个典型的2层Catalyst交换机,以及该交换机在转发每一个数据帧时所执行的决策过程。

当一个数据帧在到达某个交换机端口后,它将被存储于该端口的入站队列。接口队列通常有多个,它们能够容纳等待被发送的数据帧,并且各自拥有不同的优先级或服务等级。交换机通过QoS策略把重要的数据帧调度至更好优先等级的队列中,以便这些数据帧优先于普通数据帧被发送。这一系列行为能够避免那些时间敏感的数据被大量的入站流量“淹没”掉。


bf942a8fd03e0d52291dbd402ea532008359b591

当入站队列完成对数据帧的列队操作,并且数据帧成功地从队列脱离后,交换机便需要解决数据帧是否(Whether)应当被发送、需要被发送到哪里(Where)以及怎样(How)发送数据帧的问题。交换机必须针对这三个根本问题作出决策:一个是找到出站的交换端口,而另外两个是确定转发策略。所有这些决策是由不同的交换硬件同时作出的,具体情况如下所述。

2层转发表——交换机把数据帧的目的MAC地址作为一个索引(index)或一把钥匙,然后与内容可寻址存储(CAM)或地址表进行比对。如果找到地址匹配的条目,那么出站交换端口和正确的VLAN ID将从CAM表中被读出(如果无法找到匹配条目,那么数据帧会被打上泛洪的标记,以便数据帧可以被发送到VLAN内的所有交换端口)。
安全ACL——访问控制列表(ACL)能够根据数据帧的MAC地址、协议类型(对于非IP数据帧)、IP地址、协议和4层端口号等条件匹配出特定的数据帧。三重内容可寻址存储(TCAM)包含了经过编译的ACL,因此交换机可以通过查找该表,从而确定是否转发数据帧。
QoS ACL——其他一些ACL可以根据服务质量(QoS)参数来分类入站数据帧,限制或控制数据流的发送速率,或在出站时为数据帧打上QoS标记。交换机同样是通过检索TCAM表来确定如何执行上述行为的。
本章2.4.1节和2.4.2节将更加详细地讨论CAM和TCAM表的相关主题。在交换机完成了CAM和TCAM表的查找后,数据帧会被转送至正确的出站交换端口,以及该端口的出站队列中。数据帧被调度进入哪个出站队列是由数据帧所携带的QoS参数所决定的。和入站队列一样,出站队列的服务等级是基于数据流的重要性或时间敏感度来区分的;相比于其他出站流量,拥有更高优先级的数据帧在转发时会尽可能地减小转发延迟。

1译者注:尽管只有一台主机能够发送数据,但是所有的主机都可以同时监听,其中也包括发送者自己,以便随时发现共享介质上的冲突。
2译者注:这里是指数据帧从主机发出,到连接主机的交换端口,然后进入交换机的交换矩阵,最后到达目的端口,数据帧所能占用的带宽都是专用的,无需与他人共享。
3译者注:MAC地址的学习过程实际上在STP非稳定状态下也能够进行,例如当一个端口处于Learning状态时。
4译者注:为了使得交换机支持组播数据帧的转发,交换机必须支持并启用3层特性——IGMP监听。

相关文章