Date: Mon, 1 Feb 99 21:15:52 JST From: SHUDO Kazuyuki Subject: [JavaHouse-Brewers:23252] Re: SNMP Packet Monitor To: java-house-brewers at java-house.etl.go.jp (JavaHouse Brewers ML) Message-Id: <199902011214.VAA18700@cafe.muraoka.info.waseda.ac.jp> 首藤です。 阿部@東北リコーさん wrote: >  昨年末?にこちらのMLで教えていただいたSNMPのパッケージを利用し、 > SNMPパケットダンプツールを(ようやく)作り始めました。 >  開発環境:Win4.0(SP3)+JDK1.2 >  2.他PC間の通信パケットの取得方法(<--これが不明です) >    (3)監視対象が別のPCと通信しているのをどのように監視すれば・・・ >  p.s 独り言モード・・・ >    SNMPはUDPを使う。UDPは葉書方式の通信でブロードキャスト。 >    なら、自PCにいやでもパケットは届いているはず・・・ 他の PC 間の通信内容が自PC (監視に使う PC) に届いているかどうかは、 UDP, TCP 云々に関係ないです。 IP の下のレイヤについて考える必要があります。 例えば、自 PC がリピータハブにつながっていれば、 そのリピータハブにつながっている他の PC 間の通信内容は、 自 PC に届いているはずです。 しかし、自 PC がスイッチングハブにつながっていたら… 以下、自 PC に監視対象のトラフィックが届いているとすると >    普段はホスト名でフィルタされて、自PC当てのパケット以外は振るい >    落としているのだから、フィルタをかけずに他PC当てのパケットを >    取り込めれば(表示できれば)いい・・・とは思うのですが・・・ その通りです。 以下、私が UNIX 系統の OS について知っていることを書きます。 Windows ではどうなっているのか知らないですが、 考え方は通じるのではないかと思います。 どなたか嘘に気付いたら訂正して下さいませ。 要旨: ネットワークインタフェース promiscuous モードにせよ。 でも Java からその制御を行えるかどうかは知らない。 通常、ネットワークインタフェース (le0, hme0, de0, eth0, ...) を通じては、 そのインタフェースに割り当てられている IP アドレスが受け取るべき トラフィックしか入手できません。 例えば IP アドレス 192.168.0.3/24 のインタフェースでは、 192.168.0.3, 192.168.0.255 (ブロードキャストアドレス), 192.168.0.0 (ネットワークアドレス) 宛のトラフィックを受け取れます。 あらゆるトラフィックを受け取りたい場合、ネットワークインタフェースを promiscuous モードにしなければなりません。 ネットワークインタフェースが promiscuous モードかどうかは % ifconfig インタフェース名 として `UP BROADCAST ....' という行に `PROMISC' という文字列があるかどうかで わかります。 Linux ですと、ifconfig eth0 promisc とすることで、 手で promiscuous モードにできます。 プログラム中からは ioctl(...) で設定します。 具体的な方法は、世の中に転がっている sniffer の類のソースを見て下さい。 tcpdump, libpcap, ifconfig などのソースが参考になるかと思います。 上の文では省きましたが、 あらゆる IP アドレス宛を受け入れるのか、 あらゆるトラフィック (IP 以外も) を受け入れるのかも、 ioctl(...) の使い方で変えられるようです。 さて、Java で、このようなネットワークインタフェースの細かい制御が できるかどうかは知りません。 おまけ: ネットワークインタフェースが promiscuous モードになっていると、 ifconfig の結果はこのようになります。 eth0 Link encap:Ethernet HWaddr 00:00:F4:38:B2:43 inet addr:133.9.68.51 Bcast:133.9.68.63 Mask:255.255.255.192 inet6 addr: 3ffe:503:1030:2000:200:f4ff:fe38:b243/64 Scope:Global inet6 addr: fe80::200:f4ff:fe38:b243/10 Scope:Link inet6 addr: fe80::f438:b243/10 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 ^^^^^^^ これ RX packets:764192 errors:0 dropped:0 overruns:0 frame:197 TX packets:529702 errors:1 dropped:0 overruns:0 carrier:1 collisions:28923 SHUDO Kazuyuki/首藤一幸 私をたばねないで あらせいとうの花のように shudoh at muraoka.info.waseda.ac.jp