トップページunix
1001コメント386KB

FreeBSDでBBルータを作ろう互助会 2Mbps

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。NGNG
高い金出して最近のへぼなブロードバンドルータ買うより全然いいと思うぞ。
「PPPoEの方法」
「NATにする方法」
「NICを2枚使う方法」
「ファイヤーウォール設定・セキュリティ対策」
その他なんでもいいからここで質問&アドバイスして輪を広げてこう。
悪質ブロードバンドルーター製品逝ってよし!

前スレ
 FreeBSDでBBルータを作ろう互助会
 http://pc.2ch.net/test/read.cgi/unix/1038060563/

最近のブロードバンドルータは安くて速いぞ。遅くてヘボいルーター作るなよ。
0831名無しさん@お腹いっぱい。NGNG
順番はそうかも知れないが、ソースコードの由来は違うと思うぞ。
0832名無しさん@お腹いっぱい。NGNG
>>830
ソースコードの由来がそれだったら激しくまずい。
NetBSDもFreeBSDもGPLにしないといけなくなる。
本当にソースコードがそういう流れをたどったの?
0833名無しさん@お腹いっぱい。NGNG
釣りだからスルー
0834 NGNG
すいません。いまさらながらですが・・下記構成がやっとできました。このスレありがとう。
Hard:
PC1:TOSHIBA EQUIUM 6405S2 (Celeron400MHz+Intel440ZX+Intel82558 Pro/100 Ethernet+RealTek 8139)
VoIPアダプタ、SHARP LC-26GD1、Pioneer TF-FS22M(コードレス電話機)
PC2:Panasonic Let's note LIGHT CF-W2 (PentiumM900MHz+Memory:768MB)
Line:B-FLET'Sマンションタイプ・プラン2 VDSL50Mbps
ISP:BB.excite+BB.exciteフォン
OS:
PC1:FreeBSD 5.2.1-RELEASE-p10
PC2:Windows XP Professional SP
PP:
ipf+ipnat(IP Filter: v3.4.31)
mpd-3.18_2
upnp-1.0.4,1
linuxigd-0.92
DDNS: dip.jp

んでもって、測定結果
flets-site: 36.74Mbps
bbexcite: 25.76Mbps

これで、fletsサイトの6Mbpsの動画もちゃんとこま落ちなく、AQUOSで見れました。
0835名無しさん@お腹いっぱい。NGNG
・・・ごめん、>>834
ちょい間違ってました。動画によっては少しこま落ちします。
CPUパワーが足りないようです。
帯域とルーティングは大丈夫で、6M動画再生中でもVoIPは
問題なく電話できたけど・・残念
0836質問です。NGNG
以前、このスレでPPPのunnumberd(だったっかな?)の話題がありましたが、
それに関しての質問です。

インターフェイスにIPアドレスを振らずにどうやって通信するのでしょうか?
/sbin/route add default -iface tun0
とかやるの?

なんか不思議な感じがするんですけど。。。(^^;
0837名無しさん@お腹いっぱい。NGNG
厨な質問でごめんなさい

RWINは設定できないんでしょうか
0838名無しさん@お腹いっぱい。NGNG
できる
0839名無しさん@お腹いっぱい。NGNG
んなこたーない
0840名無しさん@お腹いっぱい。NGNG
厨な質問でごめんなさい
Etherのフレームって、IEEE802.3でなく、EtherIIので動作ってどうやるんですか?
0841名無しさん@お腹いっぱい。NGNG
厨な質問でごめんなさい
`ipfw -a l` の結果が

00010 164331 191840929 count tcp from any 23 to me

と表示された時、左から「ルール番号、count、size, ルール」となっているらしい
んですが、この値から「any 23から受け取った総バイト数」を出すにはどうす
れば良いのでしょうか?sizeはなんか全然サイズと違う感じかんですが。
0842名無しさん@お腹いっぱい。NGNG
違う感じといわれても。
0843名無しさん@お腹いっぱい。NGNG
ipfwのマニュアルにはaccounting recordsとしか確かに書いてないね。
わからんけど、IP,TCPヘッダを抜いて総バイト数を計算して違うとか言ってない?
0844名無しさん@お腹いっぱい。NGNG
SPIは使えるのでしょうか?
0845名無しさん@お腹いっぱい。NGNG
man setkey

It describs as
The setkey utility takes a series of operations from the standard input
(if invoked with -c) or the file named filename (if invoked with -f
filename).
....
....
Operations have the following grammar. Note that lines starting with
hashmarks ('#') are treated as comment lines.

add src dst protocol spi [extensions] algorithm... ;
0846名無しさん@お腹いっぱい。NGNG
半年ぶりくらいに jp.netbsd.org 見に行ったんだけど話ができな
くなってしまいました.

-current + mpd(3.18) で ipf 使ってます.

mpd は, 先月頭くらいにに 3.15 から上げた記憶があります.
-current はだいたい, 月一で上げてます.

tcp ヘッダのおわりで frag 化されてて, fxpX 側でみると当然の
ようにヘッダ以降の frag パケット見えるんだけど, ngXの方では
該当パケットが見えてません.

で, 質問
1. ipf と mpd(netgraph) どっちを疑えばいいでしょうか?
2. ipf だとしたら, なんかルール記述が変わりましたか?
3. netgraph だったらどのモジュール見ればいいでしょうか?
0847名無しさん@お腹減った。NGNG
[netbsd:08925] Re:RFC1323対応が壊れてる?

アーカイブ、どこいった?
0848名無しさん@お腹いっぱい。NGNG
>>192 >>193
くそ、だまされた。0/32はipnatでしか使えんじゃねーか。って古くてごめん。
0849名無しさん@お腹いっぱい。NGNG
イーサフレーム、IPパケットを生成してくれるソフト(ipsorcみたいな)で
tagVlanのtype idを0x8100ではなく任意の値(0x9100、0x9200など)に
設定可能なソフトないですか。GUIでなくコマンドベースでもいいので。
0850名無しさん@お腹いっぱい。NGNG
>>849
試したわけじゃないが、/usr/include/net/etherner.hを1行変更すればいいんじゃないか?
0851849NGNG
だめでした。。。
0852名無しさん@お腹いっぱい。NGNG
>>849
ttp://nemesis.sourceforge.net/
これじゃだめ?
0853名無しさん@お腹いっぱい。NGNG
nemesis はグラディウスだったんだよ!!

ΩΩΩ<な、なんだってー
0854849NGNG
いいですねnsmesis。
type idいじれます。ただ手動でpayload作るのしんどいけど。
ありがとうございます。
0855名無しさん@お腹いっぱい。NGNG
>850

/usr/src/sys/net/etherner.h
0856849NGNG
おお!動きました。
type idが0x8100で出力されてます。
ありがとうごさいました。
0857名無しさん@お腹いっぱい。NGNG
携帯からの書き込みの為乱文失礼します。

FreeBSD4.8でmpdでルーターにしてたんですが
mpdをportsで3.18にdeinstall後reinstallしたらIPアドレスが取れなくなりました
設定が消されたのかと思うい
/usr/local/etc/mpdの設定は残ってました

何故繋がらなくなったのでしょうか?
0858857NGNG
市販ルーターで接続したので、改めてPCから詳しく書き込みます。
mpd.confの中は
default:
load provider

provider:
new -i ng0 provider PPPoE
set iface addrs 1.1.1.1 2.2.2.2
set iface route default
set iface disable on-demand
set iface idle 0
set bundle disable multilink
set bundle authname ***@dti.ne.jp
set bundle password *****
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link mtu 1454
set link mru 1454
set ipcp yes vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
open iface
こんな感じです。
前の設定のままでした。reinstallによって変更された等ではありません。

自分にはこれ以上全く見当も付かないのですが・・・(過去のmpdのバージョンアップを調べた所、大きな設定ファイルの変更等無かったようですし・・・)
一体deinstallしてreinstallした事によって何が起こってしまったのでしょうか?

0859名無しさん@お腹いっぱい。NGNG
cat mpd.links
の結果も貼りましょう。
0860名無しさん@お腹いっぱい。NGNG
長時間起動には
1:電源ボタンを押せなくする。
2:コンセントの周りを接着剤で固める。
3:電気を限りなく節約し自家発電をする。
4:丁度良い湿度に保ち、風通しを良くする。
でいいのかな?
0861名無しさん@お腹いっぱい。NGNG
>2:コンセントの周りを接着剤で固める。
それは危険です。
PCは消耗品です。
ご臨終の迎え方は様々ですが、発火の可能性も・・・

>3:電気を限りなく節約し自家発電をする。
それは損です。
自家発電は機器の元が取れるまでに、相当の期間がかかり・・・
元が取れるまでに交換の可能性が(ry
たとえ元が取れても差額は僅か・・・

素直に電気以外の節約
つまり、水道・ガスを節約しましょう。
0862名無しさん@お腹いっぱい。NGNG
ネタとしては面白いがそれは長時間マシンに通電する方法であって
長時間安定運用する方法の話ではないね。
0863名無しさん@お腹いっぱい。NGNG
ネタとしても面白くない。
0864名無しさん@お腹いっぱい。NGNG
Windows 95をルータにしてみないか??どうよ!!!
0865名無しさん@お腹いっぱい。NGNG
>>864
板違い
0866名無しさん@お腹いっぱい。NGNG
mpd + ipnat + ipf

pppoe + ipfw
ってのは良く見るんですが

mpd + ipnat + ipfwと言う組み合わせを見ないのは何か理由があるのでしょうか?
自分はWebminから市販ルーターのように設定をしたいので、Webmin用モジュールがあるipfwの方が都合がいいのですが・・・
何か不都合が出るなどがあるのでしょうか?
0867名無しさん@お腹いっぱい。NGNG
mpd + ipnatでipfwも使っているよ。
IPFilterとipfwの作者がBSDConとかでトークしていたけど。
どっちも両立できるから好きに使えって言ってた。
0868名無しさん@お腹いっぱい。NGNG
カーネルモードでパフォーマンスが良くなるからmpdを使うという理由の人は、同じ理由でnatdを使いたくないのでipnatを使おうとすることが多い。ipnat使うなら、同類でipfをってところでしょう。
867も書いているとおり、好きな組み合わせでモーマンタイ。
0869名無しさん@お腹いっぱい。NGNG
つーか、フレッツだとPath MTU Discovery Blackhole問題がでて、ipnatかまさないとmss clampできないのよ。
だからフレッツでmpdつかうんならipnat必須というか。

最近のmpdにはその機能付いたんだっけ? 試しても動作しなかったから試していないけど。
0870名無しさん@お腹いっぱい。NGNG
pfが面白そうなんだが、試してる時間が無い

日記は(ry
0871名無しさん@お腹いっぱい。NGNG
pfはkernel内でうごいてNATもしてmssな値の調整もできてライセンスもOkだしaltqとの連携もありでシンタックスも素敵。
これからはpfだとおもったり。
0872名無しさん@お腹いっぱい。NGNG
pf使ってみたいな。がんばって5.3に移行するか。
UFS2にコンバートができると良いのにな....
0873名無しさん@お腹いっぱい。NGNG
upnp使いたい自分はmpd、ipnat、ipfじゃないと無理
0874名無しさん@お腹いっぱい。NGNG
linuxigdのpatchをpf用に書き換えれば良い。
0875名無しさん@お腹いっぱい。NGNG
もれもpfには期待してる。
altqとの連携ができてdummynetでやっていたなんちゃってシェイピングから
ちゃんとしたシェイピングにできる予感がするし。
ftpをいろいろと苦労しなくてもactiveモードで使えそうだし。
OpenBSDのpf解説ページの和訳もあるし。
OSのフィンガープリントでイロイロできるし。

>>872
5.3ってUFS1も使えるはずだけど。

>>874
patch夜露死苦。
0876名無しさん@お腹いっぱい。NGNG
mpdって再コンパイルだけで行ける? 設定ファイルで更新する必要の有るところあるかなぁ。
0877名無しさん@お腹いっぱい。NGNG
>>876
PPPoE のマルチセッション回りの問題を fix したときから、
設定回りは変わっていないと思う。
バージョン変わらないんだったら、リコンパイルだけで OK
のはず。
0878名無しさん@お腹いっぱい。NGNG
質問です。
FreeBSD5.3Rでこのスレで挙がってるpfを使おうと思うんですが
/etc/rc.confに
pf=YES
と入れるだけでOKなのでしょうか?
kernelの再構築用のオプションなどがあれば知りたいのですが・・・・
0879名無しさん@お腹いっぱい。NGNG
pf使おうと思ったら、

root# pfctl -sn
pfctl: /dev/pf: No such file or directory
root# pfctl -f /etc/pf.conf
pfctl: /dev/pf: No such file or directory
root# pfctl -e
pfctl: /dev/pf: No such file or directory

と言う感じになったのですが・・・
何故でしょうか?
0880名無しさん@お腹いっぱい。NGNG
kldload
0881名無しさん@お腹いっぱい。NGNG
すみません
pf使おうとしたら、カーネルがATLQをサポートしてないので動かないと言われました
どんなオプションつけて構築すれば良いのでしょうか??
ちなみにFreeBSDのばーじよンハ5.3です。
0882名無しさん@お腹いっぱい。NGNG
>>881
man altq
0883名無しさん@お腹いっぱい。NGNG
FreeBSD5.2.1を使用しているのですが、パケットフィルタの
設定手順を知りたいのですが、手順や仕組みが解説されて
いる詳しい書籍やサイトを教えてください。

0884名無しさん@お腹いっぱい。NGNG
>883
www.freebsd.org
0885名無しさん@お腹いっぱい。NGNG
>>883
まずは ipfw の man と、ハンドブックの ipfw,ipf あたりの解説から読むと良いのではなかろうか。

--以下余談
自作FreeBSDルータより今日買ってきた Linksys の BEFSR41C の方が速いよママン
元に戻したら CF がいかれてて復旧できなくなった orz
IPv6 トンネルホストだけ別にたてなきゃ・・・
0886名無しさん@お腹いっぱい。NGNG
>>885
http://kakaku.com/bbs/Main.asp?ItemCD=007507&MakerCD=248&Product=BEFSR41C%2DJP+V2&CategoryCD=0075#2976815
ここ見る限り物凄く遅いみたいだけど・・・
というか、1M以下の異常値出してるみたいだし。。。。
0887名無しさん@お腹いっぱい。NGNG
>>886
そこの情報だけは信じない方が良い
2ch以上に工作員の巣窟だよ
もちろん全部が全部とは言わないが・・・
0888名無しさん@お腹いっぱい。NGNG
>>883
BSD絶対主義
0889名無しさん@お腹いっぱい。NGNG
FreeBSD5.3に上げてからipfilterの動作わけわからん…
5.2.1で問題無かった設定で頻繁に通信が切断される
pass allにすると大丈夫なのでipfilterが原因だと思うんだけど…ハァ
0890名無しさん@お腹いっぱい。NGNG
pppoeの無通信状態の切断時間のせいじゃないよね?
0891名無しさん@お腹いっぱい。NGNG
>>885
どうもありがとうございます。
ハンドブックを熟読して頑張ってみます。
0892889NGNG
症状としては
ルータで動いているPrivoxyをプロクシとして使ってブラウジングすると部分的に画像が表示されないことが頻繁にある
Privoxyを使わずに直接ブラウズすると大丈夫なんだけど
ipfilterでパケットを全通しにすればPrivoxyを使っていても問題なしになるので
これだけだとipfilterかPrivoxyのどちらが原因かはわからないんだが
ファイルのUL中に突然止まることがよくあるのでipfilterが原因かなと。
どちらも5.3にするまでは何も問題がなかったので設定自体には悪いところはないと思うんだが…
keep stateがうまく効いてないのかな…?
0893名無しさん@お腹いっぱい。NGNG
1年ぶりに FreeBSD 入れて mpd+pf でやってみた。
pf.conf はすっきりしてていいんだけど、
LAN 内マシンからの ftp はださださだな。
0894名無しさん@お腹いっぱい。NGNG
mpd + pfでのルーター構築の手順書いたサイトとかないかなぁ・・・
ipforwardをONにして、pf.conf書いただけではどうもウマくいかない・・・。
0895名無しさん@お腹いっぱい。NGNG
ココで書いて結果をまとめよう。
0896名無しさん@お腹いっぱい。NGNG
>>895
まとめ4649
0897名無しさん@お腹いっぱい。NGNG
>896
キミも頑張るんだよ
0898893NGNG
>>894
OpenBSDの解説の日本語訳を読んでやったら何も難しくなかったが、どこで詰まってる?
0899名無しさん@お腹いっぱい。NGNG
質問です。
pf+mpdでルーター組もうと思うんですが
GENERICなkernelオプションに追加すべきものってどれでしょうか?
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET

options ALTQ
を一応追加してるのですが、他に追加すべき物はありますか?
0900名無しさん@お腹いっぱい。NGNG
options NETGRAPH
options NETGRAPH_BPF
options NETGRAPH_ETHER
options NETGRAPH_IFACE
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_VJC
0901名無しさん@お腹いっぱい。NGNG
>>899
OSのバージョンを隠すのは何故ですか?
0902名無しさん@お腹いっぱい。NGNG
>>901
5.3からサポートじゃなかった?
つーか、それ以前でも出来るけど、どのバージョンも>>900でいけるでしょ。
0903名無しさん@お腹いっぱい。NGNG
まぁpfと書いてある時点で5.3Rだよな。
0904名無しさん@お腹いっぱい。NGNG
20040308:
The packet filter (pf) is now installed with the base system.
なので、5.3以前から使えてて>>900だけじゃ足りない時期もある。
0905名無しさん@お腹いっぱい。NGNG
うぬー 漏れもpfで詰まってる NETGRAPH関係とALTQを追加して とりあえずKernel Rebuild

問題はpf.conf 例えばだが… pass in quick on lo0 とか すげぇ簡単な理由だけ書いてみても syntax のチェックでエラー吐きやがる

というかそれ以前に (/var/log/messages より引用→) pf (pflog) module failed to load とか出てる('A') もうわけわからん
0906名無しさん@お腹いっぱい。NGNG
>>905
>問題はpf.conf 例えばだが… pass in quick on lo0 とか すげぇ簡単な理由だけ書いてみても syntax のチェックでエラー吐きやがる

それはモジュール自体がロードできてないから。
まずは
>pf (pflog) module failed to load
を何とかしないと・・・

とりあえず、/etc/rc.confのpfに関する記述をここに書いてみたら?
0907名無しさん@お腹いっぱい。NGNG
>904
気持ちはわかるが、みんな11月21日時点の話をしていると思うぞ。
0908905NGNG
>>906
FreeBSD5.3-RELEASE rc.conf
#pf

pf_enable="YES
pf_rules="/etc/pf.conf"
pf_program="/sbin/pfctl"
pf_flags="" ※もちろんipf/ipnat_enable="NO" になってる
pf_log_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_program="/sbin/pflogd"
pflog_flag=""

全く同じことやって 動いてる奴が身近に約一名…
0909905NGNG
pf_enable " 一個抜けた 実際は入ってますので
0910906NGNG
>>908
>全く同じことやって 動いてる奴が身近に約一名…
それは俺だw
やっぱり昨日見たとおり俺と同じ構成だなぁ…

あと、関係ないと思うが、ATLQ関連をpf.confに書くとどうも全てのルールが通過しなくなる。
俺のpf.conf
ext_if="ng0"
int_if="xl1"
internal_net="192.168.1.0/24"

set loginterface $ext_if

#altq on $ext_if priq bandwidth 2Mb queue { default ack } #これが駄目っぽい。
#queue default priq(default)
#queue ack priority 6

nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr on $ext_if proto tcp to port 23 -> 192.168.1.2 port 23
rdr on $ext_if proto tcp to port 69 -> 192.168.1.2 port 69
rdr on $ext_if proto tcp to port 6891 -> 192.168.1.2 port 6891

pass in all
pass out all
0911名無しさん@お腹いっぱい。NGNG
>>905

device pf
device pflog
device pfsync

↑は書いてある?
0912905NGNG
>>911 書いてないです。>>910 は書かずに動いてるようで 試してみます。
0913名無しさん@お腹いっぱい。NGNG
どっちかのkldstatした結果が違うとか
0914885NGNG
>>886
ファームウェアのバージョンによっては特定の条件下でめちゃめちゃ遅くなることがあったらしい。

最新バージョンのファームではPPPoEでIPunnumbered環境でなんのチューニングもせず40Mbpsくらいは出た。
直上のネームサーバまでpingを飛ばしてRTTをMRTGでグラフ化しているけどその計測値も下がった。
ブロードバンドスピードテストの類をやって一喜一憂する趣味はないのでこれで実用上十分。

安いのにSNMPでトラフィック情報とかがとれるのはよいかんじ。
でもアウトバウンドしかパケットフィルタが書けないのが駄目&意味不明すぎ。
ログも独自形式でしか飛ばせないし。
なのでこいつはあくまで予備機のつもりで近いうちにまたFreeBSDルータに戻す予定。

0915名無しさん@お腹いっぱい。NGNG
先ほどメモリ3GのマシンでFreeBSD4.9を使って2.5GのMFSを
作ろうとしたんですが、512MBくらいまでで容量が増えてないみたいです。
(1Gの設定で、DFを使ってみてみると512MBくらいしかない状態)
TOPコマンドで空きメモリ領域を確認すると「2939MB Free」となっているので、
OS自体はメモリを認識しているみたいです。
どなたか設定方法をご存知の方がいらっしゃれば
ご教授いただけませんでしょうか?

/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ar0s1b none swap sw 0 0
/dev/ar0s1a / ufs rw 1 1
/dev/ar0s1f /tmp mfs rw,-s=262144 0 0
/dev/ar0s1f /tmp2 mfs rw,-s=2097152 0 0
/dev/ar0s1g /usr ufs rw 2 2
/dev/ar0s1e /var ufs rw 2 2
proc /proc procfs rw 0 0

以上の設定で
%df /tmp2
Filesystem 1K-blocks Used Avail Capacity Mounted on
mfs:21 515606 2    474356 0% /tmp2
512Mくらいしか認識しない。

どうかよろしくお願いします。
0916915NGNG
スレ間違えた…無視してください(涙
0917名無しさん@お腹いっぱい。NGNG
ttp://d.hatena.ne.jp/hiro-ueda/20041123
pf 続き
0918905NGNG
>>911 その3つ追加したら module load failure は解消しました。thxです。

まぁ別の箇所で問題出てるんですが(゚∀゚)
0919名無しさん@お腹いっぱい。NGNG
ipnatのmssclampを使っているにもかかわらず、
routerから時折mss 1460なSYN packetが出てってるんだけど、
同じ状況の人いない?

ipnat.confはこんな感じ:
map ng0 192.168.0.0/24 -> 0/32 portmap tcp auto mssclamp 1334
map ng0 192.168.0.0/24 -> 0/32 portmap udp auto
map ng0 192.168.0.0/24 -> 0/32
map ng1 192.168.0.0/24 -> 0/32 portmap tcp auto mssclamp 1334
map ng1 192.168.0.0/24 -> 0/32 portmap udp auto
map ng1 192.168.0.0/24 -> 0/32

NATの内側のFreeBSD clientからFirefoxで適当なWebページ見に行くと表示が
止まるのでrouterでtcpdumpしてみたらそんな状況。
ルータはmpd 3.18 + ipf + ipnat, 3か月ぐらい前のFreeBSD 4.10-STABLE。
ちゃんとmss 1334になってるpacketもあるのが悩ましいところ。
0920名無しさん@お腹いっぱい。NGNG
なんでmssclamp 1334なの?
0921名無しさん@お腹いっぱい。NGNG
1454(MTU) - 60(IP header最大長) - 60(TCP header最大長) = 1334ってことで。
少なくともいま出ていってるTCP headerは44octetsある。

本当は途中にもっとMTUの小さいの経路があったらダメなので、これでもまだ
完璧じゃないけど。
0922名無しさん@お腹いっぱい。NGNG
昔、currentスレで出たネタと同じなのだが、5.3Rのamd64版でmpdが使えないね。
アップデートではなく、インストールCDから入れているのでnetgraphの変更による云々の
可能性はないと思う。

ちなみに、動かすとこんな感じだ。
# mpd
Multi-link PPP for FreeBSD, by Archie L. Cobbs.
Based on iij-ppp, by Toshiharu OHNO.
mpd: pid 34373555256, version (null)
mpd: caught fatal signal @
mpd: fatal error, exiting
mpd: process 0 terminated

0923922NGNG
これをgdbで起動したときのbacktraceの結果はこんな感じ。
ちなみに、cd /usr/ports/net/mpd; make CC="gcc -g"して作ったものを
gdb work/mpd-3.18/src/mpdとして動かしてる。
#0 0x0000000800d91b7e in __vfprintf () from /lib/libc.so.5
#1 0x0000000800d8fd9e in vfprintf () from /lib/libc.so.5
#2 0x0000000000421c38 in LogPrintf (fmt=0x438851 "[%s] %s node is \"%s\"")
at log.c:274
#3 0x0000000000424558 in NgFuncInit (b=0x55502c,
reqIface=0x7fffffffde30 "mpd33922-flets") at ngfunc.c:225
#4 0x0000000000412bfd in BundCreateCmd (ac=2, av=0x7fffffffe3b8,
arg=0x7fffffffdb80) at bund.c:704
#5 0x0000000000416a04 in DoCommandTab (cmdlist=0x434480, ac=5,
av=0x7fffffffe3a0) at command.c:251
#6 0x000000000041690d in DoCommand (ac=17, av=0x438851) at command.c:217
#7 0x000000000042ba59 in ReadFile (
filename=0x11 <Error reading address 0x11: Bad address>,
target=0x5 <Error reading address 0x5: Bad address>,
func=0x4168f0 <DoCommand>) at util.c:324
#8 0x0000000000416f6a in LoadCommand (ac=17, av=0x7fffffffe758,
arg=0x7fffffffdb80) at command.c:450
#9 0x0000000000416a04 in DoCommandTab (cmdlist=0x434480, ac=2,
av=0x7fffffffe750) at command.c:251
#10 0x000000000041690d in DoCommand (ac=17, av=0x438851) at command.c:217
#11 0x000000000042ba59 in ReadFile (
filename=0x11 <Error reading address 0x11: Bad address>,
target=0x2 <Error reading address 0x2: Bad address>,
#12 0x00000000004228e2 in main (ac=0, av=0x438851) at main.c:206

vfprintfの引数にSEGVを起こすような変なもんがはいっているのが原因なのは
わかったが、ここからさきどうやってデバッグを進めたらいいかわからん。
誰か教えてくんなまし。
0924923NGNG
質問なのに上げ忘れた。
あげます。
0925名無しさん@お腹いっぱい。NGNG
そこまでひとりでできる人にデバッグの進め方がわからんとか言われても、
どう反応したらいいか悩む。

とりあえずup 2してlistして、怪しそうな変数をprintしてみるとか。
0926名無しさん@お腹いっぱい。NGNG
>>922を見ると、mpdのログ関数がどうも可変長引数でバグってるような。
btを信用するとあやすいのはLogPrintfかなあ。
p gVersion するとちゃんと文字列出るよね? (どんなのが出るか知らないけどさ)
0927923NGNG
アドバイスありがとうございます。>>925さん>>926さん
>>925さんがupして出力している値を見たらどうかとおっしゃっていたので見てみたの
ですが、下記のように怪しいものは見つけられませんでした。
なお、NG_PPP_NODE_TYPEはnetgraph/ng_ppp.hで定義されているマクロのようです。
(gdb) up 3
#3 0x0000000000424558 in NgFuncInit (b=0x55502c,
reqIface=0x7fffffffde30 "mpd1488-flets") at ngfunc.c:225
225 Log(LG_ALWAYS, ("[%s] %s node is \"%s\"",
(gdb) list
220 NGM_GENERIC_COOKIE, NGM_NAME, &nm, sizeof(nm)) < 0) {
221 Log(LG_ERR, ("[%s] can't name %s node: %s",
222 b->name, NG_PPP_NODE_TYPE, strerror(errno)));
223 goto fail;
224 }
225 Log(LG_ALWAYS, ("[%s] %s node is \"%s\"",
226 b->name, NG_PPP_NODE_TYPE, nm.name));
227
228 /* Get PPP node ID */
229 if (NgSendMsg(b->csock, MPD_HOOK_PPP,
(gdb) p b->name
$1 = "flets", '\0' <repeats 14 times>
(gdb) p nm.name
$2 = "mpd1488-flets", '\0' <repeats 18 times>
0928名無しさん@お腹いっぱい。NGNG
>>927
mpd.confでlog -consoleしてみれ。
0929923NGNG
>>926さんのアドバイスどおりgVersionを表示させてみたところこのようになりました。
(gdb) p gVersion
$3 = 0x438260 "3.18 (root@作成したホストのホスト名 00:13 30-Nov-2004)"

vfprintfで問題が出ているとのご意見をいただいたのでlog.cの274行目の
vfprintfをコメントにして実行しましたところ表示は出なくなりましたが、
SEGVが発生することなく実行ができました。
というわけで、log.cの274行目のvfprintfをコメントにして使ってみようと思います。

ちなみに、amd64でmpdを使う場合の問題ですが
Logのマクロを通った後で値がおかしくなる気がするのでその近辺で
何かがあると思いますが、まだつかめていません。
0930923NGNG
>>928
やってみましたがあいかわらずSEGVで落ちます。
log.cの274行目のvfprintfを殺さずに-b起動してもSEGVで落ちることから
consoleにはかないようにしてもログに吐くことで同じ症状がでるのでは
ないかと思います。
レス数が900を超えています。1000を超えると表示できなくなるよ。