在 STP 根桥选举过程中,所有交换机都将自己宣传为根桥,直到收到上级 BPDU。每个关于 STP 的消息来源都说,在初始化后,所有端口都以阻塞状态开始。如果端口处于阻塞状态,这意味着它们无法转发任何帧,那么交换机如何转发它们的桥 ID 以进行根桥选举过程?
我有一个 KVM 主机,来宾加入了一个虚拟网桥以进行网络连接。
该系统来宾上的Netdata引起了我对在网络接口级别丢弃数据包的注意(由 报告的度量标准RX dropped
)ifconfig
。
我从主机外部跟踪丢弃的数据包到 STP(生成树协议)广播。主机上的虚拟网桥已关闭 STP,但来自网络上其他交换机的这些数据包仍会转发给访客。
# tcpdump -i enp2s0 stp -etn
30:23:03:27:7c:27 > 01:80:c2:00:00:00, 802.3, length 38: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id fffe.30:23:03:27:7c:27.8001, length 43
# tcpdump -i enp1s0 stp -etn
10:06:45:e6:24:0b > 01:80:c2:00:00:00, 802.3, length 38: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id 8000.10:06:45:e6:24:0b.8004, length 43
问题
如何丢弃通过虚拟网桥转发的 STP 数据包?
我尝试按 dsap/ssap 编号进行过滤,但这不起作用。
ebtables -A FORWARD -p LENGTH --802_3-sap 0x42 -j DROP
或者,我会对这不是一个好主意的任何原因感兴趣。
(应版主要求从 NEng 移至 SF)
我们正在 Debian 10、Linux 内核 4.19 之上开发一些交换机管理软件。我们正在使用 Linux 网桥(通过 switchdev 卸载到专有硬件)来进行第 2 层交换。有几件事让我感到困惑:
- 使用支持 VLAN 的网桥,如果打开内核 STP 会发生什么?如果我没记错的话,STP 是在 802.1q 中继之前发明的。一切都“正常工作”并与专有协议或多生成树协议互操作吗?
- 使用不支持 VLAN 的网桥,可以为每个 VLAN 创建一个网桥,并且可以选择为每个 VLAN 单独打开 STP。中继是通过将带有 vlan 标记的接口添加到相应的网桥来完成的。这是否与 Cisco 的 PVST+ 类似或可互操作?
我正在尝试为我正在实施的冗余网络拓扑找出适当的生成树协议设置。该图演示了物理层的外观(相关的所有内容均已相应标记)。我正在运行所有戴尔 powerconnect 系列交换机(2848 和 6224)。
R1 R2
| |
| |
| |
RSW1---RSW2
/\ X /\
/ \/ \/ \
| /\ /\ |
| / | \ |
| / ESW3 \ |
|/ \|
ESW1 ESW2
http://i.stack.imgur.com/lyDhC.jpg
- R1-2 是为实现高可用性而设置的路由器
- RSW1-2(6224's) 是根桥交换机
- ESW1-3(2848's) 是网络端点,不直接相互连接
我对这种设计的意图是使用冗余根/核心交换机来包括冗余路由器接口。实际上,有 9 个 ESW* 开关,但为简单起见,我在图形中将其缩小了。
为了让 STP 在此设计中高效工作,我需要在 RSW1 上将网桥优先级设置为尽可能低的值,比方说 4096,并将 RSW2 上第二低的网桥优先级设置为 8192。
现在,是否有必要从 12288 开始以 4096 为增量设置 ESW1-3 的交换机桥优先级,或者我可以为所有 ESW* 交换机设置 12288?当 ESW1-3 只是端点时,必须为 ESW1-3 配置唯一的桥接优先级似乎效率低下/浪费。如果 RSW1-2 都发生故障,那么每个 ESW* 都会将自己委派为根网桥交换机,因为它会发现自己是唯一可访问的最低优先级网桥。我只是想确保该设置没有任何并发症或问题。
我的下一个问题与 powerconnect STP 端口设置有关。ESW1-3 上的大多数端口都是严格的服务器节点,而不是额外的网络端点。这样做会更好吗:
- 为连接到服务器的端口禁用 STP,为连接到交换机的网络设备保持启用状态(例如附加路由器/较小的交换机)
- 在连接到服务器的端口上启用快速链接+根保护,但为网络设备禁用启用根保护的快速链接
我的最后一个问题,为了获得 STP 的最佳性能,您是否可以建议(类似于上述问题)ESW# <-> RSW# 端口的设置?实际上,它们是 vlan 中继 LAG 端口。
如果您需要任何说明,请告诉我。我感谢任何建议。
问候,布伦特
如何在 Opensolaris 网桥中完全禁用 STP。
此网桥连接到 Cisco 访问端口,并会在第一个 BPDU 到达时禁用上行链路端口。
bridged[3651]: [ID 581644 daemon.warning] unexpected BPDU on rge1 from 0:xx:xx:xx:xx:b; forwarding disabled
我已经通过以下方式禁用了 BPDU 消息到交换机的传输:
dladm set-linkprop -p stp=0 rge1
这仅解决了接入交换机端口进入“错误禁用”模式的问题。
托马斯
该主题涵盖了几个主题,因此我将尝试进一步细分,以提供更多信息并更好地了解该技术。
首先是一些背景 - 我们正在举办一个有很多参加者的本地 LAN 派对。连接的计算机在 200 到 600 之间(可能更多)。我们有 Netgear FS726T 托管交换机,千兆链路通向核心千兆交换机。该网络至少在人们进来前几个小时建立,并使用 24-48 小时。在那些 Netgear 交换机上,我们启用了 802.1d 以避免循环,但一切都保留了默认设置。
我们可以控制以下 STP 802.1d 设置(及其范围):
- 网桥优先级 (0-65535)
- 桥牌最大年龄(6-20 岁)
- 桥梁你好时间(1-10)
- 桥接转发延迟 (4-30)
每个端口:
- 路径成本 (1-65535)
- 优先级 (0-255)
以下是一些后续问题:
- 如何调整 802.1d 设置以最适合这种情况?
- 这些变化会对网络性能(延迟和传输速度)产生影响吗?
这些是我一直在考虑的变化以及原因 - 我的想法是否正确?
- 最大化年龄以尽可能避免重建生成树计算(因为网络一旦建立就不会改变)
- 最大化打招呼时间以最小化喋喋不休(与上述类似的原因)
- 最小化转发延迟以尽快开始发送实际数据包
- 增加标准端口的路径成本,以避免连接的机器劫持流量
- 降低到核心交换机的链路上的路径成本以指示优选路径
- 增加核心链接的优先级(同上)
任何信息和部分答案将不胜感激。关于在哪里可以找到有关该主题的更多信息的信息也将不胜感激。
谢谢
如果我在路由器上配置第二个接口与另一个接口连接到同一个网络,当我将其插入交换机时会导致生成树重新收敛吗?
例如现有接口是10.1.1.1/24,我需要配置和添加10.1.1.5/24。我不想等到下班后才能避免网络故障,但如果 STP 要重新计算和重新收敛,我将不得不这样做。
有人请用外行的术语解释生成树协议(STP)实际上做了什么。我知道这可能会导致某些网络设备出现问题,但这是我的知识范围。