Ethernet ベースの anet リソースを使用すれば、カーネルゾーンの内側に VNIC を作成し、それらが独自の仮想 LAN (VLAN) に含まれるように構成できます。
vlan リソースを使用すると、既存の anet リソースに VLAN ID (VID) を追加して、新しい VLAN を作成できます。anet および vlan リソースタイプの詳細については、Oracle Solaris Zones Configuration Resources の Configurable Resource Types and Global Propertiesを参照してください。
vlan リソースタイプは、カーネルゾーンを VLAN 対応のものにします。ホストシステムは、これらの VLAN 宛てのパケットを、VLAN タグを取り除かないままカーネルゾーンに転送します。その後、カーネルゾーンはそのパケットを正しいネットワーククライアントに転送します。
データの送信時に、これらの VLAN からのパケットはカーネルゾーンによってタグが付けられて、ホストに渡されます。ホストでは、宛先 MAC に基づいて、タグを削除せずにパケットを転送します。
mac-address 0:1:2:3:4:5、PVID 11、および 2 つの追加の VID 45 と 46 を使用して、kzone0 を構成します。
global$ pfbash zonecfg -z kzone0
zonecfg:kzone0> create -t SYSsolaris-kz
zonecfg:kzone0> select anet id=0
zonecfg:kzone0> set mac-address=0:1:2:3:4:5
zonecfg:kzone0:anet> set vlan-id=11
zonecfg:kzone0:anet> add vlan
zonecfg:kzone0:anet:vlan> set vlan-id=45
zonecfg:kzone0:anet:vlan> end
zonecfg:kzone0:anet> add vlan
zonecfg:kzone0:anet:vlan> set vlan-id=46
zonecfg:kzone0:anet:vlan> end
zonecfg:kzone0:anet> info vlan
vlan 0:
vlan-id: 45
vlan 1:
vlan-id: 46
zonecfg:kzone0:anet> end
zonecfg:kzone0> commit ; exit
ゾーンがインストールされてブートされたあと、dladm show-vnic コマンドによって次の出力が表示されます。
global$ dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE IDS kzone0/net0 net4 10000 0:1:2:3:4:5 fixed VID:11,45,46
これで、ホストシステム global の仮想スイッチが、次の mac-address, vlan-id タプルを使用してフレームを処理するように構成されました。
0:1:2:3:4:5, 11
0:1:2:3:4:5, 45
0:1:2:3:4:5, 46
0:1:2:3:4:5, 11 タプルで到着したフレームは、システム global によって VID が削除されてカーネルゾーン kzone0 に渡されるので、kzone0 で VID 11 タグが認識されることはありません。0:1:2:3:4:5, 45 と 0:1:2:3:4:5, 46 が指定されたフレームは、それぞれ VID 45 と 46 のタグが付いたまま kzone0 に渡されます。
VID が 45 の VLAN データリンク vlan45 が kzone0 内にある場合、kzone0 の仮想スイッチはフレームから VID 45 を削除して、フレームを vlan45 に渡します。kzone0 の vlan45 データリンクから送出されたフレームはすべて、kzone0 の仮想スイッチによってタグ付けされ、ホストの anet に渡されます。ホスト anet は、送信する NIC にフレームを直接渡します。
使用例 20 カーネルゾーンでサポートされている VLAN ID の一覧の表示カーネルゾーンの内側で、dladm show-phys -v コマンドを使用して、物理データリンクでサポートされている VLAN ID を特定します。
global$ zlogin kzone0
kzone0$ dladm show-phys -v
LINK VID INUSE CLIENT
net0 40 yes vnic0,vnic1
20 no --
15 yes vnic2
net1 32 no --
11 no --
10 no --