SC_BDRMAP(1)

๐Ÿ“ฆ
this version ยท 3 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

โœจ NAME โœจ

sc_bdrmap โ€” the scamper driver that maps first hop border routers of networks ๐Ÿ—บ๏ธ๐Ÿ‘‘


๐Ÿ“œ SYNOPSIS ๐Ÿ“œ

sc_bdrmap [-6ADi] [-a ip2as-file] [-c allyconf] [-C flowid]
          [-f firsthop] [-l log-file] [-M ipmap-file] [-o output-file]
          [-O option] [-p port] [-U unix] [-R unix] [-S srcaddr]
          [-v vpases] [-x ixp-file]

sc_bdrmap [-6] [-a ip2as-file] [-d dump] [-g delegated-file]
          [-M ipmap-file] [-n names-file] [-r relationships-file]
          [-v vpases] [-x ixp-file] [file ...]

๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so sc_bdrmap is the utility that lets you connect to a running scamper(1) instance and use it to map the first hop border routers of networks, using the "bdrmap" technique โœจ. the way it does this is chef's kiss: it uses targeted traceroutes, alias resolution techniques, knowledge of traceroute idiosyncrasies, and codification of topologicial constraints in a structured set of constraints, all so it can correctly identify interdomain links at the granularity of individual border routers ๐ŸŽฏ. no cap.

and bestie, sc_bdrmap operates in two distinct modes: data collection, and data analysis. two moods, both iconic ๐Ÿ’….

๐Ÿงš data collection mode ๐Ÿงš

in data collection mode, sc_bdrmap uses Paris traceroute with ICMP-echo probes to trace the paths towards every distinct address block, using a stop-set to avoid re-probing portions of paths that do not provide useful constraints for the first hop border routers, as well as alias resolution techniques (Mercator, Ally, Prefixscan, and the Too-Big-Trick) to collapse the interface graph into a router-level topology ๐Ÿ”ฅ. it will also use probes with the record-route and pre-specified timestamp IP-level options to collect additional information on the return path from a router, where the probes are usable. so thorough of it ๐Ÿซถ.

๐Ÿ”ฎ data analysis mode ๐Ÿ”ฎ

in data analysis mode, sc_bdrmap uses the collected data to infer a router-level topology of the hosting network and the interconnecting routers belonging to the hosting network's neighbors ๐ŸŒˆ.


๐Ÿ’… OPTIONS ๐Ÿ’…

the supported options to sc_bdrmap are as follows, and yes we're going through every single one, i don't make the rules:

  • -6 โ€” says sc_bdrmap should infer IPv6 border routers, and that the input files are for the IPv6 topology. > heads up bestie: this feature is currently work in progress ๐Ÿšง don't come for me.
  • -a ip2as-file โ€” the IP prefix to Autonomous System (AS) mapping file that sc_bdrmap should use when collecting and analysing topology data ๐Ÿ“‚. peep the EXAMPLES section for how this file must be formatted, iykyk.
  • -A โ€” the AS numbers (ASNs) that sc_bdrmap should collect data towards ๐ŸŽฏ. useful for testing and debugging, lowkey.
  • -c allyconf โ€” how many times sc_bdrmap should repeat pair-wise alias inferences that were made implying a central shared IP-ID counter. by default, each pair of aliases is tested five additional times at 5 minute intervals, because two IP addresses belonging to two different routers could happen to return IP-ID values that imply a central shared IP-ID counter ๐Ÿ˜ญ sneaky!!
  • -C flowid โ€” the checksum that scamper should use in ICMP probes, or the source port that scamper should use in UDP probes, so that traceroutes to the same destination will also use the same flowid ๐ŸŒŠ. by default, the flowid is 0x420.
  • -d dump โ€” the dump ID to use to analyze the collected data ๐Ÿ“Š. currently, ID values 1 (routers) and 2 (traces) are valid, which dumps inferred routers and annotated traceroute paths, respectively.
  • -D โ€” causes sc_bdrmap to detach and become a daemon ๐Ÿ‘ป bye bestie, it lives on its own now.
  • -f firsthop โ€” the first hop in a traceroute path that sc_bdrmap should begin at when collecting traceroute paths ๐Ÿšฆ. if sc_bdrmap is being run behind a NAT router, the private IP address of that router is uninteresting, and this option allows that hop to be skipped โœ‚๏ธ.
  • -g delegated-file โ€” an IP address delegations file you can hand to sc_bdrmap to allow inferences in the analysis phase of who operates unrouted IP address space ๐Ÿ•ต๏ธโ™€๏ธ.
  • -i โ€” the IP addresses that sc_bdrmap should collect data towards ๐ŸŽฏ. useful for testing and debugging, fr fr.
  • -l log-file โ€” the name of a file to log progress output from sc_bdrmap generated at run time ๐Ÿ“.
  • -M ipmap-file โ€” the name of a file containing individual IP address to ASN mappings, which override heuristics inferring if the IP address is from a reserved address, or an IXP address ๐Ÿ‘‘.
  • -n names-file โ€” the name of a file containing IP address to domain name system names ๐Ÿ”ค.
  • -o output-file โ€” the name of the output file to be written during the data collection phase ๐Ÿ“ค. the output file will use the warts(5) format.
  • -O option โ€” lets the behavior of sc_bdrmap be further tailored ๐ŸŽ›๏ธ. the current choices for this option are:
    • dumpborders: only dump inferred border routers, not all VP routers.
    • dumponedsts: further annotate routers that were only observed towards one AS.
    • dumptracesets: dump the traceroutes observed towards networks where no topology was observed to be routed by a neighbor network.
    • impatient: probe the destination ASes in order of number of address blocks, so that the probing will complete fastest ๐Ÿƒโ™€๏ธ๐Ÿ’จ.
    • noalias: do not do alias resolution probes when collecting topology data.
    • nogss: do not use a global stop set when collecting topology data.
    • noipopts: do not probe with IP record route and IP prespecified timestamp options.
    • nomerge: do not analytically merge IP interfaces to routers based on common adjacent neighbor routers.
    • noself: do not report links to other routers operated by the network hosting the vantage point.
    • randomdst: probe a random address in each address block, rather than the first ๐ŸŽฒ.
    • udp: probe using UDP traceroute probes.
  • -p port โ€” the port on the local host where scamper(1) is accepting control socket connections ๐Ÿ”Œ.
  • -r relationships-file โ€” the AS relationships file which is used in the analysis phase to reason about who owns each router in the observed topology ๐Ÿง.
  • -R unix โ€” the name of a unix domain socket where a remote scamper(1) instance is accepting remote control socket connections ๐Ÿ“ก.
  • -S srcaddr โ€” the source address that scamper(1) should use in probes ๐Ÿ .
  • -U unix โ€” the name of a unix domain socket where a local scamper(1) instance is accepting control socket connections ๐Ÿ“ก.
  • -v vpases โ€” the name of a file, or a list of ASes, that represent the network hosting the vantage point ๐Ÿ‘‘.
  • -x ixp-file โ€” the name of a file that contains a list of prefixes used by an IXP to enable interconnection at their facilities ๐Ÿค.

๐ŸŒธ EXAMPLES ๐ŸŒธ

okay so picture this: you've got a set of prefixes with origin AS in a file named ip2as.txt, a list of VP ases in vpases.txt, a list of IXP prefixes in ixp.txt, and a scamper(1) instance listening on port 31337 configured to probe at 100 packets per second, started like this:

scamper -P 31337 -p 100

then the following command will collect raw topology data to support inference of border routers for the network hosting the vantage point, storing raw data into bdrmap.warts, and logging run-time information into logfile1.txt โœจ:

sc_bdrmap -p 31337 -o bdrmap.warts -l logfile1.txt -a ip2as.txt -v
vpases.txt -x ixp.txt

to infer border routers from the collected data, using the same input files as above, with a set of AS relationships contained in asrel.txt, and a set of prefix delegations assembled from the Regional Internet Registry (RIR) Statistics files in delegated.txt ๐Ÿงš:

sc_bdrmap -d routers -a ip2as.txt -g delegated.txt -r asrel.txt -v
vpases.txt -x ixp.txt bdrmap.warts >bdrmap.routers.txt

to view annotated traceroutes stored in bdrmap.warts with IP to DNS names information stored in names.txt ๐Ÿ‘€:

sc_bdrmap -d traces -a ip2as.txt -v vpases.txt -x ixp.txt -n
names.txt bdrmap.wart >bdrmap.traces.txt

๐Ÿ‘‘ SEE ALSO ๐Ÿ‘‘

scamper(1), sc_ally(1), sc_speedtrap(1), sc_wartsdump(1), sc_warts2text(1), sc_warts2json(1)

and the reading list, because we stan citing sources ๐Ÿ“š๐Ÿ’–:

  • M. Luckie, A. Dhamdhere, B. Huffaker, D. Clark, and k. claffy, bdrmap: Inference of Borders Between IP Networks, Proc. ACM/SIGCOMM Internet Measurement Conference 2016.
  • 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.
  • B. Donnet, P. Raoult, T. Friedman, and M. Crovella, Efficient algorithms for large-scale topology discovery, Proc. ACM SIGMETRICS 2005.
  • B. Augustin, X. Cuvellier, B. Orgogozo, F. Viger, T. Friedman, M. Latapy, C. Magnien, and R. Teixeira, Avoiding traceroute anomalies with Paris traceroute, Proc. ACM/SIGCOMM Internet Measurement Conference 2006.
  • A. Bender, R. Sherwood, and N. Spring, Fixing Ally's growing pains with velocity modeling, Proc. ACM/SIGCOMM Internet Measurement Conference 2008.
  • M. Luckie, Scamper: a Scalable and Extensible Packet Prober for Active Measurement of the Internet, Proc. ACM/SIGCOMM Internet Measurement Conference 2010.
  • R. Beverly, W. Brinkmeyer, M. Luckie, and J.P. Rohrer, IPv6 Alias Resolution via Induced Fragmentation, Proc. Passive and Active Measurement Conference 2013.
  • M. Luckie, R. Beverly, W. Brinkmeyer, and k claffy, Speedtrap: Internet-scale IPv6 Alias Resolution, Proc. ACM/SIGCOMM Internet Measurement Conference 2013.
  • M. Luckie, B. Huffaker, A. Dhamdhere, V. Giotsas, and k claffy, AS Relationships, Customer Cones, and Validation, Proc. ACM/SIGCOMM Internet Measurement Conference 2013.

๐Ÿซถ AUTHOR ๐Ÿซถ

sc_bdrmap was written by Matthew Luckie <mjl@luckie.org.nz> ๐ŸŒŸ absolute legend behavior, we love to see it.


๐Ÿ’œ and that's the whole page bestie!! this one shipped on the Debian tip, dated September 24, 2019 โ€” so if you're reading this, know that this manual page and everything in it is a Debian joint from that date ๐ŸŽ€ mwah, go map some border routers ๐Ÿ’…โœจ
๐Ÿ“ฆ where this page comes from