投稿日:2003年04月09日 作成鷹の巣

No.9514 ダイナミックDNSサービス提供の構築で、Diceに対応させるには?



ダイナミックDNSサービス提供の構築で、Diceに対応させるには?

No.9514 投稿時間:2003年04月09日(Wed) 23:34 投稿者名:さすらいのGさん URL:

少し前のスレッドで話題になって気になったので自分なりに調べてみました。

bind9以降は、DDNSの構築自体が容易に設定できることがわかりました。
特に、bindの再起動や、perlのsudo系など使わずともできそうです。

nsupdate,rndc(key)と、perlのNet::DNSライブラリあたりで作れそうなので、
自前で構築してみます。できれば、Diceに対応させたいと思うのですが、
Diceのプロトコルって公開されていましたっけ?もしくは、プラグインで作るのかな?

作者に聞いた方が早いのかもしれませんが、もし事前に何か情報がありましたら
よろしくお願いいたします。


GnuDIP Update Server

No.9519 投稿時間:2003年04月10日(Thu) 12:00 投稿者名:OAK URL:

多くのDDNSサイトは GnuDIP Update Server と言うのを使って作っているらしいです
これで作るとDiceで容易に合わせられるようです

http://my-domain.jp/info/dyndns-gnudip.html


DDNS自身の構築情報ってあんまり見かけませんが、なにか理由でもあるのでしょうか?

No.9521 投稿時間:2003年04月10日(Thu) 12:41 投稿者名:さすらいのGさん URL:

> 多くのDDNSサイトは GnuDIP Update Server と言うのを使って作っているらしいです
> これで作るとDiceで容易に合わせられるようです

Diceのプラグインで作成すれば、通常のCGIでもいけることがわかりました。
GnuDIPの方も、mod_perlで直接apacheに組み込んでいるようですね。

DDNS自身の構築情報ってあんまり見かけませんが、なにか理由でもあるのでしょうか?

OAKさん情報ありがとうございます。


GnuDIP Serverのセットアップは難しいです。

No.9545 投稿時間:2003年04月11日(Fri) 11:32 投稿者名:さすらいのGさん URL:

試しに、GnuDIP-2.3.5をダウンロードしてきましたが、設定がかなり大変そうでした。

uidの権限の設定 たぶん、全部、apahceで動かせばいいのでしょうが、穴ができそうで怖い。
mysqlの準備 ここだけは簡単に設定できました。
bindの設定 鍵の部分がよくわかりませんでした。bindは別のPCで動いてますが、特に鍵を付けなくてもnsupdateは動かせました。
apacheの設定 mod_perlじゃない方で設定してみた。
xinetdの設定 これは何をやろうとしているのかがよくわかりませんでした。
gnudip.confの設定 mysqlのパスワードと、bindの選択くらいだったかな。

もし設定できればかなり便利そうではありますが、設定箇所が多いので、セキュリティーホールになるのが逆に怖いです。
試行錯誤中ですのでなんとも言えませんが、日本語で解説されているサイトなどありませんかね?


Cnu はあきらめましょう

No.9549 投稿時間:2003年04月11日(Fri) 12:42 投稿者名:OAK URL:

> 試しに、GnuDIP-2.3.5をダウンロードしてきましたが、設定がかなり大変そうでした。
> 試行錯誤中ですのでなんとも言えませんが、日本語で解説されているサイトなどありませんかね?

こういう場合はさっさと Cnu はあきらめましょう。(これは私のやり方です)
Diceの掲示板に同様の質問がありましたね。ieserver.plg を使うと良いと書いてありました。
その中身は
[ServiceInfo]
Name=ieServer Project
URL=http://www.ieserver.net/
[Updater]
Method=POST
Script=http://ieserver.net:80/cgi-bin/dip.cgi?username=<U>&password=<P>&domain=<D><O1>
Encode=EUC
[Domains]
myhome.cx
or.cf
jpn.ph
fam.cx
dip.jp
[Options]
O1a=オフライン,No|Yes
O1b=&
O1c=updatehost=Go|offline=Go
[Response]
3=0.0.0.0
1=IPアドレスは現在
18=パスワードエラー
18=ユーザー名エラー
31=Error!
[Response]
3=0.0.0.0
1=IPアドレスは現在
18=パスワードエラー
18=ユーザー名エラー
31=Error!
[Command]
[Messages]
3=OffLineモードになりました
1=IPアドレスを更新しました
18=ユーザー名(ホスト名)またはパスワードが無効です
31=リクエストに対してエラーが発生しました
[Help]
IPアドレスはサーバー側で自動検出します。
IPアドレスの指定は出来ません。
(入力しても無視されます)
です。
ホスト名関係を直せばusername=USER&password=PASS&domain=AA.BB.COM
というCGIへのGET要求がかかるはずです。
レスポンスはどういう形かわかりませんが(モニターすればわかりますが会員でないもんでチェックできません)
print すれば良いみたいです。
どうしても分からなければ、アカウントとって調べて見ます。


mysql+perlあたりでやってみます。

No.9551 投稿時間:2003年04月11日(Fri) 13:29 投稿者名:さすらいのGさん URL:

やはり自作のが簡単ですかね…

mysql+perlあたりでやってみます。>簡単なサンプル
以前、sudoができないとありましたが、nsupdateでしたら、apacheの権限でも実行できますので、
これに鍵つけてアップデートが一番スマートっぽいです。
ただ、動的にDNS書き換えた場合、bind9だと、一度ジャーナルファイル消さないと編集ができない…

レスポンスはGnuDIPのスクリプト見た限りでは、httpでエラーレスポンス返すみたいです。
ieserver.netのエラーレスポンスを参考にエラーも吐いてみますが、動くかな^^;

1個だけユーザ作って、更新ができるかだけのサンプルやってみます。できたら報告致します。


TCPアナライザーで見ました

No.9555 投稿時間:2003年04月11日(Fri) 17:38 投稿者名:OAK URL:

家サーバーアカウント取って試して見ました

<送信データ>
POST /cgi-bin/dip.cgi? HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Accept: */*
Accept-Language: ja
Cache-Control: no-cache
Pragma: no-cache
Host: ieserver.net
User-Agent: DiCE/1.58
Content-Length: 52

username=www&password=nopass&domain=dip.jp&updatehost=Go

<エラーの受信データは>
HTTP/1.1 200 OK
Date: Fri, 11 Apr 2003 08:11:33 GMT
Server: Apache
Connection: close
Content-Type: text/html

<html><head><title>Error!</title><META http-equiv="Content-type" content="text/html; charset=EUC-JP"></head><body bgcolor="FFFFFF">
<br><center><h1>エラー:入力エラー</h1></center>
<p>ユーザー名またはパスワードに誤りがあります。前画面に戻り再入力して下さい。</p>


<設定できた場合の受信データ>
HTTP/1.1 200 OK
Date: Fri, 11 Apr 2003 08:29:12 GMT
Server: Apache
Connection: close
Content-Type: text/html

<html><head><title>ieserver.net - GunDIP2</title><META http-equiv="Content-type" content="text/html; charset=EUC-JP"></head><body bgcolor="FFFFFF">
<center><h1><font color="black" size="6" face="MS Pゴシック, Osaka">ダイナミックDNS Web Interface</font></h1></center>
<center><font color="red" size="4" face="MS Pゴシック, Osaka">ドメイン名:wwww.dip.jp のIPアドレスは現在 221.xx.xx.55 に設定されています。<br> <i>(2003-04-11 17:29:10 更新)</i></font></h1></center>
<br><center><font color="black" size="3" face="MS Pゴシック, Osaka">オプション選択:</font></center><br>
<form action="http://ieserver.net/cgi-bin/dip.cgi" method=post>
<input type=hidden name="username" value="www">
<input type=hidden name="password" value="oak">
<input type=hidden name="domain" value="dip.jp">
<center><table border=0>
<tr><td>ドメイン <b>www.dip.jp</b><br> のIPアドレスを <b>221.xx.xx.55<b>に更新</td><td><input type=submit name="updatehost" value="実行"></td></tr>
<tr><td>オフライン設定<br> (利用ドメイン非接続時はオフラインに設定して下さい) </td><td><input type=submit name="offline" value="実行"></td></tr>
<tr><td>ユーザー情報変更</td><td><input type=submit name="changesettings" value="実行"></td></tr>
</table></form></center>

ここからDiceは読みとっているのですね。各社フォームが違うだろうに大変な作業だ。


簡単に出来そうですが

No.9520 投稿時間:2003年04月10日(Thu) 12:32 投稿者名:OAK URL:

GnuDIP Update Server 使わなくてもちょっと試しにやって見ました。
1.plug-in のddo.jp.plgをMy.plg にコピー
2.My.plg の数カ所変更
URL=kkk.nu
Script=kkk.nu:80/cgi/test.cgi?dn=<H>&pw=<P><O1>
など
3.diced の exec 実行

アパッチのログに
"GET kkk.nu/cgi/test.cgi?dn=myhost_name&pw=passwd&addr=192.168.1.55&reqc=0 HTTP/1.0" 200 804
と記録されました。


|目次|掲示板|過去ログ目次|▲頁先頭|