*Userland PPPoEの問題点 [#we46de82]
 http://www.jraitala.net/comp/articles/2002/pppoe/ などで
 触れられているが、OpenBSDのPPPoE (Point to Point Protocol over Ethernet)は、
 ユーザランドで実行されており、あまり効率がよくない。
 というか、他のOSと比べてもダントツにパフォーマンスがよくない。
 
 うちの環境でも、ADSL (FLETS ADSL 8M)自体は下りで7Mbps台でリンクアップ
 しているのだが、実行スループットは1M弱。もったいない。
 
 2ちゃんねるの「OpenBSDユーザーコーナー」で、
 OpenBSD用のin-kernel PPPoE (カーネルモードで動作するPPPoEドライバ)が紹介
 されていたので試してみる。 ~
 http://www.pro-bono-publico.de/openbsd/pppoe/
 **実際に使ってみる [#z8e36439]
 上記サイトよりパッチをダウンロードし同梱のドキュメントに従い、
 +カーネルと関連コマンドにパッチ適用
 +リビルド
 +リブート
 +[[NetBSDのドキュメントを参考にifconfig, pppoectlコマンドなどでi/f設定→接続:http://www.netbsd.org/Documentation/network/pppoe/]]
 
 -Userland PPPoE (OpenBSDネイティブ): 70〜90kB/s
 -in-kernel PPPoE (今回試したもの): 200〜220kB/s
 
 なので、ネイティブなUserland実装の2倍以上のスループットが得られる。
 **注意事項 [#y1cd5372]
 :対応していないネットワークコマンドを発行すると、ハングアップ。|あるサイトのオープンポートを調べる目的でnmapを実行したところ、しばらくしてKernelが停止した。ifconfigやtcpdumpなどにパッチを当てるようになっているが、パッチのあたっていないraw socketを扱うネットワーク関連のコマンドを実行するのは危険かも。
 :ユーザモードPPPoEとは共存できない。|Userland PPPoEで接続をおこなったあと、一旦切断し、in-kernel PPPoEで接続すると、VM faultでpanicする。
 :デフォルトルート等の設定は行われない。|後述のifwatchdから呼び出すスクリプトに記述した方がいいかも(今回は常用するわけではないので、手動で設定した)。
 :ifwatchdを入れましょう|ネットワークの接続/切断時の処理を行うには、NetBSDで用いられているifwatchdというスクリプトを持ってきて移植する。その後;
  /usr/sbin/ifwatchd -u /etc/ppp/ip-up.hook -d /etc/ppp/ip-down.hook pppoe0
 などと実行。~
 ip-up.hookはUserland PPPoEと共用;
 --Dynamic DNSの設定
 --NTP daemonの立ち上げ直し
 --IPv4-IPv6 トンネルやSSH port forwardingトンネルの再接続など
 :リンク断が多いような気がした|
 Userland PPPoEだと、リンク断なることはほとんどなかった(1月に1回以下)が、
 in-kernel PPPoEだと比較的多く(数日に一回〜一日数回)なったようだ。
 断になっている時間は短かったが、そのつどDynamic DNSの更新が発生し、
 外部から参照できない場合もあった。
 **感想 [#t44ea37d]
 うまく接続すると、スループットも飛躍的に伸び、Uptimeも100日近く運用できたが、前項に述べたような理由でOSごと停止してしまう場合もあるので、運用には注意が必要。CPUパワーに余裕のあるマシンなら、安全性を重視してネイティブのUserland PPPoEを使うのが無難。
 
 そこらへんの問題が解決されて、正式に配布系に採用されるのがベストなんだけど‥。
 **その他 [#m34389b7]
 これとは別に[[独自に実装している人:http://www.sol.is.ritsumei.ac.jp/~sahara/diary/]]もいました。具体的なソース等は公開されていないようですが。
 **‥‥などとやっていたら、 [#dba8aa1a]
 ネイティブサポートされたようです。
 ***ネタ元 [#l307d7f1]
 ''In kernel PPPoE client''~
 http://undeadly.org/cgi?action=article&sid=20041130200439
 ***使ってみる [#safc3c1c]
 とりあえずテスト用マシンに-current ( http://kaw.ath.cx/dl/pub/OpenBSD/current/ - 20041204) をインストール。設定は通常のネットワークインターフェースやbridgeなどとおなじ、/etc/hostname.if に記述。PPPoEなので、/etc/hostname.pppoe0 を作成した。
 >/etc/hostname.pppoe0
  pppoedev ne0
  ! /sbin/ifconfig ne0 up
  ! /usr/sbin/spppcontrol \$if myauthproto=pap myauthname=XXX myauthkey=YYY
  ! /sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff
  ! /sbin/route add default 0.0.0.1
  up
 <これでOK。
 
 3.7のリリース時には、正式に含まれるのでは。
 そうしたら、このページは用無しだな。
 
 →''予想どおり含まれました''。
 ***補足 [#mbca1e84]
 -reconnectについて
 -MSS問題の解決法
 ----
 [[FrontPage]]
 
Top Index Search Recent Backups  Help  RSS