Catch up with 4.3-20010729-JPSNAP

This commit is contained in:
Kazuo Horikawa 2001-07-29 22:12:32 +00:00
parent 5017f3164b
commit fe36202896
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=10092
4 changed files with 634 additions and 313 deletions

View file

@ -1,4 +1,4 @@
.\" @(#) %Header: /tcpdump/master/tcpdump/tcpdump.1,v 1.72.2.2 2000/01/29 16:42:03 itojun Exp % (LBL)
.\" @(#) $Header: /home/ncvs/doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.16 2001-07-29 22:12:31 horikawa Exp $ (LBL)
.\"
.\" Copyright (c) 1987, 1988, 1989, 1990, 1991, 1992, 1994, 1995, 1996, 1997
.\" The Regents of the University of California. All rights reserved.
@ -20,10 +20,10 @@
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\"
.\" %FreeBSD: src/contrib/tcpdump/tcpdump.1,v 1.8 2000/01/30 01:00:55 fenner Exp %
.\" %FreeBSD: src/contrib/tcpdump/tcpdump.1,v 1.8.2.1 2001/07/26 22:30:02 fenner Exp %
.\"
.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.14 2001/05/27 01:03:56 horikawa Exp $
.TH TCPDUMP 1 "30 June 1997"
.TH TCPDUMP 1 "3 January 2001"
.SH 名称
tcpdump \- ネットワーク上のトラフィックデータのダンプ
.SH 書式
@ -71,6 +71,10 @@ tcpdump \-
.br
.ti +8
[
.B \-E
.I algo:secret
]
[
.I expression
]
.br
@ -90,13 +94,16 @@ tcpdump \-
への読み込みアクセス権が必要です。
.B Solaris 上の dlpi の場合:
.IR /dev/le
等のネットワーク仮想デバイスへの読み込みアクセス権が必要です。
等のネットワーク仮想デバイスへの読み書きアクセス権が必要です。
.B HP-UX 上の dlpi の場合:
root か root に setuid されてインストールされている場合のみ実行可能です。
使用者が root であるか、
プログラムが root に setuid されてインストールされている場合のみ実行可能です。
.B IRIX 上の snoop の場合:
root か root に setuid されてインストールされている場合のみ実行可能です。
使用者が root であるか、
プログラムが root に setuid されてインストールされている場合のみ実行可能です。
.B Linux の場合:
root か root に setuid されてインストールされている場合のみ実行可能です。
使用者が root であるか、
プログラムが root に setuid されてインストールされている場合のみ実行可能です。
.B Ultrix および Digital UNIX の場合:
スーパユーザが、
.IR pfconfig (8)
@ -128,6 +135,28 @@ root
.B \-e
各ダンプ行ごとに、リンクレベルのヘッダを出力します。
.TP
.B \-E
\fIalgo:secret\fP を、IPsec ESP パケットの解読に使用します。
アルゴリズムは
\fBdes-cbc\fP,
\fB3des-cbc\fP,
\fBblowfish-cbc\fP,
\fBrc3-cbc\fP,
\fBcast128-cbc\fP,
\fBnone\fP
のいずれかです。
デフォルトは \fBdes-cbc\fP です。
パケット解読能力は、
\fItcpdump\fP が暗号機能付きでコンパイルされた場合のみ存在します。
\fIsecret\fP は、ESP 秘密鍵の ASCII テキストです。
現状、任意の 2 進数値を使用できません。
本オプションは、RFC1827 ESP ではなく、RFC2406 ESP を仮定します。
本オプションは、デバッグ専用であり、
本当の「秘密」鍵に対する使用は勧められません。
IPset 秘密鍵をコマンドラインに置くと、
.IR ps (1)
等によって他者に見えてしまいます。
.TP
.B \-f
外部ホストの IP アドレスについては、シンボルでなく数値で表示します。
(本オプションは、Sun の yp サーバに重大な障害が発生するのを回避するこ
@ -144,6 +173,11 @@ IP
最も小さい番号の稼働中のものを検索し、監視するインタフェースとして設定
します (ループバックインタフェースは検索しません)。
この動作は、最初にインタフェースが選択された時点で終了します。
.IP
2.2 以降のカーネルの Linux システムでは、
.I interface
引数 ``any'' を指定して全インタフェースからのパケットを捕捉可能です。
``any'' デバイスでの捕捉は、promiscuous-mode ではないことに注意してください。
.TP
.B \-l
標準出力を行バッファリングにします。データを捕捉しつつ、
@ -163,7 +197,7 @@ IP
.TP
.B \-m
SMI MIB モジュールの定義を、ファイル \fImodule\fR からロードします。
複数の MIB モジュールを tcpdump にロードするために、
複数の MIB モジュールを \fItcpdump\fP にロードするために、
本オプションを複数回使用可能です。
.TP
.B \-O
@ -200,10 +234,13 @@ SMI MIB
いうことに注意してください。これにより、パケットが消失するかもしれませ
ん。\fIsnaplen\fP の大きさを、必要なプロトコル情報を取得できる最小の値に
とどめるようにしてください。
\fIsnaplen\fP を 0 に設定すると、
パケット全体の捕捉に必要な長さを使用することを意味します。
.TP
.B \-T
"\fIexpression\fP" により選択されたパケットを強制的に \fItype\fR
指定されたタイプと解釈します。有効なタイプは、
\fBcnfp\fR (Cisco NetFlow プロトコル),
\fBrpc\fR (リモートプロシージャコール)
\fBrtp\fR (リアルタイムアプリケーションプロトコル)
\fBrtcp\fR (リアルタイムアプリケーション制御プロトコル)
@ -225,11 +262,19 @@ TCP
各ダンプ行のタイムスタンプを出力しません。
.TP
.B \-tt
各行毎にタイムスタンプを人間が読みやすい形に変換せずに出力します。
各ダンプ行毎にタイムスタンプを人間が読みやすい形に変換せずに出力します。
.TP
.B \-ttt
直前のダンプ行と現在のダンプ行の差分 (マイクロ秒単位) を表示します。
.TP
.B \-tttt
各ダンプ行で、デフォルト書式でタイムスタンプを表示し、その前に日付を付けます。
.TP
.B \-v
(少しではありますが) 出力情報を増やします。例えば、IP パケット中の
TTL や、サービス情報の型を出力します。
TTL、識別、全長、IP パケット中のオプションが表示されます。
追加のパケットの完全性確認が有効になります。
これは例えば IP および ICMP のヘッダのチェックサムです。
.TP
.B \-vv
さらに多くの情報を出力します。例えば、NFS の返答パケットの追加
@ -277,8 +322,8 @@ TTL
(名前もしくは番号) から成り立ちます。限定子は、3 種類あります。
.IP \fI型\fP
限定子は id 名や番号が参照するものの種類を指します。型には
.BR host
.B net
.BR host ,
.BR net ,
.B port
があります。例えば、`host foo', `net 128.3', `port 20' のように用います。
型限定子が指定されない場合には、
@ -293,12 +338,12 @@ TTL
から来る方向か、
もしくはその両方かという、特定の転送方向を指定します。
指定可能な方向は、
.BR src
.BR dst
.B "src or dst"
.BR src ,
.BR dst ,
.BR "src or dst" ,
.BR "src and dst"
の 4 つです。
例えば、`src foo'、 `dst net 128.3'、 `src or dst port ftp-data' のように
例えば、`src foo', `dst net 128.3', `src or dst port ftp-data' のように
指定します。もし方向限定子が指定されない場合には、
.B "src or dst"
が指定されたものとみなします。
@ -315,6 +360,7 @@ TTL
プロトコルとして指定可能なものは、
.BR ether ,
.BR fddi ,
.BR tr ,
.BR ip ,
.BR ip6 ,
.BR arp ,
@ -332,34 +378,38 @@ TTL
.B tcp ,
.BR udp
です。
例えば `ether src foo'、 `arp net 128.3'、 `tcp port 21' のように使用
例えば `ether src foo', `arp net 128.3', `tcp port 21' のように使用
します。もしプロトコル限定子が指定されない場合には、上記のプロトコルの
うち、型に矛盾しないすべてのものが指定されたものとみなします。
例えば `src foo' は、`(ip or arp or rarp) src foo' (これが正しい形式でな
い事を除いて) と、`net bar' は `(ip or arp or rarp) net bar' と同義であ
り、また `port 53' は `(tcp or udp) port 53' と同義です。
.LP
[`fddi' は実際には `ether' の別名になっています。解析ではこれらを``特定の
ネットワークインタフェースで使われるデータリンクレベル''を意味するもの
として同様に扱います。FDDI ヘッダはイーサネットに似た送信元と宛先
[`fddi' は実際には `ether' の別名になっています。解析ではこれらを特定の
ネットワークインタフェースで使われるデータリンクレベルを意味するもの
として同様に扱います。FDDI ヘッダはイーサネットに似た始点と終点
アドレスを含み、そしてしばしばイーサネットに似たパケット型を含むので、
イーサネットのフィールドと同じように FDDI のフィールドをフィルタリング
できます。FDDI ヘッダは他のフィールドも含みますが、フィルタ表現の中で
明示的にそれらを指定することはできません。]
明示的にそれらを指定することはできません。
.LP
上記に追加して、いくつかの特別な`プリミティブ'キーワードがあります。
同様に、`tr' は `ether' の別名です。
直前の段落における FDDI ヘッダに関する記述は、
Token Ring ヘッダにも適用されます。]
.LP
上記に追加して、いくつかの特別な「プリミティブ」キーワードがあります。
これらのキーワードは
.BR gateway ,
.BR broadcast ,
.BR less ,
.B greater,
.B greater
と算術演算表現
です。これらの後ろにパターンが続く事はありません。
プリミティブキーワードについては後述します。
.LP
より複雑なフィルタの表現は、プリミティブの結合に
.BR and ,
.B or,
.BR or ,
.B not
を用いることで実現されます。例えば、
`host foo and not port ftp and not port ftp-data'
@ -371,14 +421,14 @@ TTL
.LP
許されるプリミティブは、以下の通りです。
.IP "\fBdst host \fIhost\fR"
IPv4/v6 パケットの宛先フィールドが \fIhost\fP で指定したものの場合に、
IPv4/v6 パケットの終点フィールドが \fIhost\fP で指定したものの場合に、
真となります。
\fIhost\fP は、ホスト名もしくは IP アドレスです。
.IP "\fBsrc host \fIhost\fR"
IPv4/v6 パケットの送信元フィールドが \fIhost\fP で指定したものの場合に、
IPv4/v6 パケットの始点フィールドが \fIhost\fP で指定したものの場合に、
真となります。
.IP "\fBhost \fIhost\fP
IPv4/v6 パケットの送信元フィールドもしくは宛先フィールドが
IPv4/v6 パケットの始点フィールドもしくは終点フィールドが
\fIhost\fP で指定したものの場合に、
真となります。
上記の host プリミティブの表現には、
@ -399,21 +449,21 @@ IPv4/v6
\fIhost\fR が複数の IP アドレスを持つホスト名であった場合、それぞれのアドレス
について照合を検査します。
.IP "\fBether dst \fIehost\fP
イーサネットパケットの宛先アドレスが \fIehost\fP だった場合に、真となります。
イーサネットパケットの終点アドレスが \fIehost\fP だった場合に、真となります。
\fIehost\fP
は、/etc/ethers に記述された名前もしくはイーサネットアドレスの値が用いられます
(イーサネットアドレスの形式については、
.IR ethers (3N)
を参照)。
.IP "\fBether src \fIehost\fP
イーサネットパケットの送信元アドレスが \fIehost\fP だった場合に、真となります。
イーサネットパケットの始点アドレスが \fIehost\fP だった場合に、真となります。
.IP "\fBether host \fIehost\fP
イーサネットパケットの送信元アドレスもしくは宛先アドレスが \fIehost\fP だった
イーサネットパケットの始点アドレスもしくは終点アドレスが \fIehost\fP だった
場合に、真となります。
.IP "\fBgateway\fP \fIhost\fP
パケットが \fIhost\fP で指定したアドレスのマシンをゲートウェイとしている場合に
真となります。言い替えると、送信元もしくは宛先のイーサネットアドレスが
\fIhost\fP であり、送信元と宛先のどちらの IP アドレスも \fIhost\fP でない
真となります。言い替えると、始点もしくは終点のイーサネットアドレスが
\fIhost\fP であり、始点と終点のどちらの IP アドレスも \fIhost\fP でない
ということです。
\fIhost\fP は /etc/hosts ファイルと /etc/ethers の両方で定義されている名前を
指定する必要があります (等価な表現は、
@ -426,17 +476,17 @@ IPv4/v6
可能になります。)
この構文は、現在のところ、IPv6 が有効な構成では動作しません。
.IP "\fBdst net \fInet\fR"
パケットの宛先 IPv4/v6 アドレスが、
パケットの終点 IPv4/v6 アドレスが、
\fInet\fP で指定されたネットワークに属するものである場合に、
真となります。
\fInet\fP は、アドレス値もしくは /etc/networks で
定義されたネットワーク名のいずれかを指定可能です (詳しくは、\fInetworks(4)\fP
を参照)。
.IP "\fBsrc net \fInet\fR"
パケットの送信元 IPv4/v6 アドレスが、
パケットの始点 IPv4/v6 アドレスが、
\fInet\fP で指定されたネットワークに属するものである場合に、真となります。
.IP "\fBnet \fInet\fR"
送信元 IPv4/v6 アドレスもしくは宛先 IPv4/v6 アドレスが \fInet\fP で指定された
始点 IPv4/v6 アドレスもしくは終点 IPv4/v6 アドレスが \fInet\fP で指定された
ネットワークに属するものである場合に、真となります。
.IP "\fBnet \fInet\fR \fBmask \fImask\fR"
IP アドレスが、指定された \fInet\fR および netmask の値で決まる
@ -449,7 +499,7 @@ IPv4/v6
決まるネットワークに属するものである場合に、真となります。
\fBsrc\fR\fBdst\fR を指定する事も可能です。
.IP "\fBdst port \fIport\fR"
パケットが ip/tcp, ip/udp, ip6/tcp, ip6/udp のいずれかであり、宛先
パケットが ip/tcp, ip/udp, ip6/tcp, ip6/udp のいずれかであり、終点
ポート番号が \fIport\fP の場合に、真となります。
\fIport\fP で指定されるポート番号は、値もしくは /etc/services で定義
されているサービス名で指定可能です (
@ -464,10 +514,10 @@ IPv4/v6
tcp/login と udp/who の両方を出力し、\fBport domain\fR は、tcp/domain
と udp/domain の両方を出力します)。
.IP "\fBsrc port \fIport\fR"
パケットが \fIport\fP で指定した送信元ポート番号を保持している場合に
パケットが \fIport\fP で指定した始点ポート番号を保持している場合に
真となります。
.IP "\fBport \fIport\fR"
パケットの送信元ポート番号もしくは宛先ポート番号が \fIport\fP の場合に、
パケットの始点ポート番号もしくは終点ポート番号が \fIport\fP の場合に、
真となります。
上記のポート番号の指定については、すべてキーワード \fBtcp\fP もし
くは \fBudp\fP を用いて、ある程度候補を絞り込むことが可能です。例えば、
@ -501,13 +551,14 @@ tcp/login
.IR ip (4P)
を参照) の場合に、真となります。
\fIprotocol\fP は、数字もしくは
\fIicmp\fP, \fIigrp\fP, \fIudp\fP, \fInd\fP, \fItcp\fP
\fIicmp\fP, \fIicmp6\fP, \fIigmp\fP, \fIigrp\fP, \fIpim\fP, \fIah\fP,
\fIesp\fP, \fIudp\fP, or \fItcp\fP
のいずれかの名前が指定可能です。\fItcp\fP, \fIudp\fP, \fIicmp\fP
各識別子はキーワードでもであり、バックスラッシュ (\\)(C-shell では \\\\) を用
いてエスケープしなければならないことに注意してください。
このプリミティブはプロトコルヘッダチェーンを追跡しないことに注意してください。
.IP "\fBip6 proto \fIprotocol\fR"
パケットがプロトコルタイプ \fIprotocol\fP の IPv6 パケットである場合に、
パケットがプロトコル \fIprotocol\fP の IPv6 パケットである場合に、
真となります。
このプリミティブはプロトコルヘッダチェーンを追跡しないことに注意してください。
.IP "\fBip6 protochain \fIprotocol\fR"
@ -548,30 +599,33 @@ Equivalent to \fBip6 protochain \fIprotocol\fR, but this is for IPv4.
.IP "\fBether proto \fIprotocol\fR"
パケットが \fIprotocol\fR で指定した ether 型の場合に、真になります。
\fIprotocol\fP は、数字もしくは
\fIip\fP, \fIip6\fP, \fIarp\fP, \fIrarp\fP のような
名前を指定可能です。
\fIip\fP, \fIip6\fP, \fIarp\fP, \fIrarp\fP, \fIatalk\fP, \fIaarp\fP,
\fIdecnet\fP, \fIsca\fP, \fIlat\fP, \fImopdl\fP, \fImoprc\fP,
\fIiso\fP
のいずれかの名前を指定可能です。
これらの識別子はキーワードでもあり、バックスラッシュ (\\) でエスケープし
なければならないことに注意してください。
[FDDI の場合 (例えば `\fBfddi protocol arp\fR')、プロトコルの識別は
IEEE802.2 の論理リンク制御 (LLC) ヘッダによって行われます。通常これは FDDI
ヘッダの上の層にあります。\fItcpdump\fP は、プロトコル識別子で
フィルタリングするときは、すべての FDDI パケットは LLC ヘッダを含み、
かつその LLC ヘッダがいわゆる SNAP 形式であると仮定します。]
かつその LLC ヘッダがいわゆる SNAP 形式であると仮定します。
Token Ring も同様です。]
.IP "\fBdecnet src \fIhost\fR"
DECNET パケットの送信元アドレスが
DECNET パケットの始点アドレスが
.IR host
の場合に、真となります。これは ``10.123'' という形式のアドレスでも DECNET の
ホスト名でも構いません。[DECNET のホスト名は DECNET を動かすように設定され
た Ultrix システムのみでサポートされます。]
.IP "\fBdecnet dst \fIhost\fR"
DECNET パケットの宛先アドレスが
DECNET パケットの終点アドレスが
.IR host
の場合に、真となります。
.IP "\fBdecnet host \fIhost\fR"
DECNET パケットの送信元あるいは宛先アドレスが
DECNET パケットの始点あるいは終点アドレスが
.IR host
の場合に、真となります。
.IP "\fBip\fR, \fBip6\fR, \fBarp\fR, \fBrarp\fR, \fBdecnet\fR, \fBiso\fR"
.IP "\fBip\fR, \fBip6\fR, \fBarp\fR, \fBrarp\fR, \fBatalk\fR, \fBaarp\fR, \fBdecnet\fR, \fBiso\fR"
.in +.5i
.nf
\fBether proto \fIp\fR
@ -587,6 +641,14 @@ DECNET
の短縮形です。\fIp\fR の部分には、上記のいずれかのプロトコル名が入ります。
\fItcpdump\fP は今のところこれらのプロトコルを解釈できない事に注意して
ください。
.IP "\fBvlan \fI[vlan_id]\fR"
パケットが IEEE 802.1Q VLAN パケットの場合、真になります。
\fI[vlan_id]\fR が指定された場合、
パケットが指定された \fIvlan_id\fR を持つ場合のみ、真になります。
\fIexpression\fR 中の最初の \fBvlan\fR キーワードが、
パケットが VLAN パケットであることを仮定して、
残りの \fIexpression\fR のデコード用オフセットを変更してしまうことに
注意してください。
.IP "\fBtcp\fR, \fBudp\fR, \fBicmp\fR"
.in +.5i
.nf
@ -594,7 +656,12 @@ DECNET
.fi
.in -.5i
の短縮形です。\fIp\fR の部分には、上記のいずれかのプロトコル名が入ります。
.IP "\fBesis\fR, \fBisis\fR"
.IP "\fBiso proto \fIprotocol\fR"
パケットがプロトコル型 \fIprotocol\fP の OSI パケットの場合、真になります。
\fIprotocol\fP は数値もしくは
\fIclnp\fP, \fIesis\fP, \fIisis\fP
という名前のいずれかです。
.IP "\fBclnp\fR, \fBesis\fR, \fBisis\fR"
.in +.5i
.nf
\fBiso proto \fIp\fR
@ -614,10 +681,10 @@ DECNET
\fIproto\fB [ \fIexpr\fB : \fIsize\fB ]\fR
.fi
.in -.5i
\fIproto\fRは、\fBether, fddi, ip, arp, rarp, tcp, udp, icmp, ip6\fR
\fIproto\fRは、\fBether, fddi, tr, ip, arp, rarp, tcp, udp, icmp, ip6\fR
のいずれかであり、インデックス操作を行うプロトコル層を指示
します。
\fItcp, udp\fR および他の上位層プロトコルタイプは、
\fItcp, udp\fR および他の上位層プロトコルは、
IPv4 のみに適用され、IPv6 には適用されないことに注意してください
(これは将来修正されます)。
指示したプロトコル層からの相対バイトオフセットは、\fIexpr\fR で指定します。
@ -674,7 +741,7 @@ IPv4
と混同してしまいがちなので気をつけましょう。
.LP
引数 expression は、単一の引数としても複数の引数としても、どちらか便利な
方で、tcpdump に渡すことができます。
方で、\fItcpdump\fP に渡すことができます。
一般的に、引数がシェルのメタキャラクタを含む場合、その引数をクォート
された単一の引数としてプログラムに渡す方が容易です。
複数の引数は、解析される前にスペースで連結されます。
@ -724,7 +791,7 @@ tcpdump 'gateway snup and (port ftp or ftp-data)'
.fi
.RE
.LP
送信元アドレスと宛先アドレスの両方がローカルネットワーク内のホスト
始点アドレスと終点アドレスの両方がローカルネットワーク内のホスト
のものでないトラフィックについて表示する場合には、以下のように実行しま
(実行するホストが他のネットワークに対するゲートウェイの場合、そのホスト
@ -785,18 +852,25 @@ tcpdump 'icmp[0] != 8 and icmp[0] != 0'
リンクレベルヘッダ
.LP
もし '-e' オプションが指定されると、リンクレベルヘッダが出力されます。
イーサネットにおいては、送信元と宛先のアドレス、プロトコル、そして
イーサネットにおいては、始点と終点のアドレス、プロトコル、そして
パケット長が出力されます。
.LP
FDDI ネットワークにおいては、'-e' オプションが指定されると \fItcpdump\fP
は、`フレーム制御'フィールド、発信元と宛先アドレス、そしてパケット長を
出力します。`フレーム制御'フィールドはパケットの残りの部分の解釈を決定
は、「フレーム制御」フィールド、発信元と終点アドレス、そしてパケット長を
出力します。「フレーム制御」フィールドはパケットの残りの部分の解釈を決定
します。(IP データグラムを含むような) 通常のパケットは `async' パケットで、
0 から 7 の間の優先順位を持ちます。例えば、`\fBasync4\fR' です。こうした
パケットは IEEE802.2 の論理リンク制御 (LLC) パケットを含むと仮定されます。
LLC ヘッダは、それが ISO データグラムでない場合やいわゆる SNAP パケットのと
きには出力されます。
.LP
Token Ring ネットワークでは、'-e' オプションを指定すると、\fItcpdump\fP は、
アクセス制御」と「フレーム制御」のフィールド、
始点と終点のアドレス、パケット長を表示します。
FDDI ネットワークでは、パケットは LLC パケットを含むと仮定されます。
オプション '-e' の指定の有無にかかわらず、
始点経路制御されたパケットに対しては、始点経路制御情報が表示されます。
.LP
\fI (注意: 以下の記述は、利用者が RFC1144 に記述されている SLIP 圧縮
アルゴリズムについての知識がある前提で書いています。)\fP
.LP
@ -834,7 +908,7 @@ arp/rarp
.nf
.sp .5
\f(CWarp who-has csam tell rtsg
arp reply csam is-at CSAM\fP
arp reply csam is-at CSAM\fR
.sp .5
.fi
.RE
@ -848,7 +922,7 @@ arp reply csam is-at CSAM\fP
.nf
.sp .5
\f(CWarp who-has 128.3.254.6 tell 128.3.254.68
arp reply 128.3.254.6 is-at 02:07:01:00:01:c4\fP
arp reply 128.3.254.6 is-at 02:07:01:00:01:c4\fR
.fi
.RE
.LP
@ -863,16 +937,16 @@ CSAM RTSG 0806 64: arp reply csam is-at CSAM\fP
.sp .5
.fi
.RE
最初のパケットについては、送信元のイーサネットアドレスは RTSG であり、
宛先はイーサネットブロードキャストアドレス、型フィールドには 16 進数の値
最初のパケットについては、始点のイーサネットアドレスは RTSG であり、
終点はイーサネットブロードキャストアドレス、型フィールドには 16 進数の値
0806 (ETHER_ARP を意味します) が格納されており、総パケット長は 64 バイトである
と表示しています。
.HD
TCP パケット
.LP
\fI(注意:以下の記述は、RFC793 に記述されている TCP プロトコルについての知識
があることを前提に記述されています。この知識がない場合、本記述と tcpdump の
いずれもあなたには役に立たないでしょう。)\fP
があることを前提に記述されています。この知識がない場合、本記述と
\fItcpdump\fPいずれもあなたには役に立たないでしょう。)\fP
.LP
TCP プロトコル行の一般的な形式は、以下の通りです。
.RS
@ -882,7 +956,7 @@ TCP
.sp .5
.fi
.RE
\fIsrc\fP\fIdst\fP は、それぞれ送信元と宛先の IP アドレスと
\fIsrc\fP\fIdst\fP は、それぞれ始点と終点の IP アドレスと
ポート番号です。\fIflags\fP の部分には、S (SYN), F (FIN), P (PUSH), R (RST)
の組み合わせ、もしくは単なる `.' (フラグなし) が入ります。
\fIdata-seqno\fP は、このパケット内のデータがシーケンス空間のどの部分に
@ -912,7 +986,7 @@ csam.login > rtsg.1023: . ack 2 win 4096
rtsg.1023 > csam.login: P 2:21(19) ack 1 win 4096
csam.login > rtsg.1023: P 1:2(1) ack 21 win 4077
csam.login > rtsg.1023: P 2:3(1) ack 21 win 4077 urg 1
csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1\fP\s+2
csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1\fR\s+2
.sp .5
.fi
.RE
@ -920,9 +994,9 @@ csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1\fP\s+2
ポートに対してパケットを送信していることを意味します。\fBS\fP は、
パケットの \fISYN\fP フラグが設定されていることを意味します。
パケットのシーケンス番号は 768512 番であり、データは含みません。
(表記は `first:last(nbytes)' であり、これは`シーケンス番号 \fIfirst\fP
(表記は `first:last(nbytes)' であり、これはシーケンス番号 \fIfirst\fP
\fIlast\fP までの \fIlast\fP を含まない \fInbytes\fP のユーザデータという
こと'を意味しています。)
ことを意味しています。)
このパケット中に ack はなく、有効な受信ウィンドウの大きさは 4096 バイトで
あり、1024 バイトの最大セグメントサイズ要求を行なうオプションが付加され
ています。
@ -934,7 +1008,7 @@ rtsg
立っていないことを意味します。
パケットはデータを含まないため、データシーケンス番号は入りません。
ack シーケンス番号が小さい整数 (1) であることに注意して下さい。
\fBtcpdump\fP は、初めて TCP の`通信'を検出すると、パケットから取得した
\fItcpdump\fP は、初めて TCP の「通信」を検出すると、パケットから取得した
シーケンス番号を表示します。通信のその後のパケットについては、現在の
パケットシーケンス番号と、この最初のシーケンス番号の間の差を表示します。
このことは、最初に取得した以降のシーケンス番号は、通信データストリーム
@ -952,7 +1026,7 @@ csam
8 行めと 9 行めでは、csam は緊急 (urgent) で PUSH フラグの設定された
2 バイトデータを送信しています。
.LP
スナップショットが小さ過ぎて \fBtcpdump\fP
スナップショットが小さ過ぎて \fItcpdump\fP
TCP ヘッダ全体を捕えなかった場合、
可能な限りのヘッダを解釈し、``[|\fItcp\fP]'' を表示して
残りを解釈できなかったことを示します。
@ -961,7 +1035,192 @@ TCP
残りのオプションを解釈しません (どこから開始したら良いのか分からないからです)。
ヘッダ長によりオプションが存在することが分かるが、
IP データグラム長がオプションがそこにあるために十分な長さではない場合に、
tcpdump は ``[\fIbad hdr length\fP]'' を表示します。
\fItcpdump\fP は ``[\fIbad hdr length\fP]'' を表示します。
.HD
.B 特定フラグの組み合わせ (SYN-ACK, URG-ACK 等) による TCP パケットの捕捉
.PP
TCP ヘッダの制御ビットセクションには、次の 6 ビットがあります:
.IP
.I URG | ACK | PSH | RST | SYN | FIN
.PP
TCP 接続の確立に使用されるパケットを見たいものとしましょう。
新規接続を初期化する時、
TCP は 3 ウェイハンドシェークプロトコルを使用することを思い出してください。
TCP 制御ビットに関する接続の順番は次のようになります。
.PP
.RS
1) 呼び出し側が SYN を送信
.RE
.RS
2) 受信者が SYN, ACK で応答
.RE
.RS
3) 呼び出し側が ACK を送信
.RE
.PP
ここで、SYN ビットを持つパケットを捕捉したいとします (第 1 ステップ)。
ステップ 2 のパケット (SYN-ACK) は不要で、
最初の SYN だけが欲しいことに注意してください。
必要なのは、\fItcpdump\fP の正しいフィルタ式です。
.PP
オプション無しの TCP ヘッダの構造を思い出してください:
.PP
.nf
0 15 31
-----------------------------------------------------------------
| 始点ポート | 終点ポート |
-----------------------------------------------------------------
| シーケンス番号 |
-----------------------------------------------------------------
| 確認応答番号 |
-----------------------------------------------------------------
| HL | 予約 |U|A|P|R|S|F| ウィンドウサイズ |
-----------------------------------------------------------------
| TCP チェックサム | 緊急ポインタ |
-----------------------------------------------------------------
.fi
.PP
TCP ヘッダは、オプションが無ければ通常、20 オクテットのデータを持ちます。
図の最初の行はオクテット 0 から 3 を示し、
次の行はオクテット 4 から 7 を示す等となります。
.PP
0 から数え始めると、必要な TCP 制御ビットはオクテット 13 にあります:
.PP
.nf
0 7| 15| 23| 31
----------------|---------------|---------------|----------------
| HL | 予約 |U|A|P|R|S|F| ウィンドウサイズ |
----------------|---------------|---------------|----------------
| |13 オクテット目| | |
.fi
.PP
第 13 オクテットをもっとよく見てみましょう:
.PP
.nf
| |
|---------------|
| |U|A|P|R|S|F|
|---------------|
|7 5 3 0|
.fi
.PP
.\" 2 bytes は 2 bits の誤り?
このオクテットの上位 2 ビットは予約フィールドから来ています。
RFC 793 によると、この欄は将来の使用のために予約となっていて、
必ず 0 です。
残りの 6 ビットは、我々が興味がある TCP 制御ビットです。
このオクテットのビットを、右から左へ、0 から 7 と番号付けします。
PSH ビットは第 3 ビットであり、URG ビットは第 5 ビットです。
.PP
最初の SYN だけを持つパケットが欲しいことに注意してください。
SYN ビットがセットされた TCP データグラムが到着すると、
第 13 オクテットになにが起きるか見てみましょう:
.PP
.nf
| |U|A|P|R|S|F|
|---------------|
|0 0 0 0 0 0 1 0|
|---------------|
|7 6 5 4 3 2 1 0|
.fi
.PP
第 7 ビットと第 6 ビットは予約フィールドに属し必ず 0 だと既に述べました。
制御ビットセクションを見ると、ビット番号 1 (SYN) のみがセットされています。
.PP
オクテット番号 13 が、ネットワークバイト順で、
8 ビット符号無し整数と仮定します。
このオクテットの 2 進数値は
.IP
00000010
.PP
となり、10 進数での表現は次のようになります:
.PP
.nf
7 6 5 4 3 2 1 0
0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 1*2 + 0*2 = 2
.fi
.PP
SYN のみセットされている場合について理解したので、これでほとんど終りです。
TCP ヘッダの第 13 オクテットの値は、
ネットワークバイト順の 8 ビット符号無し整数として解釈すると、
正確に 2 となります。
.PP
この関係は次のように表現可能です:
.RS
.B
tcp[13] == 2
.RE
.PP
この式を \fItcpdump\fP のフィルタとして使用し、
SYN パケットのみを持つパケットを捕捉可能です:
.RS
.B
tcpdump -i xl0 tcp[13] == 2
.RE
.PP
この式は「TCP データグラムの第 13 オクテットは 10 進数 2 を持つ」
と言っており、まさに我々が望むものです。
.PP
次に、SYN パケットが必要であるが、ACK や他の TCP 制御ビットについては
どうでも良い場合を考えます。
SYN-ACK が設定された TCP データグラムが到着した時に
オクテット 13 がどうなっているかを見てみましょう:
.PP
.nf
| |U|A|P|R|S|F|
|---------------|
|0 0 0 1 0 0 1 0|
|---------------|
|7 6 5 4 3 2 1 0|
.fi
.PP
今度は、第 13 オクテットの第 1 ビットと第 4 ビットがセットされています。
第 13 オクテットの 2 進数値は
.IP
00010010
.PP
となり、10 進数では次のようになります:
.PP
.nf
7 6 5 4 3 2 1 0
0*2 + 0*2 + 0*2 + 1*2 + 0*2 + 0*2 + 1*2 + 0*2 = 18
.fi
.PP
今度は、\fItcpdump\fP フィルタ式に 'tcp[13] == 18' を使用できません。
この式は、SYN-ACK がセットされているパケットのみを選択し、
SYN のみセットされているパケットを選択しないからです。
ACK や他の制御ビットがセットされていようといまいと構わないことを
思い出してください。
.PP
この目的を達成するために、第 13 オクテットと他の値との論理 AND を取り、
SYN ビットを得ることが必要です。
我々が欲しいのはどんな場合でも SYN がセットされていれば良いので、
第 13 オクテットと SYN の 2 進数値との論理 AND を取ります:
.PP
.nf
00010010 SYN-ACK 00000010 SYN
AND 00000010 (SYN が欲しい) AND 00000010 (SYN が欲しい)
-------- --------
= 00000010 = 00000010
.fi
.PP
この AND 操作は、ACK や他の TCP プロトコルビットが
セットされていようといまいと、結果は同じです。
AND 用の値の 10 進数表現と、この操作の結果の 10 進数値は、
共に 2 (2 進数値 00000010) であり、
SYN がセットされているパケットには次の関係が成立します:
.IP
( ( 第 13 オクテットの値 ) AND ( 2 ) ) == ( 2 )
.PP
ここで、\fItcpdump\fP フィルタ式は次のようになることが分かります:
.RS
.B
tcpdump -i xl0 'tcp[13] & 2 == 2'
.RE
.PP
シングルクォートもしくはバックスラッシュを使用して、AND (&') 特殊文字を
シェルから隠す必要があることに注意してください。
.HD
.B
UDP パケット
@ -979,7 +1238,7 @@ UDP
\fIwho\fP ポートに対して送信していることを意味します。本パケットは、
84 バイトのユーザデータを含みます。
.LP
いくつかの UDP サービスは(送信元もしくは宛先のポート番号から)種
いくつかの UDP サービスは(始点もしくは終点のポート番号から)種
類の判断が可能で、さらに上位レベルのプロトコル情報が出力されます。
ドメインネームサービス要求 (RFC1034/1035)、そして、Sun RPC 呼びだし
(RFC1050) を用いた NFS サービスなどがこの条件に該当します。
@ -997,7 +1256,7 @@ UDP
.sp .5
\fIsrc > dst: id op? flags qtype qclass name (len)\fP
.sp .5
\f(CWh2opolo.1538 > helios.domain: 3+ A? ucbvax.berkeley.edu. (37)\fP
\f(CWh2opolo.1538 > helios.domain: 3+ A? ucbvax.berkeley.edu. (37)\fR
.sp .5
.fi
.RE
@ -1017,12 +1276,11 @@ IP
もしくはオーソリティセクションを含む場合、
.IR ancount ,
.IR nscount ,
もしくは
.I arcount
が、`[\fIn\fPa]'、 `[\fIn\fPn]' 、もしくは `[\fIn\fPau]' のような形式で
のいずれかが、`[\fIn\fPa]', `[\fIn\fPn]', `[\fIn\fPau]' のような形式で
表示されます。\fIn\fP は、それぞれの個数です。
応答ビットのいずれかが設定されている (AA, RA, rcode のいずれか) 場合、
もしくは`0 でなければならない'ビットが 2 バイト目と 3 バイト目に設定されてい
もしくは「0 でなければならない」ビットが 2 バイト目と 3 バイト目に設定されてい
る場合には、`[b2&3=\fIx\fP]' が出力されます。\fIx\fP は、ヘッダの 2 バイト
目および 3 バイト目の値を 16 進で表したものです。
.HD
@ -1035,7 +1293,7 @@ UDP
\fIsrc > dst: id op rcode flags a/n/au type class data (len)\fP
.sp .5
\f(CWhelios.domain > h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273)
helios.domain > h2opolo.1537: 2 NXDomain* 0/1/0 (97)\fP
helios.domain > h2opolo.1537: 2 NXDomain* 0/1/0 (97)\fR
.sp .5
.fi
.RE
@ -1070,7 +1328,7 @@ A
.HD
SMB/CIFS のデコード
.LP
現在の tcpdump は、UDP/137, UDP/138, TCP/139 上のデータ用に、
現在の \fItcpdump\fP は、UDP/137, UDP/138, TCP/139 上のデータ用に、
非常に多くの SMB/CIFS/NBT デコードを含みます。
IPX および NetBEUI SMB データの原始的なデコードも、
いくらかは実装されています。
@ -1108,13 +1366,13 @@ sushi.201b > wrl.nfs:
144 lookup fh 9,74/4096.6878 "xcolors"
wrl.nfs > sushi.201b:
reply ok 128 lookup fh 9,74/4134.3150
\fP
\fR
.sp .5
.fi
.RE
最初の行では、ホスト \fIsushi\fP が ID\fI6709\fP のトランザクションを
\fIwrl\fP に送信します (送信元ホストに続く数字はトランザクション ID
であり、送信元ポート番号で\fIない\fPことに注意して下さい)。要求
\fIwrl\fP に送信します (始点ホストに続く数字はトランザクション ID
であり、始点ポート番号で\fIない\fPことに注意して下さい)。要求
サイズは、UDP および IP ヘッダのサイズを除いて 112 バイトです。操作は、
ファイルハンドル (\fIfh\fP) 21,24/10.731657119 に対する \fIreadlink\fP
(シンボリックリンク読み込み) です。
@ -1143,7 +1401,7 @@ wrl.nfs > sushi.1372a:
.sp .5
.fi
.RE
(\-v は IP ヘッダの TTL, ID, そしてフラグメンテーションフィールドも出力し
(\-v は IP ヘッダの TTL と ID と長さとフラグメンテーションフィールドも出力し
ますが、この例では省略しています。) 最初の行では、\fIsushi\fP
\fIwrl\fP に対してファイル 21,11/12.195 のオフセット 24576 バイト目か
ら 8192 バイトを読むように要求しています。\fIwrl\fP は `ok' と返答してい
@ -1162,7 +1420,7 @@ NFS
`\fB\-s 192\fP' と指定してみて下さい。
.LP
NFS 応答パケットは RPC 操作であることを明示的には示しません。その代わ
り、\fItcpdump\fP``最近の''要求を追跡して、トランザクション ID を用い
り、\fItcpdump\fP「最近の」要求を追跡して、トランザクション ID を用い
て応答と照合します。応答が対応する要求のすぐ後に続かないと、解
析することはできません。
.HD
@ -1182,7 +1440,7 @@ elvis.7001 > pike.afsfs:
rx data fs call rename old fid 536876964/1/1 ".newsrc.new"
new fid 536876964/1/1 ".newsrc"
pike.afsfs > elvis.7001: rx data fs reply rename
\fP
\fR
.sp .5
.fi
.RE
@ -1203,11 +1461,16 @@ RPC
書式は、自明となることを意図していますが、
AFS および RX の動作に親しみのない方々にとっては有用ではないかもしれません。
.LP
-v (冗長) フラグを 2 度指定すると、追加情報を表示します。
-v (冗長) フラグを 2 度指定すると、
確認応答パケットと追加のヘッダ情報を表示します。
これは、RX 呼び出し ID、呼び出し番号、シーケンス番号、
シリアル番号、RX パケットフラグといったものです。
.LP
更にもう 1 回 -v フラグを指定すると、
-v フラグを 2 度指定すると、追加情報が表示されます。
これは、RX 呼び出し ID、呼び出し番号、RX パケットフラグといったものです。
MTU ネゴシエーション情報も、RX 確認応答パケットから表示されます。
.LP
-v フラグを 3 度指定すると、
セキュリティインデックスとサービス ID を表示します。
.LP
アボートパケットに対しては、エラーコードが表示されます。
@ -1243,7 +1506,7 @@ UDP
\f(CW1.254 ether
16.1 icsd-net
1.254.110 ace\fP
1.254.110 ace\fR
.sp .5
.fi
.RE
@ -1264,7 +1527,7 @@ Appletalk
\f(CW144.1.209.2 > icsd-net.112.220
office.2 > icsd-net.112.220
jssmag.149.235 > icsd-net.2\fP
jssmag.149.235 > icsd-net.2\fR
.sp .5
.fi
.RE
@ -1275,7 +1538,7 @@ jssmag.149.235 > icsd-net.2\fP
最初の例は、ネットワーク 144.1 の中のノード 209
の NBP (DDP port 2) が、ネットワーク icsd のノード 112 のホストの
ポート 220 を開いている何者かにデータを送信しています。
次の行は、1 行めとほぼ同じ例ですが、送信元のノード名が既知である
次の行は、1 行めとほぼ同じ例ですが、始点のノード名が既知である
(`office') ところが異なります。
3 行目の例は、ネットワーク jssmag のノード 149 のポート 235 から、icsd-net の
NBP ポートにブロードキャストでデータ送信をしています
@ -1294,7 +1557,7 @@ NBP (name binding protocol)
.sp .5
\s-2\f(CWicsd-net.112.220 > jssmag.2: nbp-lkup 190: "=:LaserWriter@*"
jssmag.209.2 > icsd-net.112.220: nbp-reply 190: "RM1140:LaserWriter@*" 250
techpit.2 > icsd-net.112.220: nbp-reply 190: "techpit:LaserWriter@*" 186\fP\s+2
techpit.2 > icsd-net.112.220: nbp-reply 190: "techpit:LaserWriter@*" 186\fR\s+2
.sp .5
.fi
.RE
@ -1325,16 +1588,16 @@ jssmag.209.165 > helios.132: atp-req 12266<3,5> 0xae030001
helios.132 > jssmag.209.165: atp-resp 12266:3 (512) 0xae040000
helios.132 > jssmag.209.165: atp-resp 12266:5 (512) 0xae040000
jssmag.209.165 > helios.132: atp-rel 12266<0-7> 0xae030001
jssmag.209.133 > helios.132: atp-req* 12267<0-7> 0xae030002\fP\s+2
jssmag.209.133 > helios.132: atp-req* 12267<0-7> 0xae030002\fR\s+2
.sp .5
.fi
.RE
jssmag.209 は、ホスト helios に対し最大8個 ('<0-7>') までのパケットを
要求することで、トランザクション ID 12266 を開始します。行の最後の 16 進数は、
要求の中の`ユーザデータ'のフィールドの値です。
要求の中の「ユーザデータ」のフィールドの値です。
.LP
helios は、8 つの 512 バイトのパケットで応答しています。トランザクション ID
の後につづく`:数'は、パケットシーケンス番号を、括弧中の数値は ATP ヘッダ
の後につづく「:数」は、パケットシーケンス番号を、括弧中の数値は ATP ヘッダ
を除いたパケット中のデータ量を示しています。パケットシーケンス 7 のところ
の `*' は、EOM ビットが設定されていることを示しています。
.LP
@ -1366,8 +1629,8 @@ IP
フラグメント情報は、各フラグメントごとに表示されます。最初の
フラグメントには、上位レベルのプロトコルヘッダが含まれるので、フラグ情
報がプロトコル情報の後に表示されます。2 つ目以降のフラグメントについて
は、上位レベルのプロトコルヘッダを含まないので、フラグ情報は送信元およ
宛先アドレスの後ろに表示されます。
は、上位レベルのプロトコルヘッダを含まないので、フラグ情報は始点およ
終点アドレスの後ろに表示されます。
例えば、これは arizona.edu から lbl-rtsg.arpa への CSNET 接続での ftp
の様子の一部分ですが、どうやら 576 バイト以上のデータグラムを扱えないよ
うです。
@ -1405,15 +1668,26 @@ rtsg.1170 > arizona.ftp-data: . ack 1536 win 2560\fP\s+2
そして、クロックの精度は、カーネルクロックの精度に依存します。
タイムスタンプは、カーネルが最初にパケットを見つけた時間を反映します。
イーサネットインタフェースがケーブルからパケットを取り出してカーネルが
`新規パケット'割り込みを受け付けるまでのタイムラグなどは補正されません
「新規パケット」割り込みを受け付けるまでのタイムラグなどは補正されません
.SH 関連項目
bpf(4), pcap(3)
.SH 作者
元々の作者は次の通りです:
.LP
Van Jacobson,
Craig Leres and
Steven McCanne, all of the
Lawrence Berkeley National Laboratory, University of California, Berkeley, CA.
.LP
現在は tcpdump.org で管理されています。
.LP
現在のバージョンは http で次のところから取得可能です:
.LP
.RS
.I http://www.tcpdump.org/
.RE
.LP
元々の配布は匿名 ftp で次のところから取得可能です:
.RS
.I ftp://ftp.ee.lbl.gov/tcpdump.tar.Z
.RE
@ -1422,42 +1696,67 @@ IPv6/IPsec
本プログラムは、特定の構成においては、
Eric Young の SSLeay ライブラリを使用します。
.SH バグ
バグレポートは、tcpdump@ee.lbl.gov へ送って下さい。
問題、バグ、希望の機能拡張等については次のところに送ってください:
.LP
.RS
tcpdump-workers@tcpdump.org
.RE
.LP
ソースコードの寄贈等については次のところに送ってください:
.LP
.RS
patches@tcpdump.org
.RE
.LP
NIT では、外に出ていくトラフィックを観察できません。BPF ならできます。
後者を用いることを推奨します。
.LP
2.0[.x] カーネルの Linux システムにおいて:
.IP
ループバックデバイス上のパケットは 2 度観測されます。
.IP
カーネル内でのパケットフィルタリングは不可能であり、
全パケットがカーネルからコピーされてユーザモードでフィルタされます。
.IP
スナップショットの長さ部分ではなく、パケット全体が、
カーネルからコピーされます
(2.0[.x] のパケット捕捉機構は、
パケットの一部をユーザランドへコピーするように依頼されると、
パケットの正しい長さを報告しません。
このため、ほとんどの IP パケットが
.BR tcpdump
でエラーとなってしまいます)。
.LP
2.2 以降のカーネルにアップグレードすることをお勧めします。
.LP
IP フラグメントを再構成するか、もしくは少なくとも上位プロトコルの正し
いデータサイズを計算するように設計しなおす必要があります。
.LP
ネームサーバについての逆引きについては、正しくダンプされません。
実際の要求ではなく、(empty) クエスチョンセクションが、
アンサーセクションに出力されます。
逆引きについてはそれ自体がバグであると信じ、tcpdump ではなく逆引きを要求する
逆引きについてはそれ自体がバグであると信じ、
\fItcpdump\fP ではなく逆引きを要求する
プログラムを修正するべきと考える人達もいます。
.LP
Apple Ethertalk DDP パケットは、KIP DDP パケットと同様に簡単にダンプ出来
るようにしたいのですが、実際はそうではありません。
もし我々が、Ethertalk の利用を奨めるために何かやろうという気になったとし
ても (そうではないのですが)、LBL (Lawrence Berkeley Laboratory) のどの
ネットワーク上にも Ethertalk を通すことは許されていませんから、そのコード
の試験は出来ません。
.LP
夏時間との変更の時にパケットトレースを行うと、タイムスタンプは変更後の
時刻とはずれてしまいます (時間変化は無視されます)。
.LP
FDDI ヘッダを操作するようなフィルタの表現においては、全ての
FDDI パケットはカプセル化された Ethernet パケットであると仮定します。
FDDI ヘッダおよび Token Ring ヘッダを操作するようなフィルタの表現においては、
全ての FDDI パケットおよび Token Ring パケットは
SNAP でカプセル化された Ethernet パケットであると仮定します。
これは、IP, ARP, DECNET フェーズ 4 については正しいですが、ISO の CLNS 等の
プロトコルについては正しくありません。したがって、フィルタ表現に正しく
マッチしないようなパケットを偶然に受け入れてしまうことがあります。
.LP
Token Ring ヘッダ以外のフィールドに対するフィルタ式は、
始点経路制御された Token Ring パケットを正しく扱わないことがあります。
.LP
.BR "ip6 proto"
はヘッダチェーンを追跡すべきですが、現在のところはそうなっていません。
.BR tcp
.BR udp
もまた、ヘッダチェーンを追跡すべきです。
このために
.BR "ip6 protochain"
が提供されています。
.LP
例えば \fBtcp[0]\fP といったトランスポート層ヘッダに対する演算は、
IPv6 パケットに対しては動作しません。

View file

@ -1,4 +1,4 @@
.\" %FreeBSD: src/contrib/ipfilter/man/ipf.5,v 1.4.2.1 2001/02/17 20:36:26 darrenr Exp %
.\" %FreeBSD: src/contrib/ipfilter/man/ipf.5,v 1.4.2.2 2001/07/28 13:34:24 darrenr Exp %
.\" WORD: filtering rule フィルタルール
.\" WORD: semantics セマンティクス
.\" WORD: inbound 内向き
@ -410,7 +410,7 @@ TCP
# が設定されているパケットにマッチします。
... flags SA
# "flags SA/AUPRFS" になり、SYN および ACK のフラグ
# "flags SA/AUPRFSC" になり、SYN および ACK のフラグ
# のみが設定されているパケットにマッチします。
... flags S/SA

View file

@ -23,12 +23,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/share/man/man5/periodic.conf.5,v 1.8.2.14 2001/07/21 09:16:52 schweikh Exp %
.\" %FreeBSD: src/share/man/man5/periodic.conf.5,v 1.8.2.15 2001/07/28 11:44:23 brian Exp %
.\"
.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/periodic.conf.5,v 1.9 2001/07/12 00:16:02 horikawa Exp $
.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/periodic.conf.5,v 1.10 2001/07/23 02:26:59 horikawa Exp $
.Dd June 22, 2000
.Dt PERIODIC.CONF 5
.Os FreeBSD
.Os
.Sh 名称
.Nm periodic.conf
.Nd 定期実行ジョブの設定情報
@ -53,15 +53,16 @@
.Xr periodic 8
自身によって使用されます:
.Bl -tag -offset 4n -width 2n
.It Ar local_periodic
(文字列) 定期実行スクリプトを検索するディレクトリのリスト。
.It Va local_periodic
.Pq Vt 文字列
定期実行スクリプトを検索するディレクトリのリスト。
このリストは
.Xr periodic 8
の引数が絶対パスのディレクトリ名でなかった場合にのみ使用され、常に
.Pa /etc/periodic
が前置きされます。
.It Ar dir Ns No _output
(パスまたはリスト)
.It Va dir Ns No _output
.Pq Vt パス No または Vt リスト
.Ar dir
ディレクトリから起動されるスクリプトの出力をどうするか記述します。
この変数に絶対パスが指定された場合、出力はそのファイルに行われます。
@ -71,22 +72,21 @@
標準出力に出力されます。
.Pp
それほど気にかけていないマシンでは
.Ar $daily_output
.Ar $weekly_output
そして
.Ar $monthly_output
.Va daily_output ,
.Va weekly_output ,
.Va monthly_output
はそれぞれ
.Dq /var/log/daily.log ,
.Dq /var/log/weekly.log
そして
.Dq /var/log/weekly.log ,
.Dq /var/log/monthly.log
にしておくといいでしょう。すると
.Xr newsyslog 8
が、(もしファイルがあれば) これらのファイルを適切な時に切替えます。
.It Ar dir Ns No _show_success
.It Ar dir Ns No _show_info
.It Ar dir Ns No _show_badconfig
(ブール値) これらの変数は
.It Va dir Ns No _show_success
.It Va dir Ns No _show_info
.It Va dir Ns No _show_badconfig
.Pq Vt ブール値
これらの変数は
起動されたスクリプトの戻り値に従って、
.Xr periodic 8
が出力を抑制するかどうかを制御します (ここで
@ -95,7 +95,8 @@
もしスクリプトの戻り値が
.Sq 0
で、
.Ar dir Ns No _show_success
.Va dir Ns No _show_success
.Dq NO
に設定されていた場合、
.Xr periodic 8
@ -103,7 +104,7 @@
もしスクリプトの戻り値が
.Sq 1
で、
.Ar dir Ns No _show_info
.Va dir Ns No _show_info
.Dq NO
に設定されていた場合、
.Xr periodic 8
@ -111,7 +112,8 @@
もしスクリプトの戻り値が
.Sq 2
で、
.Ar dir Ns No _show_badconfig
.Va dir Ns No _show_badconfig
.Dq NO
に設定されていた場合、
.Xr periodic 8
@ -136,100 +138,112 @@
.Pa /etc/periodic/daily
にある標準のスクリプトによって使用されます:
.Bl -tag -offset 4n -width 2n
.It Ar daily_clean_disks_enable
(ブール値)
.Ar daily_clean_disks_files
.It Va daily_clean_disks_enable
.Pq Vt ブール値
.Va daily_clean_disks_files
にマッチしたファイルを毎日削除したい場合
.Dq YES
にします。
.It Ar daily_clean_disks_files
(文字列) マッチさせるファイル名のリストを設定します。
.It Va daily_clean_disks_files
.Pq Vt 文字列
マッチさせるファイル名のリストを設定します。
ワイルドカードも使用できます。
.It Ar daily_clean_disks_days
(整数)
.Ar daily_clean_disks_enable
.It Va daily_clean_disks_days
.Pq Vt 整数
.Va daily_clean_disks_enable
.Dq YES
の場合、何日間ファイルにアクセスや修正がなかったら
削除するかをこの変数に設定する必要もあります。
.It Ar daily_clean_disks_verbose
(ブール値) 削除したファイル名を日次の出力で報告させたい場合
.It Va daily_clean_disks_verbose
.Pq Vt ブール値
削除したファイル名を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_clean_tmps_enable
(ブール値) 毎日一時ディレクトリをきれいにしたい場合
.It Va daily_clean_tmps_enable
.Pq Vt ブール値
毎日一時ディレクトリをきれいにしたい場合
.Dq YES
に設定します。
.It Ar daily_clean_tmps_dirs
(文字列)
.Ar daily_clean_tmps_enable
.It Va daily_clean_tmps_dirs
.Pq Vt 文字列
.Va daily_clean_tmps_enable
.Dq YES
に設定されていた場合にきれいにするディレクトリ名のリストを指定します。
.It Ar daily_clean_tmps_days
(整数)
.Ar daily_clean_tmps_enable
.It Va daily_clean_tmps_days
.Pq Vt 整数
.Va daily_clean_tmps_enable
が設定されていた場合、何日間ファイルにアクセスや修正がなかったら
削除するかをこの変数に設定する必要もあります。
.It Ar daily_clean_tmps_ignore
(文字列)
.Ar daily_clean_tmps_enable
.It Va daily_clean_tmps_ignore
.Pq Vt 文字列
.Va daily_clean_tmps_enable
.Dq YES
に設定されていた場合に削除させたくないファイルのリストを設定します。
ワイルドカードも使用可能です。
.It Ar daily_clean_tmps_verbose
(ブール値) 削除したファイル名を日次の出力で報告させたい場合
.It Va daily_clean_tmps_verbose
.Pq Vt ブール値
削除したファイル名を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_clean_preserve_enable
(ブール値)
.It Va daily_clean_preserve_enable
.Pq Vt ブール値
.Pa /var/preserve
から古いファイルを削除したい場合
.Dq YES
に設定します。
.It Ar daily_clean_preserve_days
(整数) 何日間ファイルに修正がなかったら削除するかを
.It Va daily_clean_preserve_days
.Pq Vt 整数
何日間ファイルに修正がなかったら削除するかを
この変数に設定します。
.It Ar daily_clean_preserve_verbose
(ブール値) 削除したファイル名を日次の出力で報告させたい場合
.It Va daily_clean_preserve_verbose
.Pq Vt ブール値
削除したファイル名を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_clean_msgs_enable
(ブール値) 古いシステムメッセージを削除する場合
.It Va daily_clean_msgs_enable
.Pq Vt ブール値
古いシステムメッセージを削除する場合
.Dq YES
に設定します。
.It Ar daily_clean_msgs_days
(整数) 何日間ファイルに修正がなかったら削除するかを設定します。
.It Va daily_clean_msgs_days
.Pq Vt 整数
何日間ファイルに修正がなかったら削除するかを設定します。
この変数が空白だった場合、
.Xr msgs 1
のデフォルト値が使われます。
.It Ar daily_clean_rwho_enable
(ブール値)
.It Va daily_clean_rwho_enable
.Pq Vt ブール値
.Pa /var/who
の下の古いファイルを削除したい場合
.Dq YES
に設定します。
.It Ar daily_clean_rwho_days
(整数) 何日間ファイルに修正がなかったら削除するかを設定します。
.It Ar daily_clean_rwho_verbose
(ブール値) 削除したファイル名を日次の出力で報告させたい場合
.It Va daily_clean_rwho_days
.Pq Vt 整数
何日間ファイルに修正がなかったら削除するかを設定します。
.It Va daily_clean_rwho_verbose
.Pq Vt ブール値
削除したファイル名を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_clean_hoststat_enable
(ブール値)
.It Va daily_clean_hoststat_enable
.Pq Vt ブール値
.Pa /var/spool/.hoststat
の下の古いファイルを削除したい場合
.Dq YES
に設定します。
.It Ar daily_clean_hoststat_days
(整数) 何日間ファイルに修正がなかったら削除するかを設定します。
.It Ar daily_clean_hoststat_verbose
(ブール値) 削除したファイル名を日次の出力で報告させたい場合
.It Va daily_clean_hoststat_days
.Pq Vt 整数
何日間ファイルに修正がなかったら削除するかを設定します。
.It Va daily_clean_hoststat_verbose
.Pq Vt ブール値
削除したファイル名を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_backup_passwd_enable
(ブール値)
.It Va daily_backup_passwd_enable
.Pq Vt ブール値
.Pa /etc/master.passwd
ファイルと
.Pa /etc/group
@ -241,50 +255,53 @@
ファイルに
.Xr chkgrp 8
をかけた結果を出力します。
.It Ar daily_backup_aliases_enable
(ブール値)
.It Va daily_backup_aliases_enable
.Pq Vt ブール値
.Pa /etc/mail/aliases
ファイルのバックアップをとり修正点を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_backup_distfile_enable
(ブール値)
.It Va daily_backup_distfile_enable
.Pq Vt ブール値
.Pa /etc/Distfile
ファイルのバックアップをとり修正点を日次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar daily_calendar_enable
(ブール値) 毎日
.It Va daily_calendar_enable
.Pq Vt ブール値
毎日
.Ic calendar -a
を行いたい場合
.Dq YES
に設定します。
.It Ar daily_accounting_enable
(ブール値) 毎日アカウンティングファイルを
.It Va daily_accounting_enable
.Pq Vt ブール値
毎日アカウンティングファイルを
切り替えたい場合
.Dq YES
にします。
.Xr rc.conf 5
の中の
.Ar accounting_enable
.Va accounting_enable
が有効になっていない場合は切り替える必要はありません。
.It Ar daily_accounting_compress
(ブール値) 日々のアカウンティングファイルを
.It Va daily_accounting_compress
.Pq Vt ブール値
日々のアカウンティングファイルを
.Xr gzip 1
を使用して圧縮したい場合
.Dq YES
に設定します。
.It Ar daily_accounting_save
(数値)
.Ar daily_accounting_enable
.It Va daily_accounting_save
.Pq Vt 数値
.Va daily_accounting_enable
が設定されている場合、
保存すべき日々のアカウンティングファイル数を指定します。
デフォルトは
.Dq 3
です。
.It Ar daily_accounting_flags
(文字列)
.Ar daily_accounting_enable
.It Va daily_accounting_flags
.Pq Vt 文字列
.Va daily_accounting_enable
.Dq YES
に設定されていた場合に (
@ -295,8 +312,9 @@
デフォルトは
.Fl q
です。
.It Ar daily_distfile_enable
(ブール値) 毎日
.It Va daily_distfile_enable
.Pq Vt ブール値
毎日
.Xr rdist 1
を実行したい場合
.Dq YES
@ -304,21 +322,21 @@
.Pa /etc/Distfile
も存在していなければなりません。
.It Pa daily_news_expire_enable
(ブール値)
.Pq Vt ブール値
.Pa /etc/news.expire
を実行したい場合
.Dq YES
に設定します。
.It Pa daily_uuclean_enable
(ブール値)
.Pq Vt ブール値
.Ic uustat -a
を実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_disks_enable
(ブール値)
.It Va daily_status_disks_enable
.Pq Vt ブール値
.Po
.Ar daily_status_disks_df_flags
.Va daily_status_disks_df_flags
を引数に指定して
.Pc
.Xr df 1
@ -327,43 +345,43 @@
を実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_disks_df_flags
(文字列)
.Ar daily_status_disks_enable
.It Va daily_status_disks_df_flags
.Pq Vt 文字列
.Va daily_status_disks_enable
.Dq YES
の場合、
.Xr df 1
ユーティリティに渡す引数を設定します。
.It Ar daily_status_uucp_enable
(ブール値)
.It Va daily_status_uucp_enable
.Pq Vt ブール値
.\" 原文の /etc/uuclean.daily は誤りと思われる [man-jp-reviewer 3018],
.\" docs/2267
.Ic uustat -a
を実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_network_enable
(ブール値)
.It Va daily_status_network_enable
.Pq Vt ブール値
.Ic netstat -i
を実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_network_usedns
(ブール値)
.It Va daily_status_network_usedns
.Pq Vt ブール値
.Xr netstat 1
を実行する時、(DNS を参照するための)
.Fl n
オプションをつけずに実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_rwho_enable
(ブール値)
.It Va daily_status_rwho_enable
.Pq Vt ブール値
.Xr uptime 1
を実行したい場合 (もしくは
.Pa /etc/rc.conf
の中で
.Ar rwhod_enable
.Va rwhod_enable
.Dq YES
に設定していて
@ -371,15 +389,15 @@
を実行したい場合)
.Dq YES
に設定します。
.It Ar daily_status_mailq_enable
(ブール値)
.It Va daily_status_mailq_enable
.Pq Vt ブール値
.Xr mailq 1
を実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_mailq_shorten
(ブール値)
.Ar daily_status_mailq_enable
.It Va daily_status_mailq_shorten
.Pq Vt ブール値
.Va daily_status_mailq_enable
.Dq YES
に設定していて
@ -387,74 +405,70 @@
の出力を短くしたい場合
.Dq YES
に設定します。
.It Ar daily_status_security_enable
(ブール値)
.It Va daily_status_security_enable
.Pq Vt ブール値
.Pa /etc/security
を実行したい場合
.Dq YES
に設定します。
.It Ar daily_status_security_inline
(ブール値)
.It Va daily_status_security_inline
.Pq Vt ブール値
.Pa /etc/security
.\" inline -> その場
をその場で実行したい場合
.Dq YES
に設定します。
デフォルトでは、
.Ar $daily_status_security_output
.Va daily_status_security_output
の値に従い、出力をメールするかログします。
.It Ar daily_status_security_output
(文字列)
.Ar $daily_status_security_inline
.It Va daily_status_security_output
.Pq Vt 文字列
.Va daily_status_security_inline
.Dq NO
である場合の、
.Pa /etc/security
の送信先です。
この変数は、前述の
.Ar *_output
.Va *_output
変数と同様に振舞います。
すなわち、1 個以上の email アドレスか、1 個の絶対パス指定のファイル名です。
.It Ar daily_status_security_noamd
(ブール値)
.It Va daily_status_security_noamd
.Pq Vt ブール値
前日のファイルシステムのマウント状況と比較する時に
.Xr amd 8
によるマウントを無視したい場合
.Dq YES
に設定します。
.It Ar daily_status_security_nomfs
(ブール値)
前日のファイルシステムのマウント状況と比較する時に
.Xr mfs 8
によるマウントを無視したい場合
.Dq YES
に設定します。
.It Ar daily_status_mail_rejects_enable
(ブール値)
.It Va daily_status_mail_rejects_enable
.Pq Vt ブール値
.Pa /var/log/maillog
に記録された
前日分のメール拒否を要約したい場合
.Dq YES
に設定します。
.It Ar daily_status_named_enable
(ブール値)
.It Va daily_status_named_enable
.Pq Vt ブール値
前日文の拒否されたゾーン転送 (AXFR と IXFR) を要約したい場合
.Dq YES
に設定します。
.It Ar daily_status_named_logs
(数値)
前日文の拒否されたゾーン転送のチェック対象となる、
ログファイル数を設定します。
.It Ar daily_status_named_usedns
(ブール値)
.It Va daily_status_named_usedns
.Pq Vt ブール値
DNS の逆引き検索を有効にしたい場合
.Dq YES
に設定します。
.It Ar daily_status_mail_rejects_logs
(整数) 前日分のメール拒否をチェックするべき
.It Va daily_status_mail_rejects_logs
.Pq Vt 整数
前日分のメール拒否をチェックするべき
maillog ファイルの数を設定します。
.It Ar daily_local
(文字列) 他のすべての日次スクリプトの後に実行する
.It Va daily_queuerun_enable
.Pq Vt ブール値
Set to
.Dq YES
if you want to manually run the mail queue at least once a day.
.It Va daily_local
.Pq Vt 文字列
他のすべての日次スクリプトの後に実行する
追加スクリプトのリストを設定します。
すべてのスクリプトは絶対パスで指定されなければなりません。
.El
@ -463,29 +477,31 @@ maillog
.Pa /etc/periodic/weekly
にある標準のスクリプトによって使用されます:
.Bl -tag -offset 4n -width 2n
.It Ar weekly_clean_kvmdb_enable
(ブール値)
.It Va weekly_clean_kvmdb_enable
.Pq Vt ブール値
古い
.Pa /var/db/kvm_*.db
ファイルを削除したい場合
.Dq YES
に設定します。
現在のカーネルが使っている kvm ファイルは削除されません。
.It Ar weekly_clean_kvmdb_days
(整数) 何日間ファイルにアクセスがなかったら
.It Va weekly_clean_kvmdb_days
.Pq Vt 整数
何日間ファイルにアクセスがなかったら
削除するかをこの変数に設定する必要があります。
.It Ar weekly_clean_kvmdb_verbose
(ブール値) 削除したファイル名を週次の出力で報告させたい場合
.It Va weekly_clean_kvmdb_verbose
.Pq Vt ブール値
削除したファイル名を週次の出力で報告させたい場合
.Dq YES
に設定します。
.It Ar weekly_uucp_enable
(ブール値)
.It Va weekly_uucp_enable
.Pq Vt ブール値
.Pa /usr/libexec/uucp/clean.weekly
を実行したい場合
.Dq YES
に設定します。
.It Ar weekly_locate_enable
(ブール値)
.It Va weekly_locate_enable
.Pq Vt ブール値
.Pa /usr/libexec/locate.updatedb
を実行したい場合
.Dq YES
@ -496,16 +512,16 @@ maillog
を使用して実行され、
.Xr locate 1
コマンドによって使われるテーブルを生成します。
.It Ar weekly_whatis_enable
(ブール値)
.It Va weekly_whatis_enable
.Pq Vt ブール値
.Pa /usr/libexec/makewhatis.local
を実行したい場合
.Dq YES
に設定します。このスクリプトは
.Xr apropos 1
コマンドによって使われるデータベースを再生成します。
.It Ar weekly_catman_enable
(ブール値)
.It Va weekly_catman_enable
.Pq Vt ブール値
.Pa /usr/libexec/catman.local
を実行したい場合
.Dq YES
@ -514,27 +530,31 @@ maillog
ディスク容量を消費する代わりに
.Xr man 1
コマンドを速くします。
.It Ar weekly_noid_enable
(ブール値) システム上でみなしごになったファイルを
.It Va weekly_noid_enable
.Pq Vt ブール値
システム上でみなしごになったファイルを
探したい場合
.Dq YES
に設定します。
みなしごになったファイルとは、
無効なユーザやグループのものとなっているファイルです。
.It Ar weekly_noid_dirs
(文字列) みなしごになったファイルを探したいディレクトリのリストを
.It Va weekly_noid_dirs
.Pq Vt 文字列
みなしごになったファイルを探したいディレクトリのリストを
指定します。これは通常
.Pa /
に設定されます。
.It Ar weekly_status_pkg_enable
(ブール値) インストールされているパッケージの中で
.It Va weekly_status_pkg_enable
.Pq Vt ブール値
インストールされているパッケージの中で
古くなったものを
.Xr pkg_version 1
を使用して一覧にしたい場合
.Dq YES
に設定します。
.It Ar weekly_local
(文字列) 他のすべての週次スクリプトの後に実行する
.It Va weekly_local
.Pq Vt 文字列
他のすべての週次スクリプトの後に実行する
追加スクリプトのリストを設定します。
すべてのスクリプトは絶対パスで指定されなければなりません。
.El
@ -543,14 +563,15 @@ maillog
.Pa /etc/periodic/monthly
にある標準のスクリプトによって使用されます:
.Bl -tag -offset 4n -width 2n
.It Ar monthly_accounting_enable
(ブール値)
.It Va monthly_accounting_enable
.Pq Vt ブール値
.Xr ac 8
コマンドによってログインのアカウンティング処理を行いたい場合
.Dq YES
に設定します。
.It Ar monthly_local
(文字列) 他のすべての月次スクリプトの後に実行する
.It Va monthly_local
.Pq Vt 文字列
他のすべての月次スクリプトの後に実行する
追加スクリプトのリストを設定します。
すべてのスクリプトは絶対パスで指定されなければなりません。
.El
@ -582,7 +603,6 @@ maillog
.Xr ac 8 ,
.Xr chkgrp 8 ,
.Xr dump 8 ,
.Xr mfs 8 ,
.Xr newsyslog 8 ,
.Xr periodic 8
.Sh 歴史

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD: doc/ja_JP.eucJP/man/man9/style.9,v 1.9 2001/07/12 00:16:04 horikawa Exp $
.\" $FreeBSD: doc/ja_JP.eucJP/man/man9/style.9,v 1.10 2001/07/23 02:27:01 horikawa Exp $
.\"
.Dd December 14, 1995
.Dt STYLE 9
@ -43,7 +43,7 @@
* CSRG の KNF (Kernel Normal Form, カーネル標準書式) に基づいています。
*
* @(#)style 1.14 (Berkeley) 4/28/95
* $\&FreeBSD: src/share/man/man9/style.9,v 1.32.2.12 2001/07/21 09:16:58 schweikh Exp $
* $\&FreeBSD: src/share/man/man9/style.9,v 1.32.2.13 2001/07/23 09:48:20 dd Exp $
*/
/*
@ -353,8 +353,10 @@ for
.Pp
インデントは 8 文字のタブです。
第 2 レベルのインデントは 4 文字のスペースです。
長い分を折り返す必要がある場合、オペレータを行末に置きます。
.Bd -literal
while (cnt < 20)
while (cnt < 20 && this_variable_name_is_too_long_for_its_own_good &&
ep != NULL)
z = a + really + long + statement + that + needs +
two lines + gets + indented + four + spaces +
on + the + second + and + subsequent + lines;
@ -488,7 +490,7 @@ void *
if ((four = malloc(sizeof(struct foo))) == NULL)
err(1, (char *)NULL);
if ((six = (int *)overflow()) == NULL)
errx(1, "Number overflowed.");
errx(1, "number overflowed");
return (eight);
}
.Ed