iptrace デーモン

目的

インターネット・プロトコルに対して、インターフェース・レベルのパケット・トレースを行います。

構文

/usr/sbin/iptrace [ -a ] [ -b ] [ -e ] [ -u ] [ -P Protocol_list ] [ -i Interface ] [ -p Port_list ] [ -s Host [ -b ] ] [ -d Host ] [ -L Log_size ] [ -B ] [ -Q [ -V ] ] [ -T ] [ -S snap_length] LogFile

説明

/usr/sbin/iptrace デーモンは、構成されたインターフェースから受け取ったインターネット・パケットを記録します。 コマンド・フラグは、デーモンが特定の基準に合ったパケットだけをトレースするようにフィルターを提供します。パケットのトレースが行われるのは、iptrace デーモンが開始されるローカル・ホストとリモート・ホストの間だけです。

システム・リソース・コントローラー (SRC) を使用せずにコマンド・ラインから iptrace プロセスを開始した場合は、kill -15 コマンドで停止しなければなりません。それ以外の方法で iptrace が停止されると、iptrace デーモンによってロードされたカーネル・エクステンションはメモリー内でアクティブなままになります。

LogFile パラメーターには、iptrace コマンドの結果の送信先となるファイルの名前を指定します。 このファイルをフォーマットするには、ipreport コマンドを実行します。 ipreport コマンドは、「TRACING DROPPED xxxx PACKETS」というメッセージを表示することがあります。このドロップされたパケットのカウントは、 ソケット受信バッファー・サイズを上回るラージ・パケットであるために iptrace コマンドがグラブできなかったパケット数のみを示します。 このメッセージは、パケットがシステムによってドロップされていることを示すものではありません。
注:
  1. NFS のマウント済みファイルシステム上にあるファイルを LogFile パラメーターに指定しないでください。NFS のマウント済みファイルシステム上の出力ファイルを指定すると、iptrace デーモンは停止することがあります。 この場合、 iptrace デーモンを kill することはできず、 システムを再始動する必要があります。
  2. iptracekill -9 を使用して kill された場合は、 iptrace -u を実行して bpf カーネル・エクステンションをアンロードするか、 または、単にリブートすることが必要になります。ビジーなシステムでは、iptrace によって使用されているカーネル・エクステンションがパケットを処理するのにビジーである可能性があるため、iptrace -u を複数回実行する必要があることもあります。
  3. iptrace コマンドは srcmstr もサポートし、コマンド・ラインから開始および停止できます。 コマンド・ラインから開始された場合は、kill -9 コマンドを使用して停止できます。

フラグ

項目 説明
-a ARP パケットを抑制します。
-b -d フラグまたは -s フラグを、両方向モードに変更します。
-B パケットのキャプチャーのために BPF を使用します。-B オプションを付けて iptrace コマンドを使用するとき、コマンドが WPAR 内で実行された場合はエラーが返されます。
-d Host Host 変数によってホスト指定された宛先に向かうパケットを記録します。Host 変数は、ホスト名でも小数点付き 10 進数フォーマットによる IP アドレスでも構いません。

-b フラグと共に使用する場合、-d フラグは Host 変数で指定されたホストとの間で送受信されたパケットを記録します。

-e この機能をサポートするネットワーク・アダプター上でプロミスキャス・モードを使用可能にします。
-i Interface Interface 変数で指定されたインターフェース上で受け取られたパケットを記録します。
-L Log_size このオプションを指定すると、iptrace は、始動時とおよそ Log_size バイト長ごとに LogFileLogFile.old にコピーされるように、データをログに記録します。
-P Protocol_list Protocol_list 変数 (コンマ区切りのプロトコル・リスト) で指定されたプロトコルを使用するパケットを記録します。Protocols 変数には、10 進数か /etc/protocols ファイルからの名前を使用できます。
-p Port_list Port_list 変数 (コンマ区切りのポート・リスト) で指定されたポート番号を使用するパケットを記録します。Port_list 変数には、10 進数か /etc/services ファイルからの名前を使用できます。
-Q フィルター・システムが記録されたパケットをトレースできるようにします。トレース機能が使用可能にされた後、AIX® トレース・デーモンが実行され、ネットワーク通信サブシステムに関連して選択したシステム・イベントを記録します。
注: トレース機能は、パケット・キャプチャーに Berkeley Packet Filter (BPF) を使用します。
-s Host Host 変数によってホスト指定されたソースから受信したパケットを記録します。Host 変数は、ホスト名でも小数点付き 10 進数フォーマットによる IP アドレスでも構いません。

-b フラグと共に使用する場合、-s フラグは Host 変数で指定されたホストとの間で送受信されたパケットを記録します。

-S snap_length -B フラグ ( bpf サポート) を指定して iptrace デーモンを実行したときに、snap サイズ (各パケットがワイヤーから実際にキャプチャーされる量) を指定します。 例えば、コマンド iptrace -S 1500 /tmp/iptrace.dump では、キャプチャーされるパケット・サイズが 1500 バイトに制限されます。デフォルトは 80 バイトです。
-T tcpdump に互換性のあるダンプ・ファイルを作成します。 出力を読み取るには、ipreport -T または tcpdump -r を使用します。
-u 始動時に iptrace デーモンによってロードされたカーネル・エクステンション をアンロードします。
-V ソケット・デバッグ・フラグ (SO_DEBUG ソケット・オプション) およびソケット上のトレース・レベルを設定します。このフラグは -Q フラグと一緒に使用する必要があります。

終了状況

ここのコマンドは次の終了値を戻します。

項目 説明
0 デーモンが正常に実行されました。
1
  • インターフェースが見つかりません。
  • pcap_open_live サブルーチンが失敗しました。
  • pcap_datalink サブルーチンが失敗しました。
  • pcap_lookupnet サブルーチンが失敗しました。
  • pcap_loop サブルーチンが失敗しました。
  • ホスト名が見つかりません。
  • アドレスの形式が正しくありません。
  • WPAR が操作を許可しませんでした。
  • setpri サブルーチンが失敗しました。
  • fopen サブルーチンが失敗しました。
  • fstat サブルーチンが失敗しました。
  • デーモンがリンク・タイプを検索したときにインターフェースが不明です。
2 トレース・ファイルで fread サブルーチンが失敗しました。
5
  • ソケットの作成が失敗しました。
  • 指定されたファイルは既に存在しますが、このファイルはトレース・ファイルではありません。
9
  • プロトコルが /etc/protocols ファイルにありません。
  • サービスが /etc/services ファイルにありません。
  • デーモンがトレース拡張 (netintf) のロードに失敗しました。
  • デーモンがトレース拡張のアンロードに失敗しました。

セキュリティー

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権についての詳細情報は、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. システム・リソース・コントローラー (SRC) を使用して iptrace デーモンを開始するには、次のコマンドを入力します。
    startsrc -s iptrace -a "/tmp/nettrace"
    SRC を使用して iptrace デーモンを停止するには、次のコマンドを入力します。
    stopsrc -s iptrace
  2. すべてのインターフェース上で、任意のホストとの間で送受信されるパケットを記録するには、次のフォーマットでコマンドを入力します。
    iptrace /tmp/nettrace
    記録されるパケットは、ローカル・ホストとの間で送受信されたパケットです。すべてのインターフェース上の、ローカル・ホストと他のすべてのホストとの間で送受信されるパケットが記録されます。 トレース情報は、/tmp/nettrace ファイルに収められます。
  3. 特定のリモート・ホストから送信され、あるインターフェース上で受信されるパケットを記録するには、次のフォーマットでコマンドを入力します。
    iptrace -i en0 -p telnet -s airmail /tmp/telnet.trace
    記録されるパケットは、telnet ポートを経由して、リモート・ホスト airmail から en0 インターフェースで受信されます。 トレース情報は、/tmp/telnet.trace ファイルに収められます。
  4. 特定のリモート・ホストとの間で送受信されるパケットを記録するには、次のフォーマットでコマンドを入力します。
    iptrace -i en0 -s airmail -b /tmp/telnet.trace
    記録されるパケットは、リモート・ホスト airmail から en0 インターフェース上で受信されます。 トレース情報は、/tmp/telnet.trace ファイルに収められます。