aboutsummaryrefslogtreecommitdiffstats
path: root/doc/randpkt.pod
blob: 07c889f1d9aabbb7ea2ac6de885832a5a501cda3 (plain)
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
=head1 NAME

randpkt - Random Packet Generator

=head1 SYNOPSIS

B<randpkt>
S<[ B<-b> E<lt>maxbytesE<gt> ]>
S<[ B<-c> E<lt>countE<gt> ]>
S<[ B<-t> E<lt>typeE<gt> ]>
E<lt>filenameE<gt>

=head1 DESCRIPTION

B<randpkt> is a small utility that creates a B<libpcap> trace file
full of random packets.

By creating many randomized packets of a certain type, you can
test packet sniffers to see how well they handle malformed packets.
The sniffer can never trust the data that it sees in the packet because
you can always sniff a very bad packet that conforms to no standard.
B<randpkt> produces I<very bad> packets.

When creating packets of a certain type, B<randpkt> uses a sample
packet that is stored internally to B<randpkt>. It uses this as the
starting point for your random packets, and then adds extra random
bytes to the end of this sample packet.

For example, if you choose to create random ARP packets, B<randpkt>
will create a packet which contains a predetermined Ethernet II header,
with the Type field set to ARP. After the Ethernet II header, it will
put a random number of bytes with random values.

=head1 OPTIONS

=over 4

=item -b E<lt>maxbytesE<gt>

Default 5000.

Defines the maximum number of bytes added to the sample packet.
If you choose a B<maxbytes> value that is less than the size of the
sample packet, then your packets would contain only the sample
packet... not much variance there! B<randpkt> exits on that condition.

=item -c E<lt>countE<gt>

Default 1000.

Defines the number of packets to generate.

=item -t E<lt>typeE<gt>

Default Ethernet II frame.

Defines the type of packet to generate:
        arp     Address Resolution Protocol
        bgp     Border Gateway Protocol
        bvlc    BACnet Virtual Link Control
        dns     Domain Name Service
        eth     Ethernet
        fddi    Fiber Distributed Data Interface
        giop    General Inter-ORB Protocol
        icmp    Internet Control Message Protocol
        ip      Internet Protocol
        llc     Logical Link Control
        m2m     WiMAX M2M Encapsulation Protocol
        megaco  MEGACO
        nbns    NetBIOS-over-TCP Name Service
        ncp2222 NetWare Core Protocol
        sctp    Stream Control Transmission Protocol
        syslog  Syslog message
        tds     TDS NetLib
        tcp     Transmission Control Protocol
        tr      Token-Ring
        udp     User Datagram Protocol
        usb     Universal Serial Bus
        usb-linux       Universal Serial Bus with Linux specific header

=back

=head1 EXAMPLES

To see a description of the randpkt options use:

    randpkt

To generate a capture file with 1000 DNS packets use:

    randpkt -b 500 -t dns rand_dns.pcap

To generate a small capture file with just a single LLC frame use:

    randpkt -b 100 -c 1 -t llc single_llc.pcap

=head1 SEE ALSO

pcap(3), editcap(1)