« 2009年6月 | トップページ | 2009年8月 »

Unbound の設定

 インターネットブラウザで、http://www.jp.freebsd.org/www.FreeBSD.org/ にアクセスすると、FreeBSD の(英語の(^^;)ホームページが表示されますが、代わりに http://211.14.6.244/www.FreeBSD.org/ にアクセスしても、同じページが表示されます。

 これは、インターネットの世界では、「www.jp.freebsd.org」(ホスト名)と、「211.14.6.244」(IPアドレス)とが、DNS により対応付けられているためです。
 (ちなみに、インターネットブラウザは、IPアドレスを使って、ホームページにアクセスしています。)

 なお、ひとことで DNSサーバ といっても、機能の面から、
(1) ホスト名とIPアドレスの対応表を持っている コンテンツサーバ
(2) 他の DNS サーバに問い合わせを行ない、ホスト名とIPアドレスの変換結果をもらう キャッシュサーバ
 の2つに大きく分けられます。

 今回、インストールした Unbound は、キャッシュサーバの機能に特化した DNS サーバです。

 ちなみに、unbound には、「束縛(=bind)からの解放」という意味があり、DNSサーバの勢力図(BIND という DNSサーバがトップシェア)を知っていると、なかなか面白い命名ですね(^-^;


■ 事前準備

 自分の使っている LAN のアドレスと、LAN内にある PC の IPアドレスを確認しておきます。
 (FreeBSD なら ifconfignetstat -rn 、Windows なら ipconfig を使って、それらしいもの(^^;;を探します。)

 大抵の人は、LANアドレスが 192.168.0.0/24、IPアドレスが 192.168.0.xx (xx は 1~255 までの数字のどれか)になっていると思います。
 私のところでは、LANアドレスが 192.168.1.0/24、FreeBSD の IPアドレスが 192.168.1.2 なので、以下、これを使って話を進めます(^^)


 それから、Unbound のホームページには、役立つ情報があるので、見ておきましよう。

 ◆ 日本Unboundユーザ会: http://unbound.jp/
 ◆ DNSOPS.JP BoF発表資料: http://unbound.jp/files/pdf/unbound-dnsops.jp-bof-20081125.pdf


■ Unbound のインストール

 Unboundports があるので、それを使うのが簡単です。
 《 ports ツリーの、unbound ディレクトリに移動 》
# cd /usr/ports/dns/unbound[Enter]
 make を実行 》
# make[Enter]
 オプション設定画面が表示されるので、


┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
                     Options for unbound 1.3.0                      ┃  
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
[ ] LIBEVENT  is useful when using many (10000) outgoing ports    
┃[X] THREADS   build with threads support                          
┃[ ] PYTHON    build python bindings                               
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
                       [  OK  ]       Cancel                        ┃  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
                                                                          

 なにもせず、[Enter]キー を押します。

 その後、依存関係によって、gmake、gettext、libtool、libiconv などが、いもづる式にインストールされます(^^)
 (libiconv のコンパイル時にも、オプション設定画面が表示されますが、そのまま [Enter]キー を押します。)

 コンパイルが終わったら(NP11-V で1時間くらい…)、
 シェアードライブラリのキャッシュを更新 》
# ldconfig[Enter]
 コマンド検索パスを更新 》
# rehash[Enter]
#  
 を、忘れないうちに実行しておきます。


■ unbound.conf の作成

 Unbound の設定ファイル /usr/local/etc/unbound/unbound.conf を作成します。
 《 unbound の設定ファイルがインストールされたディレクトリに移動 》
# cd /usr/local/etc/unbound[Enter]
 《 unbound.conf.sample をコピー 》
# cp unbound.conf.sample unbound.conf[Enter]
 《 unbound.conf を編集 》
# vi unbound.conf[Enter]

 面倒くさいのは嫌い、という人は、
server:
        interface: 0.0.0.0
        access-control: 192.168.0.0/16 allow
        do-ip6: no
 という内容の unbound.conf を作れば、大抵の場合、これだけで動くようです


 ちなみに、私が今、使っている unbound.conf の中身を載せておきます(抜粋版ではなくて、「そのもの」ですよ)。

 基本的な方針は、前述の「DNSOPS.JP BoF発表資料」の、「メモリ削除のチューニング例」を参考に、メモリ消費量少なめで設定しています。
 もっとも、NP-11V のメモリは、1GB → 2GB に増強済みなので、メモリに余裕がない訳ではないんですけどね(^^;

 赤字 が、書き換え/追加した部分です…って、ほとんど全部だったりして(^-^;;
# This file is auto generated from "unbound.conf.s".
server:
        verbosity: 1
        interface: 127.0.0.1
        interface: 192.168.1.2
        outgoing-num-tcp: 1
        incoming-num-tcp: 1
        msg-buffer-size: 8192
        msg-cache-size: 512k
        msg-cache-slabs: 2
        num-queries-per-thread: 64
        rrset-cache-size: 1m
        rrset-cache-slabs: 2
        infra-cache-slabs: 2
        infra-cache-numhosts: 512
        do-ip6: no
        access-control: 127.0.0.1/32 allow
        access-control: 192.168.1.0/24 allow
        access-control: 0.0.0.0/0 deny
        pidfile: /var/run/unbound.pid
        harden-short-bufsize: yes
        harden-large-queries: yes
        key-cache-size: 64k
        key-cache-slabs: 2
        neg-cache-size: 64k
        local-zone: "home.made." static
        local-data: "thyme.home.made.  IN A 192.168.1.2"
        local-data: "nasubi.home.made. IN A 192.168.1.6"
        local-data: "host0.home.made.  IN A 192.168.1.100"
        local-data: "host1.home.made.  IN A 192.168.1.101"
        local-data: "host2.home.made.  IN A 192.168.1.102"
        local-data: "host3.home.made.  IN A 192.168.1.103"
        local-data-ptr: "192.168.1.2   thyme.home.made."
        local-data-ptr: "192.168.1.6   nasubi.home.made."
        local-data-ptr: "192.168.1.100 host0.home.made."
        local-data-ptr: "192.168.1.101 host1.home.made."
        local-data-ptr: "192.168.1.102 host2.home.made."
        local-data-ptr: "192.168.1.103 host3.home.made."
python:
remote-control:
forward-zone:
        name: "jp"
        name: "com"
        forward-addr: 202.248.0.xx
        forward-addr: 210.131.113.xx
        forward-addr: 192.168.1.1
● 解説

 「日本Unboundユーザ会」のホームページにある、unbound.conf(5) のマニュアルを見てもよく分からず、仕方がないので自分で調べてみたけれど、やっぱりよく意味の分からない設定が、たくさんあります…(^^;;;


03行目:verbosity: 1
 「おしゃべり度」の設定。特に変える必要もなさそうなので…

04行目:interface: 127.0.0.1
05行目:interface: 192.168.1.2
 Unbound が、DNS の問い合わせを受け付けるのに使うアドレス。
 127.0.0.1ローカルホストのアドレス192.168.1.2 は FreeBSD が動いている PC の IPアドレスです

 FreeBSD が動いている PC の IPアドレスを、DHCP を使って、動的に設定している場合には、05行目はエラーの原因になるので、削除しておきます。

06行目:outgoing-num-tcp: 1
07行目:incoming-num-tcp: 1
 DNS の問い合わせの際に、一度に使う TCP接続 の最大数。

 通常、DNS のデータは UDP で送られますが、UDP では送れない大きなデータがある場合には、TCP が使われます。
 でも、TCP を使うほどのデータは、滅多にないはず… という想定のもと、最小値を設定しています。
 (絶対に使わない、と思えば 0 を設定してもいいのですが、そこまでは割り切れない…(^^;

08行目:msg-buffer-size: 8192
 前述の 「BoF資料」の「メモリ削減のチューニング例」の数値をまねしました(^^;

09行目:msg-cache-size: 512k
 ほかの DNS サーバから受け取った 生データ を、どれだけの量 持っておくかの設定(多分)。
 数値は、rrse-cache-size の半分で、いいらしいので、512KB に設定しています。

10行目:msg-cache-slabs: 2
 ホームページにある解説から逆読みすると、競合を避けるために、msg-cache 領域をいくつに分割するかの設定。
 1,2,4,8,16,… のうち、CPU の数に一番近い数字に合わせるといいよ~、と書いてあるので、2 にしてあります。
 (NP11-V の CPU、Atom 230 は Dual-Core です(^^)

 …でも、num-thread の数とも合わせるべし、とも書いてあるので、もしかすると、私の期待通りに動いてないのかも(^^;;;

11行目:num-queries-per-thread: 64
 一度に処理する、DNS 問い合わせの最大数。
 「BoF資料」に書いてある数値の約2倍にしてあります

12行目:rrset-cache-size: 1m
 ほかの DNS サーバから受け取った、ホスト名とIPアドレスの対応表(Resource Record)を、どれだけの量 持っておくかの設定。
 以前使っていた、djbdns のキャッシュサイズが確か 1MB だったので、それに合わせてます

13行目:rrset-cache-slabs: 2
 msg-cache-slabs 参照(^^;

14行目:infra-cache-slabs: 2
 同上(^^;;

15行目:infra-cache-numhosts: 512
 自分以外の DNS サーバのアドレスを、何個 記憶しておくかの設定(だと思う)。
 数値は、「BoF資料」の約2倍です

16行目:do-ip6: no
 IPv6 は使いません(インターネットでは、まだ IPv4 が主流)。

17行目:access-control: 127.0.0.1/32 allow
18行目:access-control: 192.168.1.0/24 allow
19行目:access-control: 0.0.0.0/0 deny
 アクセス制御の設定。
 ローカルホスト (127.0.0.1) のほか、LAN 内にある PC (192.168.1.xx) からの DNS 問い合わせは受け付けますが、それ以外からの接続は一切受け付けません。

 今回、FreeBSD をインストールした PCは、ADSL ルータの内側にいるので、インターネットから不正アクセスを受ける可能性はありませんが、なにかの手違いで FreeBSD をインストールした PC ごと、インターネットに公開してしまう可能性も、ないわけではないので(^^;

20行目:pidfile: /var/run/unbound.pid
 FreeBSD で、pid ファイル を保存する場所といったら、/var/run がしっくりきます(個人的に)

21行目:harden-short-bufsize: yes
22行目:harden-large-queries: yes
 「BoF資料」の設定の通り。EDNS の極端なものは、無視する方向で…

23行目:key-cache-size: 256k
24行目:key-cache-slabs: 2
 最近の DNS で使われる「鍵」(データ送受信の際の「合い言葉」や、DNS サーバの「本人証明書」として使われる)に関する設定(?)。

25行目:neg-cache-size: 64k
 「たずね先に心当たりがありません」という回答が帰ってきたホスト名を、どれだけの量 持っておくかの設定。
 この ネガティブキャッシュ に登録されたホスト名は、一定時間、他の DNS サーバへの問い合わせができなくなります。
 (いわゆる迷惑防止用の設定です)

26~36行目:
 LAN 内のプライベートアドレス用コンテンツサーバの設定。
 Unbound は、基本的にキャッシュサーバを専門に受け持つプログラムですが、簡単なコンテンツサーバとしての機能もあります

26行目:local-zone: "home.made." static
 LAN 内の ドメイン名を設定。

 次の行から始まるデータの設定で、"….home.made." の最後の "."(ドット) は、ホスト名の終わりを表すもの…のつもりで付けてますが、本当に必要かは分かりません(^^;;

27行目:local-data: "thyme.home.made. IN A 192.168.1.2"
28行目:local-data: "nasubi.home.made. IN A 192.168.1.6"
29行目:local-data: "host0.home.made. IN A 192.168.1.100"
30行目:local-data: "host1.home.made. IN A 192.168.1.101"
31行目:local-data: "host2.home.made. IN A 192.168.1.102"
32行目:local-data: "host3.home.made. IN A 192.168.1.103"
 LAN 内の PC の 正引き 用のデータを登録。
 29行目以降は、DHCP で IP アドレスを割り振られる PC 用の設定

33行目:local-data-ptr: "192.168.1.2 thyme.home.made."
34行目:local-data-ptr: "192.168.1.6 nasubi.home.made."
35行目:local-data-ptr: "192.168.1.100 host0.home.made."
36行目:local-data-ptr: "192.168.1.101 host1.home.made."
37行目:local-data-ptr: "192.168.1.102 host2.home.made."
38行目:local-data-ptr: "192.168.1.103 host3.home.made."
 LAN 内の PC の 逆引き 用のデータを登録。
 35行目以降は、DHCP で IP アドレスを割り振られる PC 用の設定

42~46行目:
 フォワードの設定

42行目:name: "jp"
43行目:name: "com"
 フォワードするドメイン名
 「….jp」や「….com」で終わるホスト名は、すでにプロバイダのキャッシュサーバに入っている確率が高いと思われるので、プロバイダの DNS サーバへ、問い合わせを転送(フォワード)します

44行目:forward-addr: 202.248.0.xx
45行目:forward-addr: 210.131.113.xx
46行目:forward-addr: 192.168.1.1
 フォワードする先の、DNS サーバの IPアドレス。
 保険として、家の ADSLルータの IPアドレス (192.168.1.1) も設定しています。


● unbound.conf の内容の確認

 unbound.conf ができあがったら、中身に間違いがないか、確認します。
 《 unbound.confに間違いがないか確認 》
$ unbound-checkconf /usr/local/etc/unbound/unbound.conf[Enter]
unbound-checkconf: no errors in /usr/local/etc/unbound/unbound.conf
$  
 no errors と表示されれば OK です。

■ Unbound の起動

 では、Unbound を起動して、DNS が引けるか、確認してみます。
 《 Unbound を起動 》
# unbound[Enter]
 /etc/resolv.conf を編集 》
# vi /etc/resolv.conf[Enter]
 /etc/resolv.conf の初めの方に、赤文字を追加します。(以下は、私のところの /etc/resolv.conf の例)
domain  home.made
nameserver      127.0.0.1
nameserver      192.168.1.1
 以上で、Unbound が使えるようになったはずなので、実際に DNS が引けるか、試してみます。
 《 Unbound を使って、「www.jp.freebsd.org」を引いてみる 》
$ nslookup www.jp.freebsd.org[Enter]
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   www.jp.freebsd.org
Address: 211.14.6.244

 《 Unbound を使って、「211.14.6.244」の逆引きも試してみる 》
$ nslookup 211.14.6.244[Enter]
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
244.6.14.211.in-addr.arpa       canonical name = 244.224/27.6.14.211.in-addr.arpa.
244.224/27.6.14.211.in-addr.arpa        name = updraft3.jp.freebsd.org.

Authoritative answers can be found from:
224/27.6.14.211.in-addr.arpa    nameserver = castle.jp.freebsd.org.
224/27.6.14.211.in-addr.arpa    nameserver = ns01.bbtower.ad.jp.

 《 さらにもう一度、「updraft3.jp.freebsd.org」を正引きしてみる 》
$ nslookup updraft3.jp.freebsd.org[Enter]
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   updraft3.jp.freebsd.org
Address: 211.14.6.244

$  
 結論: ホスト名「www.jp.freebsd.org」は、本名が「updraft3.jp.freebsd.org」で、IPアドレスは 211.14.6.244 ということらしいです(^-^)

■ FreeBSD 起動と同時に、Unbound を立ち上げる

 /etc/rc.conf に、次の 1行を書き込んでおけば、FreeBSD 起動と同時に、シェルスクリプト /usr/local/etc/rc.d/unbound 経由で Unbound が自動的に起動されるようになります。
unbound_enable="YES"

| | コメント (18) | トラックバック (0)

squid の設定

 squid とは、プロクシと呼ばれる種類のソフトで、特にキャッシュ機能に定評があります。

 本来なら、基本的なところから順番に環境を整えていって、最後に squid をインストールするのですが、順序はこの際無視して、今回、FreeBSD サーバを立てた目的である、squid の設定を紹介します。

 …ま、またにはこういうのも、斬新でいいかも(^-^;ヾ(^^;;ぉぃ。

 あ、毎度のことながら、長いので注意してください(^^;;;


■ 事前準備

 今回は、squid のキャッシュ用ディレクトリとして、8GB の独立したパーティション/var2 に準備しました。

 squid は、ふと気付くと、squid.confcache_dir で指定した容量を超えてディスクを使っていたりする お茶目さん なので(^^;cache_dir で指定した容量より、2~3割は多めにディスク容量を確保しておくのがよいです。

 それと、今回は、COSSkqueue を使うので(どちらも、コンパイル時オプション)、事前に情報を仕入れておきます。

 squid のホームページ:
 ◆ http://www.squid-cache.org/

 (本当に余談ですが、ホームページの squid ちゃん、かわいくなりましたね(^^)。)


■ squid のインストール

 FreeBSD がインターネットに接続できるようになっていれば、簡単です。
 (portsツリーの、squid ディレクトリに移動)
# cd /usr/ports/www/squid[Enter]
 make を実行)
# make[Enter]
 すると、オプション設定画面が表示されるので、

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
                      Options for squid 2.7.6_1                     ┃  
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  
[ ] SQUID_LDAP_AUTH      Install LDAP authentication helpers      
┃[ ] SQUID_SASL_AUTH      Install SASL authentication helpers      
┃[ ] SQUID_DELAY_POOLS    Enable delay pools                       
┃[ ] SQUID_SNMP           Enable SNMP support                      
┃[X] SQUID_CARP           Enable CARP support                      
┃[ ] SQUID_SSL            Enable SSL support for reverse proxies   
┃[ ] SQUID_PINGER         Install the icmp helper                  
┃[ ] SQUID_DNS_HELPER     Use the old 'dnsserver' helper           
┃[ ] SQUID_HTCP           Enable HTCP support                      
┃[ ] SQUID_VIA_DB         Enable forward/via database              
┃[ ] SQUID_CACHE_DIGESTS  Enable cache digest                      
┃[X] SQUID_WCCP           Enable Web Cache Coordination Prot. v1   
┃[ ] SQUID_WCCPV2         Enable Web Cache Coordination Prot. v2   
┃[ ] SQUID_STRICT_HTTP    Be strictly HTTP compliant               
┃[ ] SQUID_IDENT          Enable ident (RFC 931) lookups           
━━v(+)━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
                       [  OK  ]       Cancel                        ┃  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
                                                                          

 [↓]キー で、カーソルを下に動かし、[SPC]キー を使って、

 ・SQUID_AUFS (← FreeBSD で COSS を使うのに必要)
 ・SQUID_COSS
 ・SQUID_KQUEUE(初めから [X] マークが付いてます)

 のところに [X] マークを追加したあと、[Enter]キー を押します。


 途中で、依存関係にある perl のオプション設定画面が表示されますが、こちらは何も変更せずに [Enter] を押します。

 プロンプトが戻ってきたら、
# make install[Enter]
 で、squidコンパイルインストールは、終了です(^^)。  所要時間は、NP11-V で、squid のコンパイルに10分、perl のコンパイルに10分ちょいで、合わせて20分ちょっとくらい掛かります。

 それから、忘れずにコマンド検索パスを更新しておきます。
# rehash[Enter]
#  

■ squid.conf の作成

 続いて、squid の設定ファイル、/usr/local/etc/squid/squid.conf を編集します。
 ちなみに、私が今、使っている squid.conf の中身を載せておきます(抜粋版ではなくて、「そのもの」ですよ)。

 赤字 が、書き換えた部分です(削除した部分は、省略ね(^^;)。
# This file is auto generated from "squid.conf.s".
acl all src all
acl manager proto chache_object
acl localhost src 127.0.0.1/32
acl localnet src 192.168.1.0/24
acl SSL_ports port 443
acl Safe_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 1025-65535
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
cache_dir coss /var2/squid/cache_s  128 block-size=512 max-size=16384  membufs=4
cache_dir coss /var2/squid/cache_m 1024 block-size=512 max-size=131072 membufs=8
cache_dir aufs /var2/squid/cache_l 2048 16 64
maximum_object_size 65536 KB
access_log none
cache_log /var2/squid/logs/cache.log
cache_store_log none
pid_filename /var/run/squid.pid
netdb_filename /var2/squid/logs/netdb.state
ftp_user IE_user
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
shutdown_lifetime 3 seconds
cache_effective_user squid
cache_effective_group squid
visible_hostname ProxyServer
icp_port 0
forwarded_for off
client_db off
maximum_single_addr_tries 3
coredump_dir /var2/squid
pipeline_prefetch on
● 解説

02行目~19行目:
 ACL(アクセス・コントロール・リスト)と、それを使ったアクセス制御の設定
 squid.conf に、もともと書いてあったものをもとに、不要な部分をコメントアウト&多少書き換えてあります

20行目:http_port 3128
21行目:hierarchy_stoplist cgi-bin ?
 オリジナルの squid.conf そのまま(^^;。ポート番号にこだわりのある人は、20行目を直しましよう

22行目~24行目:
 squid の要(かなめ)、キャッシュ用ディレクトリの設定です。

22行目:cache_dir coss /var2/squid/cache_s 128 block-size=512 max-size=16384 membufs=4
 /var2/squid/cache_s ディレクトリに、128MB の大きさの COSSファイルを作り、サイズが16KB(16384byte)以下のファイルをその中にキャッシュします
 また、メモリ上に、4MB のキャッシュ領域を確保します

23行目:cache_dir coss /var2/squid/cache_m 1024 block-size=512 max-size=131072 membufs=8
 /var2/squid/cache_m ディレクトリに、1024MB(1GB) の大きさの COSSファイルを作り、サイズが128KB(131072byte)以下のファイルをその中にキャッシュします
 また、メモリ上に、8MB のキャッシュ領域を確保します

24行目:cache_dir aufs /var2/squid/cache_l 2048 16 64
 /var2/squid/chache_l ディレクトリに、非同期更新により、最大で合計 2048MB まで、ファイルを別個にキャッシュします。
 具体的には、/var2/squid/chache_l ディレクトリの下に、16×64=1024個の bucket を作り、その中にファイルを保存します

 ちなみに、キャッシュ用ディレクトリは、squid.conf の中で、上に書いてある順から使用されるので、cache_l ディレクトリには、128KBを越えるファイルのみがキャッシュされます

 25行目も含めて、今回のキャッシュの設計は、次のようになっています。
キャッシュする
 ファイルのサイズ 
 キャッシュするファイル数  保存方式    保 存 先    容 量 
ディスク上メモリ上
~16KB約 8,000個~256個~COSS/var2/squid/cache_s128MB
~128KB約 8,000個~64個~COSS/var2/squid/cache_m1GB
~64MB~約 16,000個aufs/var2/squid/cache_l2GB
25行目:maximum_object_size 65536 KB
 キャッシュするファイルの最大サイズを指定します。
 65536KB(64MB) より大きいファイルは、キャッシュしません

26行目:access_log none
27行目:cache_log /var2/squid/logs/cache.log
28行目:cache_store_log none
 ログの設定です。squid が安定稼働してしまえば、私の性格上、ログなど見ないことが判明しているので(^^;、最低限のログしか残していません。
 それと、/usr にログが書かれるのはイヤなので、ログの保存先を /var2 の下(/var2/squid/logs ディレクトリ)へと変更しています。

29行目:pid_filename /var/run/squid.pid
 pidファイルのパスを指定します。
 FreeBSD で、pidファイルを作る場所といえば(chroot環境やjail環境では仕方ないとしても)/var/run と決まっているので、指定しなおしています
30行目:netdb_filename /var2/squid/logs/netdb.state
 「作らない」という指定ができるかどうか、分からなかったので、これも一応、/usr から /var2 の下へと、作成される場所を移してあります。
 でも、キャッシュサーバ間の協調制御を行わない場合には、あまり意味がない?設定でしょう

31行目:ftp_user IE_user
 匿名ftpサーバに接続した時に渡す、ユーザ名。
 一応、インターネットエクスプローラからの接続を装っているつもり(^^;;

32行目~39行目:
 さわらぬ神にタタリなし(^-^;ヾ(^^;ぉぃ

40行目:shutdown_lifetime 3 seconds
 squid が shutdown 通知を受け取ってから、実際に終了処理を開始するまでの時間。
 個人用途では、squid の停止を遅らせる意味がないので、おおもとの30秒から、大幅に短くしてます

41行目:cache_effective_user squid
42行目:cache_effective_group squid
 squid を実行するユーザ名およびグループ名。  UNIX 系 OS でよく使われる、セキュリティのための設定です

43行目:visible_hostname ProxyServer
 照れ屋さん、または、素性を明かしたくない人 向けの設定(^^;
 どんな効果があるのかは、インターネットブラウザでプロクシを squid に設定した後、このあたりを見てみると分かるかも…

 確認君
 ◆ http://www.ugtop.com/spill.shtml

44行目:icp_port 0
 ICP ポートを開かない(ICPメッセージを受け付けない)ようにします

45行目:forwarded_for off
 43行目と、似たような意味です(^^;

46行目:client_db off
 ほかのキャッシュサーバとの連携などはやらないので…

47行目:maximum_single_addr_tries 3
 DNSを引くのに失敗した場合、合計3回までリトライ(やり直し)します

48行目:coredump_dir /var2/squid
 コアダンプなどと、怖い名前が付いていますが、実際には、squid がここで指定したディレクトリに移動してから、サービスを開始する、程度の意味で使われています

49行目:pipeline_prefetch on
 昔の取り決めでは、ファイルを1個取ってくるたびに、Webサーバとコネクションを張ることになっていました。 でも、最近は、1つのホームページを表示させるのに 20~30個のファイルが必要になることも珍しくないので、1つのコネクションの中で、複数のファイルを転送できるように、これを指定しています

● squid.conf の内容の確認

 squid.conf が完成したら、まず squid に、内容に間違いがないか、チェックさせてみます。
 試しに、3行目の "acl" を "akl" と書き替えて、チェックを通してみると…
# squid -f /usr/local/etc/squid/squid.conf -k check[Enter]
2009/07/23 21:00:00| parseConfigFile: squid.conf:3 unrecognized: 'akl'
2009/07/23 21:00:00| ACL name 'manager' not defined!
FATAL: Bungled squid.conf line 13: http_access allow manager localhost
Squid Cache (Version 2.7.STABLE6): Terminated abnormally.
#  
 たくさんエラーメッセージが出てますが(^^;、とりあえず、squid.conf の 3行目が何か おかしい と言ってますね。

 今度は、正しく書き直して、再度チェックしてみます。
# squid -f /usr/local/etc/squid/squid.conf -k check[Enter]
#  
 このように、何もメッセージが表示されなければ OK です。


■ squid 用ディレクトリの準備

 squid.conf の準備ができたら、squid がデータを書き込むディレクトリ(キャッシュ用ディレクトリおよびログファイル用ディレクトリ)を準備します。
 (squid 用に用意したディレクトリに移動)
# cd /var2[Enter]
 aufs用のディレクトリを作成)
# mkdir -p /var2/squid/cahche_l[Enter]
 (COSS用のディレクトリを作成)
# mkdir /var2/squid/cahche_m[Enter]
# mkdir /var2/squid/cahche_s[Enter]
 (ログファイル用のディレクトリを作成)
# mkdir /var2/squid/logs[Enter]
 (/var2/squid 以下を、squid の所有ディレクトリに)
# chown -R squid:squid /var2/squid[Enter]
 (/var2/squid/cache_l,_m,_s は、プライバシー上、squid しか読み書きできないように)
# chmod 600 /var2/squid/cache*[Enter]
 (COSSファイルとaufs用サブディレクトリを作成)
# squid -f /usr/local/etc/squid/squid.conf -z[Enter]
#  

■ squid の起動

 これだけの準備が終わったら、テストを兼ねて、squid を起動してみます。
# squid -f /usr/local/etc/squid/squid.conf[Enter]
#  
 使っているインターネットブラウザのプロクシを、squid に設定します。

インターネットエクスプローラの場合:
 ツールバーの「ツール」
  → インターネットオプション
   → 「接続」タブ
    → LANの設定
     → プロキシ サーバ
      アドレス:192.168.1.2 (← FreeBSD を動かしている PC の IPアドレス)
      ポート:3128 (← http_port に設定した数字)

Squid_ie_proxy

FireFox の場合:
 ツールバーの「ツール」
  → オプション
   → 「詳細」タブ
   → 「ネットワーク」タブ
    → 「接続設定」
     「手動でプロキシを設定する」
     HTTPプロクシ:192.168.1.2 (← FreeBSD を動かしている PC の IPアドレス)
     ポート:3128 (← http_port に設定した数字)

Squid_firefox_proxy

 インターネットにアクセスしてみて、無事にホームページが表示されれば、多分、大丈夫(^^;

 本当に squid が動いているのか、心配な人は、システムログを確認したり、root になって、squid のキャッシュディレクトリをのぞいてみたりしましょう(^^;。

 確認が終わったら、squid を止めておきます。
# squid -k shutdown[Enter]
#  

■ FreeBSD 起動と同時に、squid も立ち上げる

 私もよく分かっていませんが、/etc/rc.conf に、次の 1行を書き込んでおけば、FreeBSD 起動と同時に、シェルスクリプト /usr/local/etc/rc.d/squid 経由で squid が自動的に起動されるようです
squid_enable="YES"

| | コメント (10) | トラックバック (0)

おまじない(/etc/make.conf)

 FreeBSD 7.2-REL 以外の事情はよく分かりませんが(^^;、FreeBSD の 32bit 版で、CPU に Atom を使っている人は、ports を使う前に、以下の準備をしておくと、何か御利益(ごりやく)があるかも。

/etc/make.conf (インストール直後は、このファイル自体が、ないはず)


CPUTYPE?=core


● 種明かし

 /usr/share/examples/etc/make.conf に、簡単な説明がありますが、コンパイラが、特定の CPU に適したコードを出力してくれるかもしれません

 具体的には、/usr/share/mk/bsd.cpu.mk の中でいろいろと変換されて、最終的に、コンパイラへ "-march=prescott" オプションが渡されます。
 これによって、Atom CPU の機能がフルに発揮できるようになる…かもしれません(^^;;;

| | コメント (2) | トラックバック (0)

ports を最新に(portsnap)

 ports とは、FreeBSD の誇る、ソフトウェア導入&管理システムで、
 
 ・インターネットから、ソースファイルをダウンロード
 ・パッチを当てる
 ・依存関係のあるソフトウェアがあれば、そのソースファイルのダウンロードとコンパイル、インストール
 ・ソフトウェアをコンパイル
 ・インストールと最小限の設定

 までを、お任せでやってくれる優れものです(^^)


 実際に ports を使ってソフトウェアをインストールする前に、/usr/ports 以下のディレクトリを丸ごと最新にしておきます。

 FreeBSD がインターネットに接続できるようになっていれば、


# portsnap fetch[Enter]
# portsnap extract[Enter]

 で ports ツリーが最新になります。

 一度、上の操作を行っておけば、2回目からは、


# portsnap fetch[Enter]
# portsnap update[Enter]

 で ports ツリーの、変更があったディレクトリのみが更新されるようになります。

| | コメント (0) | トラックバック (0)

USBファンを、おまけで…

 NP11-V の冷却用に、外付け USBファンと、導風板を付けてみました。
 

NP11-V に、外付け USBファン追加

 …実は、ソフトウェア環境を整備するよりも、こちらの方が「はるかに」手間暇が掛かっていたりします(^^;;


 NP11-V の内部は、風の通る隙間が狭いので、本当ならファンを「吸い出し」に使った方が効果的だと思うのですが、ファンが壊れた時のことを考えると怖いので、こういう配置にしてます

 でも、これだけでも、NP11-V の下半分(HDD があるところ)は「ひんやり」するので、効果は大きいですよ(^^)。

| | コメント (1) | トラックバック (0)

squid on NP11-V 起動

 とりあえず、NP11-V へ、一通り必要なソフトのインストールが終了しました(^^)

● ところで、squid って、なに?
 一言でいうと、インターネットブラウザの、キャッシュの外付け版です。
 …と、これではあまりに簡単すぎるので(^^;、一応補足しておくと、そのほかにも、会社でも使えるアクセス制限機能を持っていたりとか、実際には、とても高機能なソフトです。

 あ、ちなみに、squid に、ADSL 自体のスピードを早くする効果はありません。無駄なデータをインターネットに取りに行かないようにして、ADSL の帯域が有効に使えるようになるのを期待して、使ってます。
 逆に言うと、高速インターネット接続環境のある人には、無用の長物かも…(T-T)


■ インストールしたもの

 FreeBSD に squid だけ入れて、はい終わり… でもいいのですが、何となく、そのほかのソフトも入れたくなっちゃうんですよね(^^)

squid ( ports から)
 ウェブ用のキャッシュサーバ。今回、サーバを立ち上げた目的です。
 COSSkqueue を使いたかったので、3.0版ではなく、2.7版を入れてます。

unbound ( ports から)
 今さら djbdns でもないし、今回は DNSキャッシュなしでもいいかな、と思っていたのですが、最近、unbound という DNSキャッシュ が話題らしいので、入れてみました。
 ただ、標準の設定だと、個人用サーバには大げさ過ぎる気がしたので、コンパクトな設定に直して使ってます。

jvim3 ( ports から)
 エディタに関しては、vi 使いを自任する私ですが、やっぱり、もとから入っている vi は使いづらいので(^^;、ちょっと古いソフトですが、これをコンソール向け&日本語入力機能なしの設定で、コンパクトにコンパイルして使ってます。

fd (FDclone) ( package から)
 ルートはストイックに、すべてコマンドラインからコマンドを打ち込むのが UNIX の作法ですが、でも、一般ユーザのときくらいは楽をしたいもの… ということで、fd の出番です(^^)。
 ちなみに、この fd (FDclone) は、MS-DOS の時代にあった、ファイル&ディレクトリの管理ツール、fd のそっくりさんです。

TeraTerm with ssh2 (Windows用)
 これもまた有名な、Windows 用のターミナルエミュレータ


■ FreeBSD に、もとから入っていたもの

powerd
 CPU が暇にしているときに、CPU の消費電力を下げてくれるという、エコなソフト。

ntpd
 インターネット上の NTPサーバに接続して、PCの時計を合わせてくれます。
 ちなみに、NTPサーバとしては、MFEEDさん のものを使わせて頂いてますm(_'_)m

sshd
 ほかの PC と FreeBSD の間で、暗号化通信を行うためのソフト。
 あまり知られていませんが、sshd が立ち上がっていれば、ファイルの転送などもできてしまいます


■ 今後の予定

 このペースだと、本当にホームページがいつ完成するか分からないので、ブログの方に、各ソフトの設定を(説明を思いっきり省略して)載せてみようかと思ってます(^^;

| | コメント (3) | トラックバック (0)

« 2009年6月 | トップページ | 2009年8月 »