第十章 交换机的基本操作
6.1 第二层交换
在前面章节中,我们谈到了交换机、网桥和路由器所能提供的网段类型,但是,没有讨 论网桥或交换机怎样做出转发决定的。本章将对以太网环境中的网桥/交换机的功能加以介 绍。实际上,网桥和交换机以相同的方式对帧进行转发。在本章的大部分内容中,只使用交 换这一词。 不过本章所提到的各种概念也同样适用于网桥。 在本章中特别约定交换或交换机 指二层交换,高层交换技术将在以后讨论。 因为交换机只基于目标 MAC 地址做出转发决定, 所以它不像路由那样会在路由器中形 成地址层次。这样,每个节点将不得不经过“获取”的 MAC 地址存放在 RAM(内存)或 缓存中的表中。 本章将详细描述这一过程, 并介绍这一过程中将出现的一些问题以及解决这 些问题的方法。 在以太网中,做出转发决定的过程称为透明桥接。但是,在令牌环网环境中,这一过程 有些不同, 称为源路由桥接, 在本书中不讨论令牌环网络, 也不会过多涉及源路由桥接技术。 交换有如下的三个主要功能。
图 6.1.5 如果工作站 A 向工作站 B 传送信息,帧的发送没有必要,因为工作站 B 与工作站 A 在 同一个物理网段上。这时,网桥进行过滤,即不发送帧信息。如果工作站 A 向工作站 C 发 送帧,而在网桥表中没有工作站 C,网桥将把这个发往网桥不知道的目标 MAC 地址的帧发 至所有端口。在这种情况下,网桥充当的是集线器的角色,以确保它没有使信息停止传送 如果网桥没有对不知道目标 MAC 地址的帧进行发送,工作站 A 不会与工作站 C 进行 连通,直至工作站 C 传送一个帧。这种情况是不能接受的。如图 6.1.6。
图 6.1.9 在图 6.1.9 中,没有生成树的冗余路径会造成 MAC 数据库的不稳定,这是下列步骤发 生时导致的: ● 主机 X 给路由器 Y 发送单播帧。 ● 两个交换机都没有学习路由器 Y 的 MAC 地址 ● 交换机 X 和 Y 学习主机 X 在端口 0 上的 MAC 地址。 ● 到路由器 Y 的帧被泛洪。 ● 交换机 X、Y 不正确的学习在端口 1 上主机 X 的地址。
2
帧到另一个站点时,学习过程继续。如图 6.1.3
图 6.1.1
图 6.1.2
图 6.1Leabharlann 33在图 6.1.3 中, MAC 地址为 0260.8c01.4444 的站点 D 给 MAC 地址为 0260.8c01.2222 的 站点 C 发送通信量,交换机采取的步骤如下: ● 源地址 0260.8c01.4444 被加到 MAC 地址表。 ● 传输帧的目的站点 C 与 MAC 地址表相比较。 ● 当交换机在 MAC 地址表中未找到关于该目的地址的信息时,该端口被泛洪到本网 段中的所有的端口。 ● 当站 C 发送一帧到站 A 时,交换机从地址表了解到站 C 的 MAC 地址和端口 E2。 ● 只要在 MAC 地址表项生命周期内发送站发送数据帧,就可以建立起完整的 MAC 地址表。这些表项也可以用来制定智能转发、过滤决策。 在第二层寻址中,也涉及到广播地址和多点投递地址。广播地址值是 FFFF.FFFF.FFFF (16 进制表示) 。广播地址意味着局域网上的每个设备都必须处理该帧。多点投递地址用在 以太网和 FDDI 中。只有当其配置对于某个多点投递地址必须处理时,一个站点才会接收含 有特定多点投递目的地址的帧。多点投递地址的一个例子是范围在 0100.5EXX.XXXX 中的 地址,此处后 3 个字节将被赋予不同的值。这些 MAC 地址将和 INTERNET 组多点投递协 议(IGMP)及 IP 多点投递配合使用。以太网上想从一个特定 IP 多点投递地址接收 IP 包的 主机均使用相同的、以 0100.5e 开头的以太网 MAC 地址。
图 6.1.4
4
站点 A 发送帧给站 C 的步骤如下: ● 传输帧的目的 MAC 地址 0260.8c01.2222 与 MAC 地址表相比较。 ● 当交换机决定目的地址经由 E2 端口可到达时,它将该帧传到该端口。 ● 交换机为保护链路上的带宽而没有将帧传到 E1 和 E3 接口,这个动作称为帧过滤。 如果在图 6.1.4 的环境中,站点 D 发送一个广播或组播帧,交换机将该帧转发给除发起 端口外的所有端口。 广播和组播帧是一个特殊情况。 因为广播和组播帧可能所有站点都关心, 交换机通常将 广播和组播帧泛洪给除了发起端口外的所有端口。 交换机从来不学习广播或组播地址, 因为 广播和组播地址不出现在帧的源地址中。图 6.1.5 比较了以太网帧格式。
图 6.1.6
5
网桥也转发广播而且向端口进行多点传送, 其方式和不知道目标端口的帧的发送方式一 样。
6.1.3 消除回路
交换的最后一个功能是消除回路, 这个功能与其他两个功能比较起来是最难理解的。 图 6.1.7 为一个有冗余的多交换环境。网络设计冗余是为了消除单点失效问题。在该图中,广 播信息从图中左上角的服务器发出, 目的地是路由器 Y。 我们可以考虑一下数据帧在交换机 X、Y 和网段 1 和网段 2 之间传播的过程。
图 6.1.7 在引入冗余后,虽然消除了单点失效的问题,但同时也引入了一些其它问题: ● 如果没有回路规避服务,每个交换机就会无穷无尽的泛洪广播。这种情况通常称作 网络回路(Bridge Loop) ,这些广播通过回路不停地传播产生了广播风暴,导致带 宽浪费,严重影响网络和主机性能。 ● 多份非广播帧传给目的站点。很多协议期望接收每个传输的单一拷贝,同一帧的多 个拷贝可能导致不可恢复的错误。 ● MAC 地址表的不稳定导致同一帧的多副本在交换机的不同端口接收。当交换机在 MAC 地址表中因克服地址颠簸 (Trashing) 而消耗资源时, 转发的数据可能被破坏。 消除广播风暴 在图 6.1.7 中,交换机 X、Y 都与网段 1 相连,它们先对广播进行监测,监测到广播信 息后,便将信息发送至所有的其他端口。 交换机将广播帧泛洪到除了接收该帧外的所有端口。图 6.1.8 显示了三个广播风暴的问 题。这是因为广播通信量连续不断地在交换机中传播而引起的。 广播风暴是一种由于在网络上广播太多导致的特殊阻塞情况,也可能由失常的 NIC 网 卡、设计不足的网桥/交换回路所导致。
第十章 交换机的基本操作
本章主要内容
交换机的基本功能 为什么需要使用生成树协议 生成树协议是怎样工作的 交换机的基本配置
怎样学习本章 交换机是使用最广泛的网络设备之一。 本书前面介绍了启动交换机的流程, 本章主要介 绍交换机的工作原理、交换机的基本配置、管理和一些相关的协议。 学习完本章后,学员应该能够理解交换机的工作原理,理解生成树的工作原理,熟悉交 换机的基本命令。如果对命令行的配置不是很熟悉,则应该多进行练习,可以使用一些模拟 器,也可以使用相关设备。
1
地址学习。 转发和过滤功能。 消除循环功能。 当交换的三个主要功能都能使用时,它们在网络中是同时起作用的。
6.1.1 地址学习
交换机基于目标 MAC(介质访问控制)地址做出转发决定。所以它必须“获取”MAC 地址的位置, 这样才能准确地做出转发决定。 每个以太网物理网段上的工作站都将对所有在 网段上传输的数据帧进行监听。 当交换机与物理网段连接时, 它会对它监测到的所有数据帧 进行检查。检查的主要内容是源 MAC 地址、目的 MAC 地址、端口。交换机读取帧的目的 MAC 地址字段后便做出一个选择,这个选择根据交换机内部的地址表来决定怎样进行后继 的帧处理。 交换机从各个端口捕获的信息放置在一个地址表中, 它在将条目引入地址表之前, 还将 执行 FCS,以阻止错误的条目进入地址表。在 CISCO Catalyst 交换机中,这个表称为 CAM (Content Addressable Memory,内容可寻址内存)表。地址表和 CAM 表基本上是相同的, 只有一些细微差别。这里要好注意的是在初始化时,交换机并不知道主机驻留在哪个端口。 交换机的目的是分割网上的通信量, 使传输到给定冲突域主机的数据包不至于传播到另 一个网段,这是交换机的“学习”功能完成的。学习功能使交换机能确定主机与交换机端口 的对应关系。下面是交换机学习和转发过程的概要: ● 当一个交换机首次初始化时,交换机地址表是空的。 ● 用一个空的 MAC 地址表,基于地址的源过滤或转发决策是不可能的,因此,交换 机将每一帧转发给所有连接的端口而不只是接收端口。 ● 转发一个帧到所有连接的端口称为泛洪该帧。 ● 泛洪是一种通过交换机传输低效的方法,因为它将数据帧传输到不需要的网段,浪 费了带宽。 ● 因为交换机同时处理多个网段的通信量,交换机执行内存缓冲以致能独立接收、传 输每一个端口或网段的数据帧。 下面的图 6.1.1 和图 6.1.2 说明了交换机怎样从初始状态学习地址并完成转发。MAC 地 址为 0260.8c01.1111 的站 A 想发送信息到 MAC 地址为 0260.8c01.2222 的站 C,交换机接收 该帧,执行以下几个动作: ● 从物理以太网接收数据帧并且存储在临时缓冲区。 ● 因为交换机不知道哪个接口连到目的站点,它将该数据帧泛洪给所有端口。 ● 当从站 A 泛洪该帧时,交换机在新的 MAC 地址表项了解到源地址及与之相连的端 口 E0。 ● MAC 地址表项被缓存。如果该项在一定时间内没有新的帧传到交换机来刷新的话, 这个表项即被废弃。因为在学习过程,交换机和网桥变得有效了,当站点继续发送
6
● 当主机 X 发送一个广播帧时,例如 ARP 在路由器 Y 默认网关解析它,该帧由交换 机 A 接收。 ● 交换机检查帧中的目的地址,决定该帧必须泛洪到底下的以太网连接网段 2。 ● 当该帧的副本到达交换机 Y 时,这个过程重复,该帧副本传到上面以太网网段 1。 ● 在帧被交换机 A 接收后,由于该帧起始副本到达网段 1 的交换机 Y,它又被交换机 Y 转发到网段 2, 这些帧在目的站点接收到一个副本后会在回路上沿四个方向传输。 消除回路可以通过在正常操作期间阻止四个接口中传输或接收数据来实现。 在实际的运用中,存在数百个物理网段。当工程师们设法对循环进行定位时,这种情况 可能会导致数百次死机。一旦循环位置确定后,唯一的解决办法是切断所有连接。 消除重复非广播帧传输 多协议设计成既不识别也不处理传输副本。 通常, 利用序列号机制的协议假定多数传输 失败, 序列号被重复使用。 其它协议试着将传输副本送到上层协议——这会导致不可预测的 结果。图 6.1.7 显示了在一个交换网络中如何发生多传播的情况。