路由器是否转发广播流量?

网络工程 播送
2021-07-19 05:57:34

考虑 10.0.0.0/24 上的主机向 10.0.0.255 和 10.255.255.255 发送数据包。

在第一种情况下,其子网上的所有主机都应该收到数据包,但在后一种情况下,整个网络会收到数据包吗?路由器会转发这样的数据报吗?如果不是,规则的例外是什么?

3个回答

IPv4使用受限广播(到255.255.255.255)和定向广播(与设置为所有主机位子网地址1,例如,10.0.0.255对于10.0.0.0/24子网)。

有限的广播通常是不可路由的,也不会被转发。

定向广播原则上是可路由的,但默认情况下不会转发。但是,许多路由器可以配置为转发它们。通常,管理员将定向广播转发限制为特殊情况,例如 LAN 唤醒(通过源 IP、传输协议和端口、目标子网等)。

考虑 10.0.0.0/24 上的主机向 10.0.0.255 和 10.255.255.255 发送数据包。

10.0.0.255 是主机子网的定向广播地址并作为广播发送。

10.255.255.255位于主机子网之外,因此它被发送到相应的网关。通常,它实际上被转发,直到最后一跳(例如10.255.255.1/24)发现它是定向广播并丢弃它。

任何中间跃点实际上都不能决定它是否是广播(目的地甚至可能不支持广播),除非它是专门以这种方式配置的。

如果中间路由器有到目标子网的特定路由,它可以决定丢弃明显的广播

首先:路由器不会转发广播流量。

从这一点上讲,我正在谈论以太网上的 IPv4,因为无论是否存在广播之类的东西,不同的技术都有不同的想法。在这种情况下,这也适用于 WLAN,因此它可能适用于您的场景。

首先要区分两种广播地址:广播​​地址255.255.255.255和网络广播地址10.0.0.255为10.0.0.0/24。10.255.255.255 不是 10.0.0.0/24 的广播地址。它甚至不属于网络。实际上,您甚至无法确定它真的是一个广播地址(但通常是这样)。当不同网络上的客户端向地址 10.0.0.255 发送数据包时,它无法知道该地址是广播地址。实际上,只有直接连接到 10.0.0.0/24 的路由器才知道它是网络广播地址。一般来说,路由器单播转发传入的数据包,这些数据包以网络广播地址作为目的地,除非它们直接连接到该网络/子网,因此知道目标地址是广播地址。这是因为您可以轻松地使属于目标网络的所有以太网链路饱和,因为交换机会将数据包(帧)广播到属于该(第 2 层)网络的所有端口。

现在想象一下 255.255.255.255 的情况。如果它被愉快地路由会发生什么?它最终会出现在任何可通过路由到达的网络中。所以这是一个明显的例外。

例外规则是:仅转发将目标以太网地址设置为路由器传入接口地址的数据包。不要转发您知道它们将在目标网络上广播的数据包。

10.0.0.0/24 上的主机知道 10.0.0.255/24 通常是网络广播。它将目的以太网地址设置为定义为广播的地址,全是FF。这当然不是路由器关心的转发地址。

有一些机制用于在选定网络之间转发选定广播,例如用于通过冲突域边界传播 UPnP。但是,这些通常是代理的。

您必须对网络 IP 与广播 IP 有很好的了解。

网络地址是网络的第一个IP地址,它不会是随机的IP地址,它有助于识别网段。同一网络地址部分的所有地址都在同一网段。根据您的示例10.0.0.0/24是网络地址,网络地址部分10.0.0. last 0(zero)表示网段中的主机数。

广播地址是最后一个地址,用于寻址网络中的所有节点。

在你的情况下10.0.0.255是一个广播地址。10.255.255.255与您的网络无关,因为您的子网是/24. /24意味着,当地址为二进制格式时,您不得更改地址中的 24 位。

因此10.255.255.255与您的网络无关。您不会收到来自该 IP 地址的任何流量。