SC_PREFIXPROBER(1)

πŸ“¦ in opensuse-leap 16.0

✨ sc_prefixprober(1) ✨

okay bestie, so this is sc_prefixprober from the General Commands Manual β€” and let me tell you, she is that girl πŸ’…

🌸 NAME 🌸

sc_prefixprober β€” a scamper driver that probes addresses inside the prefixes you give it πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

sc_prefixprober [-?Dv] [-a in-file] [-c command] [-d duration]
                [-l limit] [-L list-attr] [-m move-dir] [-o out-file]
                [-O options] [-p port] [-R unix-remote] [-t log-file]
                [-U unix-local] [-x dnp-file]

πŸ’– DESCRIPTION πŸ’–

so like, sc_prefixprober is a whole utility that lets you connect to a scamper(1) instance that's already running, and then uses it to probe addresses in prefixes you specified. main character energy fr ✨

she can probe both the first address and a randomly-selected address in each prefix. and when you tell her to do both? she probes the addresses in a single prefix serially, and back-to-back, so that measurements inside one prefix all happen close in time. the way she keeps them together 🫢

the prefixes you supply can be nested, no cap. if a /24 prefix is contained in a less-specific /23, sc_prefixprober will probe addresses in both the specified /24, and the remaining /24 contained in the /23. lowkey iconic.

the command line options for sc_prefixprober are as follows, bestie:


🌈 OPTIONS 🌈

  • -? β€” prints a list of command line options plus a synopsis of each. the classic "help me help you" move πŸ’€
  • -v β€” prints the version of sc_prefixprober and dips out (exits).
  • -D β€” causes sc_prefixprober to detach and become a daemon. she's independent now, bye πŸ‘‘
  • -a in-file β€” specifies the name of the input file, which consists of IPv4 and IPv6 prefixes, one per line. the input file can also contain do-not-probe entries inline if they're prefixed with a - character πŸ™ˆ
  • -c command β€” specifies the command to use with each address. valid commands are ping, trace, and tracelb. by default, sc_prefixprober uses trace. periodt.
  • -d duration β€” specifies the total duration allowed for all measurements. sc_prefixprober will space out the probing of individual prefixes over the total duration you specify. by default though, she probes prefixes as fast as allowed by scamper(1). no chill, just speed πŸ”₯
  • -l limit β€” specifies the number of objects to write to an output file before closing it and opening the next one. heads up: the output file must contain a %u format specifier, which sc_prefixprober uses to embed a counter value that increments with each new output file. and if you use the move option, sc_prefixprober moves the file when she closes it πŸ“¦
  • -L list-attr β€” lets sc_prefixprober override scamper(1) default values for list and cycle objects. the current choices for this option are:
    • id=%u β€” specify a 32-bit unsigned integer for the list id.
    • name=%s β€” specify a string for the list's name attribute.
    • descr=%s β€” specify a string for the list's description attribute.
    • monitor=%s β€” specify a string for the list's monitor attribute.
    • cycle-id=%u β€” specify a 32-bit unsigned integer for the cycle id.
  • -m move-dir β€” specifies the name of the directory to move completed files to. by default, sc_prefixprober leaves completed files in place (she's not nosy like that).
  • -o out-file β€” specifies the prefix of the name of the output file to be written. the output file will use the warts(5) format, and it can be compressed with gz, bz2, or xz at collection time if the specified outfile has the equivalent extension, or if the output type was explicitly specified with -O πŸŽ€
  • -O options β€” allows the behavior of sc_prefixprober to be further tailored. the current choices for this option are:
    • first β€” probe first address in prefix.
    • random β€” probe random address in prefix.
    • noshuffle β€” do not shuffle probe order.
    • warts.gz β€” compress warts output using gzip compression.
    • warts.bz2 β€” compress warts output using bzip2 compression.
    • warts.xz β€” compress warts output using xz compression.
  • -p port β€” specifies the port on the local host where scamper(1) is accepting control socket connections πŸ”Œ
  • -R unix-remote β€” specifies the unix domain socket on the local host where a remote scamper(1) instance is accepting commands.
  • -t log-file β€” specifies the name of a file to log output from sc_prefixprober generated at run time.
  • -U unix-local β€” specifies the unix domain socket on the local host where a local scamper(1) instance is accepting commands.
  • -x dnp-file β€” specifies a file containing prefixes whose addresses must not be probed. do-not-probe entries may also be specified in the target file, each prefix preceded by a - character. respect the boundary bestie 🚫

⭐ EXAMPLES ⭐

okay so imagine you've got a set of prefixes in a file named infile.txt:

192.0.30.0/23
192.0.30.0/24
- 192.0.30.0/25
192.0.2.0/24

and a scamper(1) instance listening on port 31337 β€” then you can traceroute both the first and a randomly selected address within each prefix using ICMP-paris, like this:

sc_prefixprober -c 'trace -P icmp-paris' -a infile.txt -o
outfile.warts -p 31337 -O random -O first -L name=foo

in this scenario, sc_prefixprober may probe 192.0.30.129, 192.0.30.230, 192.0.31.1, 192.0.31.169, 192.0.2.1, and 192.0.2.233. these are addresses in the two specified /24s, plus a /24 contained in the less-specific /23 that was not covered by a more-specific /24. and sc_prefixprober did not probe any addresses in 192.0.30.0/25, because that's a do-not-probe entry, obviously. the output warts(5) file will have the list's name recorded as foo πŸ’–


next one: this command writes a series of gzip-compressed warts(5) files, each of which have up to 1000 objects in them, with names like outfile_0000.warts.gz and outfile_0001.warts.gz, moving them to the finished directory:

sc_prefixprober -c 'ping' -a infile.txt -o outfile_%04u.warts.gz
-p 31337 -O first -l 1000 -m finished

and a user can concatenate these files into a final bzip2-compressed warts(5) file with sc_wartscat(1):

sc_wartscat -o outfile_final.warts.bz2 outfile_0000.warts.gz
outfile_0001.warts.gz

🧚 SEE ALSO 🧚

scamper(1), sc_wartscat(1), sc_wartsdump(1), sc_warts2json(1), warts(5)


πŸ‘‘ AUTHORS πŸ‘‘

sc_prefixprober was written by Matthew Luckie <mjl@luckie.org.nz>. shoutout to the legend 🫢


and that's the whole page bestie! this Debian build is dated September 19, 2024 β€” so you know it's fresh 🌸 go probe some prefixes, slay, and remember: do-not-probe means do not probe πŸ’…βœ¨

πŸ“¦ where this page comes from