IPアドレスの自動更新(No-IP編)

※ 2006年5月23日にプロバイダを ASAHINET に移行。ASAHINET の固定IP サービスを受けるようになりましたので、今はもうこの IP アドレスの自動更新ソフトは使っていません。

 我が家の自宅サーバは、No-IP.com の DynamicDNSサービスのお世話になっています。今回は、IPアドレス変化時に、自動更新してくれる Dynamic Update Client というソフトのインストール方法使い方について書きます。このソフトは No-IP.com さんのサイトでwindows 用、Mac 用、Linux・BSD・Unix 用が無料配布されていますが、我が家の FreeBSD サーバには FreeBSD の ports からインストールしました。

# cd /usr/ports/dns/noip この記事を書いた時点の最新版は、noip-2.1.1.tar.gz です。
# make install clean
でインストール完了。この後、
# make conf
のコマンドで、個々のサーバの情報を入力して設定します。
まず、
Auto configuration for FreeBSD client of no-ip.com.
Multiple network devices have been detected.
Please select the Internet interface from this list.
By typing the number associated with it.
0 ppp0
1 sl0
2 ed1

複合的なネットワークデバイスが検知されました。下のリストからそれに関連したインターネットインターフェースを番号で選んでくださいと聞かれました。今我が家ではPPPoAを使っているので、 0 と入力して Enter
※ ここで問われる ppp0 とか、sl0 などは、サーバ機によって皆違う訳ですが、実のところこの項目の意味はあまりよく分かっていないです。
# ifconfig -a
のコマンドを叩くと、
faith0: flags=8002 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
   inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
ed1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   inet 192.168.0.60 netmask 0xffffff00 broadcast 192.168.0.255
    ether 00:00:f4:3a:f8:b3
のような情報が表示されます。試しに sl0 の 1 を入力しても上手く機能しています。

次に 登録メールアドレスを尋ねられます。
Please enter the login/email string for no-ip.com abc@abc.com
と入力。次は登録パスワードの入力。
Please enter the password for user 'abc@abc.com' ******
我が家では4つの項目を登録しているので、
4 hosts are registered to this account.
Do you wish to have them all updated?[N] (y/N) y

y を入力。お次は IP アドレスをチェックする間隔です。
Please enter an update interval:[30] 15
15分間隔に設定しました。次に更新時に何かプログラムを実行しますか?、と尋ねられます。普通ここは N で終了してもいいのですが、我が家では
Do you wish to run something at successful update?[N] (y/N) y
y イエスとし、次でそのプログラムの実行コマンド書き込み、
Please enter the script/program name /usr/local/bin/noipupdate.sh
更新をお知らせするメールをわたしのところへ送るようにしてみました。
/usr/local/bin/ に置いた noipupdate.sh の内容は、下記のようなものです。
#!/bin/sh
address="abc@abc.com"
subject="No-IP"
subject=`echo $subject`
mail -s $subject $address << HONBUN
No-IP update was successful!
HONBUN
exit

これで知らぬ間に IP アドレスが変化し、このソフトによって自動更新されますと、わたしのところに No-IP update was successful! といった内容のメールが届きます。

なお、
# /usr/local/bin/noip2 -h
とコマンドしますと色々なコマンドの一覧が表示されます。
USAGE: noip2 [ -C [ -F][ -Y][ -U #min]
       [ -u username][ -p password][ -x progname]]
       [ -c file][ -d][ -D pid][ -i addr][ -S][ -M][ -h]
Version FreeBSD-2.1.1
Options: -C create configuration data
      -F force NAT off
      -Y select all hosts/groups
      -U minutes set update interval
      -u username use supplied username
      -p password use supplied password
      -x executable use supplied executable
      -c config_file use alternate data path
      -d increase debug verbosity
      -D processID toggle debug flag for PID
      -i IPaddress use supplied address
      -I interface use supplied interface
      -S show configuration data
      -M permit multiple instances
      -K processID terminate instance PID
      -h help (this text)


今どんな設定になっているかを見るには、
# /usr/local/bin/noip2 -S とコマンドを打ちます。
1 noip2 process active.
Process 1622, started as /root/noip2
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set ***.***.***.***
Account abc@abc.com
configured for:
   host abc.no-ip.com
   host -.abc.com ←ワイルドカード
   host ftp.abc.com
   host www.abc.com
Executing /usr/local/bin/noipupdate.sh upon successful update.
Updating every 15 minutes via /dev/ppp0 with NAT enabled.

実際に今動いているので、active Process 1622 などが表示されますが、
動いていない時は、ここの部分か表示されません。

※ インストール後、# make conf で設定した noip2.conf の設定は、後で
# ps ax
で /usr/local/bin/noip2 のプロセス番号を調べ
# kill プロセス番号 とコマンドを打って noip2 を一旦止めて、
# /usr/local/bin/noip2 -C
のコマンドで設定し直すことができます。設定し直した後また、
# /usr/local/bin/noip2
のコマンドを叩いて noip2 を再び起動させることをお忘れなく。m(^^)ma