 |
|
| |
hipercontracer(1) |
FreeBSD General Commands Manual |
hipercontracer(1) |
hipercontracer —
High-Performance Connectivity Tracer
(HiPerConTracer)
hipercontracer |
[-P | --ping ]
[-T | --traceroute ]
[-L level |
--loglevel level]
[-Z on|off |
--logcolor on|off]
[-O file |
--logfile file]
[-q | --quiet ]
[-v | --verbose ]
[-U user|uid |
--user user|uid]
[-# identifier |
--measurement-id identifier]
[-S
address|hostname[,traffic_class[,...]] |
--source
address|hostname[,traffic_class[,...]]]
[-D address|hostname |
--destination
address|hostname]
[--sources-from-file file]
[--destinations-from-file
file] [-M
ICMP|UDP | --iomodule
ICMP|UDP] [-I
number_of_iterations |
--iterations
number_of_iterations]
[--tracerouteinterval
milliseconds]
[--tracerouteintervaldeviation
fraction]
[--tracerouteduration
milliseconds]
[--tracerouterounds rounds]
[--tracerouteinitialmaxttl
value]
[--traceroutefinalmaxttl
value]
[--tracerouteincrementmaxttl
value]
[--traceroutepacketsize
bytes]
[--tracerouteudpsourceport
port]
[--tracerouteudpdestinationport
port] [--pinginterval
milliseconds]
[--pingintervaldeviation
fraction] [--pingexpiration
milliseconds] [--pingburst
packets] [--pingttl
value] [--pingpacketsize
bytes] [--pingudpsourceport
port]
[--pingudpdestinationport
port] [-R
directory |
--resultsdirectory
directory] [-x
seconds |
--resultstransactionlength
seconds] [-C
none|XZ|BZip2|GZip|ZLIB|ZSTD |
--resultscompression
none|XZ|BZip2|GZip|ZLIB|ZSTD]
[-F version |
--resultsformat version]
[-z depth |
--resultstimestampdepth
depth] |
hipercontracer |
[-h | --help ] |
hipercontracer |
[--version ] |
hipercontracer is a Ping/Traceroute
service. It performs regular Ping and Traceroute runs among sites and can
export the results into results statements for import into a database.
The following arguments may be provided:
-P |
--ping
- Start the Ping service.
-T |
--traceroute
- Start the Traceroute service.
-L
level |
--loglevel
level
- Sets the minimum logging level to the provided value: 0=trace, 1=debug,
2=info, 3=warning, 4=error, 5=fatal.
-Z
on|off |
--logcolor
on|off
- Enables (on) or disables (off) the usage of ANSI color escape sequences to
colorise the log output according to its level.
-O
file |
--logfile
file
- Sets a file name for appending the log output to. If a file is set, no log
output is made to the console. Otherwise, all log output will be written
to the console.
-q |
--quiet
- Sets the minimum logging level to 3 (warning).
-v |
--verbose
- Sets the minimum logging level to 0 (trace).
-U
user|uid |
--user
user|uid
- After startup, HiPerConTracer uses UID and GID of the given user (by name
or GID). The output directory's ownership as well as the ownership of the
created results files will be set accordingly.
-#
identifier |
--measurement-id
identifier
- Sets a unique measurement identifier for the measurement. All output files
will have this identifier in their file name (#<ID>). It can be used
to set a setup-wide unique identifier to identify the vantage point. If no
measurement identifier is specified, the files will contain the process ID
instead (P<ID>). Range: 0-2147483647. Default: 0 (using process ID
instead).
-S
address|hostname[,traffic_class[,...]] |
--source
address|hostname[,traffic_class[,...]]
- Adds the given source address or hostname. It is possible to use the ANY
address (0.0.0.0 or ::), in order to just use the default route. If no
traffic class is given, Best Effort (00) is used. Otherwise, the list of
given traffic classes (in hexadecimal) is used. Alternatively, a traffic
class can be specified by PHB name (BE, EF, AF11, AF12, AF13, AF21, AF22,
AF23, AF31, AF32, AF33, AF41, AF42, AF43, CS1, CS2, CS3, CS4, CS5, CS6,
CS7). In this case, the corresponding traffic class with ECN bits set to 0
is used. Note: use lower-case hexadecimal letters to avoid ambiguities
with PHB name (e.g. be for 0xbe instead of BE PHB)! If a hostname is
provided, a DNS resolution is performed and all returned addresses are
added. If no source address is provided, HiPerConTracer automatically adds
0.0.0.0 if there is an IPv4 destination, and :: if there is an IPv6
destination given.
-D
address|hostname |
--destination
address|hostname
- Adds the given destination address or hostname. If a hostname is provided,
a DNS resolution is performed and all returned addresses are added.
--sources-from-file
file
- Read sources from given file. This option may be used multiple times, to
read from multiple files.
--destinations-from-file
file
- Read destinations from given file. This option may be used multiple times,
to read from multiple files.
-M
ICMP|UDP |
--iomodule
ICMP|UDP
- Adds an I/O module: ICMP or UDP. The option may be specified multiple
times with different modules.
-I
number_of_iterations |
--iterations
number_of_iterations
- Limit the number of measurement iterations (measurement for all
source/destination pairs) to the given number of iterations. The default 0
lets HiPerConTracer run continuously.
--tracerouteinterval
milliseconds
- Sets the Traceroute interval (time for each full round of
destinations).
--tracerouteintervaldeviation
fraction
- Randomly deviate the Traceroute interval by the given fraction (as 0.0 to
1.0), that is to chose out of [interval - fraction * interval, interval +
fraction * interval], in order to avoid synchronisation effects. Default
is 0.1 (10%).
--tracerouteduration
milliseconds
- Sets the Traceroute duration (timeout for each destination).
--tracerouterounds
rounds
- For each Traceroute measurement, perform the given number of rounds
simultaneously. Default is 1 round. Range: 1-64. Each TTL test of a round
will have the same ICMP checksum value ("Oslo Traceroute"), in
order to deal with load balancing in the Internet. Different rounds will
have different checksums. That is, different rounds may experience
different paths in the network.
--tracerouteinitialmaxttl
value
- Start with the given maximum TTL. Default is 6.
--traceroutefinalmaxttl
value
- Finish with the given maximum TTL (when destination is not reached with
current TTL setting). Default is 36.
--tracerouteincrementmaxttl
value
- Increase the maximum TTL by the given value (when destination is not
reached with current TTL setting). Default is 6.
--traceroutepacketsize
bytes
- Sets the Traceroute packet size, that is IP header (20 for IPv4/40 for
IPv6) + ICMP header (8)/UDP header (8) + HiPerConTracer header (16) +
payload, in bytes. The actually sent packet size always covers at least
the headers for IPv4/IPv6, ICMP and HiPerConTracer. Maximum packet size is
65535.
--tracerouteudpsourceport
port
- Sets the Traceroute source port for the UDP module (default: 0, for
automatic allocation). Note: If using a fixed UDP port for Traceroute,
different UDP source ports must be used for any other services!
--tracerouteudpdestinationport
port
- Sets the Traceroute destination port for the UDP module (default: 7, for
Echo).
--pinginterval
milliseconds
- Sets the Ping interval (time for each full round of destinations). Default
is 5000 ms.
--pingintervaldeviation
fraction
- Randomly deviate the Ping interval by the given fraction (as 0.0 to 1.0),
that is to chose out of [interval - fraction * interval, interval +
fraction * interval], in order to avoid synchronisation effects. Default
is 0.1 (10%).
--pingexpiration
milliseconds
- Sets the Ping duration (timeout for each destination). Default is 10000
ms.
--pingburst
packets
- For each Ping measurement, send a burst of the given number of packets.
Default is 1 packet. Range: 1-1024.
--pingttl
value
- Sets the Ping TTL value. Default is 64. Range: 1-255.
--pingpacketsize
bytes
- Sets the Ping packet size, that is IP header (20 for IPv4/40 for IPv6) +
ICMP header (8)/UDP header (8) + HiPerConTracer header (16) + payload, in
bytes. The actually sent packet size always covers at least the headers
for IPv4/IPv6, transport protocol and HiPerConTracer. Default is 0 (use
minimum possible value). Range: 0-65535.
--pingudpsourceport
port
- Sets the Ping source port for the UDP module (default: 0, for automatic
allocation). Note: If using a fixed UDP port for Ping, different UDP
source ports must be used for any other services!
--pingudpdestinationport
port
- Sets the Ping destination port for the UDP module (default: 7, for
Echo).
-R
directory |
--resultsdirectory
directory
- Sets the results files directory. The results will be stored there. If not
specified, to results will be stored.
-l
seconds |
--resultstransactionlength
seconds
- After a given number of seconds, begin a new results file.
-C
none|XZ|BZip2|GZip|ZLIB|ZSTD |
--resultscompression
none|XZ|BZip2|GZip|ZLIB|ZSTD
- Sets the compression for the output files. Default: XZ.
-F
version |
--resultsformat
version
- Sets the results file format version. Default: 2 (current version). Range
(currently): 1-2. Note: A future version of HiPerConTracer may increase
this default setting!
-z
depth |
--resultstimestampdepth
depth
- Create a timestamp-based directory hierarchy for the results, of given
depth (default: 0). 0 = none, 1 = year, 2 = year/month, 3 =
year/month/day, 4 = year/month/day/hour:00, 5 =
year/month/day/hour:00/hour:minute.
--check
- Print build environment information for debugging.
-h |
--help
- Prints command help.
--version
- Prints program version.
The output file is a text file (possibly compressed). The format
is as follows, depending on the measurement type:
- Format identifier in first line
-
- #? HPCT format version programID
-
- * format: Format of the output data (Ping, Traceroute, etc.).
-
- * version: Version of the output data (decimal).
-
- * programID: Identifier for the program generating the output
(e.g. HiPerConTracer/2.0.0).
-
- Ping (version 2, current)
- Each Ping entry consists of a #P<m> line, with m=i for ICMP and m=u
for UDP (according to underlying I/O module).
- #P<m> measurementID sourceIP destinationIP timestamp burstseq
traffic_class packetsize response_size checksum sourcePort
destinationPort status timesource delay_app_send delay_queuing
delay_app_receive rtt_app rtt_sw rtt_hw
-
- * measurementID: Measurement identifier.
-
- * sourceIP: Source IP address.
-
- * destinationIP: Destination IP address.
-
- * timestamp: Timestamp (nanoseconds since the UTC epoch,
hexadecimal).
-
- * burstseq: Sequence number within a burst (decimal), numbered
from 0.
-
- * traffic_class: The IP Traffic Class/Type of Service value of the
sent packets (hexadecimal).
-
- * packet_size: The sent packet size (decimal, in bytes) including
IPv4/IPv6 header, transport header and HiPerConTracer header.
-
- * response_size: The response packet size (decimal, in bytes)
including IPv4/IPv6 header, transport header and HiPerConTracer
header.
-
- * checksum: The checksum of the ICMP Echo Request packets
(hexadecimal); 0x0000 for other protocols, 0xffff for unknown.
-
- * sourcePort: Source port, 0 for ICMP (decimal).
-
- * destinationPort: Destination port, 0 for ICMP (decimal).
-
- * status: Status code (decimal):
-
- - 1 = ICMP response: Time Exceeded
-
- - 100 = ICMP response: Unreachable scope
-
- - 101 = ICMP response: Unreachable network
-
- - 102 = ICMP response: Unreachable host
-
- - 103 = ICMP response: Unreachable protocol
-
- - 104 = ICMP response: Unreachable port
-
- - 105 = ICMP response: Unreachable, prohibited (firewall)
-
- - 110 = ICMP response: Unreachable, unknown reason
-
- - 200 = Timeout (no response from a router)
-
- - 210 = sendto() call failed (generic error)
-
- - 211 = sendto() error: tried to send to broadcast address
(EACCES)
-
- - 212 = sendto() error: network unreachable (ENETUNREACH)
-
- - 213 = sendto() error: host unreachable (EHOSTUNREACH)
-
- - 214 = sendto() error: address not available
(EADDRNOTAVAIL)
-
- - 215 = sendto() error: invalid message size (EMSGSIZE)
-
- - 216 = sendto() error: not enough buffer space (ENOBUFS)
-
- - 255 = Success (destination has responded)
-
Status values from 100 to 199 denote unreachability, as reported by
ICMP error from a router. The rtt_* fields contain the response
time of the corresponding router. Status values from 200 to 254
have the destination IP in their destinationIP field. However,
there was no response from a router, so the rtt_* fields will be
the configured timeout value (on timeout) or send trial time (on
send errors)!
- * timesource: Source of the timing information (hexadecimal) as:
AAQQSSHH
-
- AA: Application
-
- QQ: Queuing (queuing packet until sending it by driver, in
software)
-
- SS: Software (sending request by driver until receiving
response by driver, in software; decimal, in nanoseconds; -1 if
not available)
-
- HW: Hardware (sending request by NIC until receiving response
by NIC, in hardware; decimal, in nanoseconds; -1 if not
available)
-
Each byte AA, QQ, SS, HH provides the receive time source (upper
nibble) and send time source (lower nibble):
- 0x0: Not available
-
- 0x1: System clock
-
- 0x2: SO_TIMESTAMPING socket option, microseconds
granularity
-
- 0x3: SO_TIMESTAMPINGNS socket option (or
SO_TIMESTAMPING+SO_TS_CLOCK), nanoseconds granularity
-
- 0x4: SIOCGSTAMP ioctl, microseconds granularity
-
- 0x5: SIOCGSTAMPNS ioctl, nanoseconds granularity
-
- 0x6: SO_TIMESTAMPING socket option, in software, nanoseconds
granularity
-
- 0xa: SO_TIMESTAMPING socket option, in hardware, nanoseconds
granularity
-
- * delay_app_send: The measured application send delay
(nanoseconds, decimal; -1 if not available).
-
- * delay_queuing: The measured kernel software queuing delay
(nanoseconds, decimal; -1 if not available).
-
- * delay_app_receive: The measured application receive delay
(nanoseconds, decimal; -1 if not available).
-
- * rtt_app: The measured application RTT (nanoseconds,
decimal).
-
- * rtt_sw: The measured kernel software RTT (nanoseconds, decimal;
-1 if not available).
-
- * rtt_hw: The measured kernel hardware RTT (nanoseconds, decimal;
-1 if not available).
-
- Ping (version 1, SUPERSEDED!)
- Each Ping entry consists of a #P line.
- #P sourceIP destinationIP timestamp checksum status rtt traffic_class
timesource
-
- * sourceIP: Source IP address.
-
- * destinationIP: Destination IP address.
-
- * timestamp: Timestamp (microseconds since the UTC epoch,
hexadecimal).
-
- * checksum: The checksum of the ICMP Echo Request packets
(hexadecimal).
-
- * status: Status code (decimal)
-
- * rtt: The measured RTT (microseconds, decimal).
-
- * traffic_class: The outgoing IP Traffic Class/Type of Service
value of the sent packets (hexadecimal).
- This entry has been added with HiPerConTracer 1.4.0!
- * packet_size: The sent packet size (decimal, in bytes) including
IPv4/IPv6 header, transport header and HiPerConTracer header.
- This entry has been added with HiPerConTracer 1.6.0!
- * timesource: Source of the timing information (hexadecimal) as:
AA (same as for Ping, see above).
- This entry has been added with HiPerConTracer 2.0.0!
- Traceroute (version 2, current)
- Each Traceroute entry begins with a #Tm line, with m=i for ICMP and m=u
for UDP (according to underlying I/O module). This is followed with one
TAB-started line per each hop.
- #T<m> measurementID sourceIP destinationIP timestamp round
totalHops traffic_class packet_size checksum sourcePort destinationPort
statusFlags pathHash
-
- * measurementID: Measurement identifier.
-
- * sourceIP: Source IP address.
-
- * destinationIP: Destination IP address.
-
- * timestamp: Timestamp (nanoseconds since the UTC epoch,
hexadecimal) of the current run.
- Note: This timestamp is only an identifier for the Traceroute run.
All Traceroute rounds of the same run use the same timestamp here!
The actual send timestamp of the request to each hop can be found
in sendTimeStamp of the corresponding hop!
- * round: Round number (decimal).
-
- * totalHops: Total hops (decimal).
-
- * traffic_class: The IP Traffic Class/Type of Service value of the
sent packets (hexadecimal).
-
- * packet_size: The sent packet size (decimal, in bytes) including
IPv4/IPv6 header, transport header and HiPerConTracer header.
-
- * checksum: The checksum of the ICMP Echo Request packets
(hexadecimal); 0x0000 for other protocols, 0xffff for unknown.
-
- * sourcePort: Source port, 0 for ICMP (decimal).
-
- * destinationPort: Destination port, 0 for ICMP (decimal).
-
- * statusFlags: Status flags (hexadecimal):
- See the status code for Ping above for the lower 8 bits.
Additionally:
- - 0x100 = Route with * (at least one router did not
respond)
-
- - 0x200 = Destination has responded
-
- * pathHash: Hash of the path (hexadecimal).
-
- (TAB) sendTimeStamp hopNumber response_size status timesource
delay_queuing delay_app_receive rtt_app rtt_app rtt_sw rtt_hw hopIP
-
- * sendTimeStamp: Timestamp (nanoseconds since the UTC epoch,
hexadecimal) for the request to this hop.
-
- * hopNumber: Number of the hop.
-
- * response_size: The response packet size (decimal, in bytes)
including IPv4/IPv6 header, transport header and HiPerConTracer
header.
-
- * status: Status code (decimal; the values are the same as for
Ping, see above).
-
- * timesource: Source of the timing information (hexadecimal; the
values are the same as for Ping, see above)
-
- * delay_app_send: The measured application send delay
(nanoseconds, decimal; -1 if not available).
-
- * delay_queuing: The measured kernel software queuing delay
(nanoseconds, decimal; -1 if not available).
-
- * delay_app_receive: The measured application receive delay
(nanoseconds, decimal; -1 if not available).
-
- * rtt_app: The measured application RTT (nanoseconds,
decimal).
-
- * rtt_sw: The measured kernel software RTT (nanoseconds, decimal;
-1 if not available).
-
- * rtt_hw: The measured kernel hardware RTT (nanoseconds, decimal;
-1 if not available).
-
- * hopIP: Hop IP address.
-
- Traceroute (version 1, SUPERSEDED!)
- Each Traceroute entry begins with a #T line. This is followed with one
TAB-started line per each hop.
- #T sourceIP destinationIP timestamp round checksum totalHops
statusFlags pathHash traffic_class packet_size
-
- * sourceIP: Source IP address.
-
- * destinationIP: Destination IP address.
-
- * timestamp: Timestamp (microseconds since the UTC epoch,
hexadecimal) of the current run.
- Note: This timestamp is only an identifier for the Traceroute run.
All Traceroute rounds of the same run use the same timestamp
here!
- * round: Round number.
-
- * checksum: The checksum of the ICMP Echo Request packets
(hexadecimal).
-
- * totalHops: Total hops.
-
- * statusFlags: Status flags (hexadecimal).
-
- * pathHash: Hash of the path (hexadecimal).
-
- * traffic_class: The IP Traffic Class/Type of Service value of the
sent packets (hexadecimal).
- This entry has been added with HiPerConTracer 1.4.0!
- * packet_size: The sent packet size (decimal, in bytes) including
IPv4/IPv6 header, transport header and HiPerConTracer header.
- This entry has been added with HiPerConTracer 1.6.0!
- (TAB) hopNumber status rtt hopIP timesource
-
- * hopNumber: Number of the hop.
-
- * status: Status code (in hexadecimal here(!); the values are the
same as for Ping, see above).
-
- * rtt: The measured RTT (microseconds, decimal).
-
- * hopIP: Hop IP address.
-
- * timesource: Source of the timing information (hexadecimal) as:
AA (same as for Ping, see above).
- This entry has been added with HiPerConTracer 2.0.0!
- hipercontracer -S 10.1.1.51 -D 10.1.1.6 -D 10.1.1.7 -D 10.1.1.8 -T
--tracerouteinterval 10000 --tracerouteduration 1000 -v
-
- hipercontracer --source 10.1.1.51 --destination 10.1.1.6 --destination
10.1.1.7 --destination 10.1.1.8 --traceroute --tracerouteinterval 10000
--tracerouteduration 1000
-
- hipercontracer --source 172.16.0.127 --destination 8.8.8.8 --destination
193.99.144.80 --destination 132.252.181.87 --destination 10.254.254.254
--destination 91.189.93.5 --destination 128.112.139.90 --destination
4.31.198.44 --destination 136.186.1.10 --destination 101.4.112.170
--destination 77.36.144.2 --source 2a02:270:2014:40:92e2:baff:fe48:bde1
--destination 2400:cb00:2048:1::6814:155 --destination
2a02:2e0:3fe:1001:7777:772e:2:85 --destination 2a00:1450:400f:805::2004
--traceroute --ping --tracerouteduration 1000 --tracerouteinitialmaxttl 4
--traceroutefinalmaxttl 32 --tracerouteincrementmaxttl 4 --pinginterval 1000
--pingexpiration 7500 --pingttl 56 --resultsdirectory results
--resultstimestampdepth 3
-
- hipercontracer --source=0.0.0.0,00,AF11 --source=::,BE,EF,AF11
--destination=8.8.8.8 --destination=2606:4700:10::6814:155 --ping
--traceroute --tracerouteduration=1000 --tracerouteinitialmaxttl=4
--traceroutefinalmaxttl=32 --tracerouteincrementmaxttl=4 --pinginterval=1000
--pingexpiration=7500 --pingttl=56 --resultsdirectory=/storage/hpct-results
--resultstransactionlength=20 --resultstimestampdepth=4 --quiet
-
- hipercontracer --user=hipercontracer --source=10.1.1.51
--destination=10.1.1.6 --destination=10.1.1.7 --destination=10.1.1.8
--traceroute --tracerouteinterval=10000 --tracerouteduration=1000
-
- hipercontracer --user=hipercontracer --source=0.0.0.0
--destination=8.8.8.8 -M ICMP --ping --verbose
-
- hipercontracer --user=hipercontracer --source=0.0.0.0
--source=::--destination=www.ietf.org --iomodule ICMP --ping --verbose
-
- hipercontracer --user=hipercontracer --source=10.193.4.64 --destination
1.2.3.4 --iomodule ICMP --iomodule UDP --ping --traceroute
-
- hipercontracer --version
-
- hipercontracer --h
-
Thomas Dreibholz
https://www.nntb.no/~dreibh/hipercontracer
mailto://dreibh@simula.no
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|