Oracle® VM Server for SPARC 3.3 管理指南

退出打印视图

更新时间: 2015 年 10 月
 
 

使用私有 VLAN

私有 VLAN (PVLAN) 机制可用于将某个常规 VLAN 划分成多个子 VLAN 以隔离网络通信。PVLAN 机制在 RFC 5517 中定义。通常,一个常规 VLAN 是一个单广播域,但当配置了 PVLAN 属性时,该单广播域会被分区为更小的广播子域,同时保留现有的第 3 层配置。在配置 PVLAN 时,常规 VLAN 称为主要 VLAN,而子 VLAN 则称为辅助 VLAN

当两个虚拟网络在某个物理链路上使用同一个 VLAN ID 时,则将在这两个虚拟网络之间传递所有广播通信。但是,在创建使用 PVLAN 属性的虚拟网络时,包转发行为可能不适用于所有情况。

下表展示了隔离的 PVLAN 和社区 PVLAN 的广播包转发规则。

表 12-1  广播包转发规则
PVLAN 类型
隔离的
社区 A
社区 B
隔离的
社区 A
社区 B

例如,当在 net0 上隔离 vnet0vnet1 虚拟网络时,net0 不在两个虚拟网络之间传递广播通信。但是,当 net0 网络收到来自隔离的 VLAN 的通信时,该通信不会传递到与该 VLAN 相关的隔离端口。出现这种情况的原因在于隔离的虚拟网络仅接受主要 VLAN 的通信。

inter-vnet-links 功能支持对隔离的 PVALN 和社区 PVLAN 的通信限制。已为隔离的 PVLAN 禁用 inter-vnet-links,仅为在社区 PVLAN 的同一个社区中的虚拟网络启用 inter-vnet-links。不允许来自社区外部的其他虚拟网络的直接通信。


注 - 如果目标服务域不支持 PVLAN 功能,迁移为 PVLAN 配置的来宾域可能会失败。

PVLAN 要求

可以使用 ldm add-vnetldm set-vnet 命令配置 PVLAN。使用这些命令配置 pvlan 属性。请注意,还必须指定 pvid 属性才能成功配置 PVLAN。

此功能至少需要 Oracle Solaris 11.2 SRU 4 OS。

    要配置 PVLAN,必须指定以下信息:

  • 主要 VLAN ID。主要 VLAN ID 是用于配置单个虚拟网络设备的 PVLAN 的端口 VLAN ID (PVID)。此配置可确保来宾域收到 VLAN 包。请注意,不能用 PVLAN 配置 VID。此值由 pvid 属性表示。

  • 辅助 VLAN ID。特定 VLAN 使用辅助 VLAN ID 来提供 PVLAN 功能。将此信息指定为 pvlan 值的 secondary-vid 部分。secondary-vid 是介于 1-4094 范围的整数值。主要 VLAN 可以有多个辅助 VLAN,但有以下限制:

    • 主要 VLAN ID 和辅助 VLAN ID 都不能与缺省 VLAN ID 相同。

    • 主要 VLAN ID 和辅助 VLAN ID 不能有相同的隔离 PVLAN 类型和社区 PVLAN 类型值。

    • 每个主要 VLAN 仅能配置一个隔离 PVLAN。所以,不能创建使用相同主要 VLAN ID 的两个隔离 PVLAN。

    • 主要 VLAN 可以有多个社区 VLAN,但有以下限制:

      • 主要 VLAN ID 不能用作辅助 VLAN ID 来创建其他社区 PVLAN。

        例如,如果有一个主要 VLAN ID 为 3、辅助 VLAN ID 为 100 的社区 PVLAN,则无法创建使用 3 作为辅助 VLAN ID 的其他社区 PVLAN。

      • 辅助 VLAN ID 不能用作主要 VLAN ID 来创建社区 PVLAN。

        例如,您有一个主要 VLAN ID 为 3、辅助 VLAN ID 为 100 的社区 PVLAN,则无法创建使用 100 作为主要 VLAN ID 的其他社区 PVLAN。

      • 辅助 VLAN ID 不能用作常规虚拟网络或 VNIC 的 VLAN ID。


      Caution

      注意  - Logical Domains Manager 只能验证特定虚拟交换机上的虚拟网络的配置。如果为同一个后端设备上的 Oracle Solaris VNIC 设置了 PVLAN 配置,请确保在所有 VNIC 和虚拟网络中满足相同的要求。


  • PVLAN 类型。将此信息指定为 pvlan 值的 pvlan-type 部分。pvlan-type 是以下值之一:

    • 隔离的 PVLAN与隔离的 PVLAN 关联的端口与所有对等虚拟网络以及后端网络设备上的 Oracle Solaris 虚拟 NIC 隔离。包仅根据为 PVLAN 指定的值到达外部网络。

    • 社区 PVLAN与社区 PVLAN 关联的端口可以与同一个社区 PVLAN 中的其他端口通信,但与其他所有端口隔离。包根据为 PVLAN 指定的值到达外部网络。

配置 PVLAN

本节包括介绍如何创建 PVLAN 并列出 PVLAN 信息的任务。

创建 PVLAN

可以使用 ldm add-vnetldm set-vnet 命令设置 pvlan 属性值,从而配置 PVLAN。请参见 ldm(1M) 手册页。

    可以使用以下命令创建或删除 PVLAN:

  • 使用 ldm add-vnet 创建 PVLAN:

    ldm add-vnet pvid=port-VLAN-ID pvlan=secondary-vid,pvlan-type \
    if-name vswitch-name domain-name

    以下命令展示了如何创建具有以下 PVLAN 的虚拟网络:主要 vlan-id4,辅助 vlan-id200pvlan-typeisolated

    primary# ldm add-vnet pvid=4 pvlan=200,isolated vnet1 primary-vsw0 ldg1
  • 使用 ldm set-vnet 创建 PVLAN:

    ldm set-vnet pvid=port-VLAN-ID pvlan=secondary-vid,pvlan-type if-name domain-name

    以下命令展示了如何创建具有以下 PVLAN 的虚拟网络:主要 vlan-id3,辅助 vlan-id300pvlan-typecommunity

    primary# ldm add-vnet pvid=3 pvlan=300,community vnet1 primary-vsw0 ldg1
  • 使用 ldm set-vnet 删除 PVLAN:

    ldm set-vnet pvlan= if-name vswitch-name domain-name

    以下命令将删除 vnet0 虚拟网络的 PVLAN 配置。此命令的结果是:指定的虚拟网络是一个常规 VLAN,该 VLAN 使用在配置 PVLAN 时指定的 vlan-id

    primary# ldm set-vnet pvlan= vnet0 primary-vsw0 ldg1

查看 PVLAN 信息

可以通过使用多个 Logical Domains Manager 列表子命令来查看有关 PVLAN 的信息。请参见 ldm(1M) 手册页。

    可以使用以下命令查看 PVLAN 信息。

  • 使用 ldm list-domain -o network 列出 PVLAN 信息:

    ldm list-domain [-e] [-l] -o network [-p] [domain-name...]

      以下示例通过使用 ldm list-domain -o network 命令展示了有关 ldg1 域上的 PVLAN 配置的信息。

    • 以下 ldm list-domain 命令展示了有关 ldg1 域上的 PVLAN 配置的信息。

      primary# ldm list-domain -o network ldg1
      NAME
      ldg1
      
      MAC
      	00:14:4f:fa:bf:0f
      
      NETWORK
      NAME   SERVICE              ID DEVICE    MAC               
      vnet0  primary-vsw0@primary 0  network@0 00:14:4f:f8:03:ed        
      MODE   PVID VID             MTU  MAXBW LINKPROP
             1    3               1500 1700
             PVLAN : 200,community
    • 以下 ldm list-domain 命令以可解析形式展示了 ldg1 域的 PVLAN 配置信息。

      primary# ldm list-domain -o network -p ldg1
      VERSION 1.13
      DOMAIN|name=ldg1|
      MAC|mac-addr=00:14:4f:fa:bf:0f
      VNET|name=vnet0|dev=network@0|service=primary-vsw0@primary
      |mac-addr=00:14:4f:f8:03:ed|mode=|pvid=1|vid=3|mtu=1500|linkprop=|id=0
      |alt-mac-addrs=|maxbw=1700|protect=|priority=|cos=|pvlan=200,community
  • 使用 ldm list-bindings 列出 PVLAN 信息:

    ldm list-bindings [-e] [-p] [domain-name...]

      以下示例通过使用 ldm list-bindingsnetwork 命令展示了有关 ldg1 域上的 PVLAN 配置的信息。

    • 以下 ldm list-bindings 命令展示了有关 ldg1 域上的 PVLAN 配置的信息。

      primary# ldm list-bindings
      ...
      NETWORK
      NAME    SERVICE              ID DEVICE    MAC               
      vnet0   primary-vsw0@primary 0  network@0 00:14:4f:f8:03:ed        
      MODE   PVID VID   MTU  MAXBW LINKPROP
             1    3     1500 1700  
             PVLAN :200,community
      PEER                 MAC               MODE  PVID VID  MTU  MAXBW LINKPROP
      primary-vsw0@primary 00:14:4f:f8:fe:5e 1
    • 以下 ldm list-bindings 命令以可解析形式展示了 ldg1 域的 PVLAN 配置信息。

      primary# ldm list-bindings -p
      ...
      VNET|name=vnet0|dev=network@0|service=primary-vsw0@primary
      |mac-addr=00:14:4f:f8:03:ed|mode=|pvid=1|vid=3|mtu=1500|linkprop=
      |id=0|alt-mac-addrs=|maxbw=1700|protect=|priority=|cos=|pvlan=200,community
      |peer=primary-vsw0@primary|mac-addr=00:14:4f:f8:fe:5e|mode=|pvid=1|vid=
      |mtu=1500|maxbw=
  • 使用 ldm list-constraints 列出 PVLAN 信息:

    ldm list-constraints [-x] [domain-name...]

    下面展示了通过运行 ldm list-constraints 命令生成的输出:

    primary# ldm list-constraints -x ldg1
    ...
    <Section xsi:type="ovf:VirtualHardwareSection_Type">
      <Item>
        <rasd:OtherResourceType>network</rasd:OtherResourceType>
        <rasd:Address>auto-allocated</rasd:Address>
        <gprop:GenericProperty key="vnet_name">vnet0</gprop:GenericProperty>
        <gprop:GenericProperty key="service_name">primary-vsw0</gprop:GenericProperty>
        <gprop:GenericProperty key="pvid">1</gprop:GenericProperty>
        <gprop:GenericProperty key="vid">3</gprop:GenericProperty>
        <gprop:GenericProperty key="pvlan">200,community</gprop:GenericProperty>
        <gprop:GenericProperty key="maxbw">1700000000</gprop:GenericProperty>
        <gprop:GenericProperty key="device">network@0</gprop:GenericProperty>
        <gprop:GenericProperty key="id">0</gprop:GenericProperty>
      </Item>