Macintosh Developer Online (MDOnline)


2001年6月11日発行号 - X ServerでのDNS



MDONLINE.JPが動き出しました。が、MDOnlineのトップアドレスになります。もちろん、従来のURLも大丈夫です。というか、実は、従来のサーバは動かしたままにしてあり、上記のアドレスで見えるページのフレームの中身はずっと前から使っているcserver.locus.co.jpです。だから、読者様向けのページは、昔のアドレスのままになります。とりあえずは、入り口だけ新しくしましたという感じですね。ちょっと田舎の喫茶店とか美容院とかで、家は古くなった日本家屋なのに、道路に面した壁面は立派な煉瓦造りだったりするようなのありますよね? そんな気分です(なんじゃそりゃ)。cserverは年内を目処にたたんで、新しいところに移すというつもりです。実は、WebObjects 5で作るんだと意気込んでいましたが、使っているサーバはRedHat Linuxなんです。で、WO5にRedHatは対応機種になると思っていたのですが、残念ながら入らなかったので、どうしようか思案中です。動かなくはないとは言うものの、実験しながらとなるかもしれません。それに、カード決済部分が泣き所かな。Perlと独自コマンドなんです。今現在は、全体的にはPHPとPerlですが、記事を参照するPHPの部分はそのまま生かし、アカウント管理をしているPerlの部分をWO5にするかなどと考えています。お金があれば開発をお願いするところなのですが、予算は全然ないので、やっぱり自分でやらないといけません。その分、ノウハウをためて記事にして稼ぐといういつものパターンを踏まないといけません。
JPドメインはたぶん、先月から動き始めていると思いますが、申請の時にはあれほど話題になったのに、稼働し始めたときには話題にもなりませんでしたね。プロバイダの方もさめているというか、「明日から稼働できますから、どうぞお使いください!」みたいには言ってくれません。それもそのはず、申請にはお金が動くけど、稼働はお金が動きません。まあ、そこまで言うこともないとは思うのですが、プロバイダさんとしてはお金だけ払って稼働しないドメインがいちばんおいしいと思ってはいませんでしょうか。
(新居雅行 msyk@mdonline.jp


Browsing Mac OS X》Mac OS X ServerをDNSサーバにする

Mac OS X Server 10.0が発売された。MDOnlineでは基本的なことなどの詳細な記事はまだお届けしてはいないが、実際にテスト運用を開始し、その内容をチェックし始めている。Mac OS X Serverに関連することも、Browsing Mac OS Xのコーナーでお届けしようと思う。とは言いながら、いきなりコアな話になってしまうのではあるが、ある意味ではすでにサーバを運用している人にとっては興味深い話ではないだろうか。

Mac OS X Server 10.0(以下バージョンは省略)は、文字通りサーバのOSであり、さまざまなサーバ機能が利用できる。ファイルサーバ、プリントサーバはもちろん、Webサーバ、メールサーバなどの機能があり、一般的なサーバ機能はほとんど網羅できると言えるかもしれない。また、そうした機能を、管理ツールを用いて管理ができる。管理ツールは、サービスごとにアイコンが並び、メニューから処理を選んで、設定はウインドウで行うというものだ。つまり、普通のアプリケーションのように使えるのである。管理ツールはサーバマシン上はもちろん、別のMac OS Xのマシンからもリモートで管理ができる。多くの一般的な設定は管理ツールでできるが、さらにssh(Secure Shell)でログインしての管理もできるわけだ。いわば、UNIXサーバの機能をMacライクに使えるというのがいちばんの大きな特徴だろう。
ネットワーク機能としては、DNSサーバの機能も含まれていることになっている。DNSとは、たとえばmdonline.jpというドメイン名から、実際にサービスを提供しているサーバのIPアドレスを取り出したり、あるいは逆の処理を行うものだ。Webやメールを始め、インターネットの利用には欠かせないものである。プロバイダに接続する場合、プロバイダが接続ユーザに対してDNSサーバを提供しているので、そのIPアドレスを指定するだけでよい。一方、常時接続をしているようなネットワークサイトでは、自分でDNSサーバを運用しなければならないこともある。
DNSサーバを運用するという場合、自分自身のドメインを機能させるために、サーバを立てるというのがまず1つの大きな理由だ。その場合のやり方は一概にはこうだとは言えないが、基本的には上位のドメインの方式に従って、いろいろな設定を行う必要がある。サーバを立てるだけではなく、ドメインを管理しているデータベースの情報を書き換えるなど、作業はいろいろ大変だ。これで1冊の本が書けるくらいでもある。
一方、自分でドメインは管理しないけども、LAN内の各マシンから利用できるDNSサーバが必要だという場合もあるだろう。たとえば、ADSLなどの常時接続回線を引き、8IP(実際には6つになる)のうち1つのIPアドレスでIPマスカレードを行って、社内の30台のパソコンからインターネットアクセスをしたいというような場合だ。そのとき、特に自社内でサーバは立てないとか、あるいは自社ドメインの管理を完全にプロバイダにまかせてしまうこともある。それでも、接続プロバイダでDNSを用意してくれないのなら、ドメインの管理は行わないもののLAN内のクライアントからの名前解決要求だけを行うDNSを立てる必要も出てくる。もっともその場合は原理的にはどこかのプロバイダのDNSサーバをちゃっかりお借りすることも不可能ではないのだが、使われた側は処理データが増えたりとたまったものではない。最近では、そうしたことができないように、IPアクセス範囲を制限しているDNSサーバもあるだろう。一方で、いろいろな制約はあるがDynamic DNSとして、ドメイン名とIPアドレスの変換処理をサービスしてくれるサービスもある。いずれにしても、DNSを立てるとは一言で言っても、実際の状況はサイトによって千差万別だと言えるだろう。

□Mac OS X Serverに含まれるDNSサーバ
さて、Mac OS X Serverは、DNSサーバの代名詞とも言えるBINDが最初からインストールされている。Ver.8.2.3-RELが組み込まれているソフトウエアのバージョン番号だ。Ver.8系列では、8.2.4がリリースされているが、細かいバグ修正が中心で、大きな変化はない。また、Ver.9.1.2もリリースされているが、Ver.9系列は署名やIPv6対応などとなっている。BINDのサイトではいちおう、9.1.2の利用を勧めているが、最低限8.2.3を使うようにと記載されている。BINDはいろいろなセキュリティホールが出てはそれをつぶしていったが、8.2.3は知られているセキュリティホールはない安全なバージョンだと言えるようで、その意味では普通に使う分には基本的に大丈夫なバージョンとして、8.2.3が入っていると思われる。
Mac OS X Serverは、管理ツールがあって…という話を最初にしたが、残念ながらDNSに関してはこの機能はあてはまらない。もちろん、管理ツールにDNS関連の機能は含まれているのだが、事実上そこを使っての管理はできない。まず、各種設定は、自分で設定ファイルを作らないといけないので、その点は他のUNIXサーバと同じである。また、サービスの起動や終了は、管理ツールにメニューはあるものの、実際にはそれは稼働しないようなのである。特に起動時に自動スタートができない。
では、どうすればいいのだろうか。設定ファイルは、エディタを使って自分で作り込むしかない。詳細は関連書籍などを参照してもらうとして、次のポイントを知っておけばいいだろう。まず、設定ファイルのいちばん基本になるnamed.confファイルは、/etcディレクトリに作る。このファイルはもともと作られているので、修正をすることになる。ルートになってviあるいはpicoといったエディタで作業をすることになるだろう。また、named.conf内で指定はあるが、実際のゾーンに関するファイルを、/var/namedディレクトリに保存する。このディレクトリも作られているので、後はゾーン設定のファイルを作ればよい。最初からあるdb.exampleなどの設定ファイルを参考にするといいだろう。いずれにしても、BINDの既定値通りだとも言えるだろう。
こうして設定ファイルを作ってしまえば、namedとコマンドを入れたり、ndc startなどとコマンドを入れれば、DNSは起動する。管理ツールから見える情報はきちんとゾーンを認識していないような気もするが、とりあえずはDNSとしては動くようだ。だけど、管理ツールで起動時にサービスを開始するような指定はなく、自動的には起動されない。そこで、起動時にDNSを起動するスクリプトはないものかと思ったら、やっぱりあった(大津さんありがとう!)。「Installing BIND on Mac OS X 10.0.1」というサイトに、DNSサーバを起動するスクリプトが用意されている。このサイトの「Making BIND launch at startup」というところに用意されている。ダウンロードすると、DNSというフォルダができるので、それを、/System/Library/StartupItemsというフォルダに入れておけばよい。そして、/etc/hostconfigファイルに、「DOMAINNAMESERVER=-YES-」という行を追加しておく。これで起動時にDNSサーバが立ち上がる。DNSサーバを立ち上がらないようにしたいのであれば、/etc/hostconfigファイルの追加した部分を「DOMAINNAMESERVER=-NO-」などとすればよく、DNSフォルダをどけるようなことはしなくてもかまわない。

◇Installing BIND on Mac OS X 10.0.1
 http://www.qwerta.com/macosx-bind-howto.html

こうして、DNSの自動スタートは何とかなった。Mac OS X Serverにはいろいろな機能はあるが、絶対に必要な機能はとりあえずは何とかうまく動いている。Mac OS X Serverは前のバージョンの1.2までの印象が世間には広まっているが、そのバージョンから見ると、大きく違っている。やはりVer.1.2までは、NeXT色が強かったが、Mac OS X Server 10.0は、むしろMac色が強いと言えそうだ。一方で、UNIX的な使い方ができると言えば合わせたメリットのようにも見えるが、言い換えればそれらの設定をうまく折り合いをつけないといけないという場面も出てきそうだ。たとえば、Apacheの設定ファイルはやはりあるのだが、闇雲に設定ファイルをいじるのではなく、基本的にはまずは管理ツールを使って設定を行う。それ以上のことがしたいときに設定ファイルを触るというような手順になると考えられる。そうしたノウハウをこれから積み上げることになるだろう。
MDOnlineでは、Mac OS Xだけでなく、Mac OS X Serverについても、もちろんいろいろと情報をお伝えしていきたい。

カテゴリ:ネットワーク管理, ネットワーク, Browsing Mac OS X


USBデバイスをアプリケーションから利用するためのHID Managerのサンプル

サンプルコードとして登録されている「HID Manager Basics」は、HID(Human Interface Device)ManagaerのAPIをひととおり使っているサンプルプログラムだ。HID Managerは、ジョイスティックやUSBスピーカ、あるいはApple製ではないディスプレイに対して、これらのデバイスにアプリケーションからアクセスするために用意されたものである。つまり、ジョイスティックを使ったゲームを作るような場合、ジョイスティックの状態を取得するのに使うAPIであると言えるが、基本的には汎用的な機能を持っている。サンプルアプリケーションはProject Builderで利用できるC言語のコードとなっており、コンパイルして実行すると、単に1つだけメニューがある。それを選択すると標準出力に、デバイスから得た情報をずらりと表示するだけだ。Project Builderで実行すれば、「実行」のページに表示されるので、それが手軽な方法だろう。なお、マウスやキーボードの情報は表示されない。Sound Sticksの情報は表示された。HID Managerに関する情報は、以下の「Working With HID Class Device Interfaces」という文書を参照すればいいだろう。

◇HID Manager Basics 1.0
 http://developer.apple.com/samplecode/Sample_Code/Devices_and_Hardware/HID_Manager/HID_Manager_Basics.htm

◇Working With HID Class Device Interfaces
 http://gemma.apple.com/techpubs/macosx/Kernel/HID/index.html

カテゴリ:アップルからの開発資料, 周辺機器


Network Services Locationを使うAPIのサンプルプログラム

サンプルコードに公開されている「NSLMiniBrowser」は、NSL(Network Services Location)を使ったサーバ一覧などを取得するためのプロトコルを利用できるAPIの使い方を示したものだ。おそらくは、階層構造のリストにサーバ一覧が表示されるものと思われるが、プログラム自体は筆者のシステムでは稼働しなかった(理由は後述)。AppleShareファイルサーバなどの一覧をNSLでブラウズして、そして接続するということはシステムでサポートされた機能となっている。Mac OS 9ではネットワークブラウザ、Mac OS XではFinderにその機能が統合されている。その意味ではMac OSではNSLを積極的に使っているため、ネットワーク関連のアプリケーションを作成するときなどには使う機会もあるかもしれない。サンプルプログラムでは、DataBrowserのコントロールを使っており、そのサンプルにもなるだろう。Project BuilderおよびCodeWarriorのプロジェクトが添付されている。CarbonLib 1.3以降に対応する。以下は、サンプルプログラムのアドレスと、NSL Managerのアドレスだ。

◇NSLMiniBrowser 1.0
 http://developer.apple.com/samplecode/Sample_Code/Networking/NSLMiniBrowser.htm

◇Network Services Location Manager
 http://devworld.apple.com/techpubs/macosx/Networking/NSL/index.html

サンプルプログラムでは、Core Foundationで提供されているCFStringで文字列を管理している。CFStringから文字列を取り出すために、文字列が保存されているアドレスを取得するAPIを利用するが、その戻り値が0(NULL)の場合があり、その場合は代替の手段で文字列を独自にメモリに展開して利用する必要がある。このことは、CFStringの文書にはっきりと記載されているが、MSLMiniBrowserのプログラムでは戻り値が0の場合の処置をしていない。そのため、ポインタ値として0を引き渡して文字列比較の関数を呼び出しているため、そこでアドレスエラーが出てアプリケーションは落ちてしまう。もしかすると、英語システムではそうしたNULLを戻したときの処理は記述しないでもかまわないのかもしれないが、少なくとも、筆者のシステム(日本語に設定)では正しく稼働はしなかった。アプリケーションは起動するが、リストの項目を展開しようとするとアプリケーションが落ちてしまう。

カテゴリ:アップルからの開発資料, ネットワーク


Acrobat 5.0の新機能を中心にした無料のセミナーが開催

アドビシステムズは、電子文書システムのAcrobatに関するセミナー「企業向けAdobe Acrobat 5.0 ソリューションセミナー」を開催する。2001年6月20日(水)は大阪梅田のステラホール、2001年6月26日(火)27日(水)は東京六本木のラフォーレミュージアム六本木で行われる。いずれも、10:00および14:00から開催され、合計2時間のセミナーとなっている。無料で受講できるが、申し込み制となっている。内容は、「電子の紙Adobe PDFのメリットとAcrobat 5.0日本語版の概要」「電子フォーム/XMLにより、申請業務の効率化」「ドキュメントを安全・確実・低コストに作成し送信 ICカー
ドを用いた電子署名ソリューション(三菱電機とアドビシステムズ共同開発)」「ライセンスプログラムご紹介」としたタイトルとなっている。Acrobat 5.0の新しい機能を中心にしたソリューションを示すセミナーになるようだ。

関連リンク:企業向けAdobe Acrobat 5.0 ソリューションセミナー
カテゴリ:文書作成アプリケーション, イベント