Solarisマシンをマイグレーションする場合、現在はLegacy Containersに仮想化するという企業も多いのではないでしょうか?Solarisでのファイアウォール機能をであるipfileterをこのLagacy Containers上の仮想マシンで利用する際には注意が必要です。Legacy Containersのネットワーク設定によっては仮想マシン上でipfilterのサービス起動は行うことができず、ホストOS上で設定を行う必要があります。
次の例はLegacy Containers上の仮想マシンでipfileterを起動しようとした例です。
# svcadm enable ipfilter # svcs -a ・・・ STATE STIME FMRI maintenance 17:06:23 svc:/network/ipfilter:default
通常問題なくサービスを起動できた場合は上記STATEは「online」となりますが「maintenance」という表示になっています。これはLagacy Containers上の仮想マシンに関するネットワーク設定が原因です。
Lagacy Containersにおけるネットワーク設定は通常「Shared」となっています。「Shared」はホストOSと仮想マシンとで物理NICを共有するという設定です。この「Shared」設定になっている場合は仮想マシン上でipfilterの設定・起動は行えないため、ホストOS上で仮想マシン分も含めipfilterの設定を行う必要があります。
下記にLagacy Containersにおけるネットワーク設定を確認するコマンドを記します。
# zoneadm list -iv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
10 test01 running /export/zones/test01 native shared ★
上記の仮想マシン「test01」を見ていただくとIPが「shared」になっていることがわかります。
物理NICを仮想マシンで占有させる「exclusive」にすることで仮想マシン上でもipfileterを利用することができますがこちらはまた別の機会に解説します。