简介
本文档介绍Cisco Unified Computing System(UCS)中的专用VLAN(PVLAN)支持,这是Cisco UCS Manager(UCSM)版本1.4中引入的功能。 还详细说明了在UCS环境中使用PVLAN时的功能、注意事项和配置。
本文档适用于UCSM版本2.2(2C)及更早版本。在版本2.2(2C)之后的版本中,对UCSM进行了更改,支持ESXi DVS。对于PVLAN NIC,标记的工作方式也发生了变化。
先决条件
要求
Cisco 建议您了解以下主题:
- UCS
- Cisco Nexus 1000 V(N1K)
- VMware
- 第2层(L2)交换
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
理论
专用VLAN是配置为与同一专用VLAN中的其他端口隔离L2的VLAN。属于PVLAN的端口与一组通用的支持VLAN关联,这些支持VLAN用于创建PVLAN结构。
有三种类型的 PVLAN 端口:
- 混杂端口与所有其他PVLAN端口通信,并且是用来与PVLAN外部设备通信的端口。
- 隔离端口与同一PVLAN中的其他端口(混杂端口除外)具有完全的第2层分离(包括广播)。
- community port可以与同一PVLAN中的其他端口以及混杂端口通信。在L2中,团体端口与其他团体中的端口或隔离PVLAN端口隔离。广播只传播到团体中的其他端口和混杂端口。
请参阅RFC 5517,Cisco Systems的专用VLAN:在多客户端环境中实现可扩展的安全性,以便了解PVLAN的理论、操作和概念。
UCS中的PVLAN实施
UCS非常类似于Nexus 5000/2000架构,其中Nexus 5000类似于UCS 6100,Nexus 2000类似于UCS 2104交换矩阵扩展器。
UCS中PVLAN功能的许多限制是由Nexus 5000/2000实施中的限制引起的。
需要记住的要点包括:
- UCS中仅支持隔离端口。在合并N1K后,您可以使用社区VLAN,但混杂端口也必须位于N1K上。
- 不支持混杂端口/中继、社区端口/中继或隔离中继。
- 混杂端口需要位于UCS域之外,例如上游交换机/路由器或下游N1K。
目标
本文档介绍适用于采用UCS的PVLAN的多种不同配置:
- 上游设备上带有混杂端口的隔离PVLAN。
- N1K上的隔离PVLAN,上游设备上有混杂端口。
- N1K上的隔离PVLAN,在N1K上行链路端口配置文件中包含混杂端口
- N1K上的社区PVLAN,在N1K上行链路端口配置文件中包含混杂端口。
- VMware分布式虚拟交换机(DVS)混合端口上的隔离PVLAN。
- VMware DVS交换机上的社区PVLAN DVS上的混杂端口
配置
网络图
分布式交换机的所有示例的拓扑是:

没有分布式交换机的所有示例的拓扑是:

vSwitch上的PVLAN:上游设备上带有混杂端口的隔离PVLAN
在此配置中,您将PVLAN流量通过UCS传递到上游的混合端口。由于不能在同一个vNIC上同时发送主要和辅助VLAN,因此每个PVLAN的每个刀片需要一个vNIC,以便传输PVLAN流量。
UCS中的配置
此过程介绍了如何创建主要和任何隔离VLAN。
注意:本示例使用266作为主用设备,166作为隔离设备;vlan ID将由站点确定。
- 要创建主VLAN,请单击Primary作为共享类型,然后输入VLAN ID266:

- 要创建隔离VLAN,请单击Isolated作为共享类型,输入VLAN ID166,然后选择VLAN 266(266)作为主VLAN:

- 要将VLAN添加到vNIC,请点击VLAN 166的Select复选框,然后点击关联的Native VLAN单选按钮。

仅添加隔离VLAN,必须将其设置为主要,每个vNIC只能有一个隔离VLAN。由于本征VLAN在此定义,请勿在VMware端口组上配置VLAN标记。
配置上游设备
以下过程介绍了如何配置Nexus 5K以将PVLAN传递到混杂端口所在的上游4900交换机。虽然并非在所有环境中都必需,但在必须将PVLAN通过另一台交换机时,可使用此配置。
在Nexus 5K上,输入以下命令,并检查上行链路配置:
- 打开PVLAN功能:
Nexus5000-5(config)# feature private-vlan
[an error occurred while processing this directive]
- 将VLAN添加为主用和隔离:
Nexus5000-5(config)# vlan 166
Nexus5000-5(config-vlan)# private-vlan isolated
Nexus5000-5(config-vlan)# vlan 266
Nexus5000-5(config-vlan)# private-vlan primary
[an error occurred while processing this directive]
- 将VLAN 266与隔离VLAN 166关联:
Nexus5000-5(config-vlan)# private-vlan association 166
[an error occurred while processing this directive]
- 确保配置所有上行链路以中继VLAN:
- interface Ethernet1/1
- 描述与4900的连接
- switchport mode trunk
- speed 1000
- interface Ethernet1/3
- 描述FIB端口5的连接
- switchport mode trunk
- speed 1000
- interface Ethernet1/4
- 描述与FIA端口5的连接
- switchport mode trunk
- speed 1000
在4900交换机上,执行这些步骤,并设置混杂端口。PVLAN在混杂端口结束。
- 如果需要,打开PVLAN功能。
- 按照在Nexus 5K上执行的操作创建并关联VLAN。
- 在4900交换机的出口端口上创建混杂端口。从此时起,VLAN 266上可以看到来自VLAN 166的数据包。
Switch(config-if)#switchport mode trunk
switchport private-vlan mapping 266 166
switchport mode private-vlan promiscuous
[an error occurred while processing this directive]
在上游路由器上,仅为VLAN 266创建子接口。在此级别,要求取决于您使用的网络配置:
- interface GigabitEthernet0/1.1
- encapsulation dot1Q 266
- ip address 209.165.200.225 255.255.255.224
故障排除
本过程介绍如何测试配置。
- 在每台交换机上配置交换机虚拟接口(SVI),以便从PVLAN ping SVI:
(config)# interface vlan 266
(config-if)# ip address 209.165.200.225 255.255.255.224
(config-if)# private-vlan mapping 166
(config-if)# no shut
[an error occurred while processing this directive]
- 检查MAC地址表,以查看您的MAC的学习位置。在所有交换机上,MAC都应在隔离VLAN中,具有混杂端口的交换机除外。在混杂交换机上,注意MAC位于主VLAN中。
- 在交换矩阵互联上,MAC地址0050.56bd.7bef是在Veth1491上获取的:

- 在Nexus 5K上,MAC地址0050.56bd.7bef在Eth1/4上获知:

- 在4900交换机上,MAC地址0050.56bd.7bef是在GigabitEthernet1/1上获取的:

在此配置中,此隔离VLAN中的系统无法相互通信,但可以通过4900交换机上的混杂端口与其他系统通信。一个问题是如何配置降压设备。在本例中,您使用的是VMware和两台主机。
请记住,您必须为每个PVLAN使用一个vNIC。这些vNIC提供给VMware vSphere ESXi,然后您可以创建端口组并为这些端口组提供访客。
如果将两个系统添加到同一交换机上的同一端口组,它们可以相互通信,因为它们的通信在vSwitch上本地交换。在此系统中,有两个刀片,每个刀片有两个主机。
在第一个系统上,创建了两个不同的端口组 — 一个称为166,另一个称为166A。每个接口都连接到单个网卡,该网卡在UCS上的隔离VLAN中配置。当前每个端口组只有一个访客。在本例中,由于它们在ESXi上是分开的,因此它们不能相互通信。

在第二个系统上,只有一个名为166的端口组。此端口组中有两个访客。在此配置中,VM3和VM4可以相互通信,即使您不希望发生这种情况。为了更正此问题,您需要为隔离VLAN中的每个虚拟机(VM)配置一个网卡,然后创建连接到该vNIC的端口组。配置完成后,在端口组中只放置一个访客。裸机Windows安装不存在此问题,因为您没有这些底层vSwitch。

N1K上的隔离PVLAN,上游设备上有混杂端口
在此配置中,您将PVLAN流量通过N1K,然后通过UCS传递到上游的混合端口。由于不能在同一个vNIC上同时发送主要和辅助VLAN,因此每个PVLAN上行链路需要一个vNIC才能传输PVLAN流量。
UCS中的配置
此过程介绍了如何创建主要和任何隔离VLAN。
注意:本示例使用266作为主用设备,166作为隔离设备;vlan ID将由站点确定。
- 要创建主VLAN,请单击Primary作为共享类型:

- 要创建隔离VLAN,请单击Isolated作为Sharing Type:

- 要将VLAN添加到vNIC,请点击VLAN 166的选择复选框。VLAN 166没有选择本地VLAN。

仅添加隔离VLAN,不得将其设置为本征,并且每个vNIC只能有一个隔离VLAN。由于此处未定义本征VLAN,因此请标记N1K上的本征VLAN。标记本地VLAN的选项在VMware DVS中不可用,因此DVS不支持此选项。
配置上游设备
以下过程介绍了如何配置Nexus 5K以将PVLAN传递到混杂端口所在的上游4900交换机。虽然并非在所有环境中都必需,但在必须将PVLAN通过另一台交换机时,可使用此配置。
在Nexus 5K上,输入以下命令,并检查上行链路配置:
- 打开PVLAN功能:
Nexus5000-5(config)# feature private-vlan
[an error occurred while processing this directive]
- 将VLAN添加为主用和隔离:
Nexus5000-5(config)# vlan 166
Nexus5000-5(config-vlan)# private-vlan isolated
Nexus5000-5(config-vlan)# vlan 266
Nexus5000-5(config-vlan)# private-vlan primary
[an error occurred while processing this directive]
- 将VLAN 266与隔离VLAN 166关联:
Nexus5000-5(config-vlan)# private-vlan association 166
[an error occurred while processing this directive]
- 确保配置所有上行链路以中继VLAN:
- interface Ethernet1/1
- 描述与4900的连接
- switchport mode trunk
- speed 1000
- interface Ethernet1/3
- 描述FIB端口5的连接
- switchport mode trunk
- speed 1000
- interface Ethernet1/4
- 描述与FIA端口5的连接
- switchport mode trunk
- speed 1000
在4900交换机上,执行这些步骤,并设置混杂端口。PVLAN在混杂端口结束。
- 如果需要,打开PVLAN功能。
- 按照在Nexus 5K上执行的操作创建并关联VLAN。
- 在4900交换机的出口端口上创建混杂端口。从此时起,VLAN 266上可以看到来自VLAN 166的数据包。
Switch(config-if)#switchport mode trunk
switchport private-vlan mapping 266 166
switchport mode private-vlan promiscuous
[an error occurred while processing this directive]
在上游路由器上,仅为VLAN 266创建子接口。在此级别,要求取决于您使用的网络配置:
- interface GigabitEthernet0/1.1
- encapsulation dot1Q 266
- ip address 209.165.200.225 255.255.255.224
N1K的配置
此过程介绍如何将N1K配置为标准中继而不是PVLAN中继。
- 按照在Nexus 5K上执行的操作创建并关联VLAN。有关详细信息,请参阅上游设备的配置部分。
- 为PVLAN流量创建上行链路端口配置文件:
Switch(config)#port-profile type ethernet pvlan_uplink
Switch(config-port-prof)# vmware port-group
Switch(config-port-prof)# switchport mode trunk
Switch(config-port-prof)# switchport trunk allowed vlan 166,266
Switch(config-port-prof)# switchport trunk native vlan 266 <-- This is necessary to handle
traffic coming back from the promiscuous port.
Switch(config-port-prof)# channel-group auto mode on mac-pinning
Switch(config-port-prof)# no shut
Switch(config-port-prof)# state enabled
[an error occurred while processing this directive]
- 为隔离VLAN创建端口组;创建与主VLAN和隔离VLAN的主机关联的PVLAN主机端口:
Switch(config)# port-profile type vethernet pvlan_guest
Switch(config-port-prof)# vmware port-group
Switch(config-port-prof)# switchport mode private-vlan host
Switch(config-port-prof)# switchport private-vlan host-association 266 166
Switch(config-port-prof)# no shut
Switch(config-port-prof)# state enabled
[an error occurred while processing this directive]
- 在vCenter中,将正确的vNIC添加到PVLAN上行链路。这是您在UCS设置中的“配置”下添加隔离VLAN的vNIC。

- 将VM添加到正确的端口组:
- 在Hardware选项卡中,单击Network adapter 1。
- 在Network Connection:(网络连接)下选择pvlan_guest(pvlan)作为Network标签:

故障排除
本过程介绍如何测试配置。
- 对port-group中配置的其他系统以及混杂端口上的路由器或其他设备运行ping。通过混杂端口对设备执行ping操作应该会成功,而向隔离VLAN中的其他设备执行ping操作应该会失败。

- 在N1K上,VM列在主VLAN上;发生这种情况是因为您位于与PVLAN关联的PVLAN主机端口中。由于VM的学习方式,请确保不要在UCS系统上将PVLAN设置为本征。另请注意,您从端口通道获知上游设备,同时也在主VLAN获知上游设备。必须用这种方法了解这一点,这就是为什么在PVLAN上行链路上将主VLAN用作本征VLAN。
在此屏幕截图中,Veth3和Veth 4上的两台设备是VM。Po1上的设备是经过混杂端口的上游路由器。

- 在UCS系统上,您应该学习隔离VLAN中用于此通信的所有MAC。您不应在此处看到上游:

- 在Nexus 5K上,两个VM位于隔离VLAN上,而上游设备位于主VLAN上:

- 在混杂端口所在的4900交换机上,所有内容都位于主VLAN上:

N1K上的隔离PVLAN与N1K上行链路端口配置文件上的混杂端口
在此配置中,您包含到N1K的PVLAN流量,并且仅在上游使用主VLAN。
UCS中的配置
此过程介绍如何将主VLAN添加到vNIC。无需配置PVLAN,因为您只需要主要VLAN。
注意:本示例使用266作为主用设备,166作为隔离设备;vlan ID将由站点确定。
- 请注意,共享类型为无。

- 单击VLAN 266的选择复选框以将主VLAN添加到vNIC。请勿将其设置为Native。

配置上游设备
以下过程介绍了如何配置上游设备。在这种情况下,上游交换机仅需要TRUNK端口,并且它们只需要中继VLAN 266,因为它是上游交换机看到的唯一VLAN。
在Nexus 5K上,输入以下命令,并检查上行链路配置:
- 将VLAN添加为主要:
Nexus5000-5(config-vlan)# vlan 266
[an error occurred while processing this directive]
- 确保配置所有上行链路以中继VLAN:
- interface Ethernet1/1
- 描述与4900的连接
- switchport mode trunk
- speed 1000
- interface Ethernet1/3
- 描述FIB端口5的连接
- switchport mode trunk
- speed 1000
- interface Ethernet1/4
- 描述与FIA端口5的连接
- switchport mode trunk
- speed 1000
在4900交换机上,请执行以下步骤:
- 在N1K上创建用作主链路的VLAN。
- 将所有接口中继到4900交换机或从4900交换机中继接口,以便通过VLAN。
在上游路由器上,仅为VLAN 266创建子接口。在此级别,要求取决于您使用的网络配置。
- interface GigabitEthernet0/1.1
- encapsulation dot1Q 266
- ip address 209.165.200.225 255.255.255.224
N1K的配置
本过程介绍如何配置N1K。
- 创建并关联VLAN:
Switch(config)# vlan 166
Switch(config-vlan)# private-vlan isolated
Switch(config-vlan)# vlan 266
Switch(config-vlan)# private-vlan primary
Switch(config-vlan)# private-vlan association 166
[an error occurred while processing this directive]
- 为PVLAN流量创建上行链路端口配置文件,注意混杂端口:
Switch(config)#port-profile type ethernet pvlan_uplink
Switch(config-port-prof)# vmware port-group
Switch(config-port-prof)# switchport mode private-vlan trunk promiscuous
Switch(config-port-prof)# switchport private-vlan trunk allowed vlan 266 <-- Only need to
allow the primary VLAN
Switch(config-port-prof)# switchport private-vlan mapping trunk 266 166 <-- The VLANS must
be mapped at this point
Switch(config-port-prof)# channel-group auto mode on mac-pinning
Switch(config-port-prof)# no shut
Switch(config-port-prof)# state enabled
[an error occurred while processing this directive]
- 为隔离VLAN创建端口组;创建与主VLAN和隔离VLAN的主机关联的PVLAN主机端口:
Switch(config)# port-profile type vethernet pvlan_guest
Switch(config-port-prof)# vmware port-group
Switch(config-port-prof)# switchport mode private-vlan host
Switch(config-port-prof)# switchport private-vlan host-association 266 166
Switch(config-port-prof)# no shut
Switch(config-port-prof)# state enabled
[an error occurred while processing this directive]
- 在vCenter中,将正确的vNIC添加到PVLAN上行链路。这是您在UCS设置中的“配置”下添加隔离VLAN的vNIC。

- 将VM添加到正确的端口组。
- 在Hardware选项卡中,单击Network adapter 1。
- 为Network Connection下的Network标签选择pvlan_guest(pvlan)。

故障排除
本过程介绍如何测试配置。
- 对port-group中配置的其他系统以及混杂端口上的路由器或其他设备运行ping。通过混杂端口对设备执行ping操作应该会成功,而向隔离VLAN中的其他设备执行ping操作应该会失败。

- 在N1K上,VM列在主VLAN上;发生这种情况是因为您位于与PVLAN关联的PVLAN主机端口中。另请注意,您从端口通道获知上游设备,同时也在主VLAN获知上游设备。
在此屏幕截图中,Veth3和Veth 4上的两台设备是VM。Po1上的设备是经过混杂端口的上游设备。

- 在UCS系统上,您应该学习在N1K上使用的主VLAN中用于此通信的所有MAC。您不应在此处学习上游:

- 在Nexus 5K上,所有MAC都在您选定的主要VLAN中:

- 在4900交换机上,所有内容都位于您选择的主VLAN上:

N1K上的社区PVLAN,在N1K上行链路端口配置文件中包含混杂端口
这是支持UCS的社区VLAN的唯一配置。
此配置与N1K上的隔离PVLAN和N1K上行链路端口配置文件上的混杂端口部分中设置的配置相同。团体与隔离的唯一区别是PVLAN的配置。
要配置N1K,请像在Nexus 5K上那样创建并关联VLAN:
Switch(config)# vlan 166
Switch(config-vlan)# private-vlan community
Switch(config-vlan)# vlan 266
Switch(config-vlan)# private-vlan primary
Switch(config-vlan)# private-vlan association 16
[an error occurred while processing this directive]
所有其他配置与N1K上的隔离PVLAN相同,N1K上行链路端口配置文件上有混杂端口。
配置完成后,您可以与连接到PVLAN所用的vEthernet端口配置文件的所有VM通信。
故障排除
本过程介绍如何测试配置。
- 对port-group中配置的其他系统以及混杂端口上的路由器或其他设备运行ping。Ping通过混杂端口并到达社区中的其它系统应该能正常工作。

- 所有其他故障排除与隔离PVLAN相同。
VMware DVS混合端口上的隔离PVLAN和社区PVLAN
由于DVS和UCS系统均存在配置问题,因此版本2.2(2c)之前不支持带DVS和UCS的PVLAN。
验证
当前没有可用于这些配置的验证过程。
故障排除
前面部分提供了可用于对配置进行故障排除的信息。
命令输出解释程序工具(仅限注册用户)支持某些 show 命令。使用输出解释器工具来查看 show 命令输出的分析。