MN7310 は外から来たパケットをすべて Linux サーバに送っていましたが,これではルータの意味がありません.そこで,MN7310 にはブリッジモードになってもらって,Linux サーバに PPPoE を処理させることにしました.
普通の人は pppd + rp-pppoe を使っているようですが,そのままでもおもしろくないですし,よりパフォーマンスを求めて,カーネルモード pppoe のみで運用してみようと思います.pppoe 導入に当たってはぷりんこ研究所を参考にしました.
適当なところから Linux カーネルのソースをとってきます(ディストリビューション付属のものでも全然かまいません).以下のオプションを有効にします.私は場所が分からず往生した(特に,CONFIG_N_HDLC)ので場所も書いておきます.:-)
[Network device support] CONFIG_PPP=m or CONFIG_PPP=y CONFIG_PPP_ASYNC=m or CONFIG_PPP_ASYNC=y CONFIG_PPP_SYNC_TTY=m or CONFIG_PPP_SYNC_TTY=y CONFIG_PPP_DEFLATE=m or CONFIG_PPP_DEFLATE=y CONFIG_PPP_BSDCOMP=m or CONFIG_PPP_BSDCOMP=y CONFIG_PPPOE=m or CONFIG_PPPOE=y [Character devices] CONFIG_UNIX98_PTYS=y [Non-standard serial port support] CONFIG_N_HDLC=m or CONFIG_N_HDLC=y
適当に再構築して再起動します.
ppp のソースとパッチをとってきてインストールします.なお,インストール方法はぷりんこ研究所を参考にしています.
ソースゲット # cd /usr/local/src # wget http://www.princo.org/contents/kpppoe/ppp-2.4.1.tar.gz # wget http://www.princo.org/contents/kpppoe/ppp-2.4.1-pppoe.patch4.txt -O ppp-2.4.1-pppoe.patch4 # tar xfvz ppp-2.4.1.tar.gz コンパイル&インストール # patch -Np1 -i /patch/put/dir/ppp-2.4.1-pppoe.patch4 # ./configure # make # make install
設定はいろいろ苦労しました.当サーバの接続先はフレッツですが,他のキャリアでもうまくいくと思います.
plugin pppoe.so # カーネルモード PPPoE をつかう
passive # LCP パケットを送って応答を待つ
defaultroute # PPP デバイスをデフォルトのルートにします
name "hogehoge" # ISP からのユーザアカウント
# という情報が多かったですが
# ユーザ名と@ISPのサーバ名で書かないとうまくいきませんでした
# user234@hoge.ne.jp みたいな感じで
lcp-echo-interval 20 # LCP エコーの要求パケットを送る前の待ち時間(秒)
lcp-echo-failure 3 # LCP エコー要求パケットを送る回数
maxfail 0 # 接続を無限回再試行する
persist # 接続中切断されても再接続する
以下のファイルに関しても様々な情報が多くて,苦労しましたが,動くようになりました.また,pppd は chap-secrets と pap-secrets の両方があると,chap-secrets で接続しようとするみたいです.私のプロバイダは chap で接続できましたが,pap でないといけないところは chap-secrets を削除しなければなりません.
# Secrets for authentication using CHAP # client server secret IP addresses # ユーザ名(ユーザ名@サーバ) サーバ パスワード IP の順で記述します. # ユーザ名はダブルクォーテーションでくくり,サーバ名はアスタリスクにしておきます. # パスワードもダブルクォーテーションでくくり,IP は非固定なら,アスタリスクにしておきます "user234@hoge.ne.jp" * "hugahoge" *
# Secrets for authentication using PAP # client server secret IP addresses # ユーザ名(ユーザ名@サーバ) サーバ パスワード IP の順で記述します. # ユーザ名はダブルクォーテーションでくくり,サーバ名はアスタリスクにしておきます. # パスワードもダブルクォーテーションでくくり,IP は非固定なら,アスタリスクにしておきます "user234@hoge.ne.jp" * "hugahoge" *
設定が終わったら,試験接続をしてみるといいでしょう./usr/sbin/pppd eth0 とかしてみれば,pppd が設定に従ってがんばります.もし成功すれば /var/log/message や,ifconfig をしてみると分かると思います.ADSL 回線の接続確立には結構時間がかかるようです.
ここで注意ですが,起動の優先順位をネットワークより後にして,シャットダウンの優先順位をネットワークよりも先にしてください.