为什么我不应该在 Cisco 交换机的中继端口上激活 portfast?
我确实理解它可能会导致网络循环,但我仍然无法理解这个概念。
为什么我不应该在 Cisco 交换机的中继端口上激活 portfast?
我确实理解它可能会导致网络循环,但我仍然无法理解这个概念。
实际上,在交换机间链接上使用 portfast 并不是最好的主意。
交换机和网桥应该花费所需的时间(通过侦听/学习阶段)来收敛到无环路的 L2 拓扑。Rapid-Spanning-Tree、Rapid-PVST (Cisco) 和 MST 可以将这个过程从经典的 30 秒生成树加速到 2-5 秒。
另一方面,在(非桥接)终端设备的端口上没有 portfast 实际上从来都不是一个好主意 - 无论该端口是“访问”还是“中继”。
路由器(不一定限制在“棒上”的情况下)通常运行 802.1q 标记的(子)接口,VMware 等虚拟机管理程序也有中继端口。
并且这些设备(通常情况下)在看到线路协议“启动”后对 30 秒的黑洞情况非常不满意,就像接入端口上的 DCHP 客户端不满意在超过30秒。
例如,VMware ESXi,当一个链接出现时,想要通过刚刚“出现”的链接(称为vSwitch 配置深处某处的“通知交换机”)。这有助于所涉及的交换机立即更新给定 VLAN 的 MAC 地址表。ESXi 在检测到“线路协议启动”事件后的几分之一秒内执行此操作。
通过 STP 的 LIS/LRN 阶段(或 Rapid-PVST 的 LRN)的非 portfast 中继端口只会破坏“通知交换机”功能。用户和管理员会很不高兴,因为他们的 VM 可能在超过这 30 秒的时间内仍然无法访问,直到 VM 认为适合发送其第一帧并且交换机重新学习 VM 的 MAC 地址。
甚至 Cisco 的 DTP(动态中继协议)也会干扰“通知交换机”,因为它在中止协商之前将端口阻塞的时间保持在 1 秒以内。switchport nonegotiate
在这些情况下成为你的朋友。
对于路由器及其动态路由协议,几乎可以说同样的事情。一旦他们检测到“线路协议启动”,他们就想启动他们的问候和发现机制。用非 portfast 端口将它们黑洞化 30 秒只是延长了网络重新收敛时间,破坏了路由器管理员自己优化到 10 秒以下重新收敛的努力。他们会站在你的办公桌前,轻拍他们的脚。
务必要知道之间的区别spanning-tree portfast
和spanning-tree portfast trunk
经典IOS分别开关,spanning-tree port type edge
并spanning-tree port type edge trunk
为最近的IOS和NX-OS(语法可能会有所不同的详细信息,请检查您的文档),并正确运用它们。
如果没有trunk
关键字,portfast 设置仅在端口处于“访问”模式时才有效。如果switchport mode trunk
为边缘设备配置,则还必须trunk
在 portfast 命令中包含关键字。
是的,启用 portfast 的端口会跳过生成树的 LIS/LRN 阶段。
这就是为什么您应该始终将 bpduguard 添加到 portfast 端口的原因。一些 Cisco 交换平台支持spanning-tree portfast bpduguard default
global 命令,因此您可以在每个启用 portfast 的端口上隐含地获得 bpduguard,并且您不会忘记它。
是的,我一直在运行在相当范围与规模的交换网络portfast trunk
,并bpduguard
为年终端设备。
现在关于警告的问题:关于(临时)循环的警告 - 在某种程度上 - 可能是中继主要用于交换机间链接的时代的遗留物,bpduguard 没有广泛部署并且 DTP 仍然是一个东西. 如果在没有明确设置端口模式的情况下将一台交换机连接到另一台交换机,DTP 可能已经协商了一个交换机间中继,并且这些永远不应该是“portfast”。因此,思科可能决定让spanning-tree portfast
中继端口无效。但这更多是猜测而不是实际知识。
建议阅读:标题为“配置可选生成树功能”的许多 Cisco 文档中的任何一个,通常是配置指南集合的一部分。
您可以使用 PortFast 将单个终端站或交换机端口连接到交换机端口。如果在连接到另一个第 2 层设备(例如交换机)的端口上启用 PortFast,则可能会创建网络环路。但是您可以在棒盒上使用路由器启用 portfast。其中您的交换机带有配置了路由器接口的中继。