ゾーンの構成時、無線はanetのlower-linkとして使えません。そこでグローバルゾーンにvnicを作成してここにetherstub経由で接続し、さらにグローバルゾーンの無線NIC側でNATを使うこととしました。
資料: Crossbow & NAT to share DHCP WiFi interface between zones. 資料: CrossbowのVirtual NICとQoS制御を試してみる 資料: IP フィルタ (手順)
ゾーン作成(無線の場合)
ネットワーク構成
- グローバルゾーンのvnic
- vnic0 :172.31.0.254/24
- etherstub0に接続
- 作成するゾーンのIPアドレス: 172.31.0.1/24
- グローバルゾーンのnet1(無線)はDHCPで設定し、ここでNATを適用
グローバルゾーンでの設定
vnicの作成。
# dladm create-etherstub etherstub0 # dladm create-vnic -l etherstub0 vnic0 # ipadm create-ip vnic0 # ipadm create-addr -T static -a 172.31.0.254/24 vnic0/v4
グローバルゾーンでforwardingの設定。routingは必要ない。
# routeadm -u -d ipv4-routing # routeadm -u -e ipv4-forwarding # routeadm Configuration Current Current Option Configuration System State --------------------------------------------------------------- IPv4 routing disabled disabled IPv6 routing disabled disabled IPv4 forwarding enabled enabled IPv6 forwarding disabled disabled Routing services "route:default ripng:default" Routing daemons: STATE FMRI disabled svc:/network/routing/route:default disabled svc:/network/routing/rdisc:default disabled svc:/network/routing/legacy-routing:ipv4 disabled svc:/network/routing/legacy-routing:ipv6 disabled svc:/network/routing/ripng:default online svc:/network/routing/ndp:default
NATの設定。
# vi /etc/ipf/ipnat.conf map net1 172.31.0.0/24 -> 0.0.0.0/32 portmap tcp/udp auto map net1 172.31.0.0/24 -> 0.0.0.0/32
# svcadm enable network/ipfilter
ゾーンの作成
anetのlower-linkには先に作成したetherstub0を指定し、IPアドレスも設定しました。このようにいろいろ設定するのであれば、anetではなくnetを使った方が素直かもしれません。
# zonecfg -z cbe1 cbe1: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:cbe1> create create: Using system default template 'SYSdefault' zonecfg:cbe1> set zonepath=/zones/cbe1 zonecfg:cbe1> select anet linkname=net0 zonecfg:cbe1:anet> set lower-link=etherstub0 zonecfg:cbe1:anet> set allowed-address=172.31.0.1/24 zonecfg:cbe1:anet> set configure-allowed-address=true zonecfg:cbe1:anet> set defrouter=172.31.0.254 zonecfg:cbe1:anet> end zonecfg:cbe1> export create -b set zonepath=/zones/cbe1 set autoboot=false set ip-type=exclusive add anet set linkname=net0 set lower-link=etherstub0 set allowed-address=172.31.0.1/24 set configure-allowed-address=true set defrouter=172.31.0.254 set link-protection=mac-nospoof set mac-address=random end zonecfg:cbe1> verify zonecfg:cbe1> commit zonecfg:cbe1>
ゾーンのインストールとブート
root@solaris:/home/kirin/work# zoneadm -z cbe1 install root@solaris:/home/kirin/work# zoneadm -z cbe1 boot
ゾーンの初期設定
root@solaris:/home/kirin# zlogin -C cbe1
設定内容(最終確認画面)はつぎのとおりです。「IP Address: None」となっていますが、完了すると先に指定したIPアドレスが付与されます。
System Configuration Summary Review the settings below before continuing. Go back (F3) to make changes. Time Zone: Japan Language: *The following can be changed when logging in. Default language: C/POSIX Terminal type: vt100 Users: Username: install0 Network: Computer name: cbe3 Manual Configuration: None IP Address: None Netmask: 255.255.255.0 F2_Apply F3_Back F6_Help F9_Quit
DNSで名前解決するための設定です。searchとnameserverはグローバルゾーンのものを設定しました。
# svccfg -s dns/client setprop config/search='astring:("example.jp" "example.com")' # svccfg -s dns/client setprop config/nameserver='net_address:(A.B.C.D W.X.Y.Z)' # svccfg -s name-service/switch setprop config/host='astring:"files dns"' # svcadm enable dns/client # svcadm refresh name-service/switch資料: 手動モード時のネームサービスの構成