Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

共有 IP 非大域ゾーンにおけるネットワーク

ゾーンがインストールされている Solaris システムでは、ゾーンはネットワーク経由で互いに通信できます。ゾーンはすべて別個の結合または接続を保持します。また、すべてのゾーンは独自のサーバーデーモンを実行できます。これらのデーモンは、同一のポート番号で競合することなく待機できます。IP スタックは、着信接続の IP アドレスを考慮に入れることで競合を解決します。IP アドレスにより、ゾーンが識別されます。

共有 IP ゾーンの区分化

ゾーンをサポートするシステム内の IP スタックは、ゾーン間のネットワークトラフィックの分離を実装します。IP トラフィックを受け取るアプリケーションは、同じゾーンに送信されたトラフィックの受信だけを実行できます。

システム上の各論理インタフェースは、特定のゾーンに所属します。デフォルトは、大域ゾーンです。zonecfg ユーティリティー経由でゾーンに割り当てられた論理ネットワークインタフェースは、ネットワーク経由での通信に使用されます。各ストリームおよび接続は、それを開いたプロセスのゾーンに所属します。

上位層ストリームと論理インタフェース間の結合は、制限されます。ストリームが確立できるのは、同一ゾーン内の論理インタフェースへの結合だけです。同様に、論理インタフェースからのパケットを渡すことができるのは、論理インタフェースと同じゾーン内の上位層ストリームに対してだけです。

各ゾーンは、独自のバインドセットを保持します。アドレスが使用中であるため、各ゾーンは、同一のポート番号で待機する同じアプリケーションを、バインドが失敗することなく稼働可能です。各ゾーンは、次に示すサービスの独自のバージョンを実行できます。

大域ゾーン以外のゾーンは、ネットワークへのアクセスが制限されています。標準の TCP および UDP ソケットインタフェースが利用可能ですが、SOCK_RAW ソケットインタフェースは ICMP (Internet Control Message Protocol) に制限されています。ICMP は、ネットワークのエラー状況を検出および報告したり、ping コマンドを使用するのに必要です。

共有 IP ネットワークインタフェース

ネットワーク接続を必要とする非大域ゾーンには、それぞれ 1 つ以上の専用 IP アドレスがあります。これらのアドレスは、ifconfig コマンドを使ってゾーン内に配置可能な論理ネットワークインタフェースに関連付けられています。zonecfg により構成されるゾーンネットワークインタフェースは、起動時に自動的に設定されてゾーン内に配置されます。ifconfig コマンドを使用すると、ゾーンの稼働中に論理インタフェースを追加または削除できます。インタフェース構成およびネットワーク経路を変更できるのは、大域管理者だけです。

非大域ゾーン内部では、そのゾーンのインタフェースだけを ifconfig で表示できます。

詳細は、ifconfig(1m) および if_tcp(7P) のマニュアルページを参照してください。

同一マシン上の共有 IP ゾーン間の IP トラフィック

次の表に示す宛先およびゾーンの「一致する経路」が存在する場合にのみ、同一マシン上の 2 つのゾーン間でパケットの配信が許可されます。

一致情報は、次のように実装されます。

共有 IP ゾーンにおける Solaris IP フィルタ

Solaris IP フィルタは、ステートフルパケットフィルタリングとネットワークアドレス変換 (NAT) を行います。ステートフルパケットフィルタは、アクティブな接続の状態を監視し、取得した情報を使用して、ファイアウォールの通過を許可するネットワークパケットを決定することができます。Solaris IP フィルタには、ステートレスパケットのフィルタリングとアドレスプールの作成と管理を行う機能もあります。詳細は、『Solaris のシステム管理 (IP サービス)』の第 25 章「Oracle Solaris IP フィルタ (概要)」を参照してください。

ループバックフィルタリングをオンに設定することで、非大域ゾーンで Solaris IP フィルタを有効にすることができます。詳細は、『Solaris のシステム管理 (IP サービス)』の第 26 章「Oracle Solaris IP フィルタ (作業)」で説明されています。

Solaris IP フィルタは、オープンソースの IP Filter ソフトウェアをベースにしています。

共有 IP ゾーン内の IP ネットワークマルチパス

IP ネットワークマルチパス (IPMP) は、同一の IP リンク上に複数のインタフェースを保持するシステムで、物理インタフェースの障害検出および透過的なネットワークアクセスフェイルオーバーを提供します。IPMP も、複数のインタフェースを保持するシステムについて、パケットの負荷分散を提供します。

すべてのネットワーク構成は、大域ゾーン内で行われます。大域ゾーン内で IPMP を構成した後で、この機能を非大域ゾーンに拡張できます。ゾーンの構成時に、ゾーンのアドレスを IPMP グループ内に配置することでこの機能は拡張されます。その後、大域ゾーン内のいずれかのインタフェースで障害が発生すると、非大域ゾーンアドレスが別のインタフェースカードに移されます。1 つの共有 IP ゾーンが複数の IP アドレスを持つこと、共有 IP ゾーンが複数の IPMP グループに属すること、および特定の IPMP グループを複数の共有 IP ゾーンで使用することが可能です。

指定された非大域ゾーン内で、ゾーンに関連するインタフェースだけを ifconfig コマンドを使用して表示できます。

「IP ネットワークマルチパス機能を共有 IP 非大域ゾーンに拡張する方法」を参照してください。ゾーンの構成手順については、「ゾーンの構成方法」を参照してください。IPMP の機能、構成要素、および使用方法の詳細は、『Solaris のシステム管理 (IP サービス)』の第 30 章「IPMP の紹介 (概要)」を参照してください。