所以我一直在努力完成我的 MCSA,我现在在 412。无论如何,NLB(网络负载平衡)......我正在努力解决它的工作原理。
组播:
集群中的每个节点都保留自己的 mac 和 IP 地址,同时还使用集群定义的 IP 和 Mac 地址。
我很难理解交换机知道的 MAC 地址。我的印象是交换机只知道集群 MAC 地址。然而,当我使用wireshark 并查看以太网标头时,源地址是节点个人mac 地址。我以为交换机会从源头记录 MAC?然而,这个多播 NLB 似乎另有说明。
有人对我有任何指示吗?
所以我一直在努力完成我的 MCSA,我现在在 412。无论如何,NLB(网络负载平衡)......我正在努力解决它的工作原理。
组播:
集群中的每个节点都保留自己的 mac 和 IP 地址,同时还使用集群定义的 IP 和 Mac 地址。
我很难理解交换机知道的 MAC 地址。我的印象是交换机只知道集群 MAC 地址。然而,当我使用wireshark 并查看以太网标头时,源地址是节点个人mac 地址。我以为交换机会从源头记录 MAC?然而,这个多播 NLB 似乎另有说明。
有人对我有任何指示吗?
微软的多播 NLB 的使用在很多网络中并不是很流行,这是一个很好的理由——它是一种破坏了几个基本操作实践和 RFC 的黑客行为。
所以 - 在正常情况下,多播意味着数据包的目标 IP 在 224.0.0.0/4 范围内的某个地方,这个范围被分成各种众所周知的块。反过来,这些 IP 多播组地址映射到某些 MAC 地址。 这是一篇描述如何实现映射的 Microsoft 文章。
无论如何 - 我们通常拥有的是流量被发送到映射到多播 MAC 地址的多播组 IP。该交换机足够智能,可以窥探 Internet 组管理协议 (IGMP),这是各个终端主机如何表示他们想要接收哪些多播组的方式。当交换机看到 IGMP 加入请求时,它会对端口进行编程,以便向下复制到多播 MAC 的任何数据包。这意味着在具有 100 台主机的网络上,如果只有 10 台表示对该多播组感兴趣,那么绑定到该组的流量仅显示在这 10 个端口上(...与广播情况下的全部 100 个相比)。
微软打破这一点的地方在于他们需要将单播IP 映射到多播MAC。它们还要求底层交换机要么关闭 IGMP 侦听(......从而导致集群数据包被发送到子网中的每个主机,无论它们是否需要它们)或将此地址静态映射到由所占用的物理端口他们的服务器(提示:这在很多硬件中不受支持,并且也非常可怕地破坏了 vswitch 和虚拟化)。
所以 - 从本质上讲,微软编写了一种非常非常糟糕和可怕的方法,它要求底层网络层打破各种公认的网络工作方式的最佳实践。值得称赞的是,他们也有一些较新的模式(基于 IGMP),这些模式并没有那么糟糕,但最终,现在在新安装中看到人们退回到使用某种外部设备的基于单播的模式更为常见负载均衡器以更理智的方式实现相同的效果。
我不知道微软是如何描述它的,但在现实世界中,交换机会查看源 MAC 地址,以使用它所在的 MAC 地址和接口来更新它的 MAC 地址表。然后它在它的 MAC 地址表中查找它有一个用于目标地址的接口。
组播是广播的一种特殊形式,组播MAC地址只是目的MAC地址。发送帧的主机将使用自己的 MAC 地址作为源地址,而不是多播地址。