PPPoEのマルチセッション!! イイ(・∀・)!!

linuxのルータ構築で、PPPoEのマルチセッションについて調べたメモです。
最初は戸惑いましたが、分かってみたらとても簡単でした。

CentOS 5.3です。(・◇・)

linuxでPPPoEセッションを張るときは、adsl-setupかpppoe-setupのどちらかで
作っていくと思います。今回はとりあえず1回線分は張れている事を前提とします。

adsl-setupの場合(設定)

/etc/sysconfig/network-scripts/ifcfg-ppp0
/etc/ppp/chap-secrets
/etc/ppp/pap-secrets

上記ファイルがあるはずです。
ここからマルチに持っていくのはとても簡単です。

#cd /etc/sysconfig/network-scripts
#cp ifcfg-ppp0 ifcfg-ppp1

とりあえず、ifcfg-pppをコピーにより増やします。
そして中身をちょっと編集します。

USERCTL=yes
BOOTPROTO=dialup
NAME=DSLppp1  ←ppp1に変更!!
DEVICE=ppp1  ←ppp1に変更!!
TYPE=xDSL
ONBOOT=no
PIDFILE=/var/run/pppoe-adsl.pid2  ←被らない名前に変更!!
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=80
LCP_FAILURE=3
LCP_INTERVAL=20
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
DEFROUTE=yes    ←yesでもnoでも構わない(どういうマルチ接続にするか次第)
SYNCHRONOUS=no
ETH=eth0      ←ppp0と同じでも、違えても構わない。
PROVIDER=DSLppp1  ←ppp1に変更!!
USER=XXXXXXXXXXXX  ←もう1つの回線の契約者IDに変更!!
PEERDNS=no
DEMAND=no

次は、chap-secretsとpapsecretsの方も編集します。
ってゆーか、このファイルにはIDとパスワードのセットが入っているだけなので、
増やしたい回線のそれを1行追加すればOKです。

#cd /etc/ppp
#vi chap-secrets ←開いて1行追加するだけ。
#vi pap-secrets   ←開いて1行追加するだけ。

これでセットアップは完了です。

adsl-setupの場合(起動と終了とステータス)

ファイルを指定してコマンドを実行するだけです。

これで2回線分のセッションが腫れます。

adsl-start /etc/sysconfig/network-scripts/ifcfg-ppp0
adsl-start /etc/sysconfig/network-scripts/ifcfg-ppp1

終了もファイル指定です。

adsl-stop /etc/sysconfig/network-scripts/ifcfg-ppp0
adsl-stop /etc/sysconfig/network-scripts/ifcfg-ppp1

ステータス確認も同様

adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0
adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp1

pppoe-setupの場合(設定)

/etc/ppp/pppoe.conf
/etc/ppp/chap-secrets
/etc/ppp/pap-secrets

上記ファイルがあるはずです。
因みにpppoe-setupで作ると、ifcfg-pppのファイルは無いです。(・◇・)

ここからマルチに持っていくのは簡単です。
お察しの通り、pppoe.confファイルをコピーで増やして中身をちょっと修正するだけです。
因みにコピー後のファイル名は何でも良いです。
但し、使う使わないはともかく「pppoe.conf」という名前のファイルが無いと、次回pppoe-setupを
実行しようとした時に怒られるので注意です。

#cd /etc/ppp
#cp pppoe.conf pppoe1
#cp pppoe.conf pppoe2

こんな感じで、pppoe1とpppoe2を作り、pppoe2の中身の方を修正しました。
※pppoe.confは以降触らないでそっとしておく。(・◇・)

修正の中身は・・・、ファイルを開けば判ると思います。

pppoe-setupの場合(起動と終了とステータス)

こっちも、ファイルを指定してコマンドを実行するだけです。

これで2回線分のセッションが腫れます。

pppoe-start /etc/ppp/pppoe1
pppoe-start /etc/ppp/pppoe2

終了もファイル指定です。

pppoe-stop /etc/ppp/pppoe1
pppoe-stop /etc/ppp/pppoe2

ステータス確認も同様

pppoe-status /etc/ppp/pppoe1
pppoe-status /etc/ppp/pppoe2

補足事項

  • 設定ファイルと「ppp0」「ppp1」の関連

 セッションを張った後にifconfigコマンドで確認が出来ますが、ここでの「ppp0」「ppp1」は、
 ifcfg-ppp0がppp0に(pppoe1がppp0に)対応しているのかと思いきやそうでは無いです。

 セッションを張った順番に「ppp0」「ppp1」って感じになるだけです。
 ちょっとややこしいので注意です。

  • デフォルトルートの指定

 設定ファイルifcfg-pppXやpppoeXの中に、「DEFROUTE=yes」の指定がありますが、
 これが「yes」だと、そのファイルで起動を掛けた時に、そのpppがデフォルトルートに為る
 というものです。
 なので全部の設定ファイルが「DEFROUTE=yes」だったとしたら、一番最後のやつがデフォルトルート
 になります。

 但し、/etc/sysconfig/networkファイル内の「GATEWAY」が指定してあると、常にそこが有効らしく、
 PPPoEでセッションを張っても、期待するゲートウェイになってくれなかったです。

 なので自分は、/etc/sysconfig/networkの方はコメントアウトにしました。

 常にどこか1箇所からしか出力しないのでは、マルチセッションの意味が半減です。
 出力先に合わせて動的にゲートウェイを変更するには、ipコマンドによるルーティングの設定が
 必要になります。

 これに関しては、次回に持ち越します。(・◇・)ノ
 取りあえず今回はPPPoEのマルチセッションの方法までとします。<(;_ _)>