カテゴリー

アクセスカウンター


since 1996/06/14

アクセス状況

  • 0
  • 12
  • 193
  • 5,093

Linuxサーバ構築

ディストリビューション


 ひとえにLinuxと言っても、狭義だとLinusさんが作ったOSのカーネルの部分を指すんですが、そんなことをここで書きたい訳じゃなくて、そのカーネルを利用して様々なディストリビュータ((ディストリビュータ:流通業者でいいのかな?))がOSパッケージとしての(広義の)Linuxを出してます。その数はかなりに上りますので、それぞれの特徴をよく理解して選ばないと痛い目にあいます。
-ディストリビューションとしては老舗のRedHat。
※今は企業向けの有償のRedHatと、バージョンアップが激しいフリーのFedoraCoreに分かれます。

  • マニアックなDebian。

  • ディスクトップに強そうTurbo。

  • DBに強いMiracle。

  • 1CD Linuxで最近有名なKNOPPIX。

  • 日本語に強いと言われていたVine(最近はどうなんだろう?)。


 多少文化の違いはあれど、なれればさほど違いは無いのですが、やはり自分の力が試されるLinuxなので、よく吟味して自分にあったパッケージを選んだ方がいいです。

rpmとソースのコンパイル


 最近のLinux(RedHat系)サーバにソフトウエアをインストールするには、大きく2つの方法があります。一つはソースプログラム(要はコンパイルされていない生のプログラムコード)を入手してビルドする方法、もう一つはすぐに実行可能なバイナリ形式になってるプログラムを入手する方法で、RedHat系のバイナリは通常「rpm」というファイルに一まとめにされています。
 私は通常ソースプログラムから設定しますが、ここでは両方の基本的な操作方法とメリットなどを解説します。
※最近はパッケージを自動だダウンロード/インストールするup2dateや、yumなどもありますが、中身はrpmをダウンロードしてきて展開しているだけのようなものです。

依存関係


 通常、多くのソフトに「依存関係」があります。依存関係とは1つのアプリケーションを導入するのに複数のパッケージが必要となることです。これはrpmでもソースでも同様です。
 例として、パケット監視ソフトである「iplog」を導入する場合は、パケットキャプチャリングライブラリである「libpcap」が必要です。「libpcap」は「yacc」や「flex」が必要だったりします。
 よほど一般的なものは通常のディストリビューションならもともと入ってます。
 依存関係を解消するには、その親子関係を確認し、その順番に従って、インストールする必要があります。
 上記の例の「iplog」は「libpcap」が必要で、「libpcap」には「flex」が必要、「flex」を入れるには「yacc」が必要、、、と言った依存関係なので、依存関係を解消するには「yacc」→「flex」→「libpcap」→「iplog」の順に入れるのが正解になります。
※rpmの場合はいっぺんにしていするとうまくやってくれたりします。
 まぁ、普通はインストール時に足りないものがあったらエラーになりますので、その時点で導入すれば問題無いでしょう。

rpmの概要と使い方


  rpmは「RedHat Package Manager」の略でその名の通り、RedHat系Linuxで頻繁に使用されてるパッケージ管理ツールです。Windows系の人にわかり易く説明すると「アプリケーションの追加と削除」のようなものです。
 Linuxでの運用を深く知りたいのであればソースからのインストールをおすすめします。

  • ソースからの方が各ファイルの所在や設定などの位置がわかりやすい。

  • その為、障害対応に強い。

  • そもそも、UNIX系のOSはソースからコンパイルすることによりマルチプラットホームへ対応できる。

  • rpm形式でリリースされてない物もある(特にOpenBlockSではかなり困る)。


 と、こんな理由です。もちろんrpmにもメリットはあります。導入が楽だとか、企業系サーバだと管理工数の削減とかメーカサポートを受けやすくするとかがあります。
会社のサーバを建てるときは無理せず3年くらいのサポート付き有料パッケージを買って、マニュアルに従ってインストールした方がいいでしょう。
 とりあえず、以下に簡単な操作方法を記しておきます。
原則としてインストール/アンインストールはroot権限で行うようです。
※以下の「パッケージ名」とはrpmファイル名です。通常は「xxx.rpm」という拡張子が付いてます。インテル系のcpuで動くバイナリの場合は「xxx.i386.rpm」と書かれてる場合もあります。当然ながらOpenBlockSのようなインテル系のCPUではない物にインストールしても(インストールは成功しますが)、動きません。

  • インストール済みパッケージの確認


 その1、全部表示(長いです)

rpm -qa

 その2、特定のパッケージの確認

rpm -qa パッケージ名

 ※このパッケージ名はバージョン情報を省略可能。たとえば「rpm -qa libusb」で「libusb-0.1.5-3」と表示されます。「rpm -qa lib」だけではダメ。
 その2、特定のパッケージの確認(あいまい検索)

rpm -qa | grep lib


  • パッケージのインストール



rpm -i パッケージ名
rpm -ivh パッケージ名(←インストールの状況が詳しくわかるのでお勧め)


  • パッケージのアップグレード



rpm -U パッケージ名
rpm -Uvh パッケージ名(←インストールの状況が詳しくわかるのでお勧め)

※パッケージには依存関係(つまり幾つかのパッケージをインストールしないとソフトが動作しないもの)を意識しなければならない場合があります。依存関係にあるパッケージが無いと通常はエラーでインストールできません。依存関係を無視する場合は以下のコマンドでインストール可能です(でも、動かない可能性が大)。

rpm -i –force –nodeps パッケージ名


  • アンインストール



rpm -e パッケージ名


  • パッケージの各ファイルが何処に入っているかを調べる。



rpm -ql パッケージ名

ソースの扱い方の基本


 UNIX系OSではどのタイプのOSでも、どのディストリビューションでもソースコードを入手すればよほどの事が無いかぎり動かないことはありません。あまり意識する必要はありませんがソースコードは以下の流れで実行プログラムになります。
 ソースコードA      ソースコードB
   |            |
(コンパイル)      (コンパイル)
   ↓            ↓
 オブジェクト       オブジェクト
(バイナリ)       (バイナリ)
   |            |
   |←−−−−−−−−−−−−
   |
   |←オブジェクトライブラリ
   |
 (リンク)
   ↓
 実行可能プログラム
   ↓
(インストール)
 1、「コンパイル」作業では所謂「機械語」に変換されます。しかし、基本的には実行可能ではありません。コンパイルされたオブジェクト(中間プログラムとか中間コードと言われるときもある)の中にはよく使われるもの(たとえばTCP/IPの通信モジュールとか)があるので、それは「オブジェクトライブラリ」として別にパッケージ化されている場合があります(「lib云々」というファイル名)。
 2、作成されたオブジェクトは「リンク」されて一つ(もしくは複数)の実行可能プログラムになります。
 3、実行可能プログラムは最終的に「インストール」によって特定のディレクトリに格納されたり、正しい設定ファイルが設定されたりします。
 「コンパイル」から「リンク」までの一連の作業のことを「メイク(make)」とか「ビルド(build)」と言われます。
 ソースコードの中身には通常OS依存コードや機種依存コードが含まれる場合があります。たとえば、Windowsの場合は「C:\」へアクセスし、UNIX系なら「/(root)」へアクセスすると言ったものです。通常はプログラムの中にそう言った依存コードをコンパイラに伝える記述があるので、特に意識する必要はありません。しかし、その依存関係がファイル単位で違ったり、必要なファイルやコンパイラの所在の確認の為、通常はコンパイルの前に「環境設定(cnfig/configure)」が必要になる場合が多いです。

ソースベースプログラムのインストールの基礎知識


 ソースプログラムは通常tarボールで圧縮/単ファイル化されてます(拡張子が.tar.gz)。始めの作業はこれを入手し、展開することから始めます。
※(.tar.Zや、rpmの場合もありますが、ここではそれらを扱いません)
 まず、入手元のURLを確認したら(Windowsで落としてFTPで送ってもいいですけど)、ダウンロードします。ダウンロードにはwgetが便利です。

wget http://xxxx/xxxx.tar.gz(対象がftp://でも大丈夫です)

 パッケージを入手したら展開ですが、展開するには以下のようなコマンドを入力します。

tar zxvf xxxx.tar.gz

 これでパッケージが展開され、新しいディレクトリが出来ます。
※ときどきディレクトリを作らず、実行したところにいきなり展開するパッケージもありますので、注意してください(bindとか)。
 パッケージの後はその中にあるドキュメントを参照してインストールします。通常は「INSTALL」とか「Readme」の「Installation」や「How to Install」等に書かれています。
 ここで注意するのは「どこ」に「なんの権限」で展開するかです。通常はインストール以外はroot以外の権限で作業を行います。パッケージの展開場所も、自前で用意したディレクトリの他に、「/usr/src」や「/usr/local/src」などが存在する場合もあります。
 私は通常、コンパイルにroot権限が必要無いときは自前のディレクトリでコンパイルし、root権限が必要なものは「/usr/src」あたりでコンパイルします。
※「/usr/src」はroot以外書き込み不可能なので、他のユーザにソースを改竄されることがありません。
 展開する場所はどこでもいいですが、ソースプログラムは「インストール以外はroot権限を使用しない」のが基本なので注意しましょう。
 また、インストールが終わったら展開したソースとコンパイル済みオブジェクトをディレクトリごと削除した方がいいです。

一般的なソースのコンパイルとインストール


 通常、導入方法はドキュメントを参照すべきですが、最近ではほとんどのパッケージが以下の手順で導入することが出来ます。

$ ./configure
$ make
$ su
# make install

 まず始めは非root権限で作業を始めます
※非root権限の作業は行頭が「$」で表現されています。root権限の場合は「#」です。
1、環境設定

$ ./configure

 ※「./config」の場合も多いです。
 基本的にコンパイルオプションは環境設定の時点で指定します。以下はその例

$ ./configure –prefix=/usr/local/bin –with=xxx –without=yyy

 基本的にはドキュメントに詳しく書いてありますが、上記の例ではよく使われるオプションを示しています。「–prefix」はインストール先の指定、「–with」は追加する機能、「–without」は除去する機能です。
2、メイク

$ make

 メイクは「./configure」によって設定された環境を元にコンパイル/リンクを行い、実行可能プログラムを生成する作業です。「./configure」は通常パッケージの中に存在しますが(頭に./が付いてるのがその証拠)、makeは事前に用意されたプログラムで、「./configure」によって作成されたテキストファイル「Makefile」を参照し作業します。その他、「Makefile」を参照することによって、いろいろなオプションや設定を確認することが可能です。
3、権限変更

$ su

 インストールは通常root権限で行うことがほとんどなので、インストール前に管理者権限に以降します。
※コンパイル済みのプログラムを他のユーザから実行されることによりroot権限を奪われることを阻止する為です。
 当然ながらここでrootのパスワードが必要になります。
4、インストール

# make install

 この作業により必要な実行プログラムや設定ファイルが任意の位置にコピーされ、パーミッションやオーナーの設定までされます。この作業が終わったら特に理由が無ければ「exit」でユーザ権限に戻りましょう。ソフトによっては設定ファイルが作成されないで、展開したディレクトリからサンプルの設定ファイルをコピーしなければならないときもあります(net-snmpとか)。

(コラム)Makefileの中身を見よう


 通常のソースパッケージは「./configure」によって「Makefile」が作成されます。これはテキストファイルなので中身が見れます。このMakefileを読めるようになると、いろいろなことが可能になります。以下に読み方の一例を示します。

prefix = /usr/local
sysconfdir = ${prefix}/etc

 「prefix」は通常、インストール先を示してます。一般的には「./configure –prefix=/usr/local」のオプションで指定することが出来ます。
 「sysconfdir」は通常、設定ファイルの位置を示す場合がほとんどですが、「${prefix}/etc」の「${prefix}」は一つ上の「prefix」の値を参照している為、「/usr/local/etc」を意味してます。設定ファイルは「/etc」にまとめたいと言う人は「sysconfdir = /etc」と書き換えることも出来ます。
 これらの値を参照することによって、どのファイルが何処に導入されるのかがわかります。

  • install:


 上記のように「install:」とか「clean:」とか書かれている行があります。これらは「make install」や「make clean」などの「make」コマンドのオプションに連携しており、「make install」を実行すると「Makefile」の「install:」以降の処理が実行されます。
 実際に何が行われるかは非常に複雑ですが、一般的に以下の意味があります。

  • 一般的なもの



install:・・・パッケージのインストール
install-man:・・・マニュアル(man)のインストール
clean:・・・コンパイル済みのファイルや作業ファイルを削除し、「./configure」する前の状況に戻す。「./configure」をやり直したい時に念のため実行すると確実。
test:check:・・・インストール前の実行テストや設定ファイルの確認
all:コンパイルからインストールまで全て行ってしまう。
uninstall:・・・アンインストール。


  • パッケージ固有(紹介してもしょうがないんですが、、、)


 certificate:・・・apacheでSSLを有効にした場合の認証関連の設定を対話的に行うオプション。
 love:・・・なんだか忘れましたが、こんなのもありました。

ソースのコンパイル方法 その2


 ソースコードの中にはパッケージ化されてないものもあります。たとえばURLを見ると「xxx.txt」とか、C言語のソースコード(xxx.c)の場合です。通常はC言語(拡張子が「.c」)かC++(「.cpp」)なので、拡張子が違ったら直しておきます。わからない場合は中身を見ると2,3行目にファイル名が書かれています。これらのソースは以下の操作で実行ファイルを作ることが出来ます。

$ gcc -o xxx xxx.c

もしくは

$ cc -o xxx xxx.c

 上記の「xxx」はコンパイル後の実行ファイル名、xxx.cはコンパイル前のダウンロードしたソースプログラム名です。gccやccは極一般的なコンパイラで、この操作ならリンクまで行ってくれますので、(そういう設計のソースなら)そのまま実行できます。

$ ./xxx

 ちなみに一般的なディストリビューションの場合、インストール時のパッケージの選択で「開発環境」関連を選択しないと、gccなどのコンパイラや必要なオブジェクトパッケージがインストールされない場合があるので注意しましょう。
※でも、企業系のサーバなら公開サーバの中でコンパイルするのは危険なので、開発環境を入れるのはやめましょう。同じ環境のテストサーバを用意して、そっちでコンパイルすべきです。

「\」


 「\(Windows系なら¥、Unix系ならバックスラッシュに見えると思います)」は、シェルやtelnetではコマンドの接続子として使用することが出来ます。
 たとえば、

$ ./configure –with-mpm=worker –enable-deflate=shared –enable-ssl –enable-dav –enable-dav-fs –with-ssl=/usr/local/opensslenter

という長いコマンドは、

$ ./configure \<enter>
–with-mpm=worker \<enter>
–enable-deflate=shared \<enter>
–enable-ssl \<enter>
–enable-dav \<enter>
–enable-dav-fs \<enter>
–with-ssl=/usr/local/openssl<enter>

※<enter>はそこでエンターキーを押すという意味
 という風な入力も可能です(意味はまったく一緒)。
 このサイトでも見やすいようにところどころ「\」を使用してますので、見たまま入力する場合は注意してください。

DNSの研究

DNSとは

 ここは別に読まなくてもいいけど、DNSがさっぱりで読む暇がある人は読んでみてください。
 ちゃんとDNSの仕組みを理解するのであれば、分厚いけどオライリーのDNS&BINDあたりを読んでおくべきだろう。

 DNS(Domain Name System)とは、書くまでも無いかも知れませんが、IPアドレスを人にやさしい名前に変換する仕組み、またはその反対のことをするシステムです。
 たとえばこのサイトにアクセスするときにhttps://www.d77.jp/と入力しますが、インターネットの世界ではサーバにアクセスするのにIPアドレスが無いとダメです。この「www.d77.jp」の部分をIPアドレスに変換したり、その逆のことができる為のデータベースのようなものです。なんでこんな仕組みがあるかって、やっぱり数字の羅列よりかは楽だからでしょう。

 DNSの前身は今でも残っていますがhostsです。Linuxの場合は「/etc/hosts」で、Windows2000の場合は「x:\winnt\system32\driver\etc\hosts」にあります(何でdriverなの?とか思ったりしますが、、、)。
 このhostsファイルに、

192.168.1.1 hogehoge

とか書いておけば、「ping hogehoge」と打つと、自動的に192.168.1.1にpingしてくれます。

 昔はhostsでも十分だったんですが、インターネットの規模が大きくなるにつれ、管理が大変になり、またサーバへの負荷もかなりヤバい状態になってきたので、それを解決する為に、DNSが作られました。

 DNSは分散データベースになってるので、負荷も分散されます。その気になれば、自分のドメインの中でも負荷を分散することが出来ます。

 また、ゾーン転送やDNSへの問い合わせの仕組みにより、私のサーバのDNSに情報を書き込むだけで、世界中のインターネットにつながったサーバから名前解決を行うことが出来ます。
 

ツールの入手とインストール

 DNSサーバとしてよくbindというものが使われています。これはInternet Software Consortium (ISC) によって提供されており、無料で入手することが出来ます。このソフトはLinuxだけでなく、Windows用もあるので、非常に広い範囲で使用されています。

 bindにはいくつかのバージョンがあります。大きくbind4系、bind8系、bind9系のバージョンがあります。ここの文を書いた時はbind4やbind8がまだ主流でしたが、このところbind9も多くなってきました。

 今回はbind8を使います。bind4を使ってもいいですが、機能的に劣るのと、記述方法がbind8とbind9で似てるので、将来移行するのが楽だからです。

 bindはISCでダウンロードしてください。bindは結構凶悪なセキュリティホールが見つかることがあるので、バージョン管理に気をつけてください。bind8の最新版ならOKです。
 ここを書いてるときは8.2.5が最新なので、それを入手し解凍します。ここで注意ですが、bindは自分のディレクトリを作らないでいきなり解凍します。他のファイルと混ざってわかりづらくなるときがあるので、ディレクトリを作ってから解凍しましょう。
 

$ mkdir bind8
$ cp bind-8.2.5-src.tar.gz ./bind8
$ cd bind8
$ tar zxvf bind-8.2.5-src.tar.gz

んでコンパイル
 

$ cd src
$ make stdlinks
$ make clean
$ make depend
$ make all

 最後に管理者になってインストールです。
 

$ su
# make install

 これで実行ファイルが入りました。でもいきなり実行は出来ません。設定ファイルが必要です。
 

bind9を入れてみる

 基本的にはbind8の設定のまま移行可能です。
いくつかワーニングが出ますが、エラーにはほとんどなりません。
 詳細については別記「bind9」を参照してください。

DNSの基礎

 DNSに関する基礎的な情報です。
 

DNSとnamedとbind

  • DNS(Domain Name System)
    名前解決のシステムを示してます。
  • named(name deamon)
    サーバ上で動くデーモン(サービス)の種類です。 
  • BIND(Berkeley Internet Name Domain)
    ISCで配布してるバークレーで開発されたソフトの名前です。

ドメインとゾーン

 ドメインはドットで区切られたグループを示しています。たとえば、ここのサーバ「www.d77.jp」は「jpドメイン」の中にあり、その中の「d77.jpドメイン」に「www」というサーバが存在しています。

 ゾーンとは、あるネームサーバが管理する範囲を示しています。たとえば、「d77.jpドメイン」に「hoge.d77.jp」というサブドメインを作り、独自のネームサーバ立てた場合、「hoge.d77.jp」は新たな「ゾーン」になります。「hoge.d77.jp」は「d77.jpドメイン」ではあるが、「d77.jpゾーン」では無くなるというわけです。

 この辺の関係がnamed.confのzoneにかかわってます。
 

DNSのツリー構造

 DNSはツリー構造になっています。

 たとえば(あくまでもたとえです)、ここのサーバ(www.d77.jp)を「hogehoge.com」に属する人が検索する際、まず、「ルートネームサーバ」に問い合わせます。
 ルートネームサーバとはDNSのツリー構造のもっともレベルが高いところに存在します。その為これが止まると世界中の人が困ります。そのようなことがないように世界に十数台設置されています。
 ルートネームサーバは基本的に「comドメイン」「jpドメイン」を管理するサーバを知っています。ここのサーバは「jpドメイン」なので、「jpドメイン」を管理するサーバを教えてくれるでしょう。
 次に「jpドメイン」を管理するサーバに問い合わせると、「d77.jp」の所在を教えてくれます。

 このように徐々にDNSのツリー構造の分岐点に問い合わせることにより、最終的にサーバの所在が明らかになると言うわけです。

masterとslave

 DNSはよく「プライマリDNS」と「セカンダリDNS」の2つをセットで用います。これは主に対障害性を高めるのが理由ですが、、、。

 「プライマリDNS」は別名(いや、こっちが本名か?)「Primary Master Name Server」であり、「セカンダリDNS」は「Slave Name Server」です。

 何が違うかと言うと、「Primary Master Name Server」は、自らがデータベースファイルを持ち、それを利用して名前解決を行います。
 「Slave Name Server」はデータベースファイルを初めから持っているわけではなく、「Primary Master Name Server」からネットワーク経由で「ゾーン転送」を行ってその情報を蓄え、それを利用して名前解決をします。

※機能的には上記なんですけど、「Slave Name Server」がデータベースファイルを持つことは出来ます(と言うかループバックとルートデータは普通持ってます)。

 bind8の設定ファイルで「type master」とか「type slave」とかがありますが、これらは「自分でデータベースを持っている」のと「他人からゾーン転送でデータを貰う」という意味だと思ってください。
※ちなみに「type hint」は自分がそのゾーンの情報を持ってないけど、「知ってるところはどこそこのサーバだよ」というのを定義してます。
 

設定ファイル

 bindを正しく稼動させるには、ドメインやIPアドレスに関連したデータベースファイル(RFC1034あたりに説明があります)と、bind特有の設定ファイルが必要です。

 通常、bind特有の設定ファイルは「/etc/named.conf(bind8の場合)」あたりにあり、データベースファイルの位置やそれらの役割に関して記述してあります。
 

named.conf

 bindの基本的な設定はnamed.confに書きます。bindの設定ファイルはこれだけではありませんが、この中に各ファイルの所在なども記述します。基本的にbindの設定ファイルは事前にあるものを使うのではなく、1から作るのが普通です。始めはイヤかも知れませんが、慣れるまでガマンしてください。

 Linuxの場合はデフォルトは「/etc/named.conf」です。Windowsはよく知りません。でも書き方はほとんど同じです。

 以下の例は「d77.jp」ドメインで、そのIPアドレスが「111.222.333.444」の場合の例です。
※実際のd77.jpのドメインのIPアドレスは違いますけど、ここでは一例です。
 

// オプション
options {
    directory "/var/named";
};

// ルートキャッシュデータ
zone "." {
    type hint;
    file "named.ca";
};

// ループバックデータ
zone "0.0.127.in-addr.arpa" {
    type master;
    file "named.0.0.127";
};

// 正引き(順引き)データ
zone "d77.jp" {
    type master;
    file "named.d77.jp";
};

// 逆引きデータ
zone "333.222.111.in-addr.arpa" IN {
    type master;
    file "named.rev";
};

 空白の部分はスペースでもタブでもOKです。逆に無いとエラーになる場合があるので、それだけは注意してください。
 また、セミコロン「;」が無いとエラーになる場合もあるので忘れないようにしましょう。

 この設定ファイルにはコメントが可能です。一部書いてありますけど、「//」から行末までがコメントです。
あと「/*…*/」や「#」も使えます。使い方は「//」と「#」は同じです。「/*…*/」は「…」の部分がコメントになります。

例)
/*ここがコメント
 ここもコメント
 ここまでコメント→*/

named.conf-option部(2001/12/27)

// オプション
options {
    directory "/var/named";
};

 ここには各設定ファイル(named.conf以外のファイルね)がある位置を指定します。
 他にも重要なことが書けますが、bindを動かすには最低限コレが必要です。詳しい説明は別途書きます。

named.conf – ルートキャッシュデータ

// ルートキャッシュデータ
zone "." {
    type hint;
    file "named.ca";
};

 この内容はルートネームサーバ(.)に関係するデータベースファイルの情報を書いています。

 ゾーン(zone)はルートを示す「.」です(DNSではルートを「.(ドット)」もしくは「何も指定しない」ことにより指し示します。どちらを書くかは書く場所に応じて変わりますが、ここでは「.」です)。

 ここで定義しているのは、ルートネームサーバの設定ではありません(私が世界のルートでは無いですからね^^;)。DNSは自分で名前を解決できない場合(そして、対象サーバの近隣情報がキャッシュされていない場合)、ルートネームサーバへ問い合わせします。そのルートサーバの所在を示す情報(ヒント:hint)を示しています(だからtype "hint"です)。

 なお、ここではルートキャッシュデータファイルとして、「named.ca」を参照している。「named.ca」がある位置はoptions部のdirectoryです。

named.conf – ループバックデータ

// ループバックデータ
zone "0.0.127.in-addr.arpa" {
    type master;
    file "named.0.0.127";
};

 ここでは自分自身を表す「127.0.0.x(xは通常1だけど、、、)」というIPアドレスから名前解決する為のデータが記述されている。
 「127.0.0.1」の「1」の情報に関しては、参照先のファイル「named.0.0.127」で定義している。

 実際に設定を定義しているので当然「type master」です。

named.conf – 正引き(順引き)データ

// 正引き(順引き)データ
zone "d77.jp" {
    type master;
    file "named.d77.jp";
};

 ここでは、サーバ名(xxx.d77.jp)からIPアドレスを調べる(これを「正引き」とか「順引き」と言う)為の情報を記述している。
 ここは、「d77.jpゾーン(zone "d77.jp")」関する情報を示しており、「type master(このゾーンに関しては私が情報を持っている)」なので、サーバ名「xxx.d77.jp」の「xxx」の部分にどのような文字が入るかや、それらがどういったIPアドレスになってるかなどは、参照先のファイル「named.d77.jp」に記述されている。
 

named.conf – 逆引きデータ

// 逆引きデータ
zone "333.222.111.in-addr.arpa" IN {
    type master;
    file "named.rev";
};

 ここではIPアドレスから、サーバ名を調べる情報が記述されている。通常正引きの場合、ルートネームサーバから、DNSのツリー構造順に検索していくが、IPアドレスはどうなのかと言うと、IPアドレスも基本的には同様です。
 実はIPアドレスの場合、「arpa」→「in-addr」の順に検索し(これは概念云々よりもそういうルールだと覚えたほうが楽)、その後IPアドレスの頭から順に追う形になります。その為「333.222.111.in-addr.arpa」という定義になります。この情報も当然データベースを自分で持っているので「type master」となり、IPアドレスの最後の「444」の情報は(444なんてありませんけど初めに書いたとおりこれは例ですよ)、参照先のファイル「named.rev」に記述されている。

※注意:ここの記述内容はISPによっては特殊な記述方法が指定されてる場合があります。
 

ゾーン転送を制限する(2002/09/04)

 ゾーン転送とはセカンダリDNSがプライマリDNSから情報を貰う為のデータ転送です。基本的に何も設定しないと何処からでもゾーン転送できますが、そうした場合第三者にサーバ構成が知られてしまい、不正アクセスしやすくなります。その為、プライマリ側で、ゾーン転送を許可するセカンダリを指定する必要があります。設定はnamed.confの「option部」に書きます。
 セカンダリのIPアドレスが「222.222.222.222」の場合は以下のような記述になります。
 

// オプション
options {
    directory "/var/named";
    allow-transfer {
        222.222.222.222;
    };
};

 これで、「222.222.222.222」以外のセカンダリサーバはゾーン転送を要求出来なくなります。

セカンダリ(slave)を設定する(2002/09/04)

 セカンダリの設定はプライマリより楽です。なにせプライマリーからコピー(ゾーン転送)するだけですから、、、。
 プライマリでゾーン転送が制限されてるとコピーされないので注意してください。

 設定はnamed.confのみです。
 セカンダリでは、プライマリからゾーン転送をするという設定をしますが、ループバック(zone "0.0.127.in-addr.arpa")とルートキャッシュ(zone ".")はゾーン転送の設定をする必要はありません。転送する必要は無いし、設定する分トラフィックの無駄になるからです。

 ゾーン転送の設定は簡単です。まず、プライマリが以下のような設定になってるとします。
 

// 正引き(順引き)データ
zone "d77.jp" {
    type master;
    file "named.d77.jp";
};

 セカンダリ側ではこのデータをゾーン転送で貰うのに、以下のように書きます。

// 正引き(順引き)データ
zone "d77.jp" {
    type slave;
    file "named.d77.jp";
    masters { 111.111.111.111; };
};

 「file」に指定されたファイルは作成する必要はありません。自動的に作成されます。mastersではプライマリDNSのIPアドレスを指定します。プライマリが複数ある場合も、「masters { 111.111.111.111; 222.222.222.222 ;};」と複数指定することが出来ます。

 逆引きも同様に設定します。
 

各設定ファイルの解説

 named.confはbindというソフトウエア独自の記述形式ですが、named.confから参照される各ファイルはRFC1034等に定義されている形式になります。
 

ルートキャッシュデータファイル

 「xxx.co.jp」というドメインの人が、「yyy.ne.jp」というドメインを参照する際は、「.jp」ドメインを管理するDNSに問い合わせればいいですが、「zzz.com」というドメインを参照する際は、ドメインルートのDNSを検索しなければなりません。
 ルートキャッシュデータファイルには、そのドメインルートのDNSへのアクセス先の手がかり(hint)を記述します。
 ドメインルートに位置するDNSは世界中に10数個存在し、不変ではありません。これを自分ひとりで管理するのは不可能なので、管理しているところから入手します。
 Internicのftp(ftp://ftp.rs.internic.net/domain/)にあるnamed.root(ftp://ftp.rs.internic.net/domain/named.root)というのがソレです。

 ルートキャッシュデータファイルは海外のメーリングリストとかで常に最新の情報流れているらしいですけど、私は見たことが無いです(^^;
 

$TTL

 「No default TTL ($TTL <value>) set云々、、、」というエラーがログに残ることがありますが、これは各設定ファイルに「$TTL」というパラメータが指定されてない場合に発生します。

 これは正引き/逆引きファイルに指定するパラメータで比較的最近になって要求されるようになりました(その為bind8が出た当時の書物には触れられてません)。

 「$TTL」はそのファイルの生存時間を示すもので、現在は必須となってます(bind8系は無くても動くけど。bind9は必須になってると思います)。記述は以下のようにSOAレコードの前に書きます。
 

$TTL 86400
@ IN SOA hoge.d77.jp. root.hoge.d77.jp. (
・・・

参照:RFC2308のセクション4
 

SOAレコード

 次の設定ファイルの説明に入る前に、全ての設定ファイルに書かれるSOAレコードの記述形式に関して解説します。
 

@ IN SOA hoge.d77.jp. root.hoge.d77.jp. (
2002010101      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
86400   )       ; Minimum

 SOAレコードにはDNSの更新に関する情報を記述します。この情報はそのままセカンダリDNSなどに渡されて、その設定に応じてセカンダリが問い合わせを行います。

 まず1行目ですが、「@」はゾーン名を省略した値で、named.confで定義されている「zone "d77.jp"」の部分がそのまま入ります。ですので「@」を「d77.jp.」と書いてもOKです。

※注意:named.confではドメインルートを空白で表現しますが、各設定ファイルは「.(ドット)」で示します。ですので、named.confでは「d77.jp」でも、SOAの方では「d77.jp.」と後ろにドットを付けます。

 「IN SOA」の後はプライマリマスタのホスト名(つまり自分のホスト名)、そして管理者のメールアドレス(「@」は「.」にする)を記述する。

 次の行のSerial(セミコロン以降はコメントなので、わざわざ;Serialと書かなくてもいいですけど書いた方がわかりやすい)は、設定ファイルのシリアル番号で、設定ファイルを更新する度に値を増やさなければなりません。一般的には年、月、日、2桁の数値で表現します(これは必須ではないので、単に1からカウントアップしてもいいです)。2002年の元旦に更新した場合は「2002010101」ですし、同じ日に2回更新したなら「2002010102」になります。

 Serial以降はDNSの更新頻度に関する設定で、更新間隔、失敗時のリトライ間隔、期限切れ時間、キャッシュの保持時間の順に秒単位で書きます。この値は自由に設定していいのだが、RFC1537では以下の値を推奨している

  86400 ; Refresh     1日
   7200 ; Retry        2時間
2592000 ; Expire      1ヶ月
345600 ; Minimum TTL  4日

ループバックデータファイル

 「自分自身(127.0.0.1)」を定義してるファイルです。
書かないと、自分自身を名前解決する際に失敗することがあるので書きましょう。

@ IN SOA hoge.d77.jp. root.hoge.d77.jp. (
2002010101      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
86400   )       ; Minimum

  IN NS hoge.d77.jp.
  IN NS ns1.hogehoge.com.

1 IN PTR localhost.

 ここでの「@」は「0.0.127.in-addr.arpa.」の省略形です。「IN NS」の前にもこの記述が必要ですが、何も書かないと省略していることを意味するので「IN NS hoge.d77.jp.」は「0.0.127.in-addr.arpa. IN NS hoge.d77.jp.」と同じです。
 「IN NS」とかかれているNSレコードは参照先のDNSを示しています。2行あるのはプライマリマスタとセカンダリです。
 PTRレコードは特定のIPアドレスに対応するホスト名を示します。ここでのIPアドレスは「1」なんですが、このように後ろに「.(ドット)」を付けない場合は「0.0.127.in-addr.arpa.」を省略しているとみなされます。ですので、ここの記述は「1.0.0.127.in-addr.arpa. IN PTR localhost.」であると思ってください。
つまり、このPTRレコードは「127.0.0.1」は「localhost.」だと言うことを示しています(localhostの後ろに「.」が付いてるので、「localhost.d77.jp.」では無い)。

 この設定ファイルを書くことによって、127.0.0.1はlocalhost.と名前解決することが出来ます。
 

正引き(順引き)データファイル

 多分、この設定ファイルが一番書くことが多いでしょう。このファイルは「名前」から「IPアドレス」を検索するのが目的ですが、「名前」自体、「別名」を定義したりとか、ホスト名を省略した際の参照先などを定義してやらないといけないからです(逆引きにはIPアドレスの別名などあり得ないので不要)。
 なお、ここの例では「@」や最後に「.(ドット)」の付いていないホスト名には、「d77.jp.」が補完されます(しつこいようですが、named.confに「zone "d77.jp"」と書いてあるからです)。

@ IN SOA hoge.d77.jp. root.hoge.d77.jp. (
2002010101      ; Serial
10800           ; Refresh
3600            ; Retry
604800          ; Expire
86400   )       ; Minimum

  IN NS hoge.d77.jp.
  IN NS ns1.hogehoge.com.

localhost    IN A 127.0.0.1
hoge.d77.jp. IN A 111.222.333.444
d77.jp.      IN A 111.222.333.444

d77.jp.      IN MX 10 111.222.333.444

www  IN CNAME hoge
mail IN CNAME hoge

 NSレコードはループバックデータファイルで解説した通り、ネームサーバを指し示しています。
 つぎの「localhost IN A 127.0.0.1」ですが、ループバックデータファイルがあるのに何故この行が??と思うかもしれませんが、localhostに「.」が付いてないので、省略名を補完した「localhost.d77.jp.」のIPアドレスを示しています。
 「hoge.d77.jp. IN A 111.222.333.444」では「hoge.d77.jp.」のIPアドレスは「111.222.333.444」だというのを指し示しています。「d77.jp.」は省略可能なので「hoge IN A 111.222.333.444」でも大丈夫です。
 「d77.jp. IN A 111.222.333.444」は、「ドメイン名のみで名前解決を試みた場合」にIPアドレスを引けるようにする為のものです。

 「d77.jp. IN MX 10 111.222.333.444」は、メールの配送先の指定です。たとえば、d77.jpドメイン宛にメールを送った場合は、ここの値を参照して、参照先のメールサーバへメールを送ります。
 MXの後ろの「10」は優先順位を示しています。これはメールサーバの負荷分散に役立つのですが、以下のような記述をした場合、、、

d77.jp. IN MX 10 mail1.d77.jp.
d77.jp. IN MX 20 mail2.d77.jp.

 優先順位は値が低いほど優先されるので、「mail1.d77.jp.」にメールを配信し、そのサーバが反応しない場合は「mail2.d77.jp.」へメールを送ります。
 ちなみに、

d77.jp. IN MX 10 mail1.d77.jp.
d77.jp. IN MX 10 mail2.d77.jp.

 と、書いた場合はどちらかのメールサーバに送信を試み、エラーの場合はもう一方への送信を試みます(同じサーバに2度試みることはありません)。

 「www IN CNAME hoge」はサーバの別名を定義しています。「www.d77.jp」で名前解決した場合は「hoge.d77.jp」のIPアドレスを返します。「hoge.d77.jp」のIPアドレスは、少し上の行で定義してるものです。ここでは、「mail IN CNAME hoge」という定義もあるので、たとえば1台のサーバでWebサイトへのアクセスは「https://www.d77.jp/」にして、メール送信には「mail.d77.jp」を使うなんて使い分けも出来るわけです。
※特に各デーモンの方で設定を変更しなければ、「http://mail.d77.jp/」でもWebサイトを見れてしまうのですが、、、(^^;

※注意
 CNAMEで定義されたホストの別名を、別の設定に書いてはいけません。たとえば、「mail IN CNAME hoge」と定義した上で、「d77.jp. IN MX 10 mail」と定義するとエラーになります。
 

逆引きデータファイル

 このファイルは「IPアドレス」から「名前」を検索するのが目的です。正引きファイルのような別名定義などは無いので、あるがままに書きましょう。

 正引きと同様に、「@」や最後に「.(ドット)」の付いていないIPアドレスには、「named.conf」で「zone」に定義された値が補完されますが、正引きとは見かたが変わります。逆引きファイルで定義した値が「444」の場合、「333.222.111.in-addr.arpa」が補完され、「444.333.222.111.in-addr.arpa.」になります。この定義は「.in-addr.arpa.」を省いて後ろから読むので、「111.222.333.444」というIPアドレスを示すことになります。
 

@ IN SOA hoge.d77.jp. root.hoge.d77.jp. (
2002010101 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum

IN NS hoge.d77.jp.
IN NS ns1.hogehoge.com.

444 PTR hoge.d77.jp.

 NSはネームサーバの指定です。
 「444 PTR hoge.d77.jp.」は、このIPアドレスが示すホストを指定しています。既に解説した通り、「444」の後ろにドットが付いてないので、「111.222.333.444」というIPアドレスは「hoge.d77.jp」というホストだと言うことを示しています。省略しないで指定するときは「444.333.222.111.in-addr.arpa.」となるわけです。
※当然ながらホスト名を省略して「hoge」と書くと、正引きファイルじゃないので、「hoge.d77.jp」ではなく「hoge.333.222.111.in-addr.arpa」を示すことになりますので、ここではホスト名の省略はできません。
 

Windowsでbindを動かす

 ここではWindowsでbindを動かす方法を簡単に解説します。
※あまり詳しく書いてません(^^;。

入手/インストール

 Windows版のbindもISC(http://www.isc.org/)で入手可能です。今回はWin2000にインストールしたのでWinNT/Win2000版を導入してみます。

 ダウンロードするとzipで圧縮されてるので、適当なフォルダーにダウンロードします。そして、「BINDInstall.exe」というファイルがあるので実行します。

 デフォルトはWindowsのsystem32ディレクトリ内にdnsというフォルダを作成し、そこに導入されます。

 このインストール作業で、スタートメニューへの追加(スタート→プログラム→ISC)とサービスの自動起動設定(ISC BIND)が追加されます。

設定

 ここでは試しにキャッシュ専用サーバを立ててみました。設定は簡単です。まず、named.confを用意します。
※ここではインストール先を「C:\WINNT\system32\dns」と仮定します。
 

options {
directory "C:\WINNT\system32\dns\etc";
};

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

zone "." {
type hint;
file "db.cache";
};

※「directory」項目の最後に「\」を付けると、何故かエラーになります。

 キャッシュ専用サーバの設定はこの程度です。ループバックデータファイル(db.127.0.0)とルートキャッシュデータ(db.cache)は別途用意します(既に解説済みなのでここでは省略します)。

 テストでは、bindを起動する為に「bindctrl.exe」を使用します(スタートメニューにも入ってます)。

 「Start」を押せば起動します。

 正しく稼動しているかは、イベントビューワを見ましょう。ログがわざわざ1行1行出るので見るのが大変です。幾つか警告が出ても、エラーが無ければ正しく動作しています。動作チェックはコマンドプロンプトからnslookupで行えます。
※例(コマンドプロンプトで実行)

nslookupenter
server 127.0.0.1enter
set type=txtenter
set class=chaosenter
version.bindenter

 これで稼動しているbindのバージョンが出るので、ダウンロードしたbindのバージョンと一致すれば、まぁOKでしょう。

トラブルシューティング

 ここでは、基本的なDNSの問題解決方法を記します。

DNSを起動したが、psコマンドにnamedが無い。

 それはエラーがでて停止してることが考えられる。
syslog(RedHatでは/var/log/messages)をじっくり見よう。
 namedが起動するときは「starting」という文字と、bindのバージョン番号が表示されます。まずはそこを探し、それに続く行でエラーが無いか調べます。ログにはどの設定ファイルにどういうミスをしたかしっかりと書いてますので、よく見ればすぐにわかるはず。

 設定ファイルがちゃんと読み込まれていれば、「master zone "xxx" loaded」と、読み込み完了を示すメッセージが表示されます。
 

エラーが多すぎて何が悪いのかわからない。

 原因は幾つか考えられる。
 

  1. 本当に記述ミスが多い。
  2. 括弧(「{」や「}」)の数があっていない。
  3. (named.confなどで)、閉じ括弧(})の後ろにセミコロンが付いていない。
  4. コメントを示すマークが間違えている(named.confでは/*…*/、//、#で、その他の設定ファイルは「;」です)。named.confで「*/」と「/*」を書き間違えてたのを見たこともある(^^;。

 上記の記述ミスをすると、異常な量のエラーが出る場合があります。
 あまり良いやり方ではありませんが、エラーの一番最初だけを修正して、namedを再起動して、また次のエラ−を直すのもいいかも。
 

起動したようだが、本当に動いているのか確認したい。

 nslookupを使うといいだろう。まずはDNSを起動したホストで検査し、それがうまくいったら他のパソコンから調べればいい。

 UNIXでもWindowsでも、コマンドラインから「nslookup」で対話モードで起動する。
起動したら「server DNSサーバ名(もしくはIPアドレス)」と入力しよう(当然nslookupを起動したパソコンが、名前解決できない状態でホスト名を入れても意味がない)。
 あとは以下のコマンドでいろいろと確認が出来る。
 

> ドメイン名
応答として、DNSホスト名とIPアドレスが表示される。

 

>ホスト名
ホストのIPアドレスが表示される。

 

> set type=mx[Enter]
> ドメイン名[Enter]
 ※EnterはそこでEnterキーを押す。
 MXレコードの内容が確認できる。

しばらくすると、USAGEとかNSTATS、XSTATSというログがでる。

 それはDNSの動作状態を示す統計情報で、デフォルトで1時間毎にログに出力される。
 不要であれば以下の内容をnamed.confに書けば、出力されなくなる。
 

logging {
    category statistics { none; };
};

 別ファイルに出力したいなら、
 

logging {
    channel stat_file {
        file "/var/log/named/named.stat";
            severity info;
    };
    category statistics { stat_file; };
};

 、、、という書き方で別のファイルに出力することも出来る(ファイルは事前に作成しておく)。
 ちなみに出力したファイルはちゃんとローテーションしないと肥大していく一方になります。
 

時々「Lame server on …」というログが出力される。

 正引き(もしくは逆引き)情報をもってるはずのDNSが、その権限を持っていないので参照できないことを示す。
 単なるパケットの遅延が原因のときもあるらしい。
 取り合えず(自分でなければ)、ほおって置くしかない。
 

ログにNo default TTL ($TTL <value>) set・・・

 「$TTL」パラメータを書けばなおります。
 「各設定ファイルの解説」→「$TTL」を参照してください。
 

まったく記述ミスが見つからないのにシンタックスエラーが出る。

 設定ファイルでスペースが必要な個所にスペースが無かったりすると、エラーになります。たとえば、、、

誤)@_IN_SOA_hoge.d77.jp._root.hoge.d77.jp.(
正)@_IN_SOA_hoge.d77.jp._root.hoge.d77.jp._(
※便宜上、スペースの入るところにアンダーバー(_)を入れてます。

 上記のように、括弧の前にスペースが無いだけでエラーになることもあります。

bind9

 ここではbind9の運用について解説します。
私の環境ではbnd8からの移行なので、それに沿った形での解説になりますが、なるべくbind9を新規でインストールした方でもわかるように解説しようと思います。
 

bind9のインストール

 今回使用したバージョンはbind-9.2.1.tar.gzです。bind9系はバージョンによっていろいろと障害が出るようなので、バージョンが違う場合はここの解説では足りなくなるかも知れません。
※ここの解説はLinuxベースなんで、BSD系の方も十分注意すべきだと思います。

 まず、ソースを入手します。ソースはbind8と同様にisc(http://www.isc.org/)から入手できます。
 コンパイルにはroot権限は必要ありません。

 まず解凍します。

$ tar zxvf bind-9.2.1.tar.gz
$ cd bind-9.2.1

 ここでREADMEをチェックしておきます。読めなくても読みましょう。高校の時に英語30点(100点満点中)だった私も読んでるので大丈夫です(何が?)。
 コンパイルに関わることは「Building」とか「Compile」とかいう項目を探せばOKです。

 次に環境設定ですが、通常では「./configure」で大丈夫ですが、今回はbind8からの移行もあったので、意図的に新しいディレクトリを指定します。指定しなくても後で変更可能なので安心してください。

$ ./configure –prefix=/usr/local/bind9 –sysconfdir=/etc –enable-threads=yes –localstatedir=/var

 

 prefix・・・インストール先
 sysconfdir・・・named.confの位置
 enable-threads・・・マルチプロセッサ対応
 localstatedir・・・ログの類

 環境設定後は、Makefileを見ると各インストール先がかかれているので、make前なら修正可能です。

 prefix =        /usr/local/bind9
 exec_prefix =   ${prefix}
 bindir =        ${exec_prefix}/bin
 sbindir =       ${exec_prefix}/sbin
 includedir =    ${prefix}/include
 libdir =        ${exec_prefix}/lib
 sysconfdir =    /etc
 localstatedir = /var
 mandir =        ${prefix}/man

 そしてコンパイル

$ make all

 最後にインストールですが、root権限が必要です。

$ su
# make install

 あとは「/usr/local/bind9/sbin/named」で起動することが出来ます。
 

bind8の設定ファイルのまま起動した時のログ解析

 とりあえず、起動した場合のログをチェックしてみましょう。
※以下のログは日時等の表示を省略してます。
 

starting BIND 9.2.1

 ここからbindの起動プロセス開始。
 

loading configuration from '/etc/named.conf'

 named.confの読み込み。読み込み権限が無い時や位置が間違ってるとここで止まります。ちなみに「-c」起動オプションで位置の指定も可能。
 

option 'check-xxx' is not implemented

 出力するログのファシリティレベルなどの設定は著しく変わってるようで、この辺は全部無視されます。
 

no IPv6 interfaces found

 ちゃんと設定してやればIPv6にも対応(ここでは非対応)。
 

listening on IPv4 interface lo, 127.0.0.1#53

 どのポートからのDNSクエリーを受け付けるかが表示されます。

none:0: open: /etc/rndc.key: file not found

 これはbind9特有の設定が不足しているメッセージ。解決方法は次の項で解説します。
 

couldn't add command channel 127.0.0.1#953: file not found

 bind9では「command channel」としてポート953を使うようです。これも次の項にて解説。
 

unknown logging category'statistics' ignored

 「logging」セクションを設定している場合、ここのカテゴリもかなり変わってるのでワーニングになり無視されます。
 

zone xxx/IN: loaded serial xxx

 これはゾーンファイルの読み込み。各ゾーンの読み込みが成功しているか確認する。

 ログに関するワーニングは書き方自体がかなり変わってしまっている為、消して書き直すしかありません。何も書かなければデフォルト値でsyslogに出力されます。

 また、rndc.keyやcommand channel等の追記に関しては次項で解説します。
 

rndc.keyとcommand channelの設定

 bind9からは署名付きの更新が可能らしく、その関係でkeyを作成しなければならない(らしい←まだ詳しく勉強してない)。
 ここではとりあえずの解決方法を記します。
 まず、以下のコマンドを実行。
 

# /usr/local/bind9/sbin/rndc-confgen

 そうすると設定例が出力されます。
 

# Start of rndc.conf
key "rndc-key" {
〜云々〜
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
〜云々〜
# };
# End of named.conf

 とりあえず、後半の方の「# Use with the following in named.conf〜」から「# End of named.conf」をnamed.confに書き加えます。途中コメント「#」されている設定はコメントを外してください。これでワーニングは解決します。
 

# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "xxxxxx";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf

bind9特有の設定

 まだ、調べてる途中なのでそのうち書きます。

参考

 DNSに関する情報です。

関連ドキュメント

 以下の文書はhttp://www.google.com/あたりの検索サイトで「RFCxxxx」で検索すれば、参照することが出来ます。
 

  • DNSに関すること(一度書き直されているものは、2つの番号がある)

    • RFC882:
      RFC1034:
      DOMAIN NAMES – CONCEPTS and FACILITIES
    • RFC883:
      RFC1035:
      DOMAIN NAMES – IMPLEMENTATION and SPECIFICATION
    • RFC1537:
      Common DNS Data File Configuration Errors
  • トップレベルドメイン(.jpとか)に関すること

    • ISO3166
  • その他

    • RFC952:(ホスト名の命名規則)
      DOD INTERNET HOST TABLE SPECIFICATION
    • RFC952:(メール配送経路関連、MXが関係してる)
      MAIL ROUTING AND THE DOMAIN SYSTEM
    • RFC2136:(bind8.1.2より追加された機能)
      Dynamic Updates in the Domain Name System (DNS UPDATE)

ネットワークの基礎

概要


 ここではTCP/IPネットワークへ接続する為の基本的な設定方法を解説します。RedHatLinux7.2ベースですが、それ以前のバージョンやTurboLinuxではほぼ同じ内容で大丈夫だと思います。
※もしかしたらファイルの位置などは違うかもしれません。
 なお、ハードウエアデバイスの設定に関しては省いています。

IPネットワークの基礎


 ここではIP(インターネットプロトコル)ネットワークの基本的な部分を開設します。

プロトコルとOSIの7階層


 プロトコルとはよく「通信規約」と訳されますが、いわゆる2点間の通信をお互いが理解しえるようにする為のルールだと思ってください。たとえば、米国人が米国語で喋って、日本人が日本語で返事するるという状況ではお互いのコミュニケーションが取れないため、お互いの言葉を統一することによりコミュニケーションが取れるようにするというルールのようなものです。
 OSIの7階層というのは、そのネットワークプロトコルのガイドラインのようなものです。全ての通信ソフトに通信デバイスの制御や、パケットの組み立てなどをやらせてしまうと、プログラマーは大変です。ですので、デバイスドライバのようなものを介在させることにより、アプリケーションの開発を楽にさせたりと言うのが重要です。ネットワークカードが何をするか、ドライバが何をするかというのを決めなければならないですが、そういう仲介役同士をどのように分けるかというガイドラインを示したものがOSIの7階層モデルと言うものです。

  • 応用(アプリケーション)層

  • プレゼンテーション層

  • セッション層

  • トランスポート層

  • ネットワーク層

  • データリンク層

  • 物理層


 各層の役割をさらに知りたい人はそれなりの専門書を読んでください。簡単に説明すると、いわゆるアプリケーションプログラマは通信ソフトを作るときに、アプリケーション層との通信をコーディングするだけでOKです。細かいデバイスの電気信号の制御は物理層がやってくれますし、遠いところへ通信する際のルーティングの制御はネットワーク層がやってくれます。
 このように開発の負荷を軽減したり、開発者の違いによる実装の差を減らしたりすることが可能となります。

IPネットワークのプロトコル


 IPネットワークはOSIの7階層のようには分かれていません。だいたい5階層くらいに分かれています。
 まず、プログラマが意識しなければならない応用(アプリケーション)層には、Webサイトを見る為のHTTPやメールの送受信の為のSMTP等があります。
 パケットのコントロールをする為のトランスポート層でTCPやUDPと言ったプロトコルが使用されています。
 さらにルーティング制御等のネットワーク層がIPです。
 さらにその下の階層では、PPPなどのデータリンク層があったり、モデムなどの機器が物理層となるわけです。
 よく、インターネットに使用されるプロトコルのことを「TCP/IP」と言いますが、これは「TCP」と「IP」という2階層のプロトコルを表しており、実際にはインターネットで使用されるプロトコルは「IP」が基本にあり、その上で「TCP」「UDP」等のプロトコルが使用されます。また、インターネットでは「IP」プロトコルだけではなく、ping等に使用される「ICMP」等もあります(他にもあるけど以下略)。
※「IP」の「P」は「プロトコル」の略なので「IPプロトコル」って書き方はおかしい気がするけど、気にしない。

パケットとIP


 パケットは直訳で「小包」という意味ですが、ネットワークの世界では一つの通信データを示します。ネットワークでの通信中は常に1ビットづつ送受信している訳ではなく、「パケット」と呼ばれるデータの固まりを送受信してるます。通信データは、あるサイズの「パケット」に分割され、受信側で再度組み立てられます。その為、パケットにはデータだけではなく、組み立ての順序や送信元/先の情報などが「パケットのヘッダー」に蓄えられています。
 パケットの構造には当然ルールが必要ですが、そのルールと言えるものが「プロトコル」です。IP(インターネットプロトコル)はインターネットのデータ通信の基本とも言えるプロトコルです。
 主な役割はIPアドレスの伝送制御で、IPヘッダには送信元のIPアドレスと送信先のIPアドレスが記述されています。
よく、「httpはtcpポート80番」とか言われますが、IPヘッダにはそう言った情報は含まれず、IPのデータ部(にあるtcpの情報の中)にあります。

TCP/UDP


 TCP(Transmission Control Protocol)と、UDP(User Datagram Protocol)は、実際にアプリケーション同士の通信制御に使用されます。
 ヘッダー部にはよく言われる「http」や「ftp」等のルール化された通信ポートの情報や、パケットの順序を示すシーケンス番号、セッションの状態(通信開始、通信中、通信終了のような物)を示す情報など、非常に多彩な情報を格納しています。なお、送信先のIPアドレス等はIPヘッダに含まれる為、ここにはありません。
 TCPとUDPは同じ層のプロトコルですが、幾つかの違いがあります。
 TCPはデータが送信された際にその応答がなされる為、信頼性の高い通信を行いますが、その分通信速度に難があります。UDPはセッション後一方的にデータを送るので、データが相手側に到着したがどうかの確認がワンセッションで出来ませんが、その分高速です。
 UDPは主にFTPのデータグラム(データの受信用のセッション)や、NetBios(SAMBAやWindowsのファイル共有)のデータグラムなどの多量のデータ転送や、DNS(UDP53番)等に用いられます。

ICMP


 ICMP(Internet Control Message Protocol)は、もっとも有名な使われ方は「ping」や「tracert(Traceroute)」だと思います。
※Windows版の「tracert」コマンドがICMPを使います。UNIXの「traceroute」は主にUDPを使用。
 このプロトコルはデータ転送が主たる目的ではなく、通信が目的地まで到達するかの確認などが主な目的です。
 ICMPは軽視されがちですが、セキュリティの保持という側面では重要なプロトコルです。
 ICMPにはTCPやUDPのような「ポート番号」はありませんが、「ICMP type」という番号があり、どの番号をパケットが所持しているかによって、その種類が決定します。

























ICMP type種類
0エコー応答
3終点到達不能通知
4送出抑制要求
5経路変更要求
8エコー要求
11時間切れ通知
12不正パラメータ通知
13時刻要求
14時刻応答
17アドレスマスク要求
18アドレスマスク応答

 たとえば、pingを打った場合、送信元はICMP:8(エコー要求)を送信し、受信側がICMP:0(エコー応答)を返します。Firewall等で「Reject(拒否)」された場合はICMP:3(終点到達不能通知)が返され、pingが届かない時やFirewall等で「Drop(無視)」された場合は何の応答もありません。
 ちなみに、「Reject(拒否)/ICMP:3」の送信元を調べることにより、Firewallで遮断されているのか、サーバで拒否してるのかを調べることも出来る為、インターネット側の通信遮断は「Drop(無視)」のルールを適用した方が、不正アクセス者に余計な情報を与えないので好都合です。じゃあ全ての通信遮断を「Drop(無視)」にすればよいかというとそうでもなく、「Drop(無視)」された場合は応答が無いので、ping等はタイムアウトまで待たなければならないので応答が非常に遅くなるのと、回線断との見分けがつかないのでメンテナンス性に問題が生じます。その為、LAN等での通信遮断は「Reject(拒否)」の方がいいでしょう。
※ping(ICMP)で「Reject(拒否)」された場合は、非常に応答の早いエラーが帰ってくるので、すぐにわかります。「Drop(無視)」された場合は、タイムアウト(通常のpingでは1秒)までの遅延が発生します。
 ICMPにはエコー以外にも、時刻関連とアドレスマスク関連がありますが、これらの情報もそれなりのツールを使えば読み出すことが出来ます。

# ./icmpquery -t 192.168.1.xxx
192.168.1.245 : Sat Aug 10 22:20:46 2002

 普通、時間やアドレスマスク等の情報は公開しても無意味なので、遮断した方がいいでしょう。

設定ファイル解説


 ここでは各設定ファイルのサンプルとその意味を解説します。
※位置や内容はOSやディストリビューションによって違うかもしれないので注意してください。ここの内容は主にRedHat系の設定です。

/etc/modules.conf


 この設定はどちらかと言うとデバイスの設定ですが、たとえばインストーラの自動認識でeth0とeth1が逆転してしまった場合、これを書き換えることで直すことが出来ます(そのときは当然、ゲートウエイなどの関連設定もなおす)。

alias eth0 ne2k-pci
alias eth1 8139too

/etc/sysconfig/network-scripts/ifcfg-eth0


 各インターフェースの設定です。
ファイル名はインターフェース毎に違うので、注意する(ifcfg-pppとか)。

  • DHCPを使用する場合



DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes


  • DHCPを使用しない場合



DEVICE=eth0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
BOOTPROTO=none
ONBOOT=yes

DEVICE
デバイス名

IPADDR
そのデバイスのIPアドレス

NETMASK
サブネット用のネットマスク

NETWORK
ネットワークアドレス

BROADCAST
ブロードキャストアドレス

BOOTPROTO
DHCPやBOOTPを使うときはこれを指定する。

ONBOOT
OSを起動するときにインターフェースも起動するならyesにする。

/etc/sysconfig/network


 もっとも基本となる設定ファイルです。
ネットワークインターフェースが複数ある場合でも、全てのインターフェースがまずこれを参照します。

NETWORKING=yes
HOSTNAME=localhost.localdomain
DOMAINNAME=localdomain
FORWARD_IPV4=no
GATEWAYDEV=eth0
GATEWAY=192.168.0.1

HOSTNAME
ホストのフルネーム(FQDN)です。

DOMAINNAME
ドメイン名です。

FORWARD_IPV4
NATやIPマスカレードを使用する場合はyesにします(別途、ipchainsやiptablesなどの設定が必要)。

GATEWAYDEV
ゲートウエイデバイスです。

GATEWAY
ゲートウエイのIPアドレスです。

/etc/resolv.conf(2002/02/04)


 レゾルバ(DNSのクライアント側)の設定。DNSサーバのIPアドレスを指定してやればいい。通常、プライマリとセカンダリがあるので、複数行になる。

nameserver 203.165.xxx.xxx
nameserver 203.165.yyy.yyy

/etc/hosts


 hostsファイル(DNSを使わないで名前解決する為のファイル)の設定。

127.0.0.1 localhost.localdomain localhost
192.168.1.1 server.localdomain server

 必要に応じて上記のように列挙する(間はスペースやタブで大丈夫)。DNSの応答が遅いときなどにも使える。

/etc/host.conf


 名前解決に関する設定。

order hosts,bind
multi on

order
名前解決時の参照順序。上記の例では「hosts→DNS(resolv.confに書いてある)」の順に参照する。

:multi:自サーバに複数のIPがある場合、onだと全てのIPを返し、offは初めに見つかったIPのみを返す。

Webプログラミングメモ

NTT Docomo


文字コードはSJIS。
画像はGIF。2003年以降の機種はJpegもOK。
JavascriptやCookieは非対応。

Willcom


フルブラウアザなので、まぁ何でも困ることは無いかも。

Vodafone


画像はPNGとJpeg。2005年以降の機種はGIFもOK。

EZweb


画像はPNG。最近のはJpegとGIFに対応。

UOイラスト

UO関連イラスト(2D)


UltimaOnlneをやってた頃に描いたor描いてもらったイラスト。

UGBキャラ大集合(2001/04/16)


らんげりの絵。UGBというのは、デルタとリーとジレイナの3人で結成された謎のグループ(w
(本人コメント)UGBメンバーの持ちキャラをだーっと描いてみました。
が、エラく時間かかりましたぁ~~~!!
見てやってください…。

ソニアさんへさしあげものCG(2001/04/16)


らんげりがギルド仲間のソニアさんにプレゼントした絵。
(本人コメント) 同じギルドのソニアさんのHP開設記念に(いつの話だ!?)献上した、ほんわかソニアさんです。ていうか、おいらパステル系のセンスねーよ?。こんなもんでいいスかね?>ソニアさん。

エスティナ(2001/04/16)


デルタの2ndキャラクターのエスティナです。以前、1stキャラクターのデルタが儲からなかったときはエスティナで金儲けをしていた。生産関連の能力に長けたキャラです。

カンナギさん(2001/04/16)


らんげりの絵。
(本人コメント)同じギルドのカンナギさんに差し上げた物です。
ラフばっかで申し訳ない(^^;)—

カンナギさんからの頂き物(2001/04/16)


カンナギさんから頂いたイラストです。リーが色塗ってくれる予定がなかなか多忙なため、頂いた段階でのを掲載しました。左からエスティナ、サリカ、スズさん、ジレイナだそうです。

キュラ(2001/04/16)


デルタの3rdキャラクター「キュラ」です。もはやUOと関係があるのか無いのかわからん絵になってしまいましたが、とりあえずシーフなのでロックピックらしきものを持たせてみました。ロックピックと腕輪とイヤリングと服は3Dモデリングしたものです。腕輪はちょっと浮いてしまいました。

シルバード(2002/12/19)


SSGの生産系部隊の隊長Siluさんのキャラクター。この絵は魂の剣の書(現在休止中のサイト)向けに書いたやつ。

デルタ(2002/12/19)


デルタ(ハンドル名もデルタだけど、これはUOキャラの方)ですー(^^)。下のより一応衣装が最近のものになってる。この絵は魂の剣の書(現在休止中のサイト)向けに書いたやつ。

ヒロン団長(2002/12/19)


ギルドSSGの団長HIRONさんです。この絵は魂の剣の書(現在休止中のサイト)向けに書いたやつ。

ランジェ・リー&サリカ(2001/04/16)


イラストに載ってるキャラを使用していたらんげりの絵。
(本人コメント)リーとサリカのイラスト、初描きです。しかもラフ(^^;)
リーのベレー帽は、とあるアニメのパクリです(爆)。

頂き物のCGをカラー化(2002/12/19)


カンナギさんから頂いたCGをカラー化しました。

不定期連載UOらくがき第三弾!?(2001/04/16)


らんげりの絵。
(本人コメント)管理人の意向により、縦にしてみました。
どうでっしゃろ?

不定期連載UOらくがき第二弾!?(2001/04/16)


らんげりの絵。
(本人コメント)男の裸が多いですなぁ。
色気ゼロ(爆死)!

不定期連載UOらくがき第一弾!?(2001/04/16)


らんげりの絵。
(本人コメント)ランジェ・リー絵師(壊死)による、UO関係のラクガキでございます。
たまに、思いついた事なんかをだらだら描いていこうとおもいやーす。

鈴さん(2002/12/19)


カンナギさんからの頂き物のお返しに描きました。カンナギさんの2ndのsuzuさんです。
本人の描いた絵とちっとも似てないのは愛嬌と言うことで(爆)。本と細かい飾りはモデリングしたものを貼り付けています。

UO関連イラスト(3D)


UltimaOnlneをやってた頃に描いた3D画像。

Marble House with Patio


 建造物第5段は「テラス付きの大理石の家」です。
 パソコンが激パワーアップ&安定化したので、完成版公開です。
 今回は家具を設置してません。その代わりテクスチャーと花壇に力を入れて作ってみました。

Marble House with Patio(庭)


 「テラス付きの大理石の家」を庭から見たところです。

Small Marble Shop


 パソコンが不調で重い画像が処理できないので「テラス付きの大理石の家」を保留にして、「小さな大理石の店」を公開しました。
 ベースは大きい大理石の家と同じなのでけっこう楽が出来た割にはちゃんとした作りになってます。

Two-story villa


 建造物第4段は「2階建ての別荘」です。
 壁にある変な模様が苦労しました。あと、反射を強くかけすぎたせいか、演算にものすごい時間がかかりました。

スモールストーンタワー


 UOIに登録したらサイトへアクセスしにきてくれる人が増えたので思わず作成しました(w
 スモールストーンタワーです。芝生とタワーの床、看板はUOと同じテクスチャを使用しています。それ以外は取り込めなかったので自前で作りました。

タワー


 建造物第3段の「タワー」です。
ちょっと陰が濃すぎたかな。

タワー(1階)


タワーの中身(1F)です。内装もちょっと置いてみて、ランタンの明かりで照らしてみました。

メタルチェストとランタン


タワーの内装として作ったものだけど、あまり良く見えなかったかと思いますので、個別に作ってみました。メタルチェストはかなり手抜きですね(鍵穴も無いし^^;)。

ログキャビン


ログキャビンを作ってみました。リアリティ重視というより、UO内の物に似せることを重視したので、丸太の数とかもほとんどあってるはず。屋根はわらぶきのテクスチャを何とかしようと思ったんですけど、風邪を引いてしまって面倒になったので、仮のものそのままになってます。気が向いたら直す(カモ)。屋内のデコレーションもしてません。

ログキャビン(玄関)


ログキャビンの玄関のところをアップにしてみました。

その他イラスト

お絵かき掲示板に載せてたイラスト


エルンシャ(ラグナロクオンライン)


らんげり作。アコライトですね。

タクティカ(ラグナロクオンライン)


デルタ作。シーフです。

チコリー(ラグナロクオンライン)


らんげり作。アーチャですね。

マルセラ(ラグナロクオンライン)


らんげり作。戦士ですね。

その他画像


Ragnarokの商人?(2003/05/12)


Ragnarokの発売元であるGravityがFAN ART BOOKというイラスト集を韓国で発売しているんですが、それに応募して載ったイラスト。
 キャラクターがイマイチなんだけど、背景は初めてトゥーンシェーディングを使ってみました。2Dと3Dの結合が結構うまくいったかな?

エスティナ(FinalFantasyXIバージョン)(2002/06/18)


個人サイトの6周年記念に書いた絵です。
いろいろ中途半端な絵です(ライン着色忘れてたり、デッサン調整が面倒でやってなかったり)。

エスティナ(CrossGateバージョン)(2002/06/15)


デルタの2ndキャラのエスティナです。クロスゲートではお団子頭キャラを使ってました。

ソニアさん(CrossGateバージョン)(2002/06/15)


デルタ作のソニアさんのキャラクターのsoniaさんです(w。
途中失敗して線が太くなっちゃった。

CAESAR4_交易品

CAESAR4へ戻る










Food食料輸出輸入
Grain小麦1214
Vegetables野菜1316
Meat1417






















Raw materials原料輸出輸入
Olivesオリーブ2226
Grapes葡萄2024
Wool羊毛2327
Timber材木2732
Clay粘土1923
Sand1822
Iron2530
Gold2935
Marble大理石5060












Basic goods原材料輸出輸入
Clothing5667
Glassガラス5060
Olive Oilオリーブオイル5465
Pottery陶器5262












Luxury goods贅沢品輸出輸入
Furniture家具7084
Jewelry宝石7489
Utensils道具6882
Wineワイン7286








Military兵器輸出輸入
Armor100120
Weapons武器106127




























Exotic goods外来品輸出輸入
Amber琥珀150130
Cosmetics化粧品180150
Furs毛皮180150
Honeyハチミツ150
Incense150
Ivory象牙150
Papyrusパピルス150
Perfume香水150
Salt130
Silk150
Silphiumシルフィウム(スパイスの一種)100
Spicesスパイス180150

CAESAR4

注意まだ、ほとんどPLAYしてないので、内容はほとんど引用です。

CAESAR4


 買ったは買ったが英語でさっぱりなので、いろいろ翻訳しながらメモるテスト。
公式サイト:http://www.caesariv.com/us/index.jsp
攻略サイト:http://caesar4.heavengames.com/

日本語化


 まったり日本語化進行中。
ファイルがありません。

要注意上書きする場合は、必ず元のlanguagetext.xmlをバックアップして下さい。また、このファイルを差し替えたことによる如何なる問題を保証しません。
要確認みかちゃんフォントを使用してます。持っていない人や、使いたくない人は、ダウンロードしたlanguagetext.xml内「みかちゃん-PS」を「MS Mincho」とかに書き換えて下さい。

  • 〜Caesar IV\languagetext.xmlをバックアップして、上記ファイルを上書きして下さい。上書き後にCaesar4を起動すれば、日本語化されてる所は日本語で出ます。


ショートカットキー









































































HOT KEY 1HOT KEY 2GAME ACTION
]カメラズームイン
[カメラズームアウト
`カメラ回り込み
WUp arrow上へスクロール
ALeft arrow左へスクロール
SDown arrow下へスクロール
DRight arrow右へスクロール
Homeビューをリセット
Alt-Zメニューを隠す/戻す
F2町へ
F3帝国へ
F4アドバイザーへ
Ctrl道/壁を自由に?
Rゴーストを右回り(時計回り)に回転
Shift-Rゴーストを左回り(反時計回り)に回転
Ctrl-H次の家を選択
Ctrl-F次のフィギュア?を選択
PeriodTrack/center on selected
CommaTrack/center and zoom in on selected
DeleteBackspace選択されたオブジェクトを削除
Iシナリオの情報
LPgUpメッセージログ
Spaceオーバレイへ切り替え
PBreak一時停止
– (num)ゆっくり進行
+ (num)早く進行
Ctrl-SF11クイックセーブ
F12最近のクイックセーブからロード
Ctrl-F12最近のオートセーブからロード
Escapeダイアログをキャンセル
Escapeオプションメニューを開く
F9SysRqスナップショット
Shift-F9Shift-SysRqスナップショット(UI無し)
Ctrl-F9Ctrl-SysRqスナップショット(町すべて)

ゲームモード


"Kingdom(王国)"キャンペーン
初心者向け。課せられた課題をクリアしていくようなモード。

"Republic(共和国)"キャンペーン
そこそこの人向け?

"Empire(帝国)"キャンペーン
しばらくやると出来るようになるモード。

:"Scenarios(シナリオ)"キャンペーン:
:"Other(その他)"キャンペーン:

繁栄度



  1. 家の繁栄度毎に集計される。

  2. 宝庫の金額(負債があるとゼロになる)















SmallMediumLarge
Insula11025
Domus12535
Villa14060
Estate100155220
Mansion295390500

信仰


Jupiter(ジュピター)


ローマの守護神。

ボーナス


ジュピターの尊重:懲罰が10%減る。
ジュピターの利益:税収、歳入の増加。
ジュピターの優美:家がより速い確率で発展する。

慈悲


少: 犯罪者を少し減らす。
大: 犯罪者を無くす。

Mars(マーズ)


戦の神。

ボーナス


マーズの強さ:武器、防具工房の生産が11%益す。
マーズの勇気:兵士の戦闘能力が上がる。
マーズの栄光:新兵および移住率を高める。

慈悲


少:1つのグループに訓練経験+20週。
大:すべてのグループに経験を与える。

Mercury(マーキュリー)


商業の神。

ボーナス


マーキュリーの技術:材木を除くすべての原料の生産を倍増する。資源の移動が多くなる。
精通したマーキュリー:輸出高が上がる。
マーキュリーの報酬:貿易ルートを開設する費用が減る。

慈悲


豊穣の神。
少:少額の貿易ルートを開設する?
大:高額の貿易ルートを開設する?

Ceres(セレス)


ボーナス


セレスのフルーツ:ブドウおよびオリーブがより速く育つ。
セレスのギフト:肉および羊毛の生産量が高くなる。
セレスの奨励:穀物および野菜がすぐに育つ。

慈悲


少:特定の生産物が夜通し熟す。
大:すべての生産物が夜通し熟す

Bacchus(バッカス)


酒の神。

ボーナス


バッカスのLibations:ワインの生産が8%早くなる。
バッカスの魅力:?
バッカスの祝祭:都市のすべての世帯で幸福度が上がる。

慈悲


少:一部で贅沢品、外来品を受け取る。
大:すべてで贅沢品、外来品を受け取る。

工場/工房


基本
Clothing factory(衣類工房)、Glass factory(ガラス工房)、Olive oil factory(オリーブ油工房)、Pottery factory(陶器工房)

高級品
Furniture factory(家具工房)、Jewelry factory(宝石工房)、Utensil factory(道具?農具?調理器具?工房)、Wine factory(ワイン工房)

:軍:

分野別生産量

















BuildingMonths to Maximum GrowthMaximum Yearly Production
Cattle Pasture6 months36 units/year
Grain Field2 months23 units/year
Grape Vineyard2 months18 units/year
Olive Grove2 months18 units/year
Sheep Pasture6 months32 units/year
Vegetable Field2 months23 units/year

戦争


軍隊のタイプ













Name費用必要物弱点
Light infantry(軽歩兵)600Weapons安価/礼儀正しい兵士重歩兵ほど長持ちしないし、騎兵ほど動き回れない。
Heavy infantry(重歩兵)750Armor & weapons高い耐久性と強い力騎兵ほど動き回れない。
Missile auxiliary(射撃部隊)600Weapons遠距離戦闘技能接近戦に弱い
Cavalry auxiliary(騎兵部隊)750Armor & weapons力強く、高機動重歩兵ほど長持ちしない

交易


交易品

ブログネタ


–category_list CAESAR4–

ゲーム関連ブログ

マビノギ


ブログ/2006-10-9


ブログ/2006-10-21


[]デザートドラゴン


blog-2006-10-21-mabi サーバの設定をいろいろ直さないとならないんだけど、面倒でゲームばっかりやってます。
 今朝は、マビノギで初めてデザートドラゴンと戦いました。大型モンスターは何種類かいるんだけど、こいつは週に一度だけしかでないので、今まであったこと無かったです。
 とりあえず強いとか弱い以前に、ラグい!
まぁ、それでも殴ればそれなりの経験値とお金が貰えるので、なかなか美味しいモンスターでした^^。

ブログ/2006-8-22


その他


ブログ/2006-8-25(CAESAR4)


ブログ/2006-8-28(UO)

いろいろめも

PerlでAPOP認証(2003/01/06)


 pop3サーバに接続が成功すると

+OK <云々>

 という応答が帰ってくる。この「云々」の部分+パスワードでMD5のメッセージダイジェストを作成し、「APOP user名 MD5メッセージダイジェスト」として送信送信すればAPOP認証が成功する。
変数に、

$res=サーバからの応答(+OK <云々>)
$user=ユーザ名
$passwd=パスワード

と入れてあるとすると、

use Digest::MD5;
# 云々の部分の切り出し
$res =~ s/(.+)<(.+)>/<$2>/i;
# その後ろにパスワードを付加
$res .= $passwd;
# メッセージダイジェストの作成(モジュール任せ)
$md5 = Digest::MD5->new;
$md5->add($res);
$res = $md5->hexdigest;

 あとは、「"APOP $user $res"」をサーバへ送り返せば認証成功となる。
 、、、というか、サーバ応答(+OK <云々>)から切り出す部分って「<」と「>」も含まなければならないってのに小一時間ハマッタ。

起動すべきデーモンと止めるべきデーモン(2003/10/04)


 RedHat系のLinuxは「chkconfig –list」でデーモンの起動の設定を確認することができます(出てこないデーモンもありますけど)。そして、不要なデーモンは「chkconfig nfs off」というようなコマンドで起動しなくすることが可能です。
 ここではchkconfigで出てくるデーモン群を説明します。ちなみに私自身知らないものも非常に多いので、かなり推測が入っています。
kudzu
新しく追加/取り外しされたハードウェア(マウスとかNICとか)を検知し、設定を行う。これがあると起動中10数秒待たされるが、あったらあったで便利。

syslog
ログを記録する。これが無いと普通は困る。

netfs
起動時にネットワーク系のファイルシステムをマウントする。samba(Windowsファイル共有)とかNFS(ネットワーク経由でファイルシステムをマウント)とかが関係あるらしい。使ってなければいらないっぽい。

network
その名のとおりネットワークの設定とか起動とかをしている。これがなければオフライン。

random
乱数を生成する。ゲームプログラマの命(謎)。基本的には残した方が無難。

rawdevices
rawデバイスをマウントする。残すか残さないかは微妙、、、っていうかどういうときに使われるのかがよくわからないので残してます。

pcmcia
PCMCIAカード(いわゆるノートパソコンとかに差すPCカード)を使う人は残した方がいいです。デスクトップなら普通いらないと思う。

saslauthd
RedHat9で始めて見た気がします。imapとかSMTP-AUTHとかのメール関係の認証で使うみたい。意図して使う人以外はOFFでいいと思う。

keytable
キーボードマップ(配列)を設定する。/etc/sysconfig/keyboardあたりの関係だと思う。ONじゃ無いとキーボード配列が狂うかも?

apmd
APM(Advancede Power Management)ユーティリティ。ノートパソコンのバッテリとかの監視がメイン。デスクトップでもUPSや電源OFF時のパワーOFFに関係するかも。

atd
crondと同じ指定時間にプログラムを走らせるもの。manを見るとcrondに統合されるべきだと書いてあるね。基本的に使われていない気がする。

gpm
コンソール用マウスドライバー。telnetなどでリモート接続して使うのが基本な人には不要。

autofs
NFSを使う人は使うようです。自動的にファイルシステムをマウントする。

iptables
パケットフィルタ。これはデーモンじゃない。電源を切ると設定が消えるので、それを起動時に読み込んでいるだけ。設定は「/etc/sysconfig/iptables」

irda
赤外線デバイス関連。使ったことがないのでよく知らないけど、使わない人はOFFでいい。

isdn
ISDNカード用接続スクリプトサービスだそうです。ISDN関連デバイスを付けてる人には関係あるのかな?

sshd
セキュアシェルデーモン。リモートシェル接続するもの。基本的にはtelnetと同じだけど、通信が暗号化されてより安全。

portmap
RPC(リモートプロシージャコール)接続に使うものだそうです。分散システム関連で使うと思うけど、それらしき機能を使わない人はOFFにしましょう。

nfs
NFS(Network File System)を使う人はON。ネットワーク経由でマウントしたりとかいろいろできるらしいけど、素人が適当に設定するとそこから侵入されたりします。

nfslock
NFSでファイルをロックするためのものだそうです。詳しくは知りませんがNFSを使わないならいらない。

sendmail
超有名なSMTPデーモン。デフォルトでONになっている場合が多いけど、ちゃんと設定されていないので動かない場合も多い。ちゃんと設定してないならオフにしましょう。メールの送信だけしかしないサーバなら速攻OFF(送信は/etc/resolv.confさえ設定すればOK)。

rhnsd
RHL版の自動apt-getサービス。aptを使うと簡単にパッチをダウンロードして当てられたりできる。企業で使う場合は便利かも?

crond
定期的にプログラムを実行するためのスケジューラ。基本的にログのローテーションなどにも使われてるのでONのままがいい。

anacron
crondは電源が切れていると実行されないけど、anacronは電源が切れてても、電源を入れた後にその間のスケジュールを実行してくれるらしい。基本的にONでいいと思う。

winbind
WindowsNTのドメインに参加するためのものらしい。Sambaを使って、さらにWindows側をドメイン構成にしている場合はONにした方がいいのかな。

xfs
X Window用のフォントサーバーらしいです。私はX Windowを使わない人なのでOFFにしてます。

xinetd
スーパーサーバです。よく知らない人でもよく知ってる人でも基本的にはONですね。

cups
プリントスプーラー。redhat-config-printerとかで使うらしい。

ntpd
ネットワーク経由で時計を合わせるもの。自分がクライアントになるならntpdateコマンドをcronでスケジューリングした方が安全。

firstboot
初期システム設定ユーティリティ。これも最近のディストリビューションになって入ってきたものらしいがよくわかりません。ちなみにデフォルトでOFFになってたのでそのまま放置。

canna、FreeWnn
両方とも日本語入力用のサーバですね。ちなみに私はリモート接続が基本なので、サーバ側の日本語入力は使いません。そういう場合はOFF。

snmpd
MRTGとかRRDTOOLとかのサーバの状態を監視するのに便利なデーモン。メモリの使用状況とか詳しく取得できるものです。基本的に監視用なのでそういうのを使わない人はOFFでもいい。市販のサーバ管理ツールとかはつかってるかもしれないので注意。

snmptrapd
snmpdはそこから情報をもらうことに対し、snmp trapは異常があると情報を発信するという役目を持っています。なので、このプロセスはそれを受信するもの…でいいのかな。UDP162番をOPENするそうなので、使わない人はOFFにした方がいいです。使う人も、設定を絞ったり、特定のIPからのみ受信するように設定した方がいいでしょうね。

iptables(2001/12/15)


 ※iptablesはipchainsよりも厳しくて、大文字小文字を厳しく見るので注意。

書式



iptables -ADC チェイン ルール オプション
iptables -RI チェイン ルール番号 ルールオプション
iptables -D チェイン ルール番号 オプション
iptables -LFZ チェイン オプション
iptables -NX チェイン
iptables -P チェイン ターゲット オプション
iptables -E 既存のチェイン名 新規チェイン名

操作



-A(Append)新しいルールの追加
-D(Delete)ルール削除
-R(Replace)ルールの置き換え
-I(Insert)ルールの追加
-L(List)一覧表示
-F(Flush)ルールを全て削除
-Z(Zero)カウンターリセット
-N(New Chain)ユーザ定義チェインの作成
-X(Delete Chain)指定したチェインにルールが無ければ削除。
-P(Policy)ポリシー設定
-E(Rename Chain)チェイン名変更
-s(source)パケット送信元IP
-d(destination)パケット送信先IP
-i(In Interface)パケットが入ってくるインターフェース
-o(out nterface)パケットが出てくインターフェース
-p(Protocol)プロトコルtcp、udp、icmp
-f(fragment)フラグメントする
-j(jump)ターゲット指定

INPUT、OUTPUT、FORWARD


 インターフェース(eth0など)から入ってきたパケットはINPUTチェインを通過し、内部プロセスで処理されます。内部プロセスから出力されるとOUTPUTプロセスを通過してインターフェースから出て行きます。内部プロセスを通らずに出て行く(ルーティングなど)場合はFORWARDです。

記述例)
iptables -P INPUT DROP(とりあえず入力パケットを破棄)
iptables -P OUTPUT ACCEPT(とりあえず入力パケットを許可)

※DROPはipchainsの時で言うDENYです(たぶん)。ここではREJECT(破棄ではなく拒否)は使えないみたい。
※「とりあえず」というのは、後ほどのルールで例外を指定できるからです。

設定確認



全部見る)iptables -L -n -v
部分的に見る)iptables -L INPUT

-vは詳細表示です。
※何故かNATとかマスカレードが見れません(T_T

とりあえずルールを全部削除



iptables -F

※多分ポリシーの方は消えません。ipchainsの時はそうだった。

ルールの追加


たとえば、192.168.1.1から192.168.1.2のssh(tcp22番)を許可する場合

iptables -A INPUT -s 192.168.1.1 -d 192.168.1.2 -p tcp –dport 1025:65535 –sport 22 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -s 192.168.1.2 -p tcp –sport 1025:65535 –dport 22 -j ACCEPT

※1行目は上りのパケット、2行目はくだりのパケット。
※ちなみにTCP/IPは往復のセッションを貼らないと通信できない。一般的には往路(sshの場合は22番)のポートしか指定しないけど、復路のポート(1025〜65535から自動的に選定)の通信制御も必要になる。
 なお、iptablesは記述しなかった個所はanywhere(何でもOK)になる。「192.168.1.2のssh(tcp22番)を許可」という条件だけなら以下のような記述でもいける。

iptables -A INPUT -d 192.168.1.2 -p tcp –sport 22 -j ACCEPT
iptables -A OUTPUT -s 192.168.1.2 -p tcp –dport 22 -j ACCEPT

 ちなみにポートの指定(–dport、–sport)は必ず「-p プロトコル名」の後に指定する。

ロギング


 「-j LOG」を指定するとsyslog(/var/log/messages)に記録される。たとえばping等のICMPパケットを記録する場合。

iptables -A INPUT -p icmp -j LOG

なんでもかんでも記録する場合は以下でもいい。でも、ログに埋もれるので注意。

iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
iptables -A FORWARDPUT -j LOG

マスカレード


 NAT、マスカレードのような機能を使用する場合は以下の設定をする。
/etc/sysconfig/networkに「FORWARD_IPV4=yes」
※「echo 1>/proc/sys/net/ipv4/ip_forward」でも可。
※最近のRedHatは記述方法が変わってた気がするけど忘れた。
 eth0がWAN、eth1がLAN、eth2がDMZとかの時、eth1とeth2からインターネットへアクセスしたいときは、eth0から抜けられるようにしなければならない。そのときは以下のように書く。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

※「POSTROUTING」はパケットの出口の指定なので、インターフェースの指定は必ず「-o」になる(「-i」だとエラーになる)。

IP転送


 グローバルIP「123.123.123.123」に来たパケットを内部IP「192.168.1.1」にNAT変換する場合は以下のとおり。
※外部I/Fをeth0、内部I/Fをeth1とした場合。

iptables -t nat -A PREROUTING -i eth0 -s 123.123.123.123 -d 192.168.1.1 -j MASQUERADE

※なお、このときに外部から「123.123.123.123」というIPが見えなければならない。eth0のIPと異なる場合は、eth0に対してエイリアスを設定しなければならない。
※通常、eth0のエイリアスはeth0:0というI/Fになり、そこにIPが設定される。

注意


 iptablesの設定はOSを再起動すると消えてしまう。スクリプトを組むなりして、再起動後も有効になるようにしなければ意味が無い。
※最近のディストリビューションはこの辺の仕組みを組み込まれているので、マニュアルを読むといいかも。

TraceRoute(2002/02/22)


 クライアントからサーバまでの経路を調べる為のtraceroute(Windowsはtracert)というツールは以下の2つのパケットを利用しているらしい。
UNIX版
UDP(1025版以降?)

Windows版
ICMPエコーリクエスト(pingと同じ)。

ProFTPdの制限とか(2002/10/08)


帯域制限
RateReadBPS

接続制限
MaxClientsPerHost

繋がるけど遅い


 DNSの問題(ローカルIPの名前解決が出来ないとか)。
 113ポートが塞がれてる(サーバ→クライアント方向にTCP113:authへのセッションがある。iptablesなどでDROP設定だと遅い)。

繋がるけどダウンロードできない。


 サーバ→クライアントへの20番ポートが閉じてる。TCP/UDP両方必要?

nmapのOS推測(2002/10/18)


 ポートスキャンで有名なnmapにはOS推測という機能がついてるのは最近よく知られてると思います(nmap -O )。
 何故OSを推測できるかというのは、かなり複雑なんですが(興味がある人はinsecure.org読んでください)、その中で重要なのがTCPヘッダのウインドウサイズです。
 ってところまでは知ってたんですけど、今一ピンと来なかったけど最近よくわかった。
 TCP/IPは通信のセッションを開始する時に3wayハンドシェイクをします。これは、セッションを開始する為の要求(syn)と応答(ack)が以下のとおり3回の通信で行われてるからです。

  1. クライアント→syn(クライアントの要求)→サーバ

  2. クライアント←ack+syn(サーバの応答+要求)←サーバ

  3. クライアント→ack(クライアントの応答)→サーバ


 で、本題のウインドウサイズだけど、「2」のサーバからの応答(ack)の際にサーバのウインドウサイズがクライアントに対して送信されます。ウインドウサイズとは、サーバが受け取れるパケットのサイズです。ここでウインドウサイズを通知しないとクライアントは何バイトのパケットを送っていいのかわからないので必須のデータです。
 何故このウインドウサイズでOSがわかるかと言うと、ウインドウサイズはOSの種類によって異なるからです。
 これはかなり重要なことで、Linuxのカーネルのバージョンがある程度上がるだけでも変わるし、WindowsもNT系/9x系とでは違います。
 だから、nmapでスキャンをステルススキャン(-sS)して、IDSで検知されるような下手な小細工をするより、nmapのスキャン前のpingを殺して(-P0)、ポート番号を一箇所(たとえばHTTPなら-p 80)などとすると、ほとんど検知されずに対象サーバのOSが検知できるかもしれないかもね。

nmap -P0 xxx.xxx.xxx.xxx -p 80

 ただし、他人のサーバにスキャンする時は事前に許可を取りましょう。

ImageMagick/PerlMagickのインストール


 perlで画像処理を行う場合に便利なPerlMagickだが、FedoraCoreにインストールする場合ソースからだとかなり大変なので、yumでインストールしてみる。

# yum install ImageMagick
# yum install ImageMagick-devel
# yum install ImageMagick-perl

これだけ。

2008年05月04日福井散策

blog-2008-05-05-map 今回は福井県です。正直、福井県って聞いたとたん「どこ?」って感じでした。
場所は左の地図の通り、大阪や琵琶湖の北。原発で有名っぽい場所ですねwちなみに都心からは、3日21時出発し中央道経由で4日の早朝に到着でした。帰りも、4日の19時くらいから5日4時くらいまでかかってたと思います。

blog-2008-05-05-P1010579blog-2008-05-05-P1010583blog-2008-05-05-P1010588blog-2008-05-05-P1010592
まず、向かった先は海岸沿いの「東尋坊(とうじんぼう)」。岩肌むき出しの海岸で、歩き回るのにかなりアドベンチャー気分になれますw。
blog-2008-05-05-P1010698blog-2008-05-05-P1010689
東尋坊からは、車で少し移動して、「えちぜん鉄道」三国芦原線の「三国港駅(みくにみなと)」(写真左)から、「田原町駅(たわらまち)」(写真右)へ。かなりローカルな感じですが、ディーゼル車では無く「電車」なんですよね。
ところで、この田原町駅は見ての通りすごく複雑な構造の木造なんですよね。スゴイ。
blog-2008-05-05-P1010684田原町駅からは路面電車の福井鉄道に乗車。福井駅とかで昼食を食べましたが、ここはまぁ綺麗な街ですが、綺麗すぎて何もないって感じ。

blog-2008-05-05-P1010613福井駅からさらに南下。西山公園駅。レッサーパンダで有名になった西山動物園のあるところです。ちょうどお祭りの真っ最中だったらしい?

まずは動物園から。
blog-2008-05-05-P1010631blog-2008-05-05-P1010638
レッサーパンダ。なんだか暑かったせいかやる気無しモードです。ダラーンって感じ。
blog-2008-05-05-P1010641鶴。ふつー。
blog-2008-05-05-P1010626クジャク。涼しそうです。
blog-2008-05-05-P1010645猿。超元気でした。
西山動物園自体はすごく小さいです。動物の種類もこのくらいです。まぁレッサーパンダはかわいいですけどね。
blog-2008-05-05-P1010652blog-2008-05-05-P1010649blog-2008-05-05-P1010625
西山公園は人だかりで、舞台で踊っていたりしてる人とか居ました。公園がちょうど円形状なんですね。そしてその舞台を取り巻くようにツバキの花が満開です。
blog-2008-05-05-P1010695 今回はだいたいこんな感じで、帰りに三国港駅に戻り、すぐ近くの温泉場「三国温泉ゆあぽーと」に寄っていきました。ここは露天風呂は無いんだね。海岸近くなので、海で遊べるのはいいかも。

blog-2008-05-05-P1010573関係無いですが、今回はiPod用のスピーカを持って行きました。長距離なので電池もたないかなーと思ってたけど、内蔵電源+スピーカ用電池4本だけ大丈夫でした。なんか、青く光って綺麗だし。

ゴールデンウィーク

 さぁ、ゴールデンウィークです。
今日は仕事だったので、私に取っては実質明日から。
でも今晩から福井に行ってきます。帰ってくるのは4日の深夜(5日早朝?)かな。
帰ってきたらまたレポートしますよん。

プログラミング本

DirectX




 Direct3D/Input/Soundで痒い所に手が届く…そんな本。


 DirectXの基礎学習にはお勧め。エフェクト系がちょっと詳しい。Ver2なので初版を持ってる人は買う必要が無いかも。


 これも基礎学習系。ただし後半はシェーダ系中心なので、初心者には取っつきづらいかも?


 DXUT(Feb 2007版)がとても詳しい。


 とても微妙な本。広く浅くって感じ。数少ないDirectPlayを扱ってるけど、結局浅いので…。

通信




winsockの基本的なリファレンスとして役立ちます。


持ってないけど、数少ないオンラインゲームの通信ネタ本。


持ってないけど、数少ないオンラインゲームの通信ネタ本。

大人には聞こえない音。

http://www.nicovideo.jp/watch/nm3093703


 人が成長する毎に聞こえる/聞こえなくなる周波数があるそうです。
アメリカでモスキートという製品が登場し、若者がたむろってるところに置いて見事撃退?に成功しているらしいですね。
 で、この動画は年齢毎に聞こえる/聞こえない音を出してそれを判別できます。
微妙に途中聞こえなかったり、何故か10代の音が聞こえたりとかもありますが。
まぁ、おもしろいネタなので参考まで。

地上波デジタルの恩恵

blog-2008-04-21-p_hikaku現行の地上波がアナログがデジタルに変わる話は前から出てますが、どうもその恩恵がわかりづらいですよね。
 個人的には画像が高精細になるところがメリットかなと思うので、比較画像を作ってみた。

 添付画像は、通常のブラウン管のテレビと、ハイビジョン対応プロジェクタの比較なのだが、違いは見ての通りだと思います。ブラウン管テレビの方はワイドじゃないので幅が狭くなっちゃったけど、「海賊」の文字とか「すぐ」の「ぐの濁点」あたりの出方は全然違います。
 この違いは、ハイビジョンの時は特に顕著なんですが、一画面の情報量が既存のアナログテレビが30万ピクセル(点が30万個)に対し、デジタルハイビジョンが200万ピクセルと、10倍近くの差があるから。
 まぁ、情報量が増えたおかげで、今までのDVD(4〜8GByte)で録画すると、画質が劣化してしまいます。ブルーレイ(7〜50GByte)で録画した方が、その画質をよりそのままで録画できるようになるので、こんにちはブルーレイが必要に迫られています。

近場の桜

blog-2008-04-20-map 桜の季節も過ぎて、ゴールデンウィークまで間近な今日この頃ですが、今回は旅行先の桜では無く、今年は近場でも花見をしたり、その下見とかでいろいろ見回ったので、備忘録的に残してみようと思います。説明は地図の相模川沿いで、赤枠を上から順に説明していきます

blog-2008-04-20-P1010140相模原芝さくらまつりって感じで最近整備されたところ。季節的にいいタイミングなら桜と芝桜が両方楽しめます。芝桜の方が早咲きで長期間楽しめますので、桜が散った後の青々とした葉桜と一緒にも楽しめます。

blog-2008-04-20-P1010137blog-2008-04-20-P1010138ちなみに、近場の相模川には関があり、ちょっとした滝のような感じになっているので、川の眺めもなかなかですね。岩場とかには鳥も羽を休めていて、ちょっとした自然を楽しめます。

blog-2008-04-20-P1010137-sっていうか、朝の通勤時に写真を撮ったんですが、こいつら岩の上で寝ていやがる!!

blog-2008-04-20-P1010141これも通勤中(しかも車の中から撮影)の写真です。1号相模三川緑地(地図)って言うらしいですね。小さな川の脇がちょっとした広場になっています。

blog-2008-04-20-P1010226ここは本厚木駅の近く。運動公園らしいのですが、広場に桜がたくさん咲いています。駐車場も広いし、写真では人がいっぱいですが、河原の方も広いので、桜のすぐ下とか贅沢を言わなければ、場所取りで困ることは無いですね。

TeraStation



これはすごいな…
うちは、サーバのバックアップ用とか、親のパソコンとのデータ共有とかの目的でファイルサーバが欲しかったんだけど、Linuxでアクセスできて、LAN対応で、ミラーリングでデータ保護をしてくれるやつ..となると10万円してた。
でも、これはAmazonで5万円弱です。
 気になった機能は以下のような感じ。

  • 1TByteモデルでミラーを組んだ場合は500GByteに半減する。

  • ディスクを4つ搭載してるので、RAID1+0(ミラー&ストライピング)ができる(ミラーだけだと遅くなる、ストライピングでそれをまかなえる)。

  • FTPモードがある(つまりLinuxサーバのバックアップに使える)。

  • Windowsからは普通にファイル共有。

  • なんかプリントサーバにもなれる。


うむむ…

2008年04月06日小湊で花見

blog-2008-04-13-P1010286 ちょっとアップが遅くなりましたが、今春も小湊鐵道で花見をしてきました。花見っていうか撮影だけだけど。

blog-2008-04-13-map 場所は千葉県です。小湊鐵道とは千葉の内房から房総半島を横断しているローカル線です。途中、上総中野駅からはいすみ鉄道になります。いすみ鉄道は各所のニュースで存続があと二年くらいかどうか?と言われてますねT_T

さて、今回は始発の五井駅から出発し、本数が少ないので行ったり来たりしながら駅とその周辺を撮影してきました。写真は200枚くらい撮ったんだけど、今回はその中で特によかったものを厳選してみました。
以下、実際に行った順番では無く、上の地図の順番で紹介してみたいと思います。
blog-2008-04-13-P1010314まずは、高滝駅。今回紹介する駅の中ではさほど菜の花とか咲いてませんが、近くに高滝ダムがあるので、観光的にはよいところですね。

blog-2008-04-13-P1010365blog-2008-04-13-P1010390次は飯給(いたぶ)駅。ここの駅はごらんの通り花が満開で、さらに自然を満喫できるこの風景が最高ですね。周りの民家も少なく、駅舎も小さな木造です。

blog-2008-04-13-P1010259月崎駅。ここも風景がとてもよい駅です。駅の前に小さな売店があるので、待ち時間も困らないでしょう^^;。

blog-2008-04-13-P1010413上総大久保駅。ちょうど路線がカーブに差し掛かったところにある駅です。ここの花もすごいですね。駅の近くは岩山があるんですが、すこし先のほうは田んぼで開けていて、地形的なコントラストも楽しめます。

この辺までは列車で移動しながらでしたが、以降は車で移動しながらの撮影です。
blog-2008-04-13-P1010427 黄色い車両のいすみ鉄道です。場所は途中の路上からの撮影ですね。

blog-2008-04-13-P1010447これは太平洋側へ抜けて撮影しました。サーフィンとかしてる人がたくさんいました。

blog-2008-04-13-P1010273blog-2008-04-13-P1010311おまけですw途中見かけた猫たち。

最後はこの辺では数少ない温泉地の養老渓谷へ。日帰りで温泉に入れるごりやくの湯(http://www.goriyakunoyu.jp/furo.html)に行ってきました。できたばっかりの温泉で施設もきれいだし、食事もおいしかったですよ。

OE-Cake

 Windowsのペイントとかで、線を一本書いたときに、その線が物体だったら?たとえば書いたとたんに重力で地面に落ちたり、それが水のなかで浮力で浮いたり、火に燃えたり…なんてことができるツールです。
 なんていうか…とにかくおもしろいです。
公式サイト
http://www.octaveengine.com/casual/trial.html
紹介サイト
http://www.4gamer.net/games/032/G003263/20080328036/
ボタンの機能はだいたい以下の通り。
Delete…消す
Water…水ですバシャーン
Wall…壁です。動きません。水の流れを作ったりします。火にも燃えません。
Rigid…なんていうか、物体です。器型にすれば水に浮きますし。Rigid Axisにつなげればギヤにもなります。
Spring…バネですね。壁(Wall)からぶら下げて、Rigidをつなげると、プラプラ揺れます。
Elastic…Springににてるね。
Brittle…SpringやElasticににてるけど、少し固め。
RigidAxis…「車軸」みたいな感じかな。丸いRigidAxisを作って、それにRigidの羽を付けると、水車とか作れます。
Mochi…餅。バネとかにもにてますが粘着力があります。結構ベッタリひっつきます。
Fuel、Fire…燃えますw水に付くと水はGasになります。
Heater、Cooler…水がHeaterに接触するとGasになり、GasがCoolerに接触すると水に戻ります。
Inflow、Outflow…Inflowは水が出ます。Outflowは水やその他の物質を吸収します。すごい水量&吸引力なので、Wallとかで導いてあげましょう。
Jet…ジェット!!!水に入るとはねたり、Rigidに付けるとすっ飛んでいったりします。RigidAxisにつなげると水車の推進力になったりとか。
まぁ、なんていうかとにかくおもしろいですよw。

DNSを切り替えました

 Bフレッツの固定IPをもらえたので、DNSを切り替えました。
早いところはすぐにアクセスできるけど、遅いところは1日程度しないとアクセスできないかな。
 ある程度してからじゃないとちゃんと設定ができているか確認できないのがもどかしい。