FreeBSD-mpd
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
site-1
menu-1
menu-2
menu-3
menu-4
menu-5
menu-6
site-2
menu-1
menu-2
menu-3
menu-4
menu-5
menu-6
site-3
menu-1
menu-2
menu-3
menu-4
menu-5
menu-6
site-4
menu-1
menu-2
menu-3
menu-4
menu-5
menu-6
site-5
menu-1
menu-2
menu-3
menu-4
menu-5
menu-6
開始行:
#contents
* FreeBSD で PPPoE ルータ (mpd 編) [#zb6edf37]
FreeBSD を,Flet's ADSL 等のブロードバンド回線のルータと...
~
** mpd とは [#me9bbe02]
FreeBSD には,昔から ''userppp'' という,ppp プログラムが...
今までの様な,ダイアルアップルータとして使う分にはなんら...
~
そこで Archie Cobbs さんが書いた mpd が登場します.mpd は...
機能及び設定ファイルの記述は殆ど user-ppp と同様で,複数...
~
** 前提条件 [#p17cff6a]
今回,mpd を利用するにあたって,以下の様な環境を元として...
手元の環境と違う場合は適宜読み替えて下さい.~
- FreeBSD 6.0 RELASE (i386)
- Internet 側 NIC ''Intel fxp0''
- Private 側 NIC ''Intel fxp1''
** mpd を動かす準備 - kernel compile [#b8cf5773]
mpd は netgraph を利用して動作する為,kernel の再構築また...
自分でモジュールのロードを行うには以下の様なスクリプトを...
ls -l /usr/local/etc/rc.dkldload.sh
-rwxr-xr-x 1 root wheel 236 Mar 8 00:19 /usr/local/e...
cat /usr/local/etc/rc.d/kldload.sh
#!/bin/sh
kldload /boot/kernel/netgraph.ko
kldload /boot/kernel/ng_socket.ko
kldload /boot/kernel/ng_iface.ko
kldload /boot/kernel/ng_ppp.ko
kldload /boot/kernel/ng_bpf.ko
kldload /boot/kernel/ng_vjc.ko
kldload /boot/kernel/ng_pppoe.ko
kldload /boot/kernel/ng_ether.ko
上記のスクリプトで mpd を動作させる際に必要なモジュールの...
モジュールのロードが失敗した場合,mpd が正常に動作しませ...
~
kernel に組み込む場合,今使っている kernel の設定ファイル...
options NETGRAPH # netgraph(4) sy...
options NETGRAPH_BPF
options NETGRAPH_ETHER
options NETGRAPH_IFACE
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_VJC
上記オプションで,mpd が動作するに必要な物を kernel に組...
ここでは,ipfilter を組み込みます.
options IPFILTER #ipfilter support
options IPFILTER_LOG #ipfilter logging
options IPFILTER_DEFAULT_BLOCK #block all packe...
options IPSTEALTH #support for ste...
ipfw や pf でも良いのですが,pf は使った事が無い点や ipfw...
B-Flet's 等,高速な回線を使っており,特に natd に拘る必要...
~
** mpd を入れる [#re306ecc]
mpd は,標準ではインストールされていませんので,packages/...
'''ports ツリーは最新ですか? 最新にしたい方は [[ FreeBSD ...
cd /usr/ports/net/mpd
make install
これで,mpd のインストールが完了します.次に,設定に移り...
|mpd.conf|mpd の大本の設定ファイル.このファイルで接続先...
|mpd.links|ppp セッションを張る際にどのインタフェースから...
|mpd.script|接続先との接続の際に対話型で接続する場合に利...
|mpd.secret|ユーザ名に紐づくパスワードを mpd.conf から切...
~
これらファイルを利用して,mpd の設定を進めていきましょう.~
*** mpd.conf [#mdeba05f]
mpd.conf は,mpd を利用する際の基本的なファイルになります...
default:
load provider
load flets
provider:
new -i ng0 provider PPPoE0
set iface route default
set iface up-script /usr/local/etc/mpd/script-pr...
set iface down-script /usr/local/etc/mpd/script-...
set bundle authname [userName]
set ipcp set ipcp ranges 0.0.0.0/0 0.0.0.0/0
load common_setting
flets:
new -i ng1 flets PPPoE1
set iface up-script /usr/local/etc/mpd/script-fl...
set iface down-script /usr/local/etc/mpd/script-...
set iface route 220.210.194.0/25
set iface route 220.210.195.0/26
set iface route 220.210.195.64/26
set iface route 220.210.198.128/26
set iface route 220.210.199.0/27
set iface route 220.210.199.128/28
set iface route 220.210.199.160/28
set iface route 220.210.199.192/29
set iface route 220.210.199.176/28
set bundle authname guest@flets
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
load common_setting
common_setting:
set iface addrs 1.1.1.1 2.2.2.2
set iface disable on-demand
set iface idle 0
set iface mtu 1454
set bundle disable multilink
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link mtu 1454
set link mru 1454
set ipcp yes vjcomp
open iface
上記設定ファイルを見てみると,大きく分けて4つのセクション...
|default|どのセクションを読み込むか|
|provider|プロバイダへの PPPoE 接続の設定|
|flets|Flet's スクウェアへの接続の設定|
|common_setting|provider と flets が共通して読み込む設定...
~
まず,''default'' は説明が必要無い位に明快なセクションな...
~
new -i ng0 provider PPPoE0
ここで,ng0 というデバイスを作成し,次にセクションと同一...
~
set iface route default
デフォルトルートを,このプロバイダから出て行く様に設定し...
~
set iface up-script /usr/local/etc/mpd/script-provider.sh
set iface down-script /usr/local/etc/mpd/script-provider...
この2行は,mpd が ''接続した時'' 及び ''切断した時'' に実...
~
set bundle authname [userName]
接続する際に使用するユーザ名をここに書きます.~
~
set ipcp set ipcp ranges 0.0.0.0/0 0.0.0.0/0
ipcp で IP アドレスが通知される際に自身が許可するアドレス...
~
load common_setting
ここで,その他の設定を読み込みます.今回,プロバイダと Fl...
~
セクション名 ''provider'' の項目は以上です.次に ''common...
~
set iface addrs 1.1.1.1 2.2.2.2
インタフェースレイヤでのアドレスを割り当てる項目な様です...
~
set iface disable on-demand
オンデマンド接続を無効にしています.ダイアルアップルータ...
~
set iface idle 0
アイドルタイムアウトを 0 としています.0 とするとアイドル...
~
set iface mtu 1454
MTU(Maximum Transmission Unit) の値を 1454 にしています....
~
set bundle disable multilink
接続の際のマルチリンクを無効にしています.これは,ISDN で...
~
set link no acfcomp protocomp
acfcomp 及び protocomp を無効にしています.acfcomp は Add...
~
set link disable pap chap
pap 及び chap での接続を受付ません.次の行とは扱いが違い...
~
set link accept chap
サーバとの認証の際に chap を利用します.accept/deny を使...
~
set link mtu 1454
set link mru 1454
リンクレイヤで,MTU 及び MRU を 1454 にします.こちらも,...
~
set ipcp yes vjcomp
ipcp の Van Jacobson TCP ヘッダ圧縮を有効にします.殆どの...
~
open iface
インタフェースをオープンします.この段階で,ようやくセッ...
~
*** mpd.secret [#z6e3e995]
mpd.secret は,ユーザ名に紐づくパスワードを mpd.conf から...
~
mpd.conf にパスワードを書く場合は,次の様に書きます.auth...
set bundle password [Password]
~
mpd.secret に書く場合,以下の様になります.
UserName Password
guest guest
Provider2 Password2
最初の列がユーザ名,次の列がパスワードとなります.ユーザ...
~
*** mpd.links [#j28fdeec]
mpd.links ファイルは,どのインタフェースを利用して ppp セ...
PPPoE0:
set link type pppoe
set pppoe iface fxp0
set pppoe service "whatever"
set pppoe disable incoming
set pppoe enable originate
PPPoE1:
set link type pppoe
set pppoe iface fxp0
set pppoe service "whatever"
set pppoe disable incoming
set pppoe enable originate
このファイルの場合,セクションは PPPoE0 と PPPoE1 の 2つ...
このセクション名は,mpd.conf の new の行の最後で指定して...
以下では,PPPoE0 を例に中身を解説します.~
~
set link type pppoe
~
この行で,リンクタイプを PPPoE とする事を宣言しています....
~
set pppoe iface fxp0
PPPoE セッションを張る際に利用するインタフェースを決定し...
~
set pppoe service "whatever"
~
PPPoE のサービス名を明記します.が,通常は whatever で問...
~
set pppoe disable incoming
~
PPPoE の着信を拒否します.PPPoE でプロバイダに接続する利...
~
set pppoe enable originate
~
PPPoE の発信を許可します.自身から発信して PPPoE セッショ...
~
*** mpd.script [#g99921cf]
mpd.script は,mpd での接続時や,切断時に実行させる事が出...
~
set iface up-script /usr/local/etc/mpd/script-provider.sh
set iface down-script /usr/local/etc/mpd/script-provider...
up-script が接続時に実行されるもので,down-script が切断...
スクリプト自体は,接続時の場合は次の様な引数で呼ばれます.~
[scriptname] <interface> inet <local address> <remote ad...
~
切断時には次の様な引数で呼ばれます.~
[scriptname] <interface> inet <authname>
~
両者を比べてもらうとわかるのですが,引数の数が違いますの...
実際のスクリプトは次の様に作成しています.~
~
#!/bin/sh
case $# in
# Connect
5)
/etc/rc.d/ipnat restart
;;
# Disconnect
3)
/etc/rc.d/ipnat restart
;;
*)
;;
esac
この場合,接続時及び切断時に ipnat を再起動しています.こ...
本来は,接続時や切断時に ipnat や ipfilter のルールセット...
~
** 起動のテスト [#cba197c9]
実際にここまで完了したら,mpd を起動してみましょう.~
*** 手で起動する [#m2d03810]
ナニハトモワレ,最初は出て起動させて動作を確認しましょう...
/usr/local/sbin/mpd
すると,画面に大量の文字列があわられますがあわてないで下...
まず画面の文字列をめげないで見てみましょう.PPPoE のセッ...
~
> ifconfig -a
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MUL...
inet 219.117.xxx.yyy --> 219.117.xxx.yyy netmask...
この状態が確認出来たら,mpd は PPPoE セッションをうまく張...
*** スクリプトで起動する [#d5efad0c]
mpd を ports/packages でインストールした場合,/usr/local/...
このスクリプトは,rcNG 形式のスクリプトですので,/etc/rc....
~
mpd_enable="YES"
これによって,mpd.sh を実行した際に,スタートの処理が進み...
また,mpd へのコマンドオプションを渡したい場合,以下の値...
~
mpd_flags=""
mpd.sh を見てもらうと分かるのですが,デフォルト状態で ''m...
通常はバックグラウンドの動作を期待しているでしょうからこ...
~
実際の起動は,以下の様にスクリプトを実行して下さい.
/usr/local/etc/rc.d/mpd.sh start
この様に実行する事で mpd が起動し,PPPoE での接続が行われ...
~
こちらも,別のターミナルもしくは ssh 等のセッションを張り...
> ifconfig -a
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MUL...
inet 219.117.xxx.yyy --> 219.117.xxx.yyy netmask...
~
上記の状態が確認出来たら,とりあえずの mpd 接続は完了です.
*** 接続確認作業 [#t17fee0c]
実際に mpd での接続が行われ,ng デバイスに IP アドレスが...
~
先の設定ファイル (''mpd.conf'') で ''provider'' への接続...
set iface route default
この行がある事で,デフォルトルートが設定されるはずですの...
> netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs ...
default 219.117.xxx.zzz UGS 0 75...
この様にデフォルトルートが設定されている事を確認出来たら...
** NAT ボックスとしての設定 [#v3f7f3ed]
これまでの段階で,FreeBSD ボックスでの接続が行われている...
** daemontools で起動する [#k04de2bf]
[[qmail>http://cr.yp.to/qmail.html]] の作者である D. J. B...
mpd を daemontools と組み合わせて利用する事で,さらに便利...
~
*** 起動スクリプトの用意 [#r870aa4d]
とりあえず,起動スクリプトを作成しなければ始まりません....
- ./run (0755)
#!/bin/sh
echo ' mpd'
exec envdir ./env \
/usr/local/sbin/mpd 2>&1
- ./env/PATH (0644)
/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
- ./log/run (0755)
#!/bin/sh
# s = Logfile Size, n = LogLotateSize
# Logfile Size = 5MB
exec envdir ./env \
multilog t s5242880 n10 /var/log/mpd
- ./log/env/PATH (0644)
/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
最初の ''run'' はプログラムの起動の為のスクリプトになりま...
~
次に,''env/PATH'' ですが,これは ''run'' に設定される環...
~
最後2つは,ログ用のスクリプトです.''log/run'' はログ取り...
~
最後の ''log/env/PATH'' はログ取りスクリプトに渡される環...
ログ保存場所の ''/var/log/mpd'' の作成を忘れないで下さい.
*** daemontools に管理させる [#z468be29]
上記のスクリプトを,daemontools に管理させるには,daemont...
自宅の環境では '''/service''' が監視ディレクトリですが,F...
ln -s /var/PPPoE/mpd mpd
以上で,daemontools への組み込みは完了です.5秒ほどすると...
ps -ax | grep mpd
870 ?? I 0:00.11 supervise mpd
878 ?? S 2:23.73 /usr/local/sbin/mpd
880 ?? I 0:00.01 multilog t s5242880 n10 /var/log...
''supervise mpd'' が,daemontools が管理している事を示す...
~
最後の行の,''multilog t s5242880 n10 /var/log/mpd'' は,...
~
ログは ''/var/log/mpd'' 以下に出力されます.''current'' ...
~
以上,mpd を daemontools で管理でした.~
~
''daemontools の詳細な使用方法はまだ纏めていないので検索...
~
----
Hiroyuki Seino http://www.seichan.org/ http://www.seicha...
Today:&counter(today); Yesterday:&counter(yesterday); All...
終了行:
#contents
* FreeBSD で PPPoE ルータ (mpd 編) [#zb6edf37]
FreeBSD を,Flet's ADSL 等のブロードバンド回線のルータと...
~
** mpd とは [#me9bbe02]
FreeBSD には,昔から ''userppp'' という,ppp プログラムが...
今までの様な,ダイアルアップルータとして使う分にはなんら...
~
そこで Archie Cobbs さんが書いた mpd が登場します.mpd は...
機能及び設定ファイルの記述は殆ど user-ppp と同様で,複数...
~
** 前提条件 [#p17cff6a]
今回,mpd を利用するにあたって,以下の様な環境を元として...
手元の環境と違う場合は適宜読み替えて下さい.~
- FreeBSD 6.0 RELASE (i386)
- Internet 側 NIC ''Intel fxp0''
- Private 側 NIC ''Intel fxp1''
** mpd を動かす準備 - kernel compile [#b8cf5773]
mpd は netgraph を利用して動作する為,kernel の再構築また...
自分でモジュールのロードを行うには以下の様なスクリプトを...
ls -l /usr/local/etc/rc.dkldload.sh
-rwxr-xr-x 1 root wheel 236 Mar 8 00:19 /usr/local/e...
cat /usr/local/etc/rc.d/kldload.sh
#!/bin/sh
kldload /boot/kernel/netgraph.ko
kldload /boot/kernel/ng_socket.ko
kldload /boot/kernel/ng_iface.ko
kldload /boot/kernel/ng_ppp.ko
kldload /boot/kernel/ng_bpf.ko
kldload /boot/kernel/ng_vjc.ko
kldload /boot/kernel/ng_pppoe.ko
kldload /boot/kernel/ng_ether.ko
上記のスクリプトで mpd を動作させる際に必要なモジュールの...
モジュールのロードが失敗した場合,mpd が正常に動作しませ...
~
kernel に組み込む場合,今使っている kernel の設定ファイル...
options NETGRAPH # netgraph(4) sy...
options NETGRAPH_BPF
options NETGRAPH_ETHER
options NETGRAPH_IFACE
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_VJC
上記オプションで,mpd が動作するに必要な物を kernel に組...
ここでは,ipfilter を組み込みます.
options IPFILTER #ipfilter support
options IPFILTER_LOG #ipfilter logging
options IPFILTER_DEFAULT_BLOCK #block all packe...
options IPSTEALTH #support for ste...
ipfw や pf でも良いのですが,pf は使った事が無い点や ipfw...
B-Flet's 等,高速な回線を使っており,特に natd に拘る必要...
~
** mpd を入れる [#re306ecc]
mpd は,標準ではインストールされていませんので,packages/...
'''ports ツリーは最新ですか? 最新にしたい方は [[ FreeBSD ...
cd /usr/ports/net/mpd
make install
これで,mpd のインストールが完了します.次に,設定に移り...
|mpd.conf|mpd の大本の設定ファイル.このファイルで接続先...
|mpd.links|ppp セッションを張る際にどのインタフェースから...
|mpd.script|接続先との接続の際に対話型で接続する場合に利...
|mpd.secret|ユーザ名に紐づくパスワードを mpd.conf から切...
~
これらファイルを利用して,mpd の設定を進めていきましょう.~
*** mpd.conf [#mdeba05f]
mpd.conf は,mpd を利用する際の基本的なファイルになります...
default:
load provider
load flets
provider:
new -i ng0 provider PPPoE0
set iface route default
set iface up-script /usr/local/etc/mpd/script-pr...
set iface down-script /usr/local/etc/mpd/script-...
set bundle authname [userName]
set ipcp set ipcp ranges 0.0.0.0/0 0.0.0.0/0
load common_setting
flets:
new -i ng1 flets PPPoE1
set iface up-script /usr/local/etc/mpd/script-fl...
set iface down-script /usr/local/etc/mpd/script-...
set iface route 220.210.194.0/25
set iface route 220.210.195.0/26
set iface route 220.210.195.64/26
set iface route 220.210.198.128/26
set iface route 220.210.199.0/27
set iface route 220.210.199.128/28
set iface route 220.210.199.160/28
set iface route 220.210.199.192/29
set iface route 220.210.199.176/28
set bundle authname guest@flets
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
load common_setting
common_setting:
set iface addrs 1.1.1.1 2.2.2.2
set iface disable on-demand
set iface idle 0
set iface mtu 1454
set bundle disable multilink
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link mtu 1454
set link mru 1454
set ipcp yes vjcomp
open iface
上記設定ファイルを見てみると,大きく分けて4つのセクション...
|default|どのセクションを読み込むか|
|provider|プロバイダへの PPPoE 接続の設定|
|flets|Flet's スクウェアへの接続の設定|
|common_setting|provider と flets が共通して読み込む設定...
~
まず,''default'' は説明が必要無い位に明快なセクションな...
~
new -i ng0 provider PPPoE0
ここで,ng0 というデバイスを作成し,次にセクションと同一...
~
set iface route default
デフォルトルートを,このプロバイダから出て行く様に設定し...
~
set iface up-script /usr/local/etc/mpd/script-provider.sh
set iface down-script /usr/local/etc/mpd/script-provider...
この2行は,mpd が ''接続した時'' 及び ''切断した時'' に実...
~
set bundle authname [userName]
接続する際に使用するユーザ名をここに書きます.~
~
set ipcp set ipcp ranges 0.0.0.0/0 0.0.0.0/0
ipcp で IP アドレスが通知される際に自身が許可するアドレス...
~
load common_setting
ここで,その他の設定を読み込みます.今回,プロバイダと Fl...
~
セクション名 ''provider'' の項目は以上です.次に ''common...
~
set iface addrs 1.1.1.1 2.2.2.2
インタフェースレイヤでのアドレスを割り当てる項目な様です...
~
set iface disable on-demand
オンデマンド接続を無効にしています.ダイアルアップルータ...
~
set iface idle 0
アイドルタイムアウトを 0 としています.0 とするとアイドル...
~
set iface mtu 1454
MTU(Maximum Transmission Unit) の値を 1454 にしています....
~
set bundle disable multilink
接続の際のマルチリンクを無効にしています.これは,ISDN で...
~
set link no acfcomp protocomp
acfcomp 及び protocomp を無効にしています.acfcomp は Add...
~
set link disable pap chap
pap 及び chap での接続を受付ません.次の行とは扱いが違い...
~
set link accept chap
サーバとの認証の際に chap を利用します.accept/deny を使...
~
set link mtu 1454
set link mru 1454
リンクレイヤで,MTU 及び MRU を 1454 にします.こちらも,...
~
set ipcp yes vjcomp
ipcp の Van Jacobson TCP ヘッダ圧縮を有効にします.殆どの...
~
open iface
インタフェースをオープンします.この段階で,ようやくセッ...
~
*** mpd.secret [#z6e3e995]
mpd.secret は,ユーザ名に紐づくパスワードを mpd.conf から...
~
mpd.conf にパスワードを書く場合は,次の様に書きます.auth...
set bundle password [Password]
~
mpd.secret に書く場合,以下の様になります.
UserName Password
guest guest
Provider2 Password2
最初の列がユーザ名,次の列がパスワードとなります.ユーザ...
~
*** mpd.links [#j28fdeec]
mpd.links ファイルは,どのインタフェースを利用して ppp セ...
PPPoE0:
set link type pppoe
set pppoe iface fxp0
set pppoe service "whatever"
set pppoe disable incoming
set pppoe enable originate
PPPoE1:
set link type pppoe
set pppoe iface fxp0
set pppoe service "whatever"
set pppoe disable incoming
set pppoe enable originate
このファイルの場合,セクションは PPPoE0 と PPPoE1 の 2つ...
このセクション名は,mpd.conf の new の行の最後で指定して...
以下では,PPPoE0 を例に中身を解説します.~
~
set link type pppoe
~
この行で,リンクタイプを PPPoE とする事を宣言しています....
~
set pppoe iface fxp0
PPPoE セッションを張る際に利用するインタフェースを決定し...
~
set pppoe service "whatever"
~
PPPoE のサービス名を明記します.が,通常は whatever で問...
~
set pppoe disable incoming
~
PPPoE の着信を拒否します.PPPoE でプロバイダに接続する利...
~
set pppoe enable originate
~
PPPoE の発信を許可します.自身から発信して PPPoE セッショ...
~
*** mpd.script [#g99921cf]
mpd.script は,mpd での接続時や,切断時に実行させる事が出...
~
set iface up-script /usr/local/etc/mpd/script-provider.sh
set iface down-script /usr/local/etc/mpd/script-provider...
up-script が接続時に実行されるもので,down-script が切断...
スクリプト自体は,接続時の場合は次の様な引数で呼ばれます.~
[scriptname] <interface> inet <local address> <remote ad...
~
切断時には次の様な引数で呼ばれます.~
[scriptname] <interface> inet <authname>
~
両者を比べてもらうとわかるのですが,引数の数が違いますの...
実際のスクリプトは次の様に作成しています.~
~
#!/bin/sh
case $# in
# Connect
5)
/etc/rc.d/ipnat restart
;;
# Disconnect
3)
/etc/rc.d/ipnat restart
;;
*)
;;
esac
この場合,接続時及び切断時に ipnat を再起動しています.こ...
本来は,接続時や切断時に ipnat や ipfilter のルールセット...
~
** 起動のテスト [#cba197c9]
実際にここまで完了したら,mpd を起動してみましょう.~
*** 手で起動する [#m2d03810]
ナニハトモワレ,最初は出て起動させて動作を確認しましょう...
/usr/local/sbin/mpd
すると,画面に大量の文字列があわられますがあわてないで下...
まず画面の文字列をめげないで見てみましょう.PPPoE のセッ...
~
> ifconfig -a
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MUL...
inet 219.117.xxx.yyy --> 219.117.xxx.yyy netmask...
この状態が確認出来たら,mpd は PPPoE セッションをうまく張...
*** スクリプトで起動する [#d5efad0c]
mpd を ports/packages でインストールした場合,/usr/local/...
このスクリプトは,rcNG 形式のスクリプトですので,/etc/rc....
~
mpd_enable="YES"
これによって,mpd.sh を実行した際に,スタートの処理が進み...
また,mpd へのコマンドオプションを渡したい場合,以下の値...
~
mpd_flags=""
mpd.sh を見てもらうと分かるのですが,デフォルト状態で ''m...
通常はバックグラウンドの動作を期待しているでしょうからこ...
~
実際の起動は,以下の様にスクリプトを実行して下さい.
/usr/local/etc/rc.d/mpd.sh start
この様に実行する事で mpd が起動し,PPPoE での接続が行われ...
~
こちらも,別のターミナルもしくは ssh 等のセッションを張り...
> ifconfig -a
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MUL...
inet 219.117.xxx.yyy --> 219.117.xxx.yyy netmask...
~
上記の状態が確認出来たら,とりあえずの mpd 接続は完了です.
*** 接続確認作業 [#t17fee0c]
実際に mpd での接続が行われ,ng デバイスに IP アドレスが...
~
先の設定ファイル (''mpd.conf'') で ''provider'' への接続...
set iface route default
この行がある事で,デフォルトルートが設定されるはずですの...
> netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs ...
default 219.117.xxx.zzz UGS 0 75...
この様にデフォルトルートが設定されている事を確認出来たら...
** NAT ボックスとしての設定 [#v3f7f3ed]
これまでの段階で,FreeBSD ボックスでの接続が行われている...
** daemontools で起動する [#k04de2bf]
[[qmail>http://cr.yp.to/qmail.html]] の作者である D. J. B...
mpd を daemontools と組み合わせて利用する事で,さらに便利...
~
*** 起動スクリプトの用意 [#r870aa4d]
とりあえず,起動スクリプトを作成しなければ始まりません....
- ./run (0755)
#!/bin/sh
echo ' mpd'
exec envdir ./env \
/usr/local/sbin/mpd 2>&1
- ./env/PATH (0644)
/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
- ./log/run (0755)
#!/bin/sh
# s = Logfile Size, n = LogLotateSize
# Logfile Size = 5MB
exec envdir ./env \
multilog t s5242880 n10 /var/log/mpd
- ./log/env/PATH (0644)
/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
最初の ''run'' はプログラムの起動の為のスクリプトになりま...
~
次に,''env/PATH'' ですが,これは ''run'' に設定される環...
~
最後2つは,ログ用のスクリプトです.''log/run'' はログ取り...
~
最後の ''log/env/PATH'' はログ取りスクリプトに渡される環...
ログ保存場所の ''/var/log/mpd'' の作成を忘れないで下さい.
*** daemontools に管理させる [#z468be29]
上記のスクリプトを,daemontools に管理させるには,daemont...
自宅の環境では '''/service''' が監視ディレクトリですが,F...
ln -s /var/PPPoE/mpd mpd
以上で,daemontools への組み込みは完了です.5秒ほどすると...
ps -ax | grep mpd
870 ?? I 0:00.11 supervise mpd
878 ?? S 2:23.73 /usr/local/sbin/mpd
880 ?? I 0:00.01 multilog t s5242880 n10 /var/log...
''supervise mpd'' が,daemontools が管理している事を示す...
~
最後の行の,''multilog t s5242880 n10 /var/log/mpd'' は,...
~
ログは ''/var/log/mpd'' 以下に出力されます.''current'' ...
~
以上,mpd を daemontools で管理でした.~
~
''daemontools の詳細な使用方法はまだ纏めていないので検索...
~
----
Hiroyuki Seino http://www.seichan.org/ http://www.seicha...
Today:&counter(today); Yesterday:&counter(yesterday); All...
ページ名: