交换机、路由器、网桥和局域网/高级主题
一位读者请求改进本书的格式和布局。 良好的格式使书籍更易于阅读,并使读者更感兴趣。请参阅编辑维基文本以获取想法,并参阅WB:FB以获取优秀书籍的示例。 请继续编辑本书并改进格式,即使在删除此消息后也是如此。请参阅讨论页面以了解当前进度。 |
您无疑听说过“树枝上的路由器”这个术语。图 7.1 描述了树枝上的路由器架构。
从图中可以看出,多个主机使用了两个独立的 VLAN 赋值。一个段运行在 VLAN10 上,另一个段运行在 VLAN50 上。这两个 VLAN 或段都连接到同一个交换机。然后交换机连接到路由器。这里我们展示了一个外部路由器,但 RSM 提供相同的功能,只是在内部。
到目前为止,您已经了解到,对于 VLAN10 上的主机 A 与 VLAN50 上的主机 D 通信,数据包必须通过路由器 A 进行路由。由于 VLAN 赋值,交换机必须将数据包发送到接口 FE0/0.10 上的路由器。路由器知道 VLAN50 分配的网络的路由是通过接口 FE0/0.50。然后数据包被发送回交换机并转发到主机 D。
现在回到我们最初的问题。为什么要使用 MLS?您可以从图 7.1 中的图中看到,当主机 A 和主机 D 连接到同一设备时,必须使用路由器或路由交换模块 (RSM) 来移动数据包是非常低效的。MLS 用于绕过后续相同流的数据包上的路由器。流是通过使用数据包报头信息(交换机间链路 (ISL)、第 2 层和第 3 层报头)创建的。数据包中有一些字段使其独一无二
- 源和目标 IP 地址
- 源和目标 MAC 地址
- 服务类型 (TOS)
- 协议类型(例如,HTTP、FTP、ICMP 等)
这些只是可用于建立流的一些数据包特性。流是通过使用这些属性的指定集来定义的。
思科 Catalyst 交换机需要额外的硬件来查看数据包报头信息。Catalyst 5000 交换机使用 NetFlow 功能卡 (NFFC) 来收集此信息并将其缓存。Catalyst 6000 系列交换机使用多层交换功能卡 (MSFC) 和策略功能卡 (PFC) 来收集和缓存报头信息。本章后面将详细介绍一个允许交换机建立流的详细过程。MLS 需要三个组件才能在任何网络中发挥作用 多层交换协议 (MLSP) 是一种在路由器上运行的协议,它允许它与 MLS-SE 通信以了解拓扑或安全更改。多层交换路由处理器 (MLS-RP) 可以是支持 MLS 的路由器或安装在交换机中的 RSM。多层交换交换引擎 (MLS-SE) 是支持 MLS 的交换机(带有 NFFC 的 5000 或带有 MSFC 和 PFC 的 6000)。
现在您已经对 MLS 的作用以及 MLS 在网络中发挥作用所需的条件有了基本的了解,让我们深入了解其工作原理。
我们讨论了 MLS 的三个必需组件。了解它们如何协同工作以启用第 3 层交换非常重要。让我们看一下支持 MLS 的示例网络拓扑。图 7.2 显示了路由器和交换机的简单架构,交换机上连接了两个主机。同样,主机具有不同的 VLAN 赋值,需要路由器的干预来路由数据包。请注意,该图描绘了具有两个子接口 FE0/0.2 和 FE0/0.3 的主接口。MLS 遵循四步流程来建立第 3 层交换功能。然后可以将这四个步骤分解成更详细的过程。启用 MLS 所需的四个步骤如下:MLSP 发现 MLS-RP 使用 MLSP 将 Hello 数据包发送到所有接口以发现 MLS-SE 并建立 MLS-RP/MLS-SE 邻居关系。识别候选数据包 NFFC 或 PFC 监视传入数据包并为其创建部分缓存条目,从而将这些数据包识别为流的潜在候选者或候选数据包。识别启用数据包 NFFC 或 PFC 监视来自 MLS-RP 的数据包并尝试将其与候选数据包条目匹配。如果匹配,则将数据包标记为启用数据包,并在 CAM 表中创建快捷转发条目。后续流数据包进行第 3 层交换 传入数据包与 CAM 表条目进行比较。如果数据包与流条件匹配,则由 NFFC 或 PFC 重写它们,然后发送到流的相应出口端口。MLSP 发现 – 交换机(特别是 NFFC 或 PFC)需要路由器执行初始路由表查找和数据包重写。此依赖关系要求在交换机和路由器之间建立 MLS 邻接关系。这是使用 MLSP 协议完成的。最初,路由器或 MLS-RP 发送包含在路由器上配置的所有 MAC 地址和 VLAN 的 Hello 数据包。这些消息每 15 秒发送到 01-00-0C-DD-DD-DD 的第 2 层多播地址。这些 Hello 数据包的预期接收者是网络上的 MLS-SE 设备。当 MLS-SE 接收信息时,它会在 CAM 表中为第 2 层网络中的所有 MLS-RP 设备创建一个条目。提到第 2 层是因为 MLS-SE 设备不关心未直接连接到第 2 层设备(例如交换机)的设备。图 7.3 描述了 MLSP 发现过程。一旦收到 MLSP Hello 数据包,在 CAM 表中存储的部分信息是一个称为 XTAG 的 ID。下一节将描述 XTAG 的意义和用途。XTAG 简而言之,XTAG 是 MLS-SE(交换机)用于跟踪网络中 MLS-RP 的唯一标识符。MLS-RP 上使用的所有 MAC 地址和 VLAN 都与 CAM 表中的 XTAG 值相关联。您可以清楚地看到 MFSC 已被分配了 XTAG 值 1。MFSC 接收分配是因为 MFSC 充当 MLS-RP。在此示例中,只有一个 MAC 地址与 XTAG 1 相关联。但是,有两个 VLAN 与它相关联。
一旦 MLS-SE 为 MLS-RP 建立了 CAM 条目,交换机就可以开始扫描数据包并创建缓存条目。这在前面被描述为识别候选数据包和启用数据包。创建缓存条目是为了维护流数据。流数据允许 MLS-SE 使用新的源和目标 MAC 地址重写数据包,然后转发数据包。所有这些都在不将数据包发送到路由器进行路由查找和重写的情况下完成。
缓存条目分两步进行
- 候选数据包条目
- 启用数据包条目
在 MLS-SE 中创建这些条目后,后续数据包将与现有流条目进行匹配,并相应地处理。
识别候选数据包的过程非常简单。如前所述,MLS-SE 拥有来自 MLS-RP 的所有接口的 MAC 地址条目。利用此信息,MLS-SE 开始监视所有发往与 MLS-RP 相关的 MAC 地址的传入帧。
传入帧将匹配以下三个条件之一:
- 不是发往 MLS-RP MAC 地址的。
- 发往 MLS-RP MAC 地址,但此流不存在缓存条目。
- 发往 MLS-RP MAC 地址,但此流已存在缓存条目。
MLS-SE 将根据匹配的条件采取不同的操作。我们现在将讨论第一个条件。其他条件将在后续章节中讨论。如果传入帧不是发往与 MLS-RP 相关的 MAC 地址,则不会创建缓存条目。之所以不创建缓存条目,是因为 MLS 用于避免额外的路由查找。如果该帧的目标是 CAM 表中另一个 MAC 地址,则该帧将进行二层交换。接下来,让我们继续讨论识别和处理后两个条件的过程。首先,我们将讨论当条目已存在时会发生什么情况。然后,我们将介绍候选数据包的缓存条目过程的细节。图中描述了候选数据包缓存条目的出现情况。当帧进入交换机并目标为 MLS-RP MAC 地址时,MLS-SE 会检查是否已创建与当前数据包属性匹配的缓存条目。如前所述,每个帧都具有独特的特征或属性,允许 MLS-SE 将数据包分类到一个流中。MLS-SE 使用这些属性进行模式匹配。如果传入数据包与已建立的流缓存条目具有相同的属性,则该数据包将进行三层或快捷交换。当合格的(目标为 MLS-RP MAC 地址)传入帧与缓存进行比较并失败(未找到匹配项)时,将创建一个缓存条目。此时,数据包被标记为候选数据包。创建缓存条目后,数据包将转发到路由器(MLS-RP)进行正常处理。在这里,路由器执行路由查找,重写二层报头,并将数据包发送到下一个跃点接口(无论哪个接口)。在此阶段,MLS 缓存的状态仅为部分状态。尚未建立完整的流缓存,因为 MLS-SE 只看到一个数据包进入并转发到路由器。它仍然需要看到路由器发回的一些可以标记为启用数据包的内容。
启用数据包是流缓存拼图中缺失的部分。就像 MLS-SE 监视所有发往 MLS-RP MAC 地址的传入帧一样,它还监视来自 MLS-RP 的所有数据包。它监视这些数据包,希望能与候选数据包缓存条目匹配。如果它可以进行匹配,则该数据包将被标记为启用数据包,并且流缓存的其余元素将在 CAM 表中完成。图 7.5 描述了启用数据包的出现情况。匹配是使用以下条件进行的:源 MAC 地址来自 MLS-RP。目标 IP 与候选数据包的目标 IP 匹配。源 MAC 地址与候选数据包的目标 MAC 地址关联到相同的 XTAG 值。如果满足所有这三个条件,则 MLS-SE 将完成快捷缓存条目。帧修改了解快捷交换发生在三层这一点非常重要。交换机将重写二层帧。通常,路由器(三层设备)将使用必要的信息重写帧。重写包括更改 VLAN 赋值、源和目标 MAC 地址以及校验和。MLS-SE 还可以修改 TTL、校验和、TOS 和封装。由于 MLS 数据包不再发送到路由器,因此 MLS-SE 必须执行重写功能。当它更改源和目标 MAC 地址时,MLS-SE 使用 MLS-RP 的 MAC 地址作为源,并将目标 MAC 更改为直接连接的主机的 MAC。通过此过程,目标主机看起来好像数据包是通过路由器发来的。图 7.6 描述了传入帧和传出帧之间的区别。后续数据包一旦识别出候选数据包和启用数据包并建立快捷或流缓存,交换机将把后续数据包转发到目标,而无需使用路由器。由于 MLS-SE 能够重写帧,因此它可以进行必要的修改并将帧直接转发到目标主机。MLS-SE 将必要的信息存储在缓存中,例如源和目标 IP 地址、源和目标 MAC 地址以及与 MLS-RP 相关的 MAC 地址。利用此信息,MLS-SE 能够识别属于特定流的数据包,重写帧并将数据包转发到正确的目标。禁用 MLS在路由器或交换机上禁用 MLS 有正确的方法和错误的方法(不一定错误,只是不需要)。这里将讨论这两种方法。正确的方法禁用 MLS 的正常且正确的方法取决于您使用的设备。在路由器上禁用 MLS 可以与在 6500 系列交换机的 MSFC 上禁用 MLS 相提并论。命令甚至相同:no mls rp ip 从路由器或 MSFC 上的接口发出。要完全禁用它,您可以从全局配置模式发出相同的命令。此操作的后果因其发出的系统而异。当在路由器上发出该命令时,仅路由器禁用 MLS。当在 MSFC 上发出该命令时,MSFC 和交换机本身将禁用 MLS。这就是使用不同的交换机时存在差异的原因。当您使用 5000 系列交换机时,默认情况下会禁用 MLS。但是,在 6000 系列交换机上,默认情况下会启用 MLS。要在 5000 系列交换机上禁用 MLS,请使用 set mls disable 命令。在 6000 系列上,应通过在 MSFC 上发出 no ip mls 命令来禁用 MLS。错误的方法有几种方法可能会意外地禁用交换机上的 MLS。有些是临时的,而另一些是永久性的。以下列出了可能禁用 MLS 的 MSFC/路由器命令:no ip routing ip security ip tcp compression-connections ip tcp header-compression clear ip route通过在 MSFC 或路由器上禁用 IP 路由,您会自动禁用 MLS。IP 安全会禁用应用该命令的接口上的 MLS。IP TCP 压缩命令也会产生相同的结果。最后,clear ip route 命令只是清除 MLS 缓存条目,并且必须重新建立流缓存。