summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ipsend/iptest/iptest.1
blob: c705bb5f620a7ff450f6066654e4bbee740cac39 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
.\"     $OpenBSD: iptest.1,v 1.4 1999/10/10 17:50:03 ericj Exp $
.Dd October  8, 1999
.Dt IPTEST 1
.Os
.Sh NAME
.Nm iptest
.Nd automatically generate packets to test IP functionality
.Sh SYNOPSIS
.Nm iptest
.Op Fl 1234567
.Op Fl d Ar device
.Op Fl g Ar gateway
.Op Fl m Ar mtu
.Op Fl p Ar pointtest
.Op Fl s Ar src
.Ar destination
.Sh DESCRIPTION
.Nm
generates a series of IP packets to
.Ar destination
via
.Ar gateway
using the interface
.Ar device .
The packets generated test various aspects of IP functionality.
.Pp
By default all tests are done, using the interface
.Sq lan0 .
This interface does not normally exist on
.Ox
so an existing interface must be specified with the
.Fl d
option.
To limit the tests to a single group or to a single test within a group the 
.Fl 1234567
and 
.Fl p
options are available. It is not possible to specify more than one
test group or point test at a time.
.Pp
.Nm
must be run as root.
.Ss Options
.Bl -tag -width "-r "
.It Fl 1
IP header tests. This group of tests generates packets with the IP
header fields set to invalid values given other packet characteristics.
The point tests are:
.Pp
.Bl -tag -width "10 " -compact -offset indent
.It 1
ip_hl < ip_len
.It 2
ip_hl > ip_len
.It 3
ip_v < 4
.It 4
ip_v > 4
.It 5
ip_len < packetsize, long packets
.It 6
ip_len > packet size, short packets
.It 7
Zero length fragments
.It 8
packet > 64k after reassembly
.It 9 
IP offset with MSB set
.It 10 
ttl variations
.El
.It Fl 2
IP options tests. This group of tests generates packets with the IP
options constructed with invalid values given other packet characteristics.
The point tests are:
.Pp
.Bl -tag -compact -width "1  " -offset indent
.It 1 
option length > packet length
.It 2 
option length = 0
.El
.It Fl 3
ICMP tests. This group of tests generates packets with the ICMP
header fields set to non-standard values.
The point tests are:
.Pp
.Bl -tag -compact -width "1  " -offset indent
.It 1 
ICMP types 0-31 & 255
.It 2
type 3 & codes 0-31
.It 3
type 4 & codes 0, 127, 128, 255
.It 4
type 5 & codes 0, 127, 128, 255
.It 5
types 8-10, 13-18 with codes 0, 127, 128 and 255
.It 6
type 12 & codes 0, 127, 128, 129, 255
.It 7
type 3 & codes 9-10, 13-14 and 17-18 - shortened packets
.El
.It Fl 4
UDP tests. This group of tests generates packets with the UDP
header fields set to non-standard values. The point tests are:
.Pp
.Bl -tag -width "1  " -compact -offset indent
.It 1
UDP length > packet size
.It 2
UDP length < packetsize
.It 3
sport = 0, 1, 32767, 32768, 65535
.It 4
dport = 0, 1, 32767, 32768, 65535
.It 5
sizeof(struct ip) <= MTU <= sizeof(struct udphdr) + sizeof(struct ip)
.El
.It Fl 5
TCP tests. This group of tests generates packets with the TCP
header fields set to non-standard values. The point tests are:
.Pp
.Bl -tag -width "1  " -compact -offset indent
.It 1
TCP flags variations, all combinations
.It 2 
seq = 0, 0x7fffffff, 0x8000000, 0xa0000000, 0xffffffff
.It 3 
ack = 0, 0x7fffffff, 0x8000000, 0xa0000000, 0xffffffff
.It 4 
SYN packet with window of 0, 32768, 65535 
.It 5 
set urgent pointer to 1, 0x7fff, 0x8000, 0xffff
.It 6 
data offset
.It 7 
sport = 0, 1, 32767, 32768, 65535
.It 8 
dport = 0, 1, 32767, 32768, 65535
.El
.It Fl 6
Overlapping fragments test. This test generates a large number of fragments in
an attempt to exhaust the network buffers used for holding packets for later
reassembly.
.Pp
WARNING: this may crash or cause serious performance degradation
to the target host.
.It Fl 7
Random packets. This test generates 1024 random IP packets with only
the IP version, checksum, length and IP offset field correct.
.It Fl d Ar device
Set the interface name to be the name supplied.
.It Fl g Ar gateway
Specify the hostname of the gateway through which to route packets. This
is required whenever the destination host isn't directly attached to the
same network as the host from which you're sending.
.It Fl m Ar mtu
Set the MTU used when sending out packets to
.Ar mtu .
This option lets you
set a fake MTU, allowing the simulation of network interfaces with small
MTU's.
.It Fl p Ar pointtest
Run point test
.Ar pointtest
of the test group.
.It Fl s Ar src
Specify the source address of the IP packets as
.Ar src
.El
.Sh SEE ALSO
.Xr ipsend 1 ,
.Xr ipresend 1 ,
.Xr bpf 4 
.Sh BUGS
If you find any, please send email to me at darrenr@cyber.com.au