備忘録

PPPoE接続について( ´ω`)

どうにも接続断後の再接続に行ってくれないので調査した結果を残す。

1.読み込む設定
動きを確認するため、pppoe-statusの中身をたどってみた。

/etc/sysconfig/network-script/ifcfg-pppX

があれば、その中身を読み込んでいる。
ところが、-xオプションで確認すると読み込んでいないヨウス。
そしてそのままエラー終了となる。

仕方ないので続きを追うと

/etc/ppp/pppoe.conf

を読もうとしている。が、そんな物はないし作ってもいないが、
案の定、shareにテンプレートがあった。
試しに置いてみると、こちらは読み込み接続状況が表示される。

2.シェル

pppoe-status

とだけ打つと再接続する。

sh -x pppoe-status

で確認しようとすると、エラーで終了する。

スクリプトの中身を見て、bashとshの差だということに気がついた(‘A`)

bash -x pppoe-status

とすると、再接続にいく。

これでifcfgを読まないのに合点がいった。

3.オプションの内容
一番最初にpppoe-setupで作ったのだが、何処に何が作られたのか確認していない。
何となくifcfg-ppp0と、chap/papの中身だろうとだけ思っていた。
質問内容もよくわからないまま答えていったので、iptablesではまったわけだが・・・。
pppoe.confのテンプレも見つけたことだし、man読む。
pppoe-startなどを読むに、pppoe.confは書かずに、
ifcfg-pppXに書く(pppoe-setupで作る)のが今の流儀のヨウス
(ifcfg-pppXがpppoe.confを上書くので)。

なのでifcfg-ppp0を以下とした。
LCPによるハートビート間隔を短めにし、PPPoEクライアントのタイムアウトを伸ばし
接続断になりにくい状況を期待する。

USERCTL=no
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=no
PIDFILE=/var/run/pppoe-adsl.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=120
LCP_FAILURE=2
LCP_INTERVAL=10
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=0
DEFROUTE=yes
SYNCHRONOUS=no
ETH=eth0
PROVIDER=DSLppp0
USER=xxxxxxxxxxxxxx
PEERDNS=no
DEMAND=no
DNSTYPE=SPECIFY
DNS1=xxx.xxx.xxx.xxx
DNS2=yyy.yyy.yyy.yyy
LINUX_PLUGIN=/usr/lib64/pppd/2.4.5/rp-pppoe.so

3.kernel mode
試しに入れてみたものの、なんだかサイト表示に問題が生じだした。
表示出来ないサイトが徐々に増えて行く。
理由はさっぱりわからないが、LINUX_PLUGINを空にする(user mode?)と正常表示されるので
使わないことにした。別にCPU負荷もないし・・・。
manには2.4.xのexperimentalで未サポートともある・・・w

4.ログ
syslogに吐かれているのを今知ったww
大量に

pppoe[xxxxx]: Bad TCP checksum xxxx

と吐かれている。
SYNCHRONOUS=yesにすると良いとか、CLAMPMSS=noでkernel modeにすると良いとか
iptables側で設定すると良いとか、おまじない程度の情報しかない。
設定を見直しての再起動後、今のところ出ていないのでひとまず様子見。

これでダメならまた小細工してみるか・・・(´・ω・`)