我正在设置一个小型 LAN(20 台左右的主机),其中有许多输出多播流量的设备。我可以选择它们的目标 IP 地址和端口号。LAN 上有 1-10 台计算机将订阅 0 到所有多播流。一些主机也会向一些设备单播。
一种选择是,对每个多播设备使用相同的目标 IP 地址,然后按端口号分隔流。这对用户来说可能是最简单的,因为他们只需要记住 1 个 IP 地址和一些端口号。但这样做的一个缺陷是,如果主机订阅了任何一个多播流,则所有多播流都会转到其以太网端口。这已通过 Wireshark 进行了验证。此外,IGMPv3 加入请求似乎不包含端口号信息(至少我们这样做的方式是这样的)。
另一个选择是使用不同的 IP 地址和相同的端口号。我认为这可能会扰乱系统中的交换机,所以我不想这样做。
最后一个选项是使用不同的 IP 地址和不同的端口号。这可能是最好的选择,但这意味着用户必须记住许多 IP 地址和端口号,并且会占用更多的 IP 池(这对我们的小型 LAN 来说不是问题)。
您能根据您的经验或最佳实践帮助我从这些选项中进行选择吗?
谢谢,
答案1
端口的概念发生在 L4(即 UDP)上,并且 IGMP 或您环境中的路由器和交换机都对此不感兴趣。因此,如果您在单个组上运行所有多播流量,但按端口区分流,则加入该组的所有主机都将接收与该组相关的所有流量(如果您使用 IGMPv3 和 SSM,则加上或减去源列表)。我怀疑这不是您想要实现的。
因此,对于网络规划而言,数字很重要,端口则不重要。话虽如此,熟悉多播组地址到 MAC 地址的映射还是明智的,因为实际上需要记住一些重叠。查看此链接来自思科关于其工作原理以及对整个多播主题的出色处理。
老实说,总体而言最好的选择是使用某种查找/映射系统,这样用户就不必记住地址或端口号。