Navigation of sieg

Index
Information
サイトマップ


最近のエントリー

自宅サーバを公開
WebDAV
ダイナミックDNS


Link

ActivePerl
Perlドキュメント(和訳)
Perlデータ構造
Apache JP
Apache 中核機能

ipodnanou_180-150.gif



関連用語 (e-Words)



Opera
rss1.0
rss2.0
atom0.3
BLOGinSPACE

ほっとけない 世界のまずしさ

Opera 9 - Your Web, Your Choice

クリエイティブ・コモンズ・ライセンス
クリエイティブ・コモンズ・ライセンス



2005年06月25日

自宅サーバを公開
ネットワーク

ADSLモデムには「ルータタイプ」と「ブリッジタイプ」がある
これらは、ISDNルータとTA(ターミナルアダプタ)の関係と似た関係にある
ISDNによるインターネット接続では、TCP/IPをPPP(Point to Point Protocol)というプロトコルでくるんで送受信する
ISDNルータはPPPを処理する機能を持つので、ISDNポートにはTCP/IPをくるんだPPPが、LANポートにはPPP部分を取り除いたTCP/IPが流れる
これに対してTAは、PPPを処理しないのでISDNポート、シリアルポート(あるいはUSBポート)のどちらにもPPPが流れる
PPPを処理してTCP/IPに変換するのはPCの役目だ

「Yahoo!BB」を除くADSLサービスでは、PPPoE(PPPoverEthe,net)やPPPoA(PPP over ATM)というプロトコルでTCP/IPを運ぶ
これらは、その名のとおりイーサネットプロトコルやATMでPPPをカプセル化するものだ
PPP部分にはさらにTCP/IPがカプセル化されているという、およそ美しくないプロトコルなのだが、イーサネットプロトコルやATMでPPPの持つユーザー認証機能を利用するために考案された


■ルータタイプのモデム
ルータタイプのADSLモデムは、PPPoEやPPPoAを処理する機能を持ち、LANポートにはTCP/IPが流れる
ISDNルータと同じように、IPマスカレード機能により複数のPCをインターネットに同時接続させることも可能だ
Webブラウジングなど、インターネット上のサーバに接続する場合は、PCの設定が簡単なルータタイプのモデムが手軽でよいのだが、IPマスカレード機能を有効にしたままでサーバを公開するには、ポートフォワードという仕組みを利用しなければならない


■ブリッジタイプのモデム
ブリッジタイプのADSLモデムは、LANポートにPPPoEが流れる
そのため、LinuxマシンでPPPoEを扱えるようにする必要がある
ただし、ADSL回線業者とプロバイダの両方を1社で行う「Yahoo!BB」は、ユーザー認証の必要がないため、PPPoEではなくTCP/IPが直接流れる
「Yahoo!BB」を利用するときは、モデムとPCをイーサネットでつなぎ、TCP/IPの設定を行うだけで利用可能だ
IPアドレスなどのネットワーク情報は、DHCPによって取得する
PPPoEで接続する場合は、LinuxマシンにPPPoE接続ソフトウェアをインストールする
IPアドレスなどの情報はPPPの機能で取得するので、DHCPクライアントを動かす必要はない

今回は、Roaring Penguin'sSoftwareInc.のRP-PPPOEを紹介しよう
なお、モデムとLinuxマシンの間にPPPoE対応ブロードバンドル一夕をつなぎ、PPPoEの面倒をルータにみさせることも可能だが、サーバを公開するにはルータタイプのモデムを使うときと同様にポートフォワードの設定が必須となる

#--------------------------
# PPPoE接続ツールRP-PPPoE
#--------------------------

RP-PPPoEを利用するためには、バージョン2.3.7以上のPPPデーモン(pppd)がインストールされている必要がある
カーネル2.4を採用しているディストリビューションではPPPパッケージ(ppp)も2.4以上になっているが、
古い場合はPPPパッケージのサイト(http://www.samba.org/ppp/)などから最新版を人手しよう
また、モデムとの接続に使うイーサネットインターフェイスにはIPアドレスを設定しないこと


■ファイルの入手とインストール
同社のWebページ(http://www.roaringpenguin.com/pppoe/)には、Red Hat Linux6.2用のバイナリRPM、そのほかのRPM系ディストリビューション向けのソースRPMファイルが用意されている
また、ソースのtar.gzファイルもあるので、非RPM系ディストリビューションのユーザーはこれを使うとよいだろう
ソースRPMを使う場合は、ファイル取得後、rootユーザーになって次のようにする


# rpm --rebuild rp-pppoe-3.3-1.src.rpm


すると、コンパイル作業が行われ、/usr/src/redhat/RPMS/i386/に、
rp-pppoe-3.3-1.i386.rpm
rp-pppoe-gui-3.3-l.i386.rpm
というファイルができるので、これらをインストールしよう
ソースのtar.gzからインストールする手順は次のようになる


# tar xvfz rp-pppoe-3.3.tar.gz
# cd rp-pppoe-3.3
# ./go


コンパイル、インストールが自動的に行われ、続いて接続設定を行うadsl-setupコマンドが起動される
RPMからインストールした場合、adsl-setupコマンドは自動実行されないので、rootユーザーになって/usr/sbin/adsl-setupを実行する


■adsl-setupによるPPPoEの設定
adsl-setupは対話的にRP-PPPoEの接続設定を行うコマンドだ
プロバイダから提供されている接続情報を用意して、それに従って作業を進めよう

 ・USER NAME
 プロバイダに指定されたPPPoE接続ユーザー名
 例:edams@sieg.xeong.com

 ・lNTERFACE
 PPPoE接続に利用するイーサネットインターフェイス
 例:eth0

続いて、オンデマンド接続の設定
 「Enter the demand value(defaultno):」に対し、データが流れなくなってから回線を切断するまでの時間を秒単位で人力
 デフォルトは“no”で、これは回線をつなぎっぱなしにする設定

 ・DNS
 DNSサーバのIPアドレス設定

プロバイダに指定されたDNSサーバがあれば、そのIPアドレスをプライマリ、セカンダリの順で設定する
IPアドレスの代わりに“server”と人力すると、接続時にプロバイダからDNSサーバのIPアドレスを取得する

 ・PASSWORD
 プロバイダに指定されたPPPoE接続パスワード

確認のために2回人力する。なお、画面にエコーバックされないので慎重に

 ・FIREWALLING
 ipchainsによるパケットフィルタの簡易設定
 今回は“O"を入力し、簡易設定を利用しない

設定すべき項目は以上だ。指定した内容が表示されるので正しければ"y”を人力して設定が終了する
adsl-setupによって設定した内容は、/etc/ppp/pppoe.confに書き込まれる
また、ユーザー名とパスワードは、同じディレクトリにあるchap-secretsとpap-secretsに書かれる


■PPPoEでの接続
設定が済んだら/usr/sbin/adsl_startを実行して接続しよう
/var/log/messagesにログが出力されるので、うまくいかないときは参考にしてほしい
Linuxの起動とともに接続したいなら、rootユーザーになって次のようにする

# chkconfig --level 35 adslon

--levelに続けてランレベルを指定する
この例では、Linuxがランレベル3と5で起動する場合にPPPoE接続をする
また、Linuxをシャットダウンする際には接続を切ってくれる

更に詳しい情報 : RP-PPPoEのGUI編


2005年06月24日

WebDAV
ネットワーク

#-----------------------
# WebDAVってなに?
#-----------------------

ブロードバンド環境の普及で、誰もが比較的容易に自宅サーバを持てるようになった
これを、会社や学校など出先からいつでもアクセスできる便利な"ファイルサーバ"にできないか?と期待するのは私だけではあるまい
残業持ち帰りのExcelファイルとか、学校のパソコン室で書いたレポートなど、サイズが大きくてフロッピーで持ち帰るっていうのもちょっとメールで送るにもアカウントがない現場から、なんてこともある
FTPが使えればいいのだが、こういったシーンでは外部インターネット接続が制限されていて「webアクセスしかできません」状態なことが多い
あえなく"自宅ファイルサーバ"計画は断念・・・?

そこで登場するのが「webDAV」(ウェブダブ)というプロトコル
この名は「web−based Distributed Authoringand Versioning」の略で、長ったらしいが「webのプロトコルだけでコンテンツの書き換え/配布などをできるようにしましょう」というしくみを意味している
従来、遠隔地にあるwebサーバ上のファイルはFTP経由でアクセスしないと更新できないのが常識だったが、webDAVではHTTPプロトコルを拡張、FTPなどを使わないでこれらのことができるようにした
RFC2518で提案され、現在ではWindows、MacOSの多くのwebオーサリングツールが対応する

webDAVを使えば遠隔地サーバからのファイルのダウンロードはもちろん、アップロードも更新も可能
しかもHTTPを使用するのでファイアウォール内でも利用できる可能性が高い
さらに、クライアントがWindowsの場合、InternetExplorer5以降で導入された「webフォルダ」機能を用い、ファイルのやりとりが簡単にできる
そのうえ、Microsoft Office2OO0以降ではwebDAVとの親和性が高くなっており、webフォルダ上のExcelファイルなどを直接集でき、しかもファイルロック機能に対応しているので複数人の共用ファイルスペースとしても活用を期待できる
なお、ユーザー認証はふつうのwebコンテンツと同じように制限をかけられる

#------------------------
# mod_davを導入する
#------------------------

Apache1.3系列では、WebDAV.orgで公開されている「mod_dav」
モジュールをインストールするだけで、既存のwebサーバがそのままwebDAV対応になる(http://www.webdav.org/mod_dav/

まず、mod_davをコンパイルする
残念ながらmod_davは日本語環境を考えて作成されていないので、このままではクライアントの文字コードによって誤動作が起きてしまう
そこで、WebDAV Resources JPが配布している「mod_encoding」を導入する
次に、mod_davが用いるロックファイル用領域を作る
/var/lock/moddavディレクトリを作成するため、


# mkdir /var/lock/mod_dav


としたあと、httpd.conf中のUser、Groupに指定したApache動作時のユーザー/グループをチェックする
User:nobody、Group:nobodyの場合は、


# chown -R nobody.nobody/var/lock/mod_dav


とする
最後に、各モジュールに必要な設定項目をhttpd.confに追加

#------------------------------
# WebDAVのファイル共有を実験
#------------------------------

では、実際にDAVによるファイル共有を行ってみる
ここでは、/home/httpd/public_html/dav デイレクトリを対象に設定する


# cd /home/httpd/public_html
# mkdir dav
# chown nobody.nobody dav


とディレクトリを作成したあと、httpd.confを開いて、

くLocation/dav>
DAV On
DAVMinTimeout 1800
Options +Indexes
Index0ptions FancyIndexing
く/Location>

を追加する
デイレクトリ内一覧表示不可の設定だとWebDAVが使い物にならないIndexesオプションを忘れずに

とりあえず手近なWindowsで「マイネットワーク」→「ネットワークプレースの追加」をクリック
するとウイザードが立ち上がるので、DAVの設定を行ったURLを入力
通常のフォルダのような画面で、指定したURLを「Webフォルダ」としてアクセスできる
ファイルをドラッグ&ドロップすれば、公開しているデイレクトリに対してHTTP経由でアップロード/ダウンロードが行えるまた、ExcelのファイルはWebフォルダ上で直接編集を行え、なかなか便利だ
なお、この状態では誰もが該当デイレクトリにアクセスできてしまうので、実際に使う際にはBasic認証などの対策を講じる必要がある

まだまだ不安定なところもあるmod_davだが、人によってさまざまな使いこなし方が考えられる
ぜひ試してみてほしい

更に詳しい情報 : mod_dav のインストールと設定


2005年06月23日

ダイナミックDNS
ネットワーク

ダイナミックDNSサービスを使えば、動的IPアドレスでもドメインによるインターネットサーバの公開ができる


#--------------------------------------------
# まずはダイナミックDNSについて
#--------------------------------------------

常時接続環境が利用できるとなると、インターネットの活用法も飛躍的に広がってくる
単にWebページを閲覧するだけに使用するというのではあまりにもったいない
次なるステップはマイ・インターネットサーバの構築ということになるだろう
プロバイダのメールサーバではメールアドレスやメールの送受信量に制限もあるだろうし、Webサーバも容量やCGIなどに制限が課せられる
せっかく常時接続に近い環境が得られるのであれば、自分だけの自由なサーバを構築してみたくなるものだ


#--------------------------------------------
グローバルIPアドレスとプライベートIPアドレス
#--------------------------------------------

インターネットに直接接続されるPCやホストには、インターネット上において一意で重複しないIPアドレスが割り当てられている
このIPアドレスをグローバルIPアドレスという
このグローバルIPアドレスがないとインターネット上のホストを特定することができない
インターネットが考案された当時は、現在のようにインターネットが爆発的に普及し、インターネットに接続されるホストが膨大になるとは想定されていなかったため、グローバルIPアドレスが不足するという事態となってしまった
こうしたグローバルIPアドレスの枯渇問題に対応するために、LANなどインターネットに直接接続されないPCやホストには、プライベートIPアドレスという内部的に使用されるIPアドレスを割り当てることが多い

プライベートIPアドレスでは直接インターネットに接続することはできない
このため、NAT(Network Address Translation)やIPマスカレードといった、プライーベートIPアドレスとグローバルIPアドレスを変換する仕組みを利用することで、インターネット上のホストに接続できるようにしている
こうした仕組みは、一種のファイアウォールとして機能するというメリットもあるが、逆にインターネット上からプライベートIPアドレスのホストに接続することはできない
このため残念ながらプライベートIPアドレスによるサーバの公開は不可能だ
つまりインターネットサーバを公開するとなると、グローバルIPアドレスが割り当てられていることが必須ということになる
IPアドレスがグローバルIPアドレスかプライベートIPアドレスかは、割り当てられたIPアドレスの範囲(アドレス空間)で知ることができる (下記)


----------------------------------------
10.0.0.0 〜 10.255.255.255
----------------------------------------
172.16.0.0 〜 172.31.255.255
----------------------------------------
192.168.0.0 〜 192.168.255.255
----------------------------------------


これらの範囲のIPアドレスはインターネット上に存在することが禁止されているものだ
ただし、ルータを使ってインターネットに接続している場合は、ルータがグローバルIPアドレスを持ち、サーバ自体はプライベートIPアドレスを持つこともある
この場合は、ルーターとサーバの間でパケットをポートフォワードすることによって、サーバを外部に公開することができる

#----------------------------------
# lPアドレスとDNS
#----------------------------------

インターネット上のホストにはすべてIPアドレスが割り当てられているが、これらは111.122.133.144といった数値の羅列であり人間が覚えることば難しい
これを人間が覚えやすいような、たとえば www.hoo.bar.jpといったドメイン名に割り当て、相互に変換するシステムがDNS(Domain Name System)だ
いわば、DNSはインターネットの電話帳と考えることができる
この仕組みを使うことで、覚えやすいアドレスでホストに到達できるようになっている

ドメイン名からIPアドレスへの変換を正引き(順引き)、逆のIPアドレスからドメイン名への変換を逆引きと呼ぶ
人間が利用する場合はもっばら正引きだけだが、コンピュータにとっては逆引きも重要となる
DNSはIPアドレスとドメイン名の相互変換という仕組みを提供しているが、こうしたアドレスの対応は固定されており、頻繁には変更されないという前提で作られている
つまり、固定(スタティック)IPアドレスが想定されているわけだ
これは常時接続されるホストは当然固定IPアドレスを持ち、頻繁に変更されることはないという想定の元で設計されていたからだ

ところがADSLやBフレッツといった常時接続サービスのほとんどは、接続のたびにIPアドレスが変わる動的(ダイナミック)IPアドレスを提供する
こうした動的IPアドレスでは、DNSに登録したとしてもいつまでそのIPアドレスが割り当てられているかはわからず、実際に誰かがインターネット上から接続しようとしたときには、すでにそのIPアドレスは違うホストに割り当てられているかもしれない
これではDNSそのものが機能しないことになる

となると、サーバを公開する場合には固定IPアドレスが必須になるということになる
もちろん、オプションで固定IPアドレスを割り当てるサービスを行っているプロバイダもいくつかあるが、オプション料金が高額で気軽に使えるものではない
しかし、これはDNSを使う場合の話で、DNSを使わず直接IPアドレスでホストに接続するのであれば現在のグローバルIPアドレスさえわかっていればいいわけだ
とはいえ、IPアドレスはいつ変わるかわからないし、接続しようとしている相手に現在のIPアドレスを伝えるのもやっかいだ
やはりドメイン名による接続ができないと不便ということになる

しかし、そうした動的IPアドレスユーザーのために、ダイナミックDNSというサービスが登場した
通常のDNSがIPアドレスを固定的に扱うのに対し、ダイナミックDNSは動的にIPアドレスを扱う
いわば、IPアドレスがコロコロ変わることを前提に作られたDNSだといえる

#-----------------------------
# ダイナミックDNSの仕組み
#-----------------------------

ダイナミックDNSは、ドメイン名とIPアドレスの対応データベースを動的に書き換えられるように作られているシステムだ
つまり、動的IPアドレスしか持たないホストに対し、ドメイン名でアクセスできるようにするためのサービスだと考えればよい

動的IPアドレスしか持たないホストは、ダイナミックDNSサーバに対して現在のIPアドレスを通知する
ダイナミックDNSサーバは、ドメイン名での名前の問い合わせに対してこのIPアドレスを回答することになる
これによって、インターネット上のホストはドメイン名から目的のホストのIPアドレスに到達できるのだ

インターネット上のホストからしてみるとドメイン名で接続できるため、接続先が動的IPアドレスであるかどうかといったことや、ダイナミックDNSサービスによって名前の解決が行われているかどうかなどを気にする必要もない
ただし、DNSは名前の解決が頻繁に発生しないように名前の解決結果を一定時間キャッシュする
つまり、正しいホストのIPアドレスが伝搬されるまでにタイムラグがあるわけだ
このため、ホストのIPアドレスが変更された場合には、一定期間(おおむね数分から数十分)は接続できない可能性もあることに注意しなければならない

なお、ダイナミックDNSサーバは正引きに対する問い合わせに対して対応するIPアドレスを回答するが、IPアドレスからドメイン名への変換といった逆引きに関しては、接続しているプロバイダのDNSサーバが回答する
このため、正引きと逆引きの結果が一致しないという問題がある とはいえ、通常の用途には問題はないだろう

#-----------------------------
# ダイナミックDNSサービスの種類
#-----------------------------

ダイナミックDNSは、インターネットサービスプロバイダが提供している場合や、ダイナミックDNSとして有償で提供している企業、無償サービスやボランティアベースで提供しているサイトなどがある
それぞれのダイナミックDNSによって提供している機能が若干異なるので、自分に合ったサービスを選択するといいだろう
たとえば、多くのダイナミックDNSサービスはドメイン名が決められており、自分のホストはそのサブドメインとして運用するが、一部のダイナミックDNSサービスでは独自ドメインによる運用が可能なものもある
また、バーチャルドメインや回線切断時にはほかのURLへ転送するオフライン機能、メールの代理受け取りが可能なサービスも存在する
なお、IPアドレスを通知する方法はダイナミックDNSサービスによってまちまちだ
ほとんどのサービスでは手作業によるWebサイトへの登録のほかに、専用のツールで自動化することもできる


無料のダイナミックDNSサービス(日本)
家サーバー・プロジェクト
私的DNS(MyDNS.JP)
DDNS(ダイナミックドメインネームシステム)
Dynamic DO!.jp
マイドメイン
J-SPEED

無料のツール
DiCE for Windows