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 --