路由器和 vlan 为何以及如何破坏广播域?

网络工程 VLAN 播送
2021-07-07 18:06:20

每个人都说路由器(和 vlan)会破坏广播域,但似乎没有人深入探讨为什么会这样。路由器逻辑是什么?假设我的局域网中有三个路由器,一个主路由器,另外两个仅桥接到第一个(不创建具有不同地址的不同网络,因此它们不充当网关)。假设主路由器发出广播。数据包被封装成一个帧,交换机将全部转发广播。但是这些其他路由器,在它们后面我可能有更多的交换机和设备,会做同样的事情吗?

我想了解的是:路由器是否仅在充当网关并在网络之间实际路由时才破坏广播域,在这种情况下,它们将通过解封装帧并查看数据包标头中的地址来丢弃广播(?) ,或者它们是否总是破坏广播域,即使它们只是更像交换机,用于端口,网关后面?

Vlan 究竟是如何破坏广播域的?如果 vlan 抽象了底层交换机并在逻辑上将它分成两半,为什么由此产生的 vlan 会破坏广播域?即使它们被认为是不同的交换机,互连的交换机不转发广播吗?它是如何在这里工作的?

提前谢谢

4个回答

让我们使用三个网络(红色/橙色/蓝色)的拓扑来讨论它

在此处输入图片说明

一个路由器的主要功能是促进通信之间的IP网络这意味着如果 A 要与 D 或 B 通话,则必须使用路由器。

但是,根据定义广播 是要发送给发送方本地网络中的每个人的消息

如果主机 A 发送广播,则主机 A 意味着只将数据包传送到主机 C 和左边的路由器——而没有其他人根据定义,路由器不需要也不应该将广播转发到任何地方。

因此,与其说路由器“破坏”了广播域,不如说路由器广播域的自然边界它类似于作为房间自然边界的墙。

如果路由器仅仅是它的接口,而不是实际的路由之间的“切换”,然后就可以放心地认为路由器作为行为就像一个开关-谁的主要目的是为了方便沟通WITHIN网络因此,交换机不会以任何方式限制广播,实际上会通过将广播泛洪到每个端口来帮助它


编辑:忘了你的 VLAN 问题:

Vlan 究竟是如何破坏广播域的?如果 vlan 抽象了底层交换机并在逻辑上将它分成两半,为什么由此产生的 vlan 会破坏广播域?即使它们被认为是不同的交换机,互连的交换机不转发广播吗?它是如何在这里工作的?

VLAN 只是将一台交换机分解为多个“虚拟”交换机。上面带有三个“交换机”的图像也可以表示为两个具有三个 VLAN 的物理交换机:

在此处输入图片说明

事实上,您可以将此图像视为“物理拓扑”,将其上方的图像视为“逻辑拓扑”。它们本质上是相同的拓扑结构。

在此图中,如果交换机在 VLAN 10 端口上接收流量(包括广播),它们只会将该流量发送到其他 VLAN 10 端口——这是根据 VLAN 所做的定义。

因此,无论是只有 1 个交换机还是连续的多个交换机,交换机仍然只促进网络内的通信,这意味着在任意数量的交换机之间,您仍然拥有一个 IP 网络。


免责声明:上面的图片和链接是我自己的博客。该博客没有货币化。我不会从您的访问中获利,而是提供链接以帮助读者

在此处定义广播域可能会有所帮助。简单来说,当主机生成广播帧时,该帧在网络中可以到达而不会被网络设备丢弃的所有节点都是一个广播域的一部分。

路由器不转发广播数据包,例如:假设路由器有 2 个接口连接到 2 台主机。如果接口1收到广播帧,路由器将不会将该帧转发出另一个接口。因此,路由器endbreak广播域。

你为什么问?几个原因...

  1. 广播帧最常见的用例之一是地址学习(例如 ARP)。当您从主机发送帧时,您需要下一跳(即下一个第 3 层设备)的目标 MAC 地址。需要强调的是,该数据包可能是发往 100 跳之外的主机,我们仍然将目标 MAC 地址放在NEXT第 3 层跳。因此,我们真的不需要广播帧来跨广播域,它们的使用仅限于 LAN 本身(哦,而且 LAN 也是一个广播域 :))

  2. 但是你可以争辩说,即使没有真正使用跨路由器转发广播帧,有什么危害?首先,这就是网络的设计方式,因此会破坏第 3 层的原则。更重要的是,它们会造成巨大的网络过载。如果所有路由器都开始从所有接口转发所有帧,想象一下它可能在网络中造成的过载量。

路由器不会破坏广播域。它们在它们之间转发单播。

路由器通过数据包的目标地址以及如何匹配其路由表来转发数据包。

切换转发(洪水)广播。路由器没有(除非它是定向广播并且路由器被明确配置为转发它)。

VLAN 将网络划分为单独的广播域。这样您就可以隔离段并控制它们之间所需的路由器上的通信。您可以使用单独的交换机,但 VLAN 允许您为所有 VLAN 共享交换机和它们之间的链路,但仍保持每个交换机独立。

“破坏广播域”一词起源于总线连接或重复以太网的时代,在该时代,您可以通过将网桥/交换机插入线路中来“破坏”大型冲突域(L1 段)。因此,广播域(L2 段)通过由路由器替换交换连接而被“破坏”,在该点有效地停止广播和直接通信。

路由器为什么以及如何破坏广播域?(并且交换机不会,除非他们使用 VLAN 等)。

答案其实很简单,归结为协议实现和路由器/交换机应该执行的网络工作功能。

我冒昧地将这张来自 TCP/IP 插图的图像包括在内,vol.1。 网络节点及其实现的协议

如上所示,终端系统(主机)实现整个协议栈,直到应用层,而交换机实现(并包括)第 2 层数据链路,而路由器实现(并包括)第 3 层。

路由器和交换机作为抽象

现在,有人可能会指出,例如存在所谓的第 3 层交换机。对此的答案是,最好将“路由器”和“交换机”视为抽象而不是特定的网络设备。

我的意思是,路由器由它执行的功能来识别——在第 3 层路由和转发——而不是通常代表路由器的物理设备。为了详细说明这一点(否则我可能只会把水搅浑),例如,运行 OpenWrt 的路由器在其协议实现方面显然不限于第 3 层,因为它可以运行 Linux 终端系统通常可以运行的大部分内容。

此外,所有路由器通常都有一个 Web 界面,这意味着它们运行一个 Web 服务器,其中包含传输层和应用程序层。交换机有时也会有一个 Web UI。

但这是误导。虽然交换机和路由器可能实现传输层和应用层,但它们与它们的角色无关:分别是交换和路由。这些仅用于管理目的等等——这就是我将交换机和路由器视为功能抽象的意思。端系统可以进行 IP 转发和路由 - 在这种情况下,即使它是一个端系统,它也像路由器一样工作 - 它执行路由器的功能。

我之所以谈论这个,是因为您似乎有正确的想法(“充当网关”等,但还没有完全掌握它)。

一个路由器充当的桥梁,是,在这种情况下,所有意图和目的不是路由器,而是一个桥梁,因为这是功能它执行。因为只有一个“路由器”(一个实际的路由器,或者一个充当一个的设备——同样,它也可能是一个实现路由功能的终端系统)破坏了一个广播域,你假设它们充当了桥接器,那么没有,他们不会破坏广播域。

路由器首先如何“破坏”广播域?

假设我们有一个带有两个接口的路由器,在第 3 层寻址为 10.10.10.0/24 和 192.168.1.0/24,有 4 个主机通过有线以太网连接到它。主机 A 是 10.10.10.10。

让我们以主机 A 发出广播数据包(携带 ARP 或其他任何内容)的场景为例:

  • hostA 构建数据包,并最终将其封装到一个数据链路帧中,该帧由 NIC 推出,寻址所有 Fs(以太网广播)

  • 帧到达路由器,该帧是数据链路层的广播帧 - 所有 Fs。接下来发生的事情至关重要。如果这是一个交换机,被确定为广播的帧将被转发出所有接口,除了它源自的接口。但由于这是一个路由器,帧被解封装并向上传递到网络层。IP 广播是如何寻址的?它将是 10.10.10.255 或 255.255.255.255(指当前网络),这将取决于源地址 - 10.10.10.10/24。这意味着路由器将确定广播是针对 10.10.10.0/24 网络的,这就是它转发数据包的地方,将它发送到与该网络关联的所有接口

这意味着即使连接到同一路由器的两个设备在数据链路层可达,并且在数据链路层属于同一广播域的一部分,但它们在网络层可能并非如此。作为路由器的路由器总是会解封装数据包并在第 3 层查看其报头,这可能表明上述两个设备实际上不是同一网络的一部分,因此广播受到限制。

这就是路由器“破坏”广播域的方式。