ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

NetBSDコミュのルータ速度の向上

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ルータ兼サーバとしてFreeBSDで動かしていたノートPCをNetBSD3.1に入れ替えてみました(ルータとしてのスループット向上を期待)。そしたらスループットは以前よりもむしろ下がってしまいました。。。

速度測定サイトなどで調べると以前は2〜3Mb/sくらい出たのですが、入れ替え後は1Mb/sまでも出ないです。マシンのスペックがThinkPad760EというPentium150MHzのレトロPCなのでそれほど高いスループットは期待してませんが、以前と同等か若干でも上回る性能は出るんじゃないかと期待していました。
何か設定の変更等で改善できるのではと思い、ここに相談で書き込ませてもらった次第です。

プロバイダはPPPoEで任意のグローバルIPを1個割り当てる方式。NAT機能とフィルタとMSS調整にpfを使いました。カーネルはipfや不要なNICのオプション等を削除し、パケット転送可にしてpfのオプションを追加して再構築しています。

抽象的な質問ですいません。ルータとして動かすのに設定の調整で改善できることがあればと思いまして

コメント(10)

答えでなくて済みません。僕も、この話には大変興味があります。といいますか、もう何年も NetBSD Router を使っています。使い始めた頃 (1.6O) は 1.5MB/s くらいしか出ないな、と思っていたのですが、最近やっと 3MB/s くらいになった気がしています(3.99.21)。
(PPPoE + ipfilter + ipnat ) の構成です。
使っている CPU は PowerPC の G3/300MHz です。
pkgsrc/benchmarks/bytebench で測ると 45 くらいのものです。

(ちなみに速さは、大抵の場合 ftp.dti.ad.jp で get ls-lR.gz /dev/null して測っています)。
>絹さん

私のマシンはbytebenchで測るとFINAL SCOREは19.1と出ました。だいぶ非力ですね(^^;)。
ftp.dti.ad.jp での get ls-lR.gz /dev/null では、
>35765986 bytes received in 04:51 (119.94 KB/s)
ということで約960kb/sということで約1Mb/sです。

>obacheさん

どの部分が遅いというと、
 どっかのサーバ→(PPPoE)→NetBSD
の部分ですでに遅いようです。というのはNetBSDマシンから直接どっかのサーバの大きいファイルをダウンロードしても遅くて転送が途中でタイムアウトしてしまうこともあるからです。

しかし、一つ気になる点として、アップロードの速度はわりと出てるんです。速度測定サイトで調べると場所にもよりますが3〜5Mb/sくらいでるんです。なのでマシンのルータ性能としてはそのくらいは出るのに下り方向はなぜか1Mb/sを下回るという・・・

NICはWAN側にPlanex FNW-3600-TX、LAN側にMELCOのLPC2-TXというのを浸かっています。この同一マシンに同一NICで以前はFreeBSDでルータ動かしていて下り最大で3M弱出てたので、そのレベルの速度までは出てくれるのではないかと思うのですが。
えーと、ちゃんと書かなくて済みません。僕の単位は MByte/s です。
ですから 1.5MB/s -> 12Mbps, 3MB/s -> 24Mbps です。
測定は obache さんが書かれているように手元の機械からルータを通して ftp したものです。ただ、ルータ自身から ftp.dti.ad.jp に ftp して見ても、大体同じような測度になります。

使っている NIC は、次のものが三枚です。

tlp0 at pci0 dev 13 function 0: DECchip 21143 Ethernet, pass 3.0
tlp0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

それで、CPU の性能や、バスの速度が、結構効いてくると理解しています。400MHz の CPU + gm0 で対向で ftp して見ると 64Mbps (8MB/s) くらいは出ることはあります。しかし、僕が使っているルータは箱としては遅いもののはずなので、単体でも、そこまでは出ません。でも今、良く似た機械とルータの間で対向で測ったら
ftp> get /netbsd /dev/null (5.03 MB/s)
くらいにはなりました。対向というのはハブを一つだけ通してつながっている機械同士での ftp という意味です。実はこの 5.03 MB/s は対向ではなく、ルータを通しているものでした。

(1.2GHz CPU + gm0) ... (ルータ) ... (ルータと良く似た機械) の LAN の場合です。

気になる話としては、10k .. 20k 円くらいで売られているルータの宣伝文句です。これらは、88Mbps とか言っていますが、NAT 等を使わない時の測定なので、それと単純比較は出来ないと思っています。しかも、手元の測定は実環境ですから、全然比較の基準が違うとも言えます。
どうも話を違う方向に持って行ってしまったようで、済みません。
・PPPoE の速さが問題になっている
・FreeBSD なら 2-3Mbps なのに NetBSD 3.1 だと 1Mbps くらいしか出ない
ということだと思います。僕の場合との比較で考えると、もう少し速くてもいいという気がします。でも違いはとりあえず pf なのか ipnat + ipfilter か、くらいしか思いつきませんね。
こんばんは。

ノートPCでPCカードという時点で、結構厳しいものもあろうかと思います。(両方ともne(4)でしょうか?)

比較対照にはなりませんが、カーネルモードなpppoe(4)、LANはPCIなrtk(4)で、Bフレッツ・ファミリーな接続で、単純にとあるリモートからftpで、

3216451 bytes received in 00:03 (872.47 KB/s)

といった結果を得ています。ただし、ftpのクライアントはルータ相当のマシン上ですので、ルーティングではなくPPPoEから先の通信速度となります。

いずれにしても途中でタイムアウトする、というのは尋常ではないと思います。

何となく、pfの代わりにIP Filterにすると何か変わるかもしれません。
カードはneです。

やはりpfが問題なのでしょうか。
ipfでも試してみるのがよさそうですね。
時間見つけてやってみようと思います。
VIA C3 (533MHz)なマシンをNetBSD 3.1で使っていて、似たような構成になっている気がしますので、ちょっと計ってみました。
回線はADSL(フレッツモアスペシャル)で、ISP1(NetBSDマシンがルータ)とISP2(WN-APG/BBRがルータ)に別のPPPoEセッションで繋いでいます。
NICは、

vr0 at pci0 dev 18 function 0: VIA VT6102 (Rhine II) 10/100 Ethernet
rtk0 at pci0 dev 20 function 0: Realtek 8139 10/100BaseTX

で、rtk0側がPPPoEです。
基本的には/etc/ipf.confで簡単なフィルタ、/etc/ipnat.confでNATとMSSの調整をやっています。
また、/etc/sysctl.confで、以下のようなパラメータを設定していました。どうやって決めたかは忘れてますが、ざっくりと倍になっていると思います。

# performance tuning
net.inet.ip.maxflows=512
net.inet.ip.maxfragpackets=512
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536

下記の通り、ISPの違いがありますが、8Mbpsぐらいはでている感じで、直収(1)でもルーティング(2)でも大差がない感じです。

(1)[PPPoE on NetBSD via ISP1]
ftp> get ls-lR.gz /dev/null
local: /dev/null remote: ls-lR.gz
229 Entering Extended Passive Mode (|||44349|)
150 Opening BINARY mode data connection for ls-lR.gz (35771917 bytes).
226 Transfer complete.
35771917 bytes received in 00:31 (1.08 MB/s)

(2)[NetBSDをルータにして手元のLinuxから via ISP1]
ftp> get ls-lR.gz /dev/null
local: /dev/null remote: ls-lR.gz
227 Entering Passive Mode (202,216,228,228,174,7)
150 Opening BINARY mode data connection for ls-lR.gz (35771917 bytes).
226 Transfer complete.
35771917 bytes received in 30.9 secs (1.1e+03 Kbytes/sec)

(3)[WN-APG/BBRをルータにしてLinuxから via ISP2]
ftp> get ls-lR.gz /dev/null
local: /dev/null remote: ls-lR.gz
227 Entering Passive Mode (202,216,228,228,173,134)
150 Opening BINARY mode data connection for ls-lR.gz (35771917 bytes).
226 Transfer complete.
35771917 bytes received in 36.6 secs (9.5e+02 Kbytes/sec)

このマシンになる前は、Pentium233MHzのDynabookに、PCMCIAのNICを二枚挿してルータにしていましたが、まじめにチューニングしてなかったのもあるのか、1〜2Mbpsが精一杯だったような記憶がありますが、良く覚えていません。
# 構成はひっぱりだしてこないとよくわかりません(_o_)
pfを外してipfを組み込んでカーネルを再構築しました。

ipf+ipnatで動かしてみましたがパケット転送速度の
改善はほとんどみられませんでした。

前回同様のネット速度測定サイトでは下り速度1Mbps弱です。
ftp.dti.ad.jp での get ls-lR.gz /dev/null では、
>36844945 bytes received in 04:20 (137.89 KB/s)
ということで約1Mbpsです。

マシン的にこの程度の速度が限界ということなんですかねぇ。
FreeBSDではipfw+natdで動かしていてももっと出ていたし、
NetBSDの方がパフォーマンスが出るのではと期待していた
のですが。。。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

NetBSD 更新情報

NetBSDのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング