sc_prefixscan
—
scamper driver to test if a set of IPv4 links are
point-to-point.
sc_prefixscan |
[-D ]
[-i infile]
[-o outfile]
[-p port]
[-l logfile]
[-U unix-socket]
[-w wait]
[-x prefixlen] |
sc_prefixscan |
[-r data-file]
[-x prefixlen] |
The sc_prefixscan
utility provides the
ability to connect to a running
scamper(1)
instance and use it to collect data to infer if an IPv4 link is likely a
point-to-point link using the prefixscan method. An address B is the
in-bound interface of a router in a traceroute path if we find an alias A'
of the address A returned for the previous hop and A' is a /31 or /30 mate
of B, i.e. the link between A and B is a point-to-point link. The prefixscan
method infers A and A' are aliases if the IPIDs in responses to five
alternating probes sent one second apart monotonically increase and differ
by no more than 1,000, or probes to A and A' elicit responses with a common
source address. The first technique is a pairwise comparison similar to
Ally, and the second is the Mercator technique. The supported options to
sc_prefixscan
are as follows:
-D
- causes
sc_prefixscan
to detach and become a
daemon.
-i
infile
- specifies a file containing a list of IPv4 address pairs adjacent in
traceroute paths to test if they are point-to-point links.
-o
outfile
- specifies the name of the output file to be written during the data
collection phase. The output file will use the
warts(5)
format.
-p
port
- specifies the port on the local host where
scamper(1)
is accepting control socket connections.
-l
logfile
- specifies the name of a file to log progress output from
sc_prefixscan
generated at run time.
-r
data-file
- specifies the name of the data file to be parsed for point-to-point link
inferences that were collected by
sc_prefixscan
in
a previous data collection.
-U
unix-socket
- specifies the name of a unix domain socket where a local
scamper(1)
instance is accepting control socket connections.
-w
wait
- specifies the length of time in seconds to wait between probing the same
IPv4 address with different methods. By default,
sc_prefixscan
waits five seconds between
methods.
-x
prefixlen
- specifies the maximum size of prefix to consider. By default,
sc_prefixscan
considers up to an IPv4 /30
prefix.
Given a traceroute with the following path:
traceroute to
192.0.30.64
1 192.0.2.1
2 192.0.32.10
3 192.0.31.8
4 192.0.30.64
then to collect data to infer if the implied IPv4 links are
point-to-point, put the links in a file named infile.txt formatted as
follows:
192.0.2.1 192.0.32.10
192.0.32.10 192.0.31.8
192.0.31.8 192.0.30.64
and use a
scamper(1)
daemon listening on port 31337 using:
sc_prefixscan -i infile.txt -o
outfile.warts -p 31337
To obtain the inferred point-to-point links from
outfile.warts:
sc_prefixscan -r
outfile.warts
scamper(1),
sc_ally(1),
sc_ipiddump(1),
sc_wartsdump(1),
sc_warts2text(1),
sc_warts2json(1),
M. Luckie and
k. claffy, A Second Look at
Detecting Third-party Addresses in Traceroute Traces with the IP Timestamp
Option, Proc. Passive and Active Measurement
Conference 2014.
R. Govindan and
H. Tangmunarunkit, Heuristics for
Internet Map Discovery, Proc. IEEE INFOCOM
2000.
N. Spring,
R. Mahajan, and D.
Wetherall, Measuring ISP topologies with
Rocketfuel, Proc. ACM SIGCOMM
2002.
sc_prefixscan
was written by Matthew
Luckie <mjl@luckie.org.nz>.