Oracle Solaris Trusted Extensions 構成ガイド

ネットワークインタフェースをラベル付きゾーンに追加し、ルーティングする

次の作業は、各ゾーンが個別の物理ネットワークに接続されている環境に対応します。

作業 

説明 

参照先 

1a: ネットワークインタフェースを各ラベル付きゾーンに追加し、大域ゾーンを使用して外部ネットワークに到達します。 

各ラベル付きゾーンを個別の物理ネットワークに接続します。ラベル付きゾーンは、大域ゾーンが提供するネットワークルーティングを使用します。 

「既存のラベル付きゾーンを経路指定するためにネットワークインタフェースを追加する」

または 1b: ネットワークインタフェースを、デフォルトルートを使用して各ラベル付きゾーンに追加します。 

各ゾーンを個別の物理ネットワークに接続します。ラベル付きゾーンは、ルーティングで大域ゾーンを使用しません。

「既存のラベル付きゾーンを経路指定するために大域ゾーンを使用しないネットワークインタフェースを追加する」

2. ネームサービスキャッシュを各ラベル付きゾーンに作成します。 

各ゾーンに対してネームサービスデーモンを構成します。 

「ラベル付きゾーンごとにネームサービスキャッシュを構成する」

Procedure既存のラベル付きゾーンを経路指定するためにネットワークインタフェースを追加する

この手順で、ゾーン固有のネットワークインタフェースを既存のラベル付きゾーンに追加します。この構成は、各ラベル付きゾーンがそれぞれ別の物理ネットワークに接続される環境に対応します。ラベル付きゾーンは、大域ゾーンが提供するネットワークルーティングを使用します。


注 –

大域ゾーンでは、非大域ゾーンアドレスが構成される各サブネットに対して IP アドレスを構成する必要があります。


始める前に

大域ゾーンでスーパーユーザーになります。

すべてのゾーンに対し、「ラベル付きゾーンの作成」の作業を完了します。

  1. 大域ゾーンで、追加のネットワークインタフェースの IP アドレスとホスト名を /etc/hosts ファイルに入力します。

    ホストの名前に -zone-name を追加するなど、標準的な命名規則を使用してください。


    ## /etc/hosts in global zone
    10.10.8.2   hostname-zone-name1
    10.10.8.3   hostname-global-name1
    10.10.9.2   hostname-zone-name2
    10.10.9.3   hostname-global-name2
    
  2. 各インタフェースのネットワークで、/etc/netmasks ファイルにエントリを追加します。


    ## /etc/netmasks in global zone
    10.10.8.0 255.255.255.0
    10.10.9.0 255.255.255.0

    詳細は、netmasks(4) のマニュアルページを参照してください。

  3. 大域ゾーンで、ゾーン固有の物理インタフェースを plumb します。

    1. すでに plumb されている物理インタフェースを特定します。


      # ifconfig -a
      
    2. 各インタフェースの大域ゾーンアドレスを構成します。


      # ifconfig interface-nameN1 plumb
      # ifconfig interface-nameN1 10.10.8.3 up
      # ifconfig interface-nameN2 plumb
      # ifconfig interface-nameN2 10.10.9.3 up
    3. 各大域ゾーンアドレスに対して hostname.interface-nameN ファイルを作成します。


      # /etc/hostname.interface-nameN1
      10.10.8.3
      # /etc/hostname.interface-nameN2
      10.10.9.3

    大域ゾーンアドレスは、システムが起動するとただちに構成されます。ゾーン固有のアドレスは、ゾーンの起動時に構成されます。

  4. それぞれのゾーン固有のネットワークインタフェースに、セキュリティーテンプレートを割り当てます。

    ネットワークへのゲートウェイにラベルが構成されていない場合は、admin_low セキュリティーテンプレートを割り当てます。ネットワークへのゲートウェイにラベルが付いている場合は、cipso セキュリティーテンプレートを割り当てます。

    各ネットワークのラベルを反映する、ホストタイプ cipso のセキュリティーテンプレートを作成できます。テンプレートの作成および割り当ての手順については、『Oracle Solaris Trusted Extensions 管理の手順』「トラステッドネットワークデータベースの構成 (作業マップ)」を参照してください。

  5. ゾーン固有のインタフェースに追加するすべてのラベル付きゾーンを停止します。


    # zoneadm -z zone-name halt
  6. Labeled Zone Manager を起動します。


    # /usr/sbin/txzonemgr
    
  7. ゾーン固有のインタフェースを追加させたい各ゾーンについては、次の操作を実行します。

    1. ゾーンを選択します。

    2. 「Add Network」を選択します。

    3. ネットワークインタフェースに名前を付けます。

    4. インタフェースの IP アドレスを入力します。

  8. 完了したすべてのゾーンの「Labeled Zone Manager」で、 「Zone Console」を選択します。

  9. 「Boot」を選択します。

  10. 「Zone Console」で、インターフェスが作成されていることを確認します。


    # ifconfig -a
    
  11. サブネットのゲートウェイへのルートがゾーンにあることを確認します。


    # netstat -rn
    
注意事項

ゾーン構成をデバッグするには、次を参照してください。

Procedure既存のラベル付きゾーンを経路指定するために大域ゾーンを使用しないネットワークインタフェースを追加する

この手順では、既存のラベル付きゾーンに対して、ゾーン固有のデフォルトルートを設定します。この構成では、ラベル付きゾーンは、ルーティングで大域ゾーンを使用しません。

ラベル付きゾーンは、ゾーンを起動する前に大域ゾーンに plumb します。ただし、ラベル付きゾーンを大域ゾーンから切り離すために、ゾーンの起動時はインタフェースを down 状態にしてください。詳細は、 『System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones』の第 17 章「Non-Global Zone Configuration (Overview)」.


注 –

起動するすべての非大域ゾーンに対し、固有のデフォルトルートを構成します。


始める前に

大域ゾーンでスーパーユーザーになります。

すべてのゾーンに対し、「ラベル付きゾーンの作成」の作業を完了します。vni0 インタフェースか lo0 インタフェースを使用してラベル付きゾーンを大域ゾーンに接続しています。

  1. すべてのネットワークインタフェースに対し、その IP アドレス、ネットマスク、デフォルトルートを調べます。

    IP アドレスとネットマスクを調べるには、ifconfig -a コマンドを使用します。デフォルトルートが割り当てられているかどうかを判定するには、zonecfg -z zonename info net コマンドを使用します。

  2. 各ラベル付きゾーン用に、空の /etc/hostname.interface ファイルを作成します。


    # touch /etc/hostname.interface
    # touch /etc/hostname.interface:n
    

    詳細は、netmasks(4) のマニュアルページを参照してください。

  3. ラベル付きゾーンのネットワークインタフェースを plumb します。


    # ifconfig zone1-network-interface plumb
    # ifconfig zone2-network-interface plumb
  4. ラベル付きゾーンのインタフェースが down 状態になっていることを確認します。


    # ifconfig -a
    zone1-network-interface zone1-IP-address down
    zone2-network-interface zone2-IP-address down

    ゾーン固有のアドレスは、ゾーンの起動時に構成されます。

  5. 各インタフェースのネットワークで、/etc/netmasks ファイルにエントリを追加します。


    ## /etc/netmasks in global zone
    192.168.2.0 255.255.255.0
    192.168.3.0 255.255.255.0

    詳細は、netmasks(4) のマニュアルページを参照してください。

  6. それぞれのゾーン固有のネットワークインタフェースに、セキュリティーテンプレートを割り当てます。

    各ネットワークのラベルを反映する、ホストタイプ cipso のセキュリティーテンプレートを作成します。テンプレートの作成および割り当てについては、『Oracle Solaris Trusted Extensions 管理の手順』「トラステッドネットワークデータベースの構成 (作業マップ)」を参照してください。

  7. txzonemgr スクリプトを実行し、別の端末ウィンドウを開きます。

    Labeled Zone Manager で、ラベル付きゾーンのネットワークインタフェースを追加します。端末ウィンドウで、ゾーンに関する情報を表示し、デフォルトルートを設定します。

  8. ゾーン固有のネットワークインタフェースとルーターを追加しようとしているすべてのゾーンに対し、次の手順を完了します。

    1. 端末ウィンドウでゾーンを停止します。


      # zoneadm -z zone-name halt
    2. Labeled Zone Manager で、次の手順を実行します。

      1. ゾーンを選択します。

      2. 「Add Network」を選択します。

      3. ネットワークインタフェースに名前を付けます。

      4. インタフェースの IP アドレスを入力します。

      5. 端末ウィンドウで、ゾーン構成を確認します。


        # zonecfg -z zone-name info net
        net:   address: IP-address
               physical: zone-network-interface
               defrouter not specified
    3. 端末ウィンドウで、ラベル付きゾーンのネットワークのデフォルトルートを構成します。


      # zonecfg -z zone-name
      zonecfg:zone-name > select net address=IP-address 
      zonecfg:zone-name:net> set defrouter=router-address 
      zonecfg:zone-name:net> end 
      zonecfg:zone-name > verify 
      zonecfg:zone-name > commit 
      zonecfg:zone-name > exit 
      #

      詳細については、zonecfg(1M) のマニュアルページと『System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones』「How to Configure the Zone」を参照してください。

    4. ラベル付きゾーンを起動します。


      # zoneadm -z zone-name boot
    5. 大域ゾーンで、ラベル付きゾーンにサブネットのゲートウェイへの経路があることを確認します。


      # netstat -rn
      

      経路指定テーブルが表示されます。ラベル付きゾーンの宛先とインタフェースは、大域ゾーンのエントリと異なります。

  9. デフォルトルートを削除するには、ゾーンのIP アドレスを選択し、削除します。


    # zonecfg -z zone-name
    
    zonecfg:zone-name > select net address=zone-IP-address
    zonecfg:zone-name:net> remove net defrouter=zone-default-route
    zonecfg:zone-name:net>  info net
    net:
       address: zone-IP-address
       physical: zone-network-interface
       defrouter not specified

例 4–5 ラベル付きゾーンのデフォルトルートを設定する

この例では、管理者が Secret ゾーンを個別の物理サブネットに経路指定します。Secret ゾーンとの間のトラフィックは、大域ゾーン経由で経路指定されません。管理者は Labeled Zone Manager と zonecfg コマンドを使用し、ルーティングが機能することを確認します。

管理者は、qfe1qfe1:0 が現在使用中でないことを確認します。その後、2 つのラベル付きゾーンのマッピングを作成します。qfe1 は、Secret ゾーンに対して指定されたインタフェースです。


Interface IP Address    Netmask        Default Router
qfe1     192.168.2.22 255.255.255.0 192.168.2.2
qfe1:0   192.168.3.33 255.255.255.0 192.168.3.3

まず、管理者は /etc/hostname.qfe1 ファイルを作成し、/etc/netmasks ファイルを構成します。


# touch /etc/hostname.qfe1

# cat /etc/netmasks
## /etc/netmasks in global zone
192.168.2.0 255.255.255.0

次に、ネットワークインタフェースを plumb し、インタフェースが down 状態であることを確認します。


# ifconfig qfe1 plumb
# ifconfig -a

次に、Solaris 管理コンソール で、1 つのラベル Secret を持つセキュリティーテンプレートを作成し、インタフェースの IP アドレスをテンプレートに割り当てます。

ゾーンを停止します。


# zoneadm -z secret halt

txzonemgr スクリプトを実行し、Labeled Zone Manager を開きます。


# /usr/sbin/txzonemgr

Labeled Zone Manager で、Secret ゾーンを選択し、「Add Network」を選択して、ネットワークインタフェースを選択します。Labeled Zone Manager を閉じます。

コマンド行で、ゾーンの IP アドレスを選択し、そのデフォルトルートを設定します。コマンドを終了する前に、ルートを確認して確定します。


# zonecfg -z secret
zonecfg: secret > select net address=192.168.6.22 
zonecfg: secret:net> set defrouter=192.168.6.2 
zonecfg: secret:net> end 
zonecfg: secret > verify 
zonecfg: secret > commit 
zonecfg: secret > info net 
  net:
     address: 192.168.6.22
     physical: qfe1
     defrouter: 192.168.6.2
zonecfg: secret > exit 
#

ゾーンを起動します。


# zoneadm -z secret boot

大域ゾーンの別の端末ウィンドウで、パケットの送受信を確認します。


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref     Use  Interface 
-------------------- -------------------- ----- ----- ------- --------- 
default              192.168.5.15         UG        1    2664 qfe0      
192.168.6.2          192.168.6.22         UG        1     240 qfe1      
192.168.3.3          192.168.3.33         U         1     183 qfe1:0    
127.0.0.1            127.0.0.1            UH        1     380 lo0       
...

Procedureラベル付きゾーンごとにネームサービスキャッシュを構成する

この手順では、各ラベル付きゾーンで、ネームサービスデーモン (nscd) を個別に構成できます。この構成がサポートする環境は、各ゾーンがそのゾーンのラベルで動作するサブネットワークに接続されており、そのサブネットワークにはそのラベル用の独自のネームサーバーがあります。


注 –

この構成は、評価された構成の条件を満たしません。評価された構成では、nscd デーモンは大域ゾーンでのみ実行されます。各ラベル付きゾーン内の door は、そのゾーンを大域の nscd デーモンに接続します。


始める前に

大域ゾーンでスーパーユーザーになります。root はまだ役割になってはいけません。「既存のラベル付きゾーンを経路指定するためにネットワークインタフェースを追加する」が正常に完了しています。

この構成では、高度なネットワークスキルが要求されます。LDAP をネームサービスとして使用するユーザーには、各ラベル付きゾーンへの LDAP クライアント接続を確立する責任があります。nscd デーモンは、ネームサービスの情報をキャッシュに書き込みますが、そのルーティングは行いません。

  1. LDAP を使用している場合、ラベル付きゾーンから LDAP サーバーへのルートを確認します。

    各ラベル付きゾーンの端末ウィンドウで、次のコマンドを実行します。


    zone-name # netstat -rn
    
  2. 大域ゾーンで Labeled Zone Manager を起動します。


    # /usr/sbin/txzonemgr
    
  3. 「Configure per-zone name service」を選択し、「了解」をクリックします。

    このオプションは、初期システム構成時に一度だけ使用されるように意図されています。

  4. 各ゾーンの nscd サービスを構成します。

    参考として、nscd(1M) および nscd.conf(4) のマニュアルページを参照してください。

  5. システムを再起動します。

  6. ゾーンごとに、ルートとネームサービスデーモンを確認します。

    1. ゾーンコンソールで nscd サービスを表示します。


      zone-name # svcs -x name-service-cache
      svc:/system/name-service-cache:default (name service cache)
       State: online since October 10, 2010  10:10:10 AM PDT
         See: nscd(1M)
         See: /etc/svc/volatile/system-name-service-cache:default.log
      Impact: None.
    2. サブネットワークへのルートを確認します。


      zone-name # netstat -rn
      
  7. ゾーン固有のネームサービスデーモンを削除するには、大域ゾーンで次の手順を実行します。

    1. Labeled Zone Manager を開きます。

    2. 「Unconfigure per-zone name service」を選択し、「了解」をクリックします。

      この選択により、すべてのラベル付きゾーンで nscd デーモンが削除されます。

    3. システムを再起動します。