ゾーンの構成時、無線は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
資料: 手動モード時のネームサービスの構成