Ethernet ベースの anet を使用して、カーネルゾーンの内側に VNIC を作成し、それらが独自の仮想 LAN (VLAN) に含まれるように構成できます。
vlan リソースを使用すると、既存の anet リソースに VLAN ID (VID) を追加して、新しい VLAN を作成できます。anet および vlan リソースの詳細は、Oracle Solaris ゾーン構成リソース の 構成可能なリソースとプロパティーを参照してください。
vlan リソースは、カーネルゾーンを VLAN 対応のものにします。ホストシステムでは、これらの VLAN 用のパケットを、VLAN タグを削除せずにカーネルゾーンに転送します。その後、カーネルゾーンではそのパケットを正しいネットワーククライアントに転送します。
データの送信時に、これらの VLAN からのパケットはカーネルゾーンによってタグが付けられて、ホストに渡されます。ホストでは、宛先 MAC に基づいて、タグを削除せずにパケットを転送します。
0:1:2:3:4:5 という MAC アドレス、11 という PVID、および 45 と 46 という 2 つの追加の VID を使用して、kz0 を構成します。
global# zonecfg -z kz0
zonecfg:kz0> create -t SYSsolaris-kz
zonecfg:kz0> select anet id=0
zonecfg:kz0:anet> set mac-address=0:1:2:3:4:5
zonecfg:kz0:anet> set vlan-id=11
zonecfg:kz0:anet> add vlan
zonecfg:kz0:anet:vlan> set vlan-id=45
zonecfg:kz0:anet:vlan> end
zonecfg:kz0:anet> add vlan
zonecfg:kz0:anet:vlan> set vlan-id=46
zonecfg:kz0:anet:vlan> end
zonecfg:kz0:anet> info vlan
vlan 0:
vlan-id: 45
vlan 1:
vlan-id: 46
zonecfg:kz0:anet> end
zonecfg:kz0> commit
zonecfg:kz0> exit
ゾーンがインストールされてブートされたあと、dladm show-vnic コマンドによって次が表示されます。
global# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE IDS kz0/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 が削除されて、カーネルゾーン kz0 に渡されるため、kz0 では VID 11 でタグ付けされたパケットを認識することはありません。<0:1:2:3:4:5, 45> と <0:1:2:3:4:5, 46> が指定されたフレームは、それぞれ VID 45 と VID 46 のタグが付いたまま kz0 に渡されます。
VID が 45 の VLAN データリンク vlan45 が kz0 内にある場合、kz0 の仮想スイッチはフレームから VID 45 を削除して、フレームを vlan45 に渡します。kz0 内の vlan45 データリンクから発信されるすべてのフレームは、kz0 の仮想スイッチによってタグ付けされ、ホストの anet に渡されます。ホスト anet は、送信する NIC にフレームを直接渡します。
使用例 14 カーネルゾーンでサポートされている VLAN ID の一覧の表示カーネルゾーンの内側で、dladm show-phys -v を使用して、物理データリンクでサポートされている VLAN ID を特定します。
global# zlogin kz0
kz0# 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 --