如果基于同一个物理 NIC 配置了多个 VNIC,则可以将 vswitchmode 数据链路属性设置为 remote,以便在外部通过交换机发送网络通信。不过,必须将外部交换机配置为反射中继模式。启用了反射中继的交换机配置特定于交换机类型。有关更多信息,请参阅交换机制造商的文档。
下图显示了一个样例系统,该系统具有连接到外部交换机的 10G 以太网链路并且托管着为同一客户运行服务的两个区域 (VM)。
图 4-3 区域之间的内部通信
因为 Zone1 和 Zone2 这两个区域为同一客户运行服务,所以这两个区域可以在内部通信,而无任何限制。因此,可以在内部交换 VNIC1 与 VNIC2 之间的通信。
您将检查物理 NIC net5 的 vswitchmode 属性的现有值,如下所示:
# dladm show-linkprop -p vswitchmode net5 LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE net4 vswitchmode rw local local local local,remote,auto
对于 VALUE 和 EFFECTIVE 字段,该输出显示了 local。此值表示区域之间的通信是内部的。
在此示例中,假设 Zone1 和 Zone2 两个区域需要为不同客户运行服务,并且外部交换机配置了访问控制列表 (access control list, ACL),该列表控制这些服务的网络通信。因此,它们不能在内部进行通信,VNIC1 与 VNIC2 之间的网络通信必须通过交换机在外部进行交换。
因而,您必须通过将 vswitchmode 属性设置为 remote 来禁用区域之间的内部通信,如下所示:
# dladm set-linkprop -p vswitchmode=remote net5
# dladm show-linkprop -p vswitchmode net5 LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE net5 vswitchmode rw remote remote local local,remote,auto
因为您将 vswitchmode 属性设置为 remote 来禁用 VNIC 的内部通信,所以将通过外部交换机发送 VNIC 之间的网络通信,如下图所示。
图 4-4 使用外部交换机的区域间通信