SlideShare a Scribd company logo
OpenIndiana で仮想ネットワークを構築する



  東京OpenSolaris 勉強会 2012.04

  原口 章司
  mail: shoji.haraguchi@gmail.com
  twitter: @shojih
はじめに
●   小さなPC の中に仮想ネットワークを構築します
●   Crossbow(仮想wire) と Zone を使います
●   PC 1台でエンタープライズネットワーク環境を仮想で実現します
●   仮想ネットワークの上のそれぞれのサーバ設定を簡単に説明します
●   デモで使用しているドメイン名等は *フィクション* (笑) です
●OpenIndiana 151aですので、Oracle Solaris 11 で同様に構築するに
は設定方法が異なります、特にZone とネットワークの設定がかなり異な
ります。
使用したPCの紹介
            ●   Shuttle XS35 V2
                ●   Intel ATOM D525
                ●   1.8GHz Dual Core
                ●   4GB Memory
                ●   64 bit - 4 スレッド
                ●   省電力、静音、手頃な価格
                ●   OI/S11 で使用するには村山氏の
                    NIC ドライバー (jmge)が必要
                ●   Vt 非対応で OI-KVM使用不可
                ●   2本のHDD: 74GB, 149GB
仮想ネットワーク構成図
デモ環境へのアクセス
●   聞くよりも実際に見てみたい方は以下の方法で覗いてみてください。
     WiFi: SSID: test_ssid ( Wep パスワードなし)
     192.168.10.201 – 192.168.10.220 まで guest 用 Zone を作って
     あります。(host 名: vnc1 ~ vnc20)
     ● ssh で login する方: ssh -l build1 <IP address> パスワードはす

       べての zone で、build1 です。
     ● vncviewer の利用が可能な方 vncviewer <IP address>:1 パス

       ワードは build1 です。
basezone の作成
●GlobalZone 中にたくさんの Local Zone を作成しますが、実際には複
製(clone) で作成するので、インストールに時間がかかるのは最初の
basezone の作成だけです。
# cat /zones/cfgs/base <-たくさん zone を作るので config ファイルを /zones/cfgs にまとめています。
create -b
set zonepath=/zones/basezone
set autoboot=false
set ip-type=exclusive
add net
set physical=base0
end
# zonecfg -z basezone -f /zones/cfgs/basezone
# dladm create-vnic -l jmge0 base0
# zoneadm -z basezone install
# zoneadm -z basezone boot
# zlogin -C basezone
< host, IP address, timezone, root password 等の設定 >

~.   コンソールから抜ける
basezone の設定
●Default user の追加、ネットワーク設定、追加 pkg インストール。ネット
ワーク構成など、システム構成は複製で引き継がれませんが、ユーザ情
報や追加 インストールしたパッケージは複製されます
# zlogin basezone
basezone # useradd -u 100 -g staff -s /bin/bash -m build1
basezone # passwd build1
basezone # cat /etc/sudoers
build1 ALL=(ALL) ALL     build1 ユーザの権限を記入しておく

basezone # vi /resolv.conf
nameserver 192.168.10.254
basezone # vi /etc/nsswitch.conf

hosts:      files dns
ipnodes:    files dns
basezone # pkg refresh
basename # pkg install slim_install   デスクトップとして必要なパッケージはまとめてインストール
basename # exit
# zoneadm -z basezone halt
(Tips 1) dbus-daemon


●OI151a の既知の問題で、dbus-daemon が non-globalzone 上では
動作しない。影響ないのですが、svcs -xv でのメッセージが気になる方
は、/lib/svc/method/svc-dbus を変更する。参考:
https://www.illumos.org/issues/1249
# diff -u /lib/svc/method/svc-dbus_orig /lib/svc/method/svc-dbus
--- /lib/svc/method/svc-dbus_orig    Sat Jul 23 23:30:20 2011
+++ /lib/svc/method/svc-dbus    Sat Jul 23 23:31:24 2011
@@ -38,12 +38,12 @@
     /usr/bin/dbus-uuidgen --ensure
 fi

-if smf_is_nonglobalzone; then
-       /usr/sbin/svcadm disable -t svc:/system/dbus
-        echo "dbus-daemon cannot be run in non-global zones"
-       sleep 5 &
-       exit $SMF_EXIT_OK
-fi
+#if smf_is_nonglobalzone; then
+#       /usr/sbin/svcadm disable -t svc:/system/dbus
+#        echo "dbus-daemon cannot be run in non-global zones"
+#       sleep 5 &
+#       exit $SMF_EXIT_OK
+#fi
DNS サーバの作成
●   エンタープライズっぽくするために、まずDNS サーバを立てます



# cat /zones/cfgs/nameserver
create -b
set zonepath=/zones/nameserver
set autoboot=true
set ip-type=exclusive
add net
set physical=name0
end
# zonecfg -z nameserver -f /zones/cfgs/nameserver
# dladm create-vnic -l jmge0 name0
# zoneadm -z nameserver clone basezone
# zoneadm -z nameserver boot
# zlogin -C nameserver
DNS サーバの設定(1)
●   DNS サーバにするには bind パッケージを追加インストールします。
nameserver # pkg install service/network/dns/bind
nameserver # vi /etc/named.conf     このファイルを新規に作成します。
< subnet が 192.168.10.0 でDNS が 192.168.10.254 の場合は>
options {
    directory "/var/named";  <- /var/named に DNS 関連のファイルをおくことにします。
    forwarders {
        192.168.10.254;
    };
    allow-query {
        127.0.0.1;
        192.168.10.0/24;
    };
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "0.0.127.in-addr.arpa";
};

zone "sun.com" IN {
    type master;
    file "0.0.127.in-addr.arpa";
};

zone "sun.com" IN {          個人的な趣味で sun.com というドメイン名をデモでは使っています
    type master;
    file "suncom.zone";
};

zone "10.168.192.in-addr.arpa" IN {
    type master;
    file "10.168.192.in-addr.arpa";
};
DNS サーバの設定(2)
●   DNS サーバの設定の続き
root@nameserver:~# cd /var/named
root@nameserver:/var/named# ls
0.0.127.in-addr.arpa 10.168.192.in-addr.arpa localhost.zone suncom.zone
root@nameserver:/var/named# cat 0.0.127.in-addr.arpa
$TTL 1D
@   IN    SOA    localhost.    root.localhost. (
                      2012041001    シリアル番号は10桁数字を適当につけてます。
                      3H
                      15M
                      1W
                      1D )
    IN    NS     localhost.
1   IN    PTR    localhost.
root@nameserver:/var/named# cat localhost.zone
$TTL 1D
@   IN    SOA    localhost.    root.localhost. (
                      2012041001
                      3H
                      15M
                      1W
                      1D )
    IN    NS     localhost.
    IN    A      127.0.0.1
DNSサーバの設定(3)
●   DNS サーバの設定の続き (ドメイン名からの正引きリスト)
root@nameserver:/var/named# cat suncom.zone
$TTL 1D
@    IN   SOA     ns1.sun.com.    root.sun.com. (
                       2012041001
                       3H
                       15M
                       1W
                       1D )
        IN     NS     ns1.sun.com.
        IN     MX     0 mail.sun.com.     MXレコードは mail server の設定で必要になる
ns1          IN     A      192.168.10.120
www          IN     A      192.168.10.121
blogs        IN     A      192.168.10.122
rails        IN     A      192.168.10.123
pkgs    IN     A      192.168.10.124
mail    IN     A      192.168.10.125
…

root@nameserver:/var/named#
DNS サーバの設定(4)
●   DNS サーバの設定の続き (IPアドレスからの逆引きリスト)
root@nameserver:/var/named# cat 10.168.192.in-addr.arpa
$TTL 1D
@   IN    SOA    ns1.sun.com.     root.sun.com. (
                      2012041001
                      3H
                      15M
                      1W
                      1D )
      IN    NS     ns1.sun.com.
120    IN   PTR    ns1.sun.com.
121    IN   PTR    www.sun.com.
122    IN   PTR    blogs.sun.com.
123    IN   PTR    rails.sun.com.
124    IN   PTR    pkgs.sun.com.
125    IN   PTR    mail.sun.com.
...
DNS サーバの起動と確認
●named.conf 、正引き、逆引きリストの設定が完了したら、DNS service
を起動する。


nameserver # vi /etc/resolv.conf
nameserver 127.0.0.1
search sun.com

nameserver # svcadm enable svc:/network/dns/server:default
nameserver # host ns1.sun.com
ns1.sun.com has address 192.168.10.120   期待した IPが返ると OK
nameserver # host 192.168.10.120
120.10.168.192.in-addr.arpa domain name pointer ns1.sun.com.   OK
nameserver #
Webサーバの設定
●Web サーバ用には apache-22 を使っています。独立したサーバにす
ることもないとおもいましたが、 www.xxx.com でアクセスできるように
別のZone で立ててみました。
# cat /zones/cfgs/webserver
create -b
set zonepath=/zones/webserver
set autoboot=true
set ip-type=exclusive
add net
set physical=web0
end
# zonecfg -z webserver -f /zones/cfgs/webserver
# dladm create-vnic -l jmge0 web0
# zoneadm -z webserver clone basezone
# zoneadm -z webserver boot
# zlogin -C webserver
<各設定は省略>
# zlogin webserver
webserver # pkg install web/server/apache-22
webserver # svcadm enable svc:/network/http:apache22
MAILサーバ
●OpenIndiana のレポジトリには、簡単に使えそうなメールサーバが見
当たりませんでしたので、オープンソースの Apache James を使ってみ
ました。 尚、James は pure Java で POP3 のみに対応しています。
# cat /zones/cfgs/mailserver
create -b
set zonepath=/zones/mailserver
set autoboot=true
set ip-type=exclusive
add net
set physical=mail0
end
# zonecfg -z mailserver -f /zones/cfgs/mailserver
# dladm create-vnic -l jmge0 mail0
# zoneadm -z mailserver clone basezone
# zoneadm -z mailserver boot
# zlogin -C mailserver
<各設定は省略>
# zlogin mailserver
mailserver # cd /opt
mailserver # wget
http://ftp.jaist.ac.jp/pub/apache//james/server/apache-james-2.3.2.tar.gz
mailserver # gtar xvf ./apache-james-2.3.2.tar.gz
MAILサーバの設定(1)
●   James Mail Server のための必要な設定
mailserver # cd /opt/james-2.3.2/bin    James を展開したdirectroty の bin の下
mailserver # chmod +x ./phoenix.sh ./run.bat ./run.sh
mailserver # cd /opt/james-2.3.2/apps/james/SAR-INF
mailserver # vi config.xml   多少難解ですが config.xml を環境に合わせて設定します。
...
<config><james>
     <servernames autodetect="true" autodetectIP="true">
         <servername>localhost</servername>
         <servername>maiil.sun.com</servername>
         <servername>sun.com</servername>
      </servernames>
...
<dnsserver>
      <servers>
          <server>192.168.10.120</server> <- DNSに MX の記述があれば @domain に変換
          <server>127.0.0.1</server>
      </servers>
...

mailserver   #   cd /opt/james-2.3.2/bin
mailserver   #   export JAVA_HOME=/usr/java
mailserver   #   export PHOENIX_HOME=/opt/james-2.3.2
mailserver   #   ./run.sh    James の起動
MAILサーバの設定(2)
●   James Mail Server のための必要な設定
mailserver # su – build1
build1@mailserver:~$ telnet localhost 4555 James の設定には ポート4555 に telnet する
Trying ::1...
Connected to localhost.
Escape character is '^]'.
JAMES Remote Administration Tool 2.3.2
Please enter your login and password
Login id:
root
Password:
root
Welcome root. HELP for a list of commands
adduser build1 build1    build1 というユーザ名と build1 用の build1 というパスワードを追加
User build1 added
quit

これでデモ仮想環境の sun.com というローカルドメイン内では、 POP3 server : mail.sun.com, SMTP
Server: mail.sun.com と設定することで Mail Client (thunderbird とか)から使用可能になります。
DNSサーバとの連系で、build1@sun.com に送られたメールも build1@mail.sun.com と同じように処理されま
す。尚、メールのバケツリレーのための設定はしてませんので、ドメイン外部へのメールの送受信はこの状態では不可。
ブログサーバの設定(1)
●   簡単に設定できるので Wordpress を使用しています。



<blogserver zone の作成は他と同じなので省略します>
blogserver # pkg install amp     amp クラスタ (Apache, MySQL, PHP)を追加インストールします。
blogserver # cd /var/tmp
blogserver # wget http://ja.wordpress.org/wordpress-3.3.1-ja.tar.gz
blogserver # cd /var/apache2/2.2/htdocs
blogserver # gtar -xvf /var/tmp/wordpress-3.3.1-ja.tar.gz
blogserver # cd wordpress
blogserver # cp wp-config-sample.php wp-config.php
blogserver # vi wp-config.php    下記3行だけ書き換える この例では user wp, passowd wp
define('DB_NAME', 'wordpress');
define('DB_USER', 'wp');
define('DB_PASSWORD', 'wp');
blogserver # svcadm enable svc:/network/http:apache22
blogserver # svcadm enable svc:/application/database/mysql:version_51
ブログサーバの設定(2)
●   簡単に設定できるので Wordpress を使用しています。



blogserver # svcadm enable svc:/application/database/mysql:version_51
blogserver # /usr/mysql/bin/mysql -u root
> create database wordpress;
> grant all privileges on wordpress.* to wp@localhost identified by 'wp';
> flush privileges ;
> quit ;
blogserver # svcadm restart svc:/network/http:apache22

あとは ブラウザから http://localhost/wordpress/ にアクセスして各種設定を行います
デモ仮想環境では、 http://blogs.sun.com/hara/ で私のブログが参照できます。
Firewall
●GlobalZone 上に新たな subnet を構築する場合は、仮想スイッチを作
成します。また、subnet 間には router を設置し、その router に ipfilter
でファイアフォール化することで subnet のアクセス制御ができます。
# dladm create-etherstub sw0
# cat /zones/cfgs/firewall
create -b
set zonepath=/zones/firewall
set autoboot=true
set ip-type=exclusive
add net
set physical=fire0
end
add net
set physical=fire1     router や firewall では VNIC を2個設定しておきます
end
# dladm create-vnic -l sw0 fire0
# dladm create-vnic -l jmge0 fire1
# zoneadm -z firewall clone basezone
# zoneadm -z firewall boot
# zlogin -C firewall
<各設定は省略>
# zlogin firewall
Firewallの設定(1)
●   ipfilter のための必要な設定
firewall # ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
fire0/_a          static   ok           192.168.100.1/24
fire1/_a          static   ok           192.168.10.10/24
lo0/v6            static   ok           ::1/128
firewall # /usr/sbin/routeadm -e ipv4-forwarding
firewall # /usr/sbin/routeadm -u
firewall # ifconfig fire0 router
firewall # ifconfig fire1 router
firewall # cat /etc/ipf/ipnat.conf
map fire1 192.168.100.0/24 -> 0/32 portmap tcp/udp auto
map fire1 192.168.100.0/24 -> 0/32
firewall # svccfg -s ipfilter:default setprop firewall_config_default/policy =
astring: "custom"
firewall # svccfg -s ipfilter:default setprop
firewall_config_default/custom_policy_file = astring: "/etc/ipf/ipf.conf"
firewall # svcadm refresh ipfilter:default

(Tips) Default では、/etc/ipf/ipf.conf の設定を参照するようにはなってないので、この設定が必要です。
Firewallの設定(2)
●   ipfilter のための必要な設定
firewall # cat /etc/ipf/ipf.conf
# See ipf(4) manpage for more information on
# IP Filter rules syntax.
pass out quick on lo0
pass in quick on lo0
#
block in log quick on fire1 all with opt lsrr
block in log quick on fire1 all with opt ssrr
block in log quick from any to any with ipopts
block in log quick on fire1 proto tcp all with short
#
#block out log on fire1 all    この例では何もブロックしてない
#block in log on fire1 all

firewall # svcadm enable ipfilter:default
firewall # ipfstat
bad packets:     in 0 out 0
 IPv6 packets:        in 0 out 0
 input packets:       blocked 0 passed 23348 nomatch 23348 counted 0 short 0
output packets:       blocked 0 passed 15293 nomatch 15293 counted 0 short 0
...
Result cache hits(in):    15615    (out): 8646
IN Pullups succeeded:0    failed: 0
OUT Pullups succeeded:    0   failed: 0
その他サーバや環境設定
●   説明は省略しますが、他にも下記ようなサーバを設定しています。
    ●   pkgserver : /var/pkglocal の下に pkgrecv コマンドを使って
        OpenIndiana 151a のリポジトリを丸ごとコピーしています。デモ仮
        想環境では、pkgs.sun.com でアクセスでき、local domain 内で
        は、publisher に pkgs.sun.com を指定することでインターネットに接
        続なしに追加 package install が可能です。
    ●   cbe 1~ 3 (non-gui), test1~ test4 (GUI) 今年2月と3月に行われた
        OpenSolaris ハッカソンの build 環境を zone で構築しています。
    ●   rubyonrails: netbeans, ruby on rails で web 開発環境を zone で
        構築しています。
Tips(2) sysidcfg ファイル
●   Zone インストール後の system config 設定を省略する方法
# cat /zones/sysidsfgs/sample_sysidcfg

erminal=vt100
security_policy=NONE
network_interface=primary {
    hostname=basezone
        netmask=255.255.255.0
        protocol_ipv6=no
        ip_address=192.168.10.100
        netmask=255.255.255.0
        default_route=192.168.10.254 }
security_policy=NONE
name_service=DNS {domain_name=sun.com
    name_server=192.168.10.120
    search=sun.com }
nfs4_domain=dynamic
timezone=Japan
root_password=AAZ14d3MmkU6U

# cp sample_sysidcfg /zones/xxxserver/root/etc/sysidcfg

サンプルのような sysidcfg を作成して、zone 複製後、 初期起動前に /etc/sysidcfg に置くと、初期起動時の
system configuration 設定を省略させることができます。
まとめ
●   CrossBow や Zone のオーバーヘッドは意外にも小さく、こんな小さ
    な PC でも仮想ネットワークは構築できちゃいます。
●   遊園地をひとりで貸切っているようなもので、シングルユーザで使用
    する分には負荷も少ないです
●   数十個の Zone を構築しているのに、ZFS のおかげでディスク使用
    量こんな程度です。
        # zpool list
        NAME    SIZE   ALLOC    FREE   EXPANDSZ   CAP   DEDUP   HEALTH   ALTROOT
        pool    149G   10.6G    138G          -    7%   1.51x   ONLINE   -
        rpool    74G   16.3G   57.7G          -   22%   1.00x   ONLINE   -

    ●   Zone の自由度は高く、インストールや設定で Zone の制限を感
        じることはほとんどありません。ネットワークの学習には最適です

More Related Content

What's hot

さくらのクラウドでのPlesk Onyx導入手順
さくらのクラウドでのPlesk Onyx導入手順さくらのクラウドでのPlesk Onyx導入手順
さくらのクラウドでのPlesk Onyx導入手順
さくらインターネット株式会社
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
 
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf) Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
VirtualTech Japan Inc.
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
irix_jp
 
Packet と向き合う夏 VRRP Advertisement編
Packet と向き合う夏 VRRP Advertisement編Packet と向き合う夏 VRRP Advertisement編
Packet と向き合う夏 VRRP Advertisement編
@ otsuka752
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
Masakazu Asama
 
さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介
SAKURA Internet Inc.
 
Aerospike紹介-LT用
Aerospike紹介-LT用Aerospike紹介-LT用
Aerospike紹介-LT用
Joongjin Bae
 
はじめてのWebサーバ構築 さくらvps
はじめてのWebサーバ構築 さくらvpsはじめてのWebサーバ構築 さくらvps
はじめてのWebサーバ構築 さくらvps
Atsuhiro Takiguchi
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
@ otsuka752
 
PowerDNSのご紹介
PowerDNSのご紹介PowerDNSのご紹介
PowerDNSのご紹介
Akira Matsuda
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
VirtualTech Japan Inc.
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
Noriyuki Yamaguchi
 
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
FC SAN Fabric環境におけるパフォーマンストラブルの対処法FC SAN Fabric環境におけるパフォーマンストラブルの対処法
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
Brocade
 
httpd.conf line 1 to 7, 24
httpd.conf line 1 to 7, 24httpd.conf line 1 to 7, 24
httpd.conf line 1 to 7, 24
Naoya Nakazawa
 
20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料
dcubeio
 

What's hot (17)

さくらのクラウドでのPlesk Onyx導入手順
さくらのクラウドでのPlesk Onyx導入手順さくらのクラウドでのPlesk Onyx導入手順
さくらのクラウドでのPlesk Onyx導入手順
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
 
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf) Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
Havana版 RDO-QuickStart-3 (140421-Havana-RDO-QuickStart-3.pdf)
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
 
Packet と向き合う夏 VRRP Advertisement編
Packet と向き合う夏 VRRP Advertisement編Packet と向き合う夏 VRRP Advertisement編
Packet と向き合う夏 VRRP Advertisement編
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介さくらのクラウドインフラの紹介
さくらのクラウドインフラの紹介
 
Aerospike紹介-LT用
Aerospike紹介-LT用Aerospike紹介-LT用
Aerospike紹介-LT用
 
はじめてのWebサーバ構築 さくらvps
はじめてのWebサーバ構築 さくらvpsはじめてのWebサーバ構築 さくらvps
はじめてのWebサーバ構築 さくらvps
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
 
PowerDNSのご紹介
PowerDNSのご紹介PowerDNSのご紹介
PowerDNSのご紹介
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
 
Osc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamagutiOsc2012 tokyo fall_home_san_nayamaguti
Osc2012 tokyo fall_home_san_nayamaguti
 
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
FC SAN Fabric環境におけるパフォーマンストラブルの対処法FC SAN Fabric環境におけるパフォーマンストラブルの対処法
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
 
httpd.conf line 1 to 7, 24
httpd.conf line 1 to 7, 24httpd.conf line 1 to 7, 24
httpd.conf line 1 to 7, 24
 
20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料
 

Similar to OpenIndiana vWire Demo (Japanese)

Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)
Daisuke Ikeda
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
Nobuyuki Sasaki
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
Yasuhiro Arai
 
OpenStack構築手順書 Juno版
OpenStack構築手順書 Juno版OpenStack構築手順書 Juno版
OpenStack構築手順書 Juno版
VirtualTech Japan Inc.
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
Yu Ito
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
Yu Ito
 
シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016
Yu Ito
 
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
Amazon Web Services Japan
 
cloudhandson
cloudhandsoncloudhandson
cloudhandson
Toshiya Okita
 
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
hdais
 
Oracle xeインストール(linux環境)
Oracle xeインストール(linux環境)Oracle xeインストール(linux環境)
Oracle xeインストール(linux環境)
izuyuri
 
Windows Azure 上でのVPN 接続方法
Windows Azure 上でのVPN 接続方法Windows Azure 上でのVPN 接続方法
Windows Azure 上でのVPN 接続方法
Masaki Takeda
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
Yutaka Tsumori
 
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
Satoshi Shimazaki
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
Masataka Tsukamoto
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Masanobu Saitoh
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
Dell TechCenter Japan
 

Similar to OpenIndiana vWire Demo (Japanese) (20)

Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
OpenStack構築手順書 Juno版
OpenStack構築手順書 Juno版OpenStack構築手順書 Juno版
OpenStack構築手順書 Juno版
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
 
シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016
 
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
 
cloudhandson
cloudhandsoncloudhandson
cloudhandson
 
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
 
Oracle xeインストール(linux環境)
Oracle xeインストール(linux環境)Oracle xeインストール(linux環境)
Oracle xeインストール(linux環境)
 
Windows Azure 上でのVPN 接続方法
Windows Azure 上でのVPN 接続方法Windows Azure 上でのVPN 接続方法
Windows Azure 上でのVPN 接続方法
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
 
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
OSC 2011 Tokyo/Fall 自宅SAN友の会 (Infinibandお試し編)
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
 

OpenIndiana vWire Demo (Japanese)

  • 1. OpenIndiana で仮想ネットワークを構築する 東京OpenSolaris 勉強会 2012.04 原口 章司 mail: shoji.haraguchi@gmail.com twitter: @shojih
  • 2. はじめに ● 小さなPC の中に仮想ネットワークを構築します ● Crossbow(仮想wire) と Zone を使います ● PC 1台でエンタープライズネットワーク環境を仮想で実現します ● 仮想ネットワークの上のそれぞれのサーバ設定を簡単に説明します ● デモで使用しているドメイン名等は *フィクション* (笑) です ●OpenIndiana 151aですので、Oracle Solaris 11 で同様に構築するに は設定方法が異なります、特にZone とネットワークの設定がかなり異な ります。
  • 3. 使用したPCの紹介 ● Shuttle XS35 V2 ● Intel ATOM D525 ● 1.8GHz Dual Core ● 4GB Memory ● 64 bit - 4 スレッド ● 省電力、静音、手頃な価格 ● OI/S11 で使用するには村山氏の NIC ドライバー (jmge)が必要 ● Vt 非対応で OI-KVM使用不可 ● 2本のHDD: 74GB, 149GB
  • 5. デモ環境へのアクセス ● 聞くよりも実際に見てみたい方は以下の方法で覗いてみてください。 WiFi: SSID: test_ssid ( Wep パスワードなし) 192.168.10.201 – 192.168.10.220 まで guest 用 Zone を作って あります。(host 名: vnc1 ~ vnc20) ● ssh で login する方: ssh -l build1 <IP address> パスワードはす べての zone で、build1 です。 ● vncviewer の利用が可能な方 vncviewer <IP address>:1 パス ワードは build1 です。
  • 6. basezone の作成 ●GlobalZone 中にたくさんの Local Zone を作成しますが、実際には複 製(clone) で作成するので、インストールに時間がかかるのは最初の basezone の作成だけです。 # cat /zones/cfgs/base <-たくさん zone を作るので config ファイルを /zones/cfgs にまとめています。 create -b set zonepath=/zones/basezone set autoboot=false set ip-type=exclusive add net set physical=base0 end # zonecfg -z basezone -f /zones/cfgs/basezone # dladm create-vnic -l jmge0 base0 # zoneadm -z basezone install # zoneadm -z basezone boot # zlogin -C basezone < host, IP address, timezone, root password 等の設定 > ~. コンソールから抜ける
  • 7. basezone の設定 ●Default user の追加、ネットワーク設定、追加 pkg インストール。ネット ワーク構成など、システム構成は複製で引き継がれませんが、ユーザ情 報や追加 インストールしたパッケージは複製されます # zlogin basezone basezone # useradd -u 100 -g staff -s /bin/bash -m build1 basezone # passwd build1 basezone # cat /etc/sudoers build1 ALL=(ALL) ALL build1 ユーザの権限を記入しておく basezone # vi /resolv.conf nameserver 192.168.10.254 basezone # vi /etc/nsswitch.conf hosts: files dns ipnodes: files dns basezone # pkg refresh basename # pkg install slim_install デスクトップとして必要なパッケージはまとめてインストール basename # exit # zoneadm -z basezone halt
  • 8. (Tips 1) dbus-daemon ●OI151a の既知の問題で、dbus-daemon が non-globalzone 上では 動作しない。影響ないのですが、svcs -xv でのメッセージが気になる方 は、/lib/svc/method/svc-dbus を変更する。参考: https://www.illumos.org/issues/1249 # diff -u /lib/svc/method/svc-dbus_orig /lib/svc/method/svc-dbus --- /lib/svc/method/svc-dbus_orig Sat Jul 23 23:30:20 2011 +++ /lib/svc/method/svc-dbus Sat Jul 23 23:31:24 2011 @@ -38,12 +38,12 @@ /usr/bin/dbus-uuidgen --ensure fi -if smf_is_nonglobalzone; then - /usr/sbin/svcadm disable -t svc:/system/dbus - echo "dbus-daemon cannot be run in non-global zones" - sleep 5 & - exit $SMF_EXIT_OK -fi +#if smf_is_nonglobalzone; then +# /usr/sbin/svcadm disable -t svc:/system/dbus +# echo "dbus-daemon cannot be run in non-global zones" +# sleep 5 & +# exit $SMF_EXIT_OK +#fi
  • 9. DNS サーバの作成 ● エンタープライズっぽくするために、まずDNS サーバを立てます # cat /zones/cfgs/nameserver create -b set zonepath=/zones/nameserver set autoboot=true set ip-type=exclusive add net set physical=name0 end # zonecfg -z nameserver -f /zones/cfgs/nameserver # dladm create-vnic -l jmge0 name0 # zoneadm -z nameserver clone basezone # zoneadm -z nameserver boot # zlogin -C nameserver
  • 10. DNS サーバの設定(1) ● DNS サーバにするには bind パッケージを追加インストールします。 nameserver # pkg install service/network/dns/bind nameserver # vi /etc/named.conf このファイルを新規に作成します。 < subnet が 192.168.10.0 でDNS が 192.168.10.254 の場合は> options { directory "/var/named";  <- /var/named に DNS 関連のファイルをおくことにします。 forwarders { 192.168.10.254; }; allow-query { 127.0.0.1; 192.168.10.0/24; }; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "0.0.127.in-addr.arpa"; }; zone "sun.com" IN { type master; file "0.0.127.in-addr.arpa"; }; zone "sun.com" IN { 個人的な趣味で sun.com というドメイン名をデモでは使っています type master; file "suncom.zone"; }; zone "10.168.192.in-addr.arpa" IN { type master; file "10.168.192.in-addr.arpa"; };
  • 11. DNS サーバの設定(2) ● DNS サーバの設定の続き root@nameserver:~# cd /var/named root@nameserver:/var/named# ls 0.0.127.in-addr.arpa 10.168.192.in-addr.arpa localhost.zone suncom.zone root@nameserver:/var/named# cat 0.0.127.in-addr.arpa $TTL 1D @ IN SOA localhost. root.localhost. ( 2012041001 シリアル番号は10桁数字を適当につけてます。 3H 15M 1W 1D ) IN NS localhost. 1 IN PTR localhost. root@nameserver:/var/named# cat localhost.zone $TTL 1D @ IN SOA localhost. root.localhost. ( 2012041001 3H 15M 1W 1D ) IN NS localhost. IN A 127.0.0.1
  • 12. DNSサーバの設定(3) ● DNS サーバの設定の続き (ドメイン名からの正引きリスト) root@nameserver:/var/named# cat suncom.zone $TTL 1D @ IN SOA ns1.sun.com. root.sun.com. ( 2012041001 3H 15M 1W 1D ) IN NS ns1.sun.com. IN MX 0 mail.sun.com. MXレコードは mail server の設定で必要になる ns1 IN A 192.168.10.120 www IN A 192.168.10.121 blogs IN A 192.168.10.122 rails IN A 192.168.10.123 pkgs IN A 192.168.10.124 mail IN A 192.168.10.125 … root@nameserver:/var/named#
  • 13. DNS サーバの設定(4) ● DNS サーバの設定の続き (IPアドレスからの逆引きリスト) root@nameserver:/var/named# cat 10.168.192.in-addr.arpa $TTL 1D @ IN SOA ns1.sun.com. root.sun.com. ( 2012041001 3H 15M 1W 1D ) IN NS ns1.sun.com. 120 IN PTR ns1.sun.com. 121 IN PTR www.sun.com. 122 IN PTR blogs.sun.com. 123 IN PTR rails.sun.com. 124 IN PTR pkgs.sun.com. 125 IN PTR mail.sun.com. ...
  • 14. DNS サーバの起動と確認 ●named.conf 、正引き、逆引きリストの設定が完了したら、DNS service を起動する。 nameserver # vi /etc/resolv.conf nameserver 127.0.0.1 search sun.com nameserver # svcadm enable svc:/network/dns/server:default nameserver # host ns1.sun.com ns1.sun.com has address 192.168.10.120 期待した IPが返ると OK nameserver # host 192.168.10.120 120.10.168.192.in-addr.arpa domain name pointer ns1.sun.com. OK nameserver #
  • 15. Webサーバの設定 ●Web サーバ用には apache-22 を使っています。独立したサーバにす ることもないとおもいましたが、 www.xxx.com でアクセスできるように 別のZone で立ててみました。 # cat /zones/cfgs/webserver create -b set zonepath=/zones/webserver set autoboot=true set ip-type=exclusive add net set physical=web0 end # zonecfg -z webserver -f /zones/cfgs/webserver # dladm create-vnic -l jmge0 web0 # zoneadm -z webserver clone basezone # zoneadm -z webserver boot # zlogin -C webserver <各設定は省略> # zlogin webserver webserver # pkg install web/server/apache-22 webserver # svcadm enable svc:/network/http:apache22
  • 16. MAILサーバ ●OpenIndiana のレポジトリには、簡単に使えそうなメールサーバが見 当たりませんでしたので、オープンソースの Apache James を使ってみ ました。 尚、James は pure Java で POP3 のみに対応しています。 # cat /zones/cfgs/mailserver create -b set zonepath=/zones/mailserver set autoboot=true set ip-type=exclusive add net set physical=mail0 end # zonecfg -z mailserver -f /zones/cfgs/mailserver # dladm create-vnic -l jmge0 mail0 # zoneadm -z mailserver clone basezone # zoneadm -z mailserver boot # zlogin -C mailserver <各設定は省略> # zlogin mailserver mailserver # cd /opt mailserver # wget http://ftp.jaist.ac.jp/pub/apache//james/server/apache-james-2.3.2.tar.gz mailserver # gtar xvf ./apache-james-2.3.2.tar.gz
  • 17. MAILサーバの設定(1) ● James Mail Server のための必要な設定 mailserver # cd /opt/james-2.3.2/bin James を展開したdirectroty の bin の下 mailserver # chmod +x ./phoenix.sh ./run.bat ./run.sh mailserver # cd /opt/james-2.3.2/apps/james/SAR-INF mailserver # vi config.xml 多少難解ですが config.xml を環境に合わせて設定します。 ... <config><james> <servernames autodetect="true" autodetectIP="true"> <servername>localhost</servername> <servername>maiil.sun.com</servername> <servername>sun.com</servername> </servernames> ... <dnsserver> <servers> <server>192.168.10.120</server> <- DNSに MX の記述があれば @domain に変換 <server>127.0.0.1</server> </servers> ... mailserver # cd /opt/james-2.3.2/bin mailserver # export JAVA_HOME=/usr/java mailserver # export PHOENIX_HOME=/opt/james-2.3.2 mailserver # ./run.sh James の起動
  • 18. MAILサーバの設定(2) ● James Mail Server のための必要な設定 mailserver # su – build1 build1@mailserver:~$ telnet localhost 4555 James の設定には ポート4555 に telnet する Trying ::1... Connected to localhost. Escape character is '^]'. JAMES Remote Administration Tool 2.3.2 Please enter your login and password Login id: root Password: root Welcome root. HELP for a list of commands adduser build1 build1 build1 というユーザ名と build1 用の build1 というパスワードを追加 User build1 added quit これでデモ仮想環境の sun.com というローカルドメイン内では、 POP3 server : mail.sun.com, SMTP Server: mail.sun.com と設定することで Mail Client (thunderbird とか)から使用可能になります。 DNSサーバとの連系で、build1@sun.com に送られたメールも build1@mail.sun.com と同じように処理されま す。尚、メールのバケツリレーのための設定はしてませんので、ドメイン外部へのメールの送受信はこの状態では不可。
  • 19. ブログサーバの設定(1) ● 簡単に設定できるので Wordpress を使用しています。 <blogserver zone の作成は他と同じなので省略します> blogserver # pkg install amp amp クラスタ (Apache, MySQL, PHP)を追加インストールします。 blogserver # cd /var/tmp blogserver # wget http://ja.wordpress.org/wordpress-3.3.1-ja.tar.gz blogserver # cd /var/apache2/2.2/htdocs blogserver # gtar -xvf /var/tmp/wordpress-3.3.1-ja.tar.gz blogserver # cd wordpress blogserver # cp wp-config-sample.php wp-config.php blogserver # vi wp-config.php 下記3行だけ書き換える この例では user wp, passowd wp define('DB_NAME', 'wordpress'); define('DB_USER', 'wp'); define('DB_PASSWORD', 'wp'); blogserver # svcadm enable svc:/network/http:apache22 blogserver # svcadm enable svc:/application/database/mysql:version_51
  • 20. ブログサーバの設定(2) ● 簡単に設定できるので Wordpress を使用しています。 blogserver # svcadm enable svc:/application/database/mysql:version_51 blogserver # /usr/mysql/bin/mysql -u root > create database wordpress; > grant all privileges on wordpress.* to wp@localhost identified by 'wp'; > flush privileges ; > quit ; blogserver # svcadm restart svc:/network/http:apache22 あとは ブラウザから http://localhost/wordpress/ にアクセスして各種設定を行います デモ仮想環境では、 http://blogs.sun.com/hara/ で私のブログが参照できます。
  • 21. Firewall ●GlobalZone 上に新たな subnet を構築する場合は、仮想スイッチを作 成します。また、subnet 間には router を設置し、その router に ipfilter でファイアフォール化することで subnet のアクセス制御ができます。 # dladm create-etherstub sw0 # cat /zones/cfgs/firewall create -b set zonepath=/zones/firewall set autoboot=true set ip-type=exclusive add net set physical=fire0 end add net set physical=fire1 router や firewall では VNIC を2個設定しておきます end # dladm create-vnic -l sw0 fire0 # dladm create-vnic -l jmge0 fire1 # zoneadm -z firewall clone basezone # zoneadm -z firewall boot # zlogin -C firewall <各設定は省略> # zlogin firewall
  • 22. Firewallの設定(1) ● ipfilter のための必要な設定 firewall # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 fire0/_a static ok 192.168.100.1/24 fire1/_a static ok 192.168.10.10/24 lo0/v6 static ok ::1/128 firewall # /usr/sbin/routeadm -e ipv4-forwarding firewall # /usr/sbin/routeadm -u firewall # ifconfig fire0 router firewall # ifconfig fire1 router firewall # cat /etc/ipf/ipnat.conf map fire1 192.168.100.0/24 -> 0/32 portmap tcp/udp auto map fire1 192.168.100.0/24 -> 0/32 firewall # svccfg -s ipfilter:default setprop firewall_config_default/policy = astring: "custom" firewall # svccfg -s ipfilter:default setprop firewall_config_default/custom_policy_file = astring: "/etc/ipf/ipf.conf" firewall # svcadm refresh ipfilter:default (Tips) Default では、/etc/ipf/ipf.conf の設定を参照するようにはなってないので、この設定が必要です。
  • 23. Firewallの設定(2) ● ipfilter のための必要な設定 firewall # cat /etc/ipf/ipf.conf # See ipf(4) manpage for more information on # IP Filter rules syntax. pass out quick on lo0 pass in quick on lo0 # block in log quick on fire1 all with opt lsrr block in log quick on fire1 all with opt ssrr block in log quick from any to any with ipopts block in log quick on fire1 proto tcp all with short # #block out log on fire1 all この例では何もブロックしてない #block in log on fire1 all firewall # svcadm enable ipfilter:default firewall # ipfstat bad packets: in 0 out 0 IPv6 packets: in 0 out 0 input packets: blocked 0 passed 23348 nomatch 23348 counted 0 short 0 output packets: blocked 0 passed 15293 nomatch 15293 counted 0 short 0 ... Result cache hits(in): 15615 (out): 8646 IN Pullups succeeded:0 failed: 0 OUT Pullups succeeded: 0 failed: 0
  • 24. その他サーバや環境設定 ● 説明は省略しますが、他にも下記ようなサーバを設定しています。 ● pkgserver : /var/pkglocal の下に pkgrecv コマンドを使って OpenIndiana 151a のリポジトリを丸ごとコピーしています。デモ仮 想環境では、pkgs.sun.com でアクセスでき、local domain 内で は、publisher に pkgs.sun.com を指定することでインターネットに接 続なしに追加 package install が可能です。 ● cbe 1~ 3 (non-gui), test1~ test4 (GUI) 今年2月と3月に行われた OpenSolaris ハッカソンの build 環境を zone で構築しています。 ● rubyonrails: netbeans, ruby on rails で web 開発環境を zone で 構築しています。
  • 25. Tips(2) sysidcfg ファイル ● Zone インストール後の system config 設定を省略する方法 # cat /zones/sysidsfgs/sample_sysidcfg erminal=vt100 security_policy=NONE network_interface=primary { hostname=basezone netmask=255.255.255.0 protocol_ipv6=no ip_address=192.168.10.100 netmask=255.255.255.0 default_route=192.168.10.254 } security_policy=NONE name_service=DNS {domain_name=sun.com name_server=192.168.10.120 search=sun.com } nfs4_domain=dynamic timezone=Japan root_password=AAZ14d3MmkU6U # cp sample_sysidcfg /zones/xxxserver/root/etc/sysidcfg サンプルのような sysidcfg を作成して、zone 複製後、 初期起動前に /etc/sysidcfg に置くと、初期起動時の system configuration 設定を省略させることができます。
  • 26. まとめ ● CrossBow や Zone のオーバーヘッドは意外にも小さく、こんな小さ な PC でも仮想ネットワークは構築できちゃいます。 ● 遊園地をひとりで貸切っているようなもので、シングルユーザで使用 する分には負荷も少ないです ● 数十個の Zone を構築しているのに、ZFS のおかげでディスク使用 量こんな程度です。 # zpool list NAME SIZE ALLOC FREE EXPANDSZ CAP DEDUP HEALTH ALTROOT pool 149G 10.6G 138G - 7% 1.51x ONLINE - rpool 74G 16.3G 57.7G - 22% 1.00x ONLINE - ● Zone の自由度は高く、インストールや設定で Zone の制限を感 じることはほとんどありません。ネットワークの学習には最適です