如果有人将以太网电缆从路由器的一个端口连接到另一个端口,是否会造成环路?
互联网将无法使用吗?
如果是,那为什么?
答案1
是的,也许,取决于路由器端口是否交换/桥接(就像几乎所有家路由器的所有“LAN”端口是否都连接至集成交换机)或者它们是否真正独立(即路由器将它们视为单独的 IP 接口)。
连接两个以太网交换机(桥接) 端口连接在一起将要创建一个循环,给单播数据包带来麻烦(因为交换机最终会在循环端口而不是正确的源端口上学习 MAC 地址),尤其是广播数据包(由于以太网帧没有“跳数”或“TTL”字段,因此它们将被无限转发,因此将永远循环下去)。例如:
- 端口 A 和 B 相互连接。
- 一广播数据包通过端口X进入交换机。
- 数据包的副本通过所有端口离开,包括一个通过端口 A 的副本和另一个通过端口 B 的副本。
- 那些二副本然后分别通过端口 B 和端口 A 重新进入。
- 这些的副本二数据包从所有端口离开,包括通过端口 A 离开的两个数据包和通过端口 B 离开的两个数据包。
- 那些四复制然后通过端口 B 和端口 A 重新进入。
- 重复,直至熔毁。
(最重要的是 - 假设交换机已设置 QoS 来保留一些带宽,以使数据包重复不会消耗所有带宽 - 步骤 3 中的重新输入将导致交换机错误地重新学习发送方的 MAC 地址位于端口 A 或 B 后面,从而覆盖在步骤 1 中学习到的“端口 X”。)
交换机通常具有协议来预先检测环路并自动禁用端口(标准冗余环路规划和/或更简单的专有环路检测协议),但它们通常不支持。特别是,大多数家用路由器不支持 STP 或类似协议。(不过,令人惊讶的是,我的家用 LTE 调制解调器似乎支持经典的 STP。)
另一方面,如果你连接两个路由端口(路由器接口)连接在一起,仍然可能会发生循环,但这不是什么大问题,部分原因是路由器根本不转发广播,部分原因是 IP 路由不像以太网交换那样具有自我学习能力(动态路由协议确实存在,但它们通常是无循环的;你必须手动定义路由才能创建循环),部分原因是 IP 数据包具有“TTL”字段,它将最终减少到零并且数据包将被快速丢弃。