可以进行与广播 224.0.0.1 的通信以到达本地子网之外的主机吗?

网络工程 ip IPv4 协议论 多播 最佳实践
2022-02-13 02:39:32

我被问到一个问题,IP 主机是否可以使用多播来寻址 224.0.0.1 以到达(并获得响应)另一个不在本地网段上但在另一个子网上可通过ip 路由器(仅执行“常规”路由而无需防火墙、应用策略等)。

例如:主机 192.168.1.100/24 可以通过其公共网关路由器(每个网络上的 IP 地址分别为 192.168.1.1/24 和 192.168.222.1/24)通过 IP 单播到达 192.168.222.100/24。

因此,鉴于上面的示例,我被问到的问题是是否可以配置网关,以便 192.168.1.100 仅通过向 224.0.0.1 发送多播流量就可以到达 192.168.222.100?

(抱歉,我无法提供有关此问题出现的背景的任何详细信息,除非它与互联网完全隔离)

根据我对网络的理解,我准备提供的答案是:

“不,这是不可能的,如果以某种方式使其成为可能,它将破坏每个人都希望保留的关键网络合同,所以甚至不要尝试。你的选择是:

  • 重新设计网络,使两台主机出现在同一网段
  • 在它们之间使用单播。是的,主机 192.168.1.100必须明确知道 192.168.222.100 的 IP 地址(直接或通过名称查找),因此如果不存在,您必须配置/实施/架构该意识
  • 使用旨在在子网之间路由的专用多播地址。同样,这必须在您的解决方案中实现/配置/架构,是的,您也必须相应地配置路由器

不要尝试将 224.0.0.1(用于相同子网多播通信)用于它最初不是为它设计的东西(与本地子网之外的主机进行多播通信)”

这种对第三者的回应合理吗?还是我在多播方面错过了一些基本的东西,或者错过了现代路由器和服务器中可用的一些聪明技术?

我有相当多的网络经验,但是多播是一个我几乎没有实际经验的领域,我根本不知道您可以(甚至应该)推动该特定技术多远。

然后我们有最佳实践的问题,以及您想在更大的图景中引入哪些技术、维护和经济复杂性/陷阱。仅仅因为您可以以某种方式使定向到 224.0.0.1 的流量到达您网络之外的主机,并不意味着从开发、架构和支持的角度来看这是一个好主意。

(注意,上面的IP是为了保护无辜而编造的,当然……)

1个回答

可以进行与广播 224.0.0.1 的通信以到达本地子网之外的主机吗?

首先,这是一个多播组,而不是广播地址。

接下来,多播地址位于本地网络控制块 ( 224.0.0.0/24) 中,并且发送到该块中的组的多播仅限于它们起源的网络。

因此,鉴于上面的示例,我被问到的问题是是否可以配置网关,以便 192.168.1.100 仅通过向 224.0.0.1 发送多播流量就可以到达 192.168.222.100?

不可以。如上所述,该范围内的多播不允许路由到不同的网络。请参阅RFC 5771,IANA IPv4 多播地址分配指南,第 4 节。本地网络控制块 (224.0.0/24)

4. 本地网络控制块 (224.0.0/24)

本地网络控制块中的地址用于未从链路转发的协议控制流量。这种类型的使用示例包括 OSPFIGP 所有路由器 (224.0.0.5) [RFC2328]。

另请参阅RFC 1112,IP 多播的主机扩展

地址224.0.0.0保证不分配给任何组,224.0.0.1分配给所有IP主机(包括网关)的永久组。这用于寻址直接连接网络上的所有多播主机。整个 Internet 上的所有主机都没有多播地址(或任何其他 IP 地址)

可以在网络之间配置组播路由,但这与单播路由有很大不同,它涉及IGMP和组播路由协议,例如PIM,并且组播流量路径中的所有路由器都必须配置组播路由。这就是为什么您不能在公共 Internet 上进行多播的原因。您可以使用隧道通过 Internet 将多播发送到不同的站点,但不能在 Internet 上进行多播。

在大多数情况下,您会在公司内的组织本地范围 ( ) 中使用多播组239.0.0.0/8,即使它涉及多个站点。IANA 维护IPv4 多播地址空间注册表