本地广播与定向广播到底有什么区别?

存在两种类型的广播 IP 地址:本地广播IP 地址和定向广播IP 地址,在当前的网络世界中,它们大多提供相同的功能,但是其中一个包含一个额外的功能,在本文中,我们将清楚地说明这两个概念,并向您展示它们的功能。

我们将使用此拓扑来讨论这些概念:

首先,我们必须先了解一下术语“广播”:广播是要传送给本地网络上的每个人的任何帧或数据包。

广播大致与单播消息相反,单播是从一台主机到另一台主机的通信,单播有时被称为一对一通信,而广播可以被认为是一对多通信

广播的定义提到了帧和数据包,这是因为术语广播有第 2层和第 3 层方面的内容。

第 2 层广播

第 2 层广播是目标 MAC 地址为的帧为FFFF.FFFF.FFFF

这是专门为广播帧保留的 MAC 地址,它有时也显示为ff:ff:ff:ff:ff:ffff-ff-ff-ff-ff-ff这些都是显示“所有 F 的”MAC 地址的相同方式。

任何网络上的任何节点都可以简单地使用此目标 MAC 地址创建 L2 标头,以便将帧发送给本地网络上的每个人。

交换机知道,如果他们看到这个目标 MAC 地址,他们应该自动将帧溢出所有接口(接收帧的接口除外)。

请记住,设置目标 MAC 地址的是帧的发送方,因此,帧的发送者决定了将特定帧传递给本地网络上的每个人还是传递给网络上的单个节点。

第 3 层广播

与 L2 广播类似,第 3 层广播只是一个特殊的 IP 地址设置为特定数据包的目标 IP 地址。

然而,与 L2 广播不同的是,对于用作第 3 层广播的目标 IP 地址的内容,有两种不同的选择。

这两个选项是Local Broadcast和Directed Broadcast(有时也称为Targeted Broadcast)。

本地广播

本地广播 IP地址是:255.255.255.255

无论特定主机位于何种 IP 网络上,该主机始终可以使用该 IP 地址向本地网络上的每个节点发送数据包。

在我们的拓扑中,主机 1 可以向 IP 地址发送一条消息,以便255.255.255.255与其本地网络上的其他人通话。

请注意,这也包括路由器,由于 R1 在10.1.1.0/24网络中有一个 IP 地址,因此它是主机 1 的本地网络的成员。

Host1# ping 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 56 data bytes
64 bytes from 10.1.1.11: seq=0 ttl=64 time=0.044 ms
64 bytes from 10.1.1.33: seq=0 ttl=64 time=0.944 ms (DUP!)
64 bytes from 10.1.1.22: seq=0 ttl=64 time=1.108 ms (DUP!)
64 bytes from 10.1.1.1: seq=0 ttl=255 time=1.324 ms (DUP!)
^C
--- 255.255.255.255 ping statistics ---
1 packets transmitted, 1 packets received, 3 duplicates, 0% packet loss
round-trip min/avg/max = 0.044/0.855/1.324 ms
Host1#

主机 1 向其自身10.1.1.11、主机 3 10.1.1.33、主机 2 10.1.1.22 和路由器10.1.1.1发送了 ping255.255.255.255 并收到了响应。

这是数据包在网络上的样子:

请注意目标 IP 地址是255.255.255.255,目标 MAC 地址是ff:ff:ff:ff:ff:ff,这使得这个数据包既是L2 广播又是 L3 广播。

在抓包窗口中,我们可以看到主机 3、主机 2 和路由器的响应,但是我们看不到主机 1 的响应——该数据包只是在内部发送,实际上从未到达线路。

此外,请注意 Wireshark 将该数据包正确标记为broadcast数据包——同样,发送到255.255.255.255的任何内容都是广播。

为了便于对比,下面是Host 1和Host 3之间单播ping的抓包:

请注意,L2 源和目标是属于主机 1 ee:ee:ee:11:11:11 和主机 3 ee:ee:ee:33:33:33的 MAC 地址,当然,L3 源和目标是属于主机 1 10.1.1.11和主机 3 10.1.1.33的 IP 地址。

定向广播

定向广播 IP 地址就是所谓的每个子网的广播 IP,要找到这个 IP 地址,您必须进行一些子网划分。

与上述本地广播非常相似,任何主机都可以使用定向广播 IP 与其本地网络上的每个主机通话。

主机 1 具有网络10.1.1.11上的 IP 地址10.1.1.0/24,因此,此 IP 子网的广播 IP 地址为10.1.1.255

主机 1 可以使用此 IP 地址向其本地网络上的其他所有人发送消息,就像上面的本地广播一样:

Host1# ping 10.1.1.255
PING 10.1.1.255 (10.1.1.255): 56 data bytes
64 bytes from 10.1.1.11: seq=0 ttl=64 time=0.046 ms
64 bytes from 10.1.1.33: seq=0 ttl=64 time=0.615 ms (DUP!)
64 bytes from 10.1.1.22: seq=0 ttl=64 time=0.835 ms (DUP!)
64 bytes from 10.1.1.1: seq=0 ttl=255 time=1.261 ms (DUP!)
^C
--- 10.1.1.255 ping statistics ---
1 packets transmitted, 1 packets received, 3 duplicates, 0% packet loss
round-trip min/avg/max = 0.046/0.689/1.261 ms
Host1#

主机 1 向其自身10.1.1.11、主机 3 10.1.1.33、主机 2 10.1.1.22和路由器10.1.1.1发送了 ping10.1.1.255 并收到了响应。

这是数据包在网络上的样子:

注意目标 IP 地址是10.1.1.255,目标 MAC 地址是ff:ff:ff:ff:ff:ff

Wireshark 对这些数据包的分析揭示了两个有趣的细节:

首先,你我都知道这10.1.1.25510.1.1.0/24网络的广播 IP,但是 Wireshark 未能像在前面的示例中对本地广播所做的那样对其进行标记。

原因是 Wireshark 不知道这个捕获来自带有/24掩码的网络,因此,Wireshark 无法推断出这10.1.1.255是一个广播 IP。如果掩码是/22,则广播 IP 将是10.1.3.255,并且 IP 10.1.1.255 将是一个完全有效的主机地址。

其次,注意 ICMP 标头上的黄色背景,这是 Wireshark 指示“专家信息”发出警告,因为没有找到对 ICMP 回显请求的响应。

Wireshark 看到发送到 10.1.1.255的回显请求,因此正在寻找来自 10.1.1.255的响应,你我都知道这不是一个可以回应的真正的主人。

至此,我们已经证明主机可以使用本地广播IP 或定向广播IP与其本地网络上的每个节点通信。

这就提出了问题,如果这两种类型的广播执行相同的功能,为什么我们有两种不同类型的 L3 广播?

答案是:Directed Broadcast 可以做 Local Broadcast 做不到的事情,定向广播可用于与外部网络上的每个节点通话。

定向广播到外部网络

每个 IP 网络都有自己的广播 IP。因此,主机可以使用外部网络的广播 IP 地址将广播定向到该外部网络中的每个节点,因此,术语定向广播(或有时有针对性的广播)。

在我们的拓扑中,主机 1 可以使用 IP 地址与网络10.3.3.127中的每台主机10.3.3.0/25通信:

为了进行比较,我想先向您展示从主机 1 到主机 6 的单播 ping:

Host1# ping 10.3.3.66
PING 10.3.3.66 (10.3.3.66): 56 data bytes
64 bytes from 10.3.3.66: seq=0 ttl=61 time=3.792 ms
^C
--- 10.3.3.66 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 3.792/3.792/3.792 ms

在网络上,这是在 Hub1 和 R1 之间捕获的内容:

源 IP 是10.1.1.11(主机 1),目标 IP 是10.3.3.66(主机 6),这是 L3 标头,在整个行程中大部分内容将保持不变。

离开主机 1 时的 L2 标头具有 (Host 1) 的源 MAC 地址和(R1)ee:ee:ee:11:11:11的目标 MAC 地址,ee:ee:10:11:11:11这个L2 报头将被丢弃并在路径的每一跳中重新生成。

在 R3 和 SW2 之间捕获的相同数据包如下所示:

请注意 L3 标头未更改。但是 L2 报头现在包括ee:ee:10:33:33:33(R3) 的源 MAC 和ee:ee:ee:66:66:66(主机 6) 的目标 MAC。

现在让我们测试针对外部网络的定向广播,我们将让主机 1 ping IP 地址10.3.3.127。请记住,网络上有四个节点10.3.3.0/25,我们应该期待每个节点的响应。

Host1# ping 10.3.3.127
PING 10.3.3.127 (10.3.3.127): 56 data bytes
64 bytes from 10.2.3.3: seq=0 ttl=253 time=1.171 ms
64 bytes from 10.3.3.66: seq=0 ttl=61 time=3.683 ms (DUP!)
64 bytes from 10.3.3.55: seq=0 ttl=61 time=7.340 ms (DUP!)
64 bytes from 10.3.3.44: seq=0 ttl=61 time=9.838 ms (DUP!)
^C
--- 10.3.3.127 ping statistics ---
1 packets transmitted, 1 packets received, 3 duplicates, 0% packet loss
round-trip min/avg/max = 1.171/5.508/9.838 ms

正如预期的那样,我们收到了四个对 ping 的响应:路由器 3 ( 10.2.3.3)、主机 6 ( 10.3.3.66)、主机 5 ( 10.3.3.55) 和主机 4 ( 10.3.3.44)。

奇怪的是,R3 从 IP 地址做出响应,R3 10.2.3.3 在 R2 和 R3 之间链路上的 IP 地址,我本来希望这个响应来自 IP 地址10.3.3.3,我不确定这是错误还是预期行为,或者仅仅是思科对定向广播的响应实施,无论哪种方式,此响应确实来自 R3。

线路上的数据包揭示了一些有趣的细节,这是 Hub1 和 R1 之间链路的捕获:

需要指出的最重要的事实是这个数据包是一个单播数据包,请注意,L2 和 L3 标头的构造与 Host1 和 Host6 之间的单播 ping 相同(当然,目标 IP 地址除外)。

这突出了一个重要事实:主机 1 不知道它正在与定向广播 IP 地址通话,你我知道,因为我们可以看到拓扑图;但从主机 1 的角度来看,10.3.3.127 它只是外部网络上的一个 IP 地址,主机 1 只是简单地遵循与外部网络上的 IP 对话的所有常规规则。

实际上,数据包作为常规单播数据包从 Host1 传输到 R1,从 R1 传输到 R2,然后从 R2 传输到 R3 ,唯一知道IP 地址10.3.3.127 是目标子网的广播 IP 的路由器是 R3,R3 另一侧的捕获揭示了 R3 对其接收到的单播数据包做了什么:

注意目标 MAC 地址是ff:ff:ff:ff:ff:ff,目标 IP 地址是255.255.255.255,现在这是 L2 和 L3 广播。

R3 知道这个数据包被发送到定向广播 IP 地址,将它收到的单播数据包转换为广播数据包,这就是主机 1 发送的单个单播数据包如何传送到网络上的每个人。10.3.3.0/25

安全

虽然向外部网络上的每台主机发送数据包的功能看起来非常简洁,实际上,这通常被视为安全风险。

定向广播是在计算机网络出现之初发明的,当时互联网是一个更加友好的地方,那时,只要相信互联网上的其他用户不会滥用定向广播就足够简单了。

然而,随着 Internet 的发展,其他用户的继承信任消失了,目前几乎所有现代操作系统和路由器软件都忽略定向广播。

为了构建我们在本文中使用的实验室,我必须在路由器和 Linux 主机上明确启用响应和处理定向广播。

在 Cisco 路由器上,涉及此命令:

R3#  show run int eth0/0
!
interface Ethernet0/0
 mac-address eeee.1033.3333
 ip address 10.3.3.3 255.255.255.128
 ip directed-broadcast

在 Linux 主机上,这涉及将此文件的值从更改1为0:

Host1# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
0

我说这一切是因为在阅读本文后,有些人不可避免地会尝试 ping 外部网络的广播 IP,但很可能会失败。

如果您设身处地为网络管理员着想,这是有道理的,您不希望 Internet 上的某个随机用户能够向您网络上的每个主机发送 ping。

总结

在本文中,我们讨论了第 2 层广播和第 3 层广播的概念。当我们深入了解本地广播和定向广播(也称为定向 广播)的概念时,我们进一步解压缩了 L3 广播。总结这些定义:

  • 本地广播 IP:255.255.255.255
    • 可用于与本地网络上的所有人通话
  • 定向广播
    • 可用于与本地网络上的所有人通话
    • 可用于与外国网络上的所有人交谈

在本文中,我们向您展示了测试本地广播和定向广播的数据包捕获的屏幕截图,如果您想下载捕获文件并自己研究它们,可以从网盘中下载:

Capture_Hub1-to-R1:

链接:https://pan.quark.cn/s/3b0c23f04c33
提取码:QW8G

Capture_R3-to-Sw2:

链接:https://pan.quark.cn/s/e44ed5f0db0c
提取码:34UE

猜你喜欢

转载自blog.csdn.net/weixin_43025343/article/details/132357191