sendip(1) Send arbitrary IP packets

SYNOPSIS

sendip [-v] [-d data] [-h] [-f datafile] [-p module] [module options] hostname

OPTIONS

-d data
add this data as a string to the end of the packet Data can be: rN to generate N random(ish) data bytes; 0x or 0X followed by hex digits; 0 followed by octal digits; any other stream of bytes
-f datafile
read packet data from file
-h
print this message
-p module
load the specified module (see below)
-v
be verbose

Modules are loaded in the order the -p option appears. The headers from each module are put immediately inside the headers from the previos model in the final packet. For example, to embed bgp inside tcp inside ipv4, do sendip -p ipv4 -p tcp -p bgp ....

Modules available at compile time:

ipv4 ipv6 icmp tcp udp bgp rip ntp

Arguments for module ./bgp.so:

-bm x
BGP Marker field (format is <hex byte>:<hex byte>:...)
Default: FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF
-bl x
Packet length
Default: Correct
-bt x
Message Type (1 OPEN, 2 UPDATE, 3 NOTIFICATION, 4 KEEPALIVE
Default: 4 (KEEPALIVE)
-bo x
Open message. Format is <version>:<AS number>:<Hold time>:<BGP Identifier>:<Options length>
Default: 4:1:90:127.0.0.1:Correct
(Any parameter can be omitted to get the default)
-boo x
Optional OPEN parameter. Format is <Type>:<Length>:<Value> - value is in hex bytes separated by :s
Default: Length may be omitted to get correct value
-bul x
Withdrawn routes length
Default: Correct
-buw x
Withdrawn route. Format is x.x.x.x/n:<bytes for prefix>
Default: Bytes field may be omitted to use the correct number
-bus x
Attributes length
Default: Correct
-bua x
Attribute. Format is <flags>:<type>:<length length (1 or 2):<length>:<data>
Default: The length fields may be omitted to use the correct value
-bun x
NLRI Prefix. Format is as for -buw
Default: As for -buw
-bn x
Notification. Format is <code>:<subcode>:<data>
Default: Data may be omitted for no data

Arguments for module ./icmp.so:

-ct x
ICMP message type
Default: ICMP_ECHO (8), or ICMP6_ECHO_REQUEST (128) if embedded in an IPv6 packet
-cd x
ICMP code
Default: 0
-cc x
ICMP checksum
Default: Correct

Arguments for module ./ipv4.so:

-is x
Source IP address (see README)
Default: 127.0.0.1
-id x
Destination IP address
Default: Correct
-ih x
IP header length (see README)
Default: Correct
-iv x
IP version (you almost definately don't want to change this)
Default: 4
-iy x
IP type of service
Default: 0
-il x
Total IP packet length (see README)
Default: Correct
-ii x
IP packet ID (see README)
Default: Random
-ifr x
IP reservced flag (see README)
Default: 0 (options are 0,1,r)
-ifd x
IP don't fragment flag (see README)
Default: 0 (options are 0,1,r)
-ifm x
IP more fragments flag (see README)
Default: 0 (options are 0,1,r)
-if x
IP fragment offset
Default: 0
-it x
IP time to live
Default: 255
-ip x
IP protcol
Default: 0, or set by underlying protocol
-ic x
IP checksum (see README)
Default: Correct
-ionum x
IP option as string of hex bytes (length is always correct)
Default: (no options)
-ioeol
IP option: end of list
-ionop
IP option: no-op
-iorr x
IP option: record route. Format: pointer:addr1:addr2:...
-iots x
IP option: timestamp. Format: pointer:overflow:flag:(ip1:)ts1:(ip2:)ts2:...
-iolsr x
IP option: loose source route. Format: pointer:addr1:addr2:...
-iosid x
IP option: stream identifier
-iossr x
IP option: strict source route. Format: pointer:addr1:addr2:...

Arguments for module ./ipv6.so:

-6f x
IPv6 flow ID
Default: 32
-6t x
IPv6 traffic class
Default: 0
-6l x
IPv6 payload length
Default: Correct
-6n x
IPv6 next header
Default: IPPROTO_NONE
-6h x
IPv6 hop limit
Default: 32
-6v x
IP version (you probably don't want to change this
-6p x
IPv6 priority
Default: 0
-6s x
IPv6 source address
Default: ::1
-6d x
IPv6 destination address
Default: Correct

Arguments for module ./rip.so:

-rv x
RIP version
Default: 2
-rc x
RIP command (1=request, 2=response, 3=traceon (obsolete), 4=traceoff (obsolete), 5=poll (undocumented), 6=poll entry (undocumented)
Default: 1
-re x
Add a RIP entry. Format is: Address family:route tag:address:subnet mask:next hop:metric
Default: 2:0:0.0.0.0:255.255.255.0:0.0.0.0:16, any option my be left out to use the default
-ra x
RIP authenticat packet, argument is the password; do not use any other RIP options on this RIP header
-rd
RIP default request - get router's entire routing table; do not use any other RIP options on this RIP header

Arguments for module ./ripng.so:

-Rv x
RIPng version
Default: 1
-Rc x
RIPng command (1=request, 2=response)
Default: 1
-Rr x
RIPng reserved field (should be 0)
Default: 0
-Re x
Add a RIPng entry. Format is: Address/route tag/address/len/metric
Default: ::/0/128/1, any option my be left out to use the default
-Rd
RIPng default request - get router's entire routing table; do not use any other RIPng options on this RIPng header

Arguments for module ./tcp.so:

-ts x
TCP source port
Default: 0
-td x
TCP destination port
Default: 0
-tn x
TCP sequence number
Default: Random
-ta x
TCP ack number
Default: 0
-tt x
TCP data offset
Default: Correct
-tr x
TCP header reserved field EXCLUDING ECN and CWR bits
Default: 0
-tfe x
TCP ECN bit (rfc2481)
Default: 0 (options are 0,1,r)
-tfc x
TCP CWR bit (rfc2481)
Default: 0 (options are 0,1,r)
-tfu x
TCP URG bit
Default: 0, or 1 if -tu specified (options are 0,1,r)
-tfa x
TCP ACK bit
Default: 0, or 1 if -ta specified (options are 0,1,r)
-tfp x
TCP PSH bit
Default: 0 (options are 0,1,r)
-tfr x
TCP RST bit
Default: 0 (options are 0,1,r)
-tfs x
TCP SYN bit
Default: 1 (options are 0,1,r)
-tff x
TCP FIN bit
Default: 0 (options are 0,1,r)
-tw x
TCP window size
Default: 65535
-tc x
TCP checksum
Default: Correct
-tu x
TCP urgent pointer
Default: 0
-tonum x
TCP option as string of hex bytes (length is always correct)
Default: (no options)
-toeol
TCP option: end of list
-tonop
TCP option: no op
-tomss x
TCP option: maximum segment size
-towscale x
TCP option: window scale (rfc1323)
-tosackok
TCP option: allow selective ack (rfc2018)
-tosack x
TCP option: selective ack (rfc2018), format is l_edge1:r_edge1,l_edge2:r_edge2...
-tots x
TCP option: timestamp (rfc1323), format is tsval:tsecr

Arguments for module ./udp.so:

-us x
UDP source port
Default: 0
-ud x
UDP destination port
Default: 0
-ul x
UDP packet legnth
Default: Correct
-uc x
UDP checksum
Default: Correct