2008年6月17日火曜日

PACKET_MMAP #2

ごめんなさいっ。libpcap のパッチおかしかった。修正しましたので、以前のものを持って行った方は、取り直して下さい、すいません。でパッチのあて方ですが、debian 前提で etch lenny 共に
apt-get source libpcap0.8
して、ソースディレクトリに cd した後
etch
これ持って行って
patch -p1 < libpcap0.8-etch.patch
./debian/rules binary
で上位ディレクトリに deb パッケージが出来ます。

lenny
持って行くモノがこれ - libpcap0.8-lenny.patch 以外は etch と同じです。
以前も書きましたが configure で root 権限が必要なシステムコール使っていますので、fakeroot では無効のままです、ご注意下さい。生? の debian/patches はそれぞれ etch用lenny用にあります。また修正があったらお知らせしますし、おかしなトコがありましたら教えてやって下さい。

一つ (だけじゃないけど) イマイチなのが PACKET_RX_RING 使っているか使っていないかがわからない点。見栄えが悪いですが stderr に use PACKET_MMAP, ... なんて出力があれば PACKET_RX_RING 使っています。/proc/net/packet あたりでわかれば嬉しいけど、理解していない。

あぁ、また一つ。繰り返しになりますが、デフォルト 8Mbyte mmap します。1514 フルであれば 4096 パケットです。多すぎ? 環境変数 PCAP_MMAP_MEMSIZE をバイト単位で調節して下さい。tcpdump であれば
PCAP_MMAP_MEMSIZE=262144 tcpdump -nevi eth0 'ip and port...
あるいは
export PCAP_MMAP_MEMSIZE=524288
tcpdump ...
などなど。また ingnore や lprobe については後日、近日。と自分に言いきかせて、今日も夜が更けてくてくてく....

0 件のコメント: