我被问到一个问题,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是为了保护无辜而编造的,当然……)