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 ./ntp.so:

-nl x

NTP Leap Indicator

  • Default: 00 (no warning)

-ns x

NTP status

  • Default: 0 (clock operating OK)

-nt x

NTP type

  • Default: 0 (unspecified)

-np x

NTP precision

  • Default: 0

-ne x

NTP estimated error

  • Default: 0.0

-nd x

NTP estimated drift rate

  • Default: 0.0

-nr x

NTP reference clock ID (string or IP or number)

  • Default: 0

-nf x

NTP reference timestamp

  • Default: 0.0

-no x

NTP originate timestamp

  • Default: 0.0

-na x

NTP arrival (receive) timestamp

  • Default: 0.0

-nx x

NTP xmit (transmit) timestamp

  • Default: 0.0

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