snoop コマンドを使用すると、データ転送の状態を監視できます。snoop コマンドは、ネットワークパケットを取り込んで、その内容を指定された書式で表示します。取得したパケットについては、そのまま表示することも、ファイルに保存することも可能です。snoop が中間ファイルに書き込む場合、トレースのビジー状態でパケットロスはほとんど発生しません。そのあと、snoop 自体はファイルの解釈に使用されます。
デフォルトのインタフェースにおいて、パケットをプロミスキュアスモードで取り込むには、ネットワーク管理者役割になるか、スーパーユーザーになる必要があります。要約形式では、snoop は最高レベルのプロトコルに関連するデータだけを表示します。たとえば NFS パケットでは、NFS 情報のみが表示されます。RPC、UDP、IP、および Ethernet のフレーム情報は抑止されますが、verbose (詳細表示) オプションのいずれかを選択してあれば表示できます。
頻繁かつ定期的に snoop を使用して、システムが正常に動作している場合の状態を把握してください。最近の白書や RFC を参照したり、NFS や NIS といった特定分野の専門家からアドバイスを受けたりするのも、パケットの分析に役立ちます。snoop とそのオプションの使用法については、snoop(1m) のマニュアルページを参照してください。
ローカルホスト上で、ネットワーク管理者役割になるか、スーパーユーザーになります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムに接続されているインタフェースについての情報を出力します。
# ifconfig -a |
snoop コマンドは通常、最初の非ループバックデバイス (通常は一次ネットワークインタフェース) を使用します。
例 8–19 に示すように、snoop コマンドを引数なしで入力して、パケットの取り込みを開始します。
Ctrl-C キーを押してプロセスを停止します。
基本の snoop コマンドは、デュアルスタックホストに対して、次のような出力を返します。
% snoop Using device /dev/hme (promiscuous mode) farhost.remote.com -> myhost RLOGIN C port=993 myhost -> farhost.remote.com RLOGIN R port=993 Using device /dev/hme router5.local.com -> router5.local.com ARP R 10.0.0.13, router5.local.com is 0:10:7b:31:37:80 router5.local.com -> BROADCAST TFTP Read "network-confg" (octet) farhost.remote.com -> myhost RLOGIN C port=993 myhost -> nisserve2 NIS C MATCH 10.0.0.64 in ipnodes.byaddr nisserve2 -> myhost NIS R MATCH No such key blue-112 -> slave-253-2 NIS C MATCH 10.0.0.112 in ipnodes.byaddr myhost -> DNSserver.local.com DNS C 192.168.10.10.in-addr.arpa. Internet PTR ? DNSserver.local.com myhost DNS R 192.168.10.10.in-addr.arpa. Internet PTR niserve2. . . farhost.remote.com-> myhost RLOGIN C port=993 myhost -> farhost.remote.com RLOGIN R port=993 fe80::a00:20ff:febb: . fe80::a00:20ff:febb:e09 -> ff02::9 RIPng R (5 destinations) |
この出力に取り込まれたパケットはリモートログインの様子を示しています。この中には、アドレス解決のための NIS サーバーと DNS サーバーへの問い合わせが含まれます。また、ローカルルーターからの定期的な ARP パケットや、IPv6 リンクローカルアドレスから in.ripngd への通知も含まれます。
ローカルホスト上で、ネットワーク管理者役割になるか、スーパーユーザーになります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
snoop セッションをファイルに取り込みます。
# snoop -o filename |
次に例を示します。
# snoop -o /tmp/cap Using device /dev/eri (promiscuous mode) 30 snoop: 30 packets captured |
この例では、30 個のパケットが /tmp/cap というファイルに取り込まれています。ディスク容量が十分にあれば、ファイルはどのディレクトリにでも格納できます。取り込んだパケットの数はコマンド行に表示され、Ctrl-C を押せばいつでも終了できます。
snoop 自体によってホストマシン上にネットワーク負荷がかかるので、結果に誤差が生じる場合があります。実際の結果を表示するには、第 3 のシステムから snoop を実行します。
snoop 出力取り込みファイルを検査します。
# snoop -i filename |
次に、snoop -i コマンドから返される出力など、さまざまな取り込みの例を示します。
# snoop -i /tmp/cap 1 0.00000 fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor advertisement 2 0.16198 farhost.com -> myhost RLOGIN C port=985 3 0.00008 myhost -> farhost.com RLOGIN R port=985 10 0.91493 10.0.0.40 -> (broadcast) ARP C Who is 10.0.0.40, 10.0.0.40 ? 34 0.43690 nearserver.here.com -> 224.0.1.1 IP D=224.0.1.1 S=10.0.0.40 LEN=28, ID=47453, TO =0x0, TTL=1 35 0.00034 10.0.0.40 -> 224.0.1.1 IP D=224.0.1.1 S=10.0.0.40 LEN=28, ID=57376, TOS=0x0, TTL=47 |
snoop を実行するシステムから、クライアントまたはサーバーのいずれかに接続されたハブを外します。
この第 3 のシステム (snoop システム) はサーバーとクライアント間のすべてのトラフィックを監視するので、snoop のトレースには実際のネットワーク上の状態が反映されます。
snoop システム上で、ネットワーク管理者役割になるか、スーパーユーザーになります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
snoop をオプションなしで入力して、その出力をファイルに保存します。
出力を検査および解釈します。
snoop 取り込みファイルの詳細については、「RFC 1761, Snoop Version 2 Packet Capture File Format」を参照してください。
snoop コマンドを使用すると、IPv6 パケットだけを表示できます。
ローカルノード上で、ネットワーク管理者役割になるか、スーパーユーザーになります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
IPv6 パケットを取り込みます。
# snoop ip6 |
snoop コマンドの詳細については、snoop(1m) のマニュアルページを参照してください。
次に、あるノード上で snoop ip6 コマンドを実行したときに返される典型的な出力の例を示します。
# snoop ip6 fe80::a00:20ff:fecd:4374 -> ff02::1:ffe9:2d27 ICMPv6 Neighbor solicitation fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor solicitation fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor solicitation fe80::a00:20ff:febb:e09 -> ff02::9 RIPng R (11 destinations) fe80::a00:20ff:fee9:2d27 -> ff02::1:ffcd:4375 ICMPv6 Neighbor solicitation |