プライベート VLAN (PVLAN) のメカニズムを使用すると、通常の VLAN をサブ VLAN に分割することによってネットワークトラフィックを隔離できます。PVLAN のメカニズムは、RFC 5517 (http://tools.ietf.org/html/rfc5517) で定義されています。通常の VLAN は通常、1 つのブロードキャストドメインですが、PVLAN のプロパティーを使用して構成されると、既存のレイヤー 3 構成を維持したまま、1 つのブロードキャストドメインがより小さいブロードキャストサブドメインにパーティション化されます。PVLAN を構成する場合、通常の VLAN はプライマリ VLAN と呼ばれ、サブ VLAN はセカンダリ VLAN と呼ばれます。
2 つの仮想ネットワークが物理リンク上の同じ VLAN ID を使用する場合は、すべてのブロードキャストトラフィックがこの 2 つの仮想ネットワークの間で渡されます。ただし、PVLAN のプロパティーを使用する仮想ネットワークを作成した場合は、パケット転送動作がすべての状況には適用されない可能性があります。
次の表に、隔離 PVLAN とコミュニティー PVLAN でのブロードキャストパケット転送のルールを示します。
|
たとえば、vnet0 仮想ネットワークと vnet1 仮想ネットワークの両方が net0 ネットワーク上で分離されている場合、net0 は 2 つの仮想ネットワーク間でブロードキャストトラフィックを渡しません。ただし、net0 ネットワークが分離された VLAN からトラフィックを受信する場合、トラフィックは VLAN に関連する分離されたポートには渡されません。この状況は、分離された仮想ネットワークがプライマリ VLAN からのトラフィックのみを受け付けるために発生します。
inter-vnet リンク機能は、隔離 PVLAN とコミュニティー PVLAN の通信制限をサポートします。inter-vnet リンクは、隔離 PVLAN では無効であり、コミュニティー PVLAN の場合は同じコミュニティー内に存在する仮想ネットワークでのみ有効です。コミュニティーの外部にあるほかの仮想ネットワークからの直接のトラフィックは許可されません。
ldm add-vnet コマンドと ldm set-vnet コマンドを使用すると PVLAN を構成できます。これらのコマンドを使用して pvlan プロパティーを設定します。PVLAN を正しく構成するには pvid プロパティーも指定する必要があります。
この機能には、少なくとも Oracle Solaris 11.2 SRU 4 OS が必要です。
PVLAN を構成するには、次の情報を指定する必要があります。
プライマリ VLAN ID。プライマリ VLAN ID は、1 つの仮想ネットワークデバイスの PVLAN を構成するために使用されるポート VLAN ID (PVID) です。この構成により、ゲストドメインが VLAN パケットを確実に受信できるようになります。PVLAN の VID を構成することはできません。この値は pvid プロパティーによって表されます。
セカンダリ VLAN ID。セカンダリ VLAN ID は、PVLAN 機能を提供するために特定の VLAN によって使用されます。この情報は、pvlan 値の secondary-vid 部分として指定します。secondary-vid は、1 から 4094 の範囲の整数値です。プライマリ VLAN には多数のセカンダリ VLAN を含めることができますが、次の制限があります。
プライマリ VLAN ID もセカンダリ VLAN ID もデフォルトの VLAN ID と同じにすることはできません。
隔離とコミュニティーのどちらの PVLAN タイプでも、プライマリ VLAN ID とセカンダリ VLAN ID を同じ値にすることはできません。
各プライマリ VLAN は、分離された PVLAN を 1 つだけ構成できます。したがって、同じプライマリ VLAN ID を使用する 2 つの分離された PVLAN を作成することはできません。
プライマリ VLAN には複数のコミュニティー VLAN を含めることができますが、次の制限があります。
プライマリ VLAN ID をセカンダリ VLAN ID として使用して別のコミュニティー PVLAN を作成することはできません。
たとえば、3 のプライマリ VLAN ID と 100 のセカンダリ VLAN ID を持つコミュニティー PVLAN がある場合は、3 をセカンダリ VLAN ID として使用する別のコミュニティー PVLAN を作成することはできません。
セカンダリ VLAN ID をプライマリ VLAN ID として使用してコミュニティー PVLAN を作成することはできません。
たとえば、3 のプライマリ VLAN ID と 100 のセカンダリ VLAN ID を持つコミュニティー PVLAN がある場合は、100 をプライマリ VLAN ID として使用する別のコミュニティー PVLAN を作成することはできません。
セカンダリ VLAN ID が、通常の仮想ネットワークまたは VNIC の VLAN ID としてすでに使用されていてはいけません。
注意 - Logical Domains Manager は、特定の仮想スイッチ上の仮想ネットワークの構成しか検証できません。同じバックエンドデバイス上の Oracle Solaris VNIC に対して PVLAN 構成を設定する場合は、すべての VNIC および仮想ネットワークにわたって同じ要件が満たされていることを確認してください。 |
PVLAN タイプ。この情報は pvlan 値の pvlan-type 部分として指定します。pvlan-type は、次の値のいずれかです。
isolated。隔離 PVLAN に関連付けられたポートは、バックエンドネットワークデバイス上のすべてのピア仮想ネットワークおよび Oracle Solaris 仮想 NIC から隔離されます。パケットは、その PVLAN に指定された値に基づく外部ネットワークにのみ到達します。
community。コミュニティー PVLAN に関連付けられたポートは、同じコミュニティー PVLAN 内に存在するほかのポートと通信できますが、その他のすべてのポートから隔離されます。パケットは、その PVLAN に指定された値に基づく外部ネットワークに到達します。
このセクションには、PVLAN を作成し、PVLAN に関する情報を一覧表示する方法について説明するタスクが含まれています。
PVLAN は、ldm add-vnet または ldm set-vnet コマンドを使用して 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
次のコマンドは、4 のプライマリ vlan-id、200 のセカンダリ vlan-id、および isolated の pvlan-type を持つ PVLAN で仮想ネットワークを作成する方法を示しています。
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
次のコマンドは、3 のプライマリ vlan-id、300 のセカンダリ vlan-id、および community の pvlan-type を持つ PVLAN で仮想ネットワークを作成する方法を示しています。
primary# ldm set-vnet pvid=3 pvlan=300,community vnet2 ldg1
ldm set-vnet を使用して PVLAN を削除します。
ldm set-vnet pvlan= if-name domain-name
次のコマンドは、vnet0 仮想ネットワークの PVLAN 構成を削除します。vnet0 仮想ネットワークを通常の VLAN ID に戻すには、最初に PVLAN ID を削除する必要があります。
primary# ldm set-vnet pvlan= vnet0 ldg1
PVLAN に関する情報は、Logical Domains Manager のいくつかの一覧表示サブコマンドを使用して表示できます。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:fb:22:79 NETWORK NAME SERVICE MACADDRESS PVID|PVLAN|VIDs ---- ------- ---------- --------------- vnet0 primary-vsw0@primary 00:14:4f:f8:6e:d9 2|300,community|-- DEVICE :network@0 ID :0 LINKPROP :-- MTU :1500 MAXBW :-- MODE :-- CUSTOM :disable PRIORITY :-- COS :-- PROTECTION :--
次の ldm list-domain コマンドは、ldg1 ドメインの PVLAN 構成情報を解析可能な形式で表示します。
primary# ldm list-domain -o network -p ldg1 VERSION 1.19 DOMAIN|name=ldg1| MAC|mac-addr=00:14:4f:fb:22:79 VNET|name=vnet0|dev=network@0|service=primary-vsw0@primary|mac-addr=00:14:4f:f8:6e:d9|mode=|pvid=2|vid=|mtu=1500|linkprop=|id=0|alt-mac-addrs=|maxbw=|pvlan=300,community|protection=|priority=|cos=|custom=disable|max-mac-addrs=|max-vlans=
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 -o network ldg1 NAME ldg1 MAC 00:14:4f:fb:22:79 NETWORK NAME SERVICE MACADDRESS PVID|PVLAN|VIDs ---- ------- ---------- --------------- vnet0 primary-vsw0@primary 00:14:4f:f8:6e:d9 2|300,community|-- PEER MACADDRESS PVID|PVLAN|VIDs ---- ---------- --------------- primary-vsw0@primary 00:14:4f:f9:08:28 1|--|--
次の ldm list-bindings コマンドは、ldg1 ドメインの PVLAN 構成情報を解析可能な形式で表示します。
primary# ldm list-bindings -o network -p ldg1 VERSION 1.19 DOMAIN|name=ldg1| MAC|mac-addr=00:14:4f:fb:22:79 VNET|name=vnet0|dev=network@0|service=primary-vsw0@primary|mac-addr=00:14:4f:f8:6e:d9|mode=|pvid=2|vid=|mtu=1500|linkprop=|id=0|alt-mac-addrs=|maxbw=|pvlan=300,community|protection=|priority=|cos=|custom=disable|max-mac-addrs=|max-vlans= |peer=primary-vsw0@primary|mac-addr=00:14:4f:f9:08:28|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>