MAC 管理交换配置文件支持两种功能:MAC 发现和 MAC 地址更改。
MAC 地址更改功能允许虚拟机更改其 MAC 地址。连接到端口的虚拟机可以运行管理命令以更改其 vNIC 的 MAC 地址,并仍然在该 vNIC 上发送和接收流量。仅在 ESXi 上支持该功能,而在 KVM 上不支持。在默认 MAC 管理交换配置文件中,默认启用此属性。
MAC 学习提供到在一个 vNIC 后面配置多个 MAC 地址的部署的网络连接,例如,在嵌套 Hypervisor 部署中,ESXi 虚拟机在 ESXi 主机上运行,并且多个虚拟机在 ESXi 虚拟机中运行。如果未使用 MAC 发现,在 ESXi 虚拟机的 vNIC 连接到交换机端口时,其 MAC 地址是静态的。在 ESXi 虚拟机中运行的虚拟机没有网络连接,因为其数据包具有不同的源 MAC 地址。通过使用 MAC 学习,vSwitch 检查来自 vNIC 的每个数据包的源 MAC 地址,学习 MAC 地址并允许数据包通过。如果在特定时间段内未使用发现的 MAC 地址,则会将其移除。无法配置该到期属性。
如果 MAC 地址已是主机的已知静态 MAC 地址,则 MAC 学习不会学习该地址。例如,MAC 地址属于另一个虚拟机的 vNIC、vmknic 或 VDR(虚拟分布式路由器)端口。无论现有静态 MAC 地址端口的 VLAN 或 VNI,以及新 MAC 地址所属的端口如何,都是如此。
注意:VDR 端口始终配置为可在任何可能的 VNI 上发送和接收流量(类似于中继 VLAN 端口配置为 0-4094 时的行为)。因此,无法通过 MAC 学习在任何覆盖网络分段上使用 VDR 端口 MAC 地址。
MAC 学习还支持未知单播泛洪。通常,在端口收到的数据包具有未知目标 MAC 地址时,将丢弃该数据包。在启用未知单播泛洪的情况下,端口将未知单播流量泛洪到交换机上启用了 MAC 学习和未知单播泛洪的每个端口。默认情况下,将启用该属性,但只有在启用 MAC 发现时才启用。
- 丢弃 - 来自未知源 MAC 地址的数据包被丢弃。此 MAC 地址的入站数据包将被视为未知单播。仅当端口启用了未知单播泛洪时,端口才会接收数据包。
- 允许 - 尽管不会学习该地址,但会转发来自未知源 MAC 地址的数据包。此 MAC 地址的入站数据包将被视为未知单播。仅当端口启用了未知单播泛洪时,端口才会接收数据包。
如果启用 MAC 学习或 MAC 地址更改以提高安全性,还要配置 SpoofGuard。