IPSEND
Section: File Formats (5)
索引
jman
索引
名称
ipsend - IP パケット記述言語
索引
解説
ipsend プログラムは、-L オプションが付くと、以下の文法に
適合するテキストファイルを入力として期待します。
この文法の目的は、任意の方法で IP パケットを指定可能とすることで、
IP パケットを任意の方法でカプセル化できるようにすることです。
索引
文法
line ::= iface | arp | send | defrouter | ipv4line .
iface ::= ifhdr "{" ifaceopts "}" ";" .
ifhdr ::= "interface" | "iface" .
ifaceopts ::= "ifname" name | "mtu" mtu | "v4addr" ipaddr |
"eaddr" eaddr .
send ::= "send" ";" | "send" "{" sendbodyopts "}" ";" .
sendbodyopts ::= sendbody [ sendbodyopts ] .
sendbody ::= "ifname" name | "via" ipaddr .
defrouter ::= "router" ipaddr .
arp ::= "arp" "{" arpbodyopts "}" ";" .
arpbodyopts ::= arpbody [ arpbodyopts ] .
arpbody ::= "v4addr" ipaddr | "eaddr" eaddr .
bodyline ::= ipv4line | tcpline | udpline | icmpline | dataline .
ipv4line ::= "ipv4" "{" ipv4bodyopts "}" ";" .
ipv4bodyopts ::= ipv4body [ ipv4bodyopts ] | bodyline .
ipv4body ::= "proto" protocol | "src" ipaddr | "dst" ipaddr |
"off" number | "v" number | "hl" number| "id" number |
"ttl" number | "tos" number | "sum" number | "len" number |
"opt" "{" ipv4optlist "}" ";" .
ipv4optlist ::= ipv4option [ ipv4optlist ] .
ipv4optlist = "nop" | "rr" | "zsu" | "mtup" | "mtur" | "encode" | "ts" |
"tr" | "sec" | "lsrr" | "e-sec" | "cipso" | "satid" |
"ssrr" | "addext" | "visa" | "imitd" | "eip" | "finn" |
"secclass" ipv4secclass.
ipv4secclass := "unclass" | "confid" | "reserv-1" | "reserv-2" |
"reserv-3" | "reserv-4" | "secret" | "topsecret" .
tcpline ::= "tcp" "{" tcpbodyopts "}" ";" .
tcpbodyopts ::= tcpbody [ tcpbodyopts ] | bodyline .
tcpbody ::= "sport" port | "dport" port | "seq" number | "ack" number |
"off" number | "urp" number | "win" number | "sum" number |
"flags" tcpflags | data .
udpline ::= "udp" "{" udpbodyopts "}" ";" .
udpbodyopts ::= udpbody [ udpbodyopts ] | bodyline .
udpbody ::= "sport" port | "dport" port | "len" number | "sum" number |
data .
icmpline ::= "icmp" "{" icmpbodyopts "}" ";" .
icmpbodyopts ::= icmpbody [ icmpbodyopts ] | bodyline .
icmpbody ::= "type" icmptype [ "code" icmpcode ] .
icmptype ::= "echorep" | "echorep" "{" echoopts "}" ";" | "unreach" |
"unreach" "{" unreachtype "}" ";" | "squench" | "redir" |
"redir" "{" redirtype "}" ";" | "echo" "{" echoopts "}" ";" |
"echo" | "routerad" | "routersol" | "timex" |
"timex" "{" timextype "}" ";" | "paramprob" |
"paramprob" "{" parapptype "}" ";" | "timest" | "timestrep" |
"inforeq" | "inforep" | "maskreq" | "maskrep" .
echoopts ::= echoopts [ icmpechoopts ] .
unreachtype ::= "net-unr" | "host-unr" | "proto-unr" | "port-unr" |
"needfrag" | "srcfail" | "net-unk" | "host-unk" | "isolate" |
"net-prohib" | "host-prohib" | "net-tos" | "host-tos" |
"filter-prohib" | "host-preced" | "cutoff-preced" .
redirtype ::= "net-redir" | "host-redir" | "tos-net-redir" |
"tos-host-redir" .
timextype ::= "intrans" | "reass" .
paramptype ::= "optabsent" .
data ::= "data" "{" databodyopts "}" ";" .
databodyopts ::= "len" number | "value" string | "file" filename .
icmpechoopts ::= "icmpseq" number | "icmpid" number .
索引
コマンド
パケットの送信や、パケットの定義の前に、
送信する際に用いるインタフェースを記述する必要があります。
- interface
-
これは、ネットワークインタフェースを記述するために用います。ここに
含まれる記述では、オペレーティングシステムが採用している実際の
コンフィギュレーションと一致させる必要はありません。
- send
-
これは、実際にネットワーク越しにパケットを送信するために用います。
終点が指定されない場合、そのネットワークに、ルーティングなしで終点に
向けて直接パケットを送出します。
- router
-
これは、ipsend が使うデフォルトルータを、カーネルが扱うデフォルト経路と
は別に指定します。
- ipv4
-
これは (バージョン 4 の) IP パケットを記述します。IP ヘッダフィールドを、
オプションも含めて、さらに先のプロトコルヘッダを含むデータセクションを
続けて指定することも出来ます。
索引
IPv4
- hl <number>
-
これは、手動で IP ヘッダ長を指定します (IP オプションの存在に
より自動的に修正されます。デフォルトは 5)。
- v <number>
-
IP バージョンを設定します。デフォルトは 4 です。
- tos <number>
-
これは、サービスの型 (Type Of Service, TOS) を設定します。
デフォルトは 0 です。
- len <number>
-
IP パケットの長さを手動で指定します。データやプロトコルヘッダを
収容できるように、長さは自動的に調整されます。
- off <number>
-
これは、IP パケットのフラグメントオフセットフィールドの値を設定します。
デフォルトは 0 です。
- ttl <number>
-
これは IP ヘッダの生存時間 (Time To Live, TTL) フィールドを設定します。
デフォルトは 60 です。
- proto <protocol>
-
これは IP ヘッダのプロトコルフィールドを設定します。protocol は、
/etc/protocols に存在する数字または名前が使えます。
- sum
-
手動で IP ヘッダのチェックサムを設定します。これを設定しない (0) ままだと、
送信前に計算されます。
- src
-
手動で IP ヘッダの始点アドレスを指定します。これを設定しないままだと、
ホストの IP アドレスをデフォルトとします。
- dst
-
これは、IP パケットの終点を設定します。デフォルトは 0.0.0.0 です。
- opt
-
これは、IP ヘッダの IP オプションを指定するために用います。
- tcp
-
これは、TCP プロトコルヘッダが後続することを示すために用います。TCP ヘッダの
オプションについては、TCP を参照してください。
- udp
-
これは、UDP プロトコルヘッダが後続することを示すために用います。UDP ヘッダの
オプションについては、UDP の節を参照してください。
- icmp
-
これは、ICMP プロトコルヘッダが後続することを示すために用います。ICMP ヘッダの
オプションについては、ICMP の節を参考にしてください。
- data
-
これは、IP パケットに生データが含まれることを示すために用います。指定可能な
オプションの詳細については、データ の節を参考にして下さい。
索引
IPv4 のオプション
これらのキーワードは、対応する IP オプションを IP ヘッダに追加すべき
ことを表します (このときヘッダ長フィールドは適切に調節されます)。
- nop
-
無動作 (No Operation) [RFC 791] (埋め草として使います)。
- rr <number>
-
経路記録 (Record Router) [RFC 791]。与えられた番号は、情報を保持するのに
用いる領域の バイト 数を指定します。ちゃんと動作させるには、この値は
4 の倍数に指定しておく必要があります。
- zsu
-
測定実験 (Experimental Measurement)。
- mtup [RFC 1191].
-
最大転送単位 (Maximum Transmission Unit, MTU) 探査 (MTU Probe)。
- mtur [RFC 1191].
-
最大転送単位レディ (MTU Ready)。
- encode
-
- ts
-
タイムスタンプ (Timestamp) [RFC 791]。
- tr
-
経路追跡 (Traceroute) [RFC 1393]。
- sec-class <security-level>, sec
-
セキュリティ (Security) [RFC1108]。このオプションはパケットのセキュリティ
レベルを指定します。
sec はセキュリティオプションの枠組みを設定しますが、
sec-class を指定しないとレベルは設定されないままとなります。
- lsrr <ip-address>
-
厳密でない始点経路制御 (Loose Source Route) [RFC 791]。
- e-sec
-
拡張セキュリティ (Extended Security) [RFC 1108]。
- cipso
-
商用セキュリティ (Commercial Security)。
- satid
-
ストリーム ID [RFC 791]。
- ssrr <ip-address>
-
厳密な始点経路制御 [RFC 791]。
- addext
-
アドレス拡張 (Address Extension)。
- visa
-
実験的アクセス制御 (Experimental Access Control)。
- imitd
-
IMI 流量記述子 (IMI Traffic Descriptor)。
- eip
-
[RFC 1358]。
- finn
-
実験的フロー制御 (Experimental Flow Control)。
索引
TCP
- sport <port>
-
始点ポート番号を与えられた番号/名前で設定します。デフォルトは 0 です。
- dport <port>
-
終点ポート番号を与えられた番号/名前で設定します。デフォルトは 0 です。
- seq <number>
-
シーケンス番号を指定した数で設定します。デフォルトは 0 です。
- ack <number>
-
応答番号を指定した数で設定します。デフォルトは 0 です。
- off <number>
-
データ先頭からのオフセット値を指定した数で設定します。つまり TCP
ヘッダの大きさを意味します。TCP オプションが含まれる場合、この値は自動
的に修正されます。デフォルトは 5 です。
- urp <number>
-
緊急データポインタの値を指定した数で設定します。デフォルトは 0 です。
- win <number>
-
TCP ウィンドウの大きさを指定した数で設定します。デフォルトは 4096 です。
- sum <number>
-
TCP 疑似ヘッダとデータに対するチェックサムを手動で指定します。特に設定
しなければ、デフォルトの 0 になり、自動的に計算されます。
- flags <tcp-flags>
-
指定したフラグに一致する TCP フラグフィールドが設定されます。有効な
フラグは、"S" (SYN), "A" (ACK), "R" (RST), "F" (FIN), "U" (URG), "P"
(PUSH) です。
- opt
-
TCP オプションが後続することを示します。TCP オプションを TCP
ヘッダに追加する際には、off フィールドが一致するように更新
されます。
- data
-
これ以後がデータセクションであり、ヘッダの後ろに追加すべき生データが
含まれることを示します。
索引
TCP オプション
TCP ヘッダには、いくつかのヘッダオプションを追加することが可能です。
ヘッダの大きさが変わるにつれ TCP ヘッダオフセットは自動的に更新されます。
有効なオプションは、nop 無動作(No Operation), eol
オプションリストの終り(End Of (option) List), mss [ size ]
最大セグメント長 (Maximum Segment Size - これはデータを含むパケットの
受信可能な最大長を設定します),
wscale ウィンドウスケール(Window Scale), ts
タイムスタンプ(Timestamp) です。
索引
UDP
- sport <port>
-
始点ポート番号を与えられた番号/名前で設定します。デフォルトは 0 です。
- dport <port>
-
終点ポート番号を与えられた番号/名前で設定します。デフォルトは 0 です。
- len <number>
-
UDP ヘッダとデータの長さを手動で指定します。特に設定しなければ、今ある
ヘッダと今あるデータに合致するように自動的に修正されます。
- sum <number>
-
UDP 疑似ヘッダとデータに対するチェックサムを手動で指定します。特に設定し
なければ、デフォルトの 0 になり、自動的に計算されます。
- data
-
これ以後がデータセクションであり、ヘッダの後ろに追加すべき生データが
含まれることを示します。
索引
ICMP
- type <icmptype>
-
これは icmptype タグにしたがって ICMP タイプを設定します。これは数値または
認識されるタグのいずれかです (認識されるタグ名の一覧については、ICMP
タイプ の節を参照のこと)。
- code <icmpcode>
-
ICMP コードを設定します。
- data
-
これ以後がデータセクションであり、ヘッダの後ろに追加すべき生データが
含まれることを示します。
索引
データ
以下に示すものは、それぞれ異なったやり方でパケットを拡張します。
len は (内容は付加せずに) 単に長さを増やすだけです。value
は文字列を使います。file はファイルを使います。
- len <number>
-
パケットの長さを number バイト拡張します (特定のデータで埋める
ことはしません)。
- value <string>
-
与えられた文字列を今あるパケットのデータとして追加することを示します。
文字列は文字もしくは数値の連続したリスト (空白文字をはさみません)、
もしくは "' で区切られています (この場合、たとえ \ したとしても、
これらの文字は含みません)。文字 \ は 後続の文字(もしくは 8 進数)といっしょに
して、C 言語のエスケープ値と解釈されます。
- file <filename>
-
指定したファイルからデータを読み込み、今あるパケットに追加します。その
結果の全長が 64k を越える場合、エラーとなります。
索引
ICMP タイプ
- echorep
-
エコー応答 (Echo Reply)。
- unreach [ unreachable-code ]
-
汎用の到達不可能エラー。これは、ネットワークをまたいでパケットを伝送
しようとしているうちにエラーが発生し、終点に到達できないことを示します。
到達不可能コード(unreachable-code)の名前は、
net-unr ネットワーク到達不可能 (network unreachable),
host-unr ホスト到達不可能 (host unreachable),
proto-unr プロトコル到達不可能 (protocol unreachable),
port-unr ポート到達不可能 (port unreachable),
needfrag, srcfail 始点経路制御失敗 (source route failed),
net-unk ネットワーク不明 (network unknown),
host-unk ホスト不明 (host unknown),
isolate, net-prohib 管理上の理由によりネットワーク接触禁止,
host-prohib 管理上の理由によりホスト接触禁止,
net-tos 指定した TOS でネットワーク到達不可能,
host-tos 指定した TOS でホスト到達不可能,
filter-prohib パケットフィルタにより禁止されたパケット,
host-preced,
cutoff-preced です。
- squench
-
始点抑制 (Source Quence)。
- redir [ redirect-code ]
-
(経路の) 方向転換 (Redirect (routing))。パケットを送付するために選択
された経路が最適といえないので、パケットの送信側が他の経路を経路指定
すべきであることを表すために用います。方向転換コード (redirect-code) の名前は、
net-redir ネットワークに到達するための方向転換,
host-redir ホストに到達するための方向転換,
tos-net-redir 与えられた TOS でネットワークに到達するための方向転換,
tos-host-redir 与えられた TOS でホストに到達するための方向転換
です。
- echo
-
エコー。
- routerad
-
ルータの公示 (Router advertisment)。
- routersol
-
ルータの請求 (Router solicitation)。
- timex [ timexceed-code ]
-
全体時間超過 (Time Exceeded)。道程が長過ぎて (つまり、ttl が 0 に
なってしまい) パケットが終点に到達できなかったことを表すために用います。
有効なコードの名前は、intrans, reass 与えられた時間内で
フラグメントからパケットの再構成ができなかった、です。
- paramprob [ paramprob-code ]
-
パラメータの問題。パラメータ問題のコードの名前で利用できるものはひとつ
だけで、optabsent です。
- timest
-
タイムスタンプ要求。
- timestrep [ { timestamp-code } ]
-
タイムスタンプ応答。タイムスタンプ応答の中で、以下の値を提供することが
できます。rtime, otime, ttime。
- inforeq
-
情報要求。
- inforep
-
情報応答。
- maskreq
-
アドレスマスク要求。
- maskrep
-
アドレスマスク応答。
索引
関連ファイル
/etc/hosts
/etc/protocols
/etc/services
索引
関連項目
ipsend(1), iptest(1), hosts(5), protocols(5), services(5)
索引
Index
- 名称
-
- 解説
-
- 文法
-
- コマンド
-
- IPv4
-
- IPv4 のオプション
-
- TCP
-
- TCP オプション
-
- UDP
-
- ICMP
-
- データ
-
- ICMP タイプ
-
- 関連ファイル
-
- 関連項目
-
Time: 07:07:28 GMT, January 12, 2009