.\" $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