Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SCRIPT6(1)		    General Commands Manual		    SCRIPT6(1)

NAME
       script6	- A tool to make complex IPv6 tasks easy script6 SCRIPT	[PARA-
       METERS]

DESCRIPTION
       script6 is a set	up scripts that	make frequent  and/or  rather  complex
       IPv6-related tasks easy.

       SCRIPTS

       get-aaaa

       This script takes no further arguments, and operates as follows:

	   + The tool reads domain names from standard-input (one per line),
	     and obtains the AAAA records for the corresponding	domain.	If the
	     domain name does not contain AAAA records,	the tool will add
	     the suffix	"www.",	in the hopes that the resulting	domain name
	     might contain some.

	   + Lines where the first non-blank character is the numeral sign (#)
	     are consdered to contain comments,	and hence are ignored.

	   + The format	of the resulting output	is:

	     # DOMAIN_NAME (CANONIC_NAME)
	     IPV6_ADDRESS_1
	     IPV6_ADDRESS_2

       get-alexa-domains

       This script takes no further arguments, and operates as follows:

	   + It	reads from standard input lines	with the same format as	those
	   of Alexa's Top 1M web sites.	That is, lines with the	folowing syntax:

	   RANKING,DOMAIN_NAME

	   + It	extracts the domainname	from each line,	and prints the corresponding
	   domain name to standard output.

       This  script  is	 typically  useful  for	 extracting  domain names from
       Alexa's Top 1M web sites	file, such that	they can be processed by other
       tools (e.g. the get-aaaa	command	of script6).

       get-ns

       This script takes no further arguments, and operates as follows:

	   + The tool reads domain names from standard-input (oner per line),
	     and obtains the NS	records	for the	corresponding domain.

	   + Lines where the first non-blank character is the numeral sign (#)
	     are consdered to contain comments,	and hence are ignored.

	   + The format	of the resulting output	is:

	     # DOMAIN_NAME (CANONIC_NAME)
	     MX_RECORD_1
	     MX_RECORD_2

       get-mx

       This script takes no further arguments, and operates as follows:

	   + The tool reads domain names from standard-input (oner per line),
	     and obtains the MX	for the	corresponding domain.

	   + Lines where the first non-blank character is the numeral sign (#)
	     are consdered to contain comments,	and hence are ignored.

	   + The format	of the resulting output	is:

	     # DOMAIN_NAME (CANONIC_NAME)
	     MX_RECORD_1
	     MX_RECORD_2

       get-ns

       This script takes no further arguments, and operates as follows:

	   + The tool reads domain names from standard-input (oner per line),
	     and obtains the NS	records	for the	corresponding domain.

	   + Lines where the first non-blank character is the numeral sign (#)
	     are consdered to contain comments,	and hence are ignored.

	   + The format	of the resulting output	is:

	     # DOMAIN_NAME (CANONIC_NAME)
	     MX_RECORD_1
	     MX_RECORD_2

       get-trace-stats

       This command causes the script6 tool to read from  standard  input  the
       results of a "script6 trace" command (typically piped from a file), and
       produce statistics based	on such	results.

       Among the statistics produced by	this command are:

	  * Packet drop	rate: That is, the percentage of destination IPv6
	    addresses that result unreachable if IPv6 extension	headers	are
	    employed.

	  *  Packet  drop  rate	 by  different	AS: That is, the percentage of
       packet
	    drops that occur at	an Autonomous System (AS) other	than the AS
	    corresponding to the destination IPv6 address.

	  * Packet drop	rate by	same AS: That is, the percentage of packet
	    drops that occur at	the same Autonomous System (AS)	as that
	    corresponding to the destination IPv6 address.

	  * Delta-Hops statistics:  Statistics	regarding  the	Delta-Hops  at
       which
	    the	 packet	 drops occur, with "delta-hops"	defined	as "the	number
       of
	    hops from the intended destination".

       The get-trace-stats performs a number of	sanity	checks	on  the	 input
       data (i.e., the output from "script6 trace"). For example, if a line of
       input  indicates	 that  the last	responding node	for the	non-EH-enabled
       path6 command is	not the	intended destination, this means that the des-
       tination	is unreachable even when no IPv6  extension  headers  are  em-
       ployed, and hence the corresponding line	will be	discarded.

       trace DESTINATION [EHTYPE[EHSIZE]] [PROTOCOL [DESTPORT]]]

       The  trace command causes the script6 to	read IPv6 addresses from stan-
       dard input (typically piped from	a file). For each  IPv6	 address,  the
       script6	will  try  to isolate IPv6 blackholes resulting	from employing
       IPv6 extension headers. By default, the probe packets (containing  IPv6
       Extension  Headers)  are	IPv6 packets with a Destination	Options	Header
       of 8 bytes, encapsulating an ICMPv6 Echo	Request	message. However, this
       can be overridden by specifying the EHTYPE {DO,HBH,FH}, EHSIZE (an  in-
       teger), PROTOCOL	{tcp,udp,icmpv6}, and DESTPORT (a short	integer) para-
       meters.

       The  "trace"  command  of the script6 tool internally employs the path6
       tool of the toolkit as follows. Let us assume that we want  to  isolate
       an   IPv6   blackhole  on  the  path  towards  the  destination	system
       2001:db8:d::1. Firstly, script6 will obtain the output of path6 towards
       such destination:

		 1. 2001:db8:1:1000::1
		 2. 2001:db8:2:2000::4
		 3. 2001:db8:2:4000::1
		 4. 2001:db8:3:4000::1
		 5. 2001:db8:3:1000::1
		 6. 2001:db8:4:4000::1
		 7. 2001:db8:4:1000::1
		 8. 2001:db8:5:5000::1
		 9. 2001:db8:5:6000::1
		 10. 2001:db8:d::1

       Subsequently, script6 will obtain the output of EH-enabled path6	to the
       same destination:

		 1. 2001:db8:1:1000::1
		 2. 2001:db8:2:2000::4
		 3. 2001:db8:2:4000::1
		 4. 2001:db8:3:4000::1
		 5. 2001:db8:3:1000::1
		 6. 2001:db8:4:4000::1

       For the sake of brevity,	let us refer to	the  last-responding  node  in
       the EH-enabled path6 ("2001:db8:4:4000::1" in this case)	as "M".	Assum-
       ing  both  packets in both path6	commands employ	the same path, we will
       refer to	"the node following the	last responding	node in	the EH-enabled
       path6" ("2001:db8:4:1000::1" in our case), as "M+1", etc.

       Based on	traceroute information above, which node is the	 one  actually
       dropping	 the  EH-enabled  packets  will	depend on whether the dropping
       node filters packets on ingress or the egress. If the former, the drop-
       ping node will be M+1.  If the latter, the dropping node	will be	 "M".

       path6 assumes that nodes	perform	ingress-filtering.  Thus, in our exam-
       ple above the last responding node to the EH-enabled  traceroute	 ("M")
       is  "2001:db8:4:4000::1",  and  therefore we assume the "node" dropping
       node to be "2001:db8:4:1000::1" ("M+1").

       The resulting output will have the following syntax:

	       DEST#LAST_NOEH#HOPS_NOEH#LAST_EH$HOPS_EH#DROPN#DROPN2

       where:

	  * DEST: Destination IPv6 address (as read from standard input).
	    In our example above, this would be	2001:db8:d::1.

	  * LAST_NOEH: Last responding IPv6 address for	the path6 command
	    with no IPv6 extension headers (this will be the same as DEST
	    if there is	a working path to the destination). In our example
	    above, this	would be 2001:db8:d::1.

	  * HOPS_NOEH: Number of hops to LAST_NOEH. In our example above,
	    this would be "10".

	  * LAST_EH: Last responding IPv6 address in the EH-enabled path6
	    command. In	our example above, this	would be 2001:db8:4:4000::1.

	  * HOPS_EH: Number of hops to LAST_EH.	In our example above, this
	    would be "6".

	  * DROPN: Dropping node (M+1 in our explanation above). In our
	    example above, this	would be 2001:db8:4:1000::1.

	  * DROPN: Node	after the dropping node	(M+2). In our example,
	    this would be 2001:db8:5:5000::1.

       The output of the "trace" command is meant to be	processed by the  get-
       trace-stats command of the script6 tool.	Please check the blackhole6(1)
       tool for	a more human-friendly tool for isolating IPv6 blackholes.

EXAMPLES
       The  following  sections	 illustrate  typical  use cases	of the script6
       tool.

       Example #1

       $ script6 get-asn 2001:db8::1

       Obtain the Origin Autonomous System (AS)	number for  the	 IPv6  address
       2001:db8::1.

       Example #2

       $ script6 get-as	2001:db8::1

       Obtain  information about the Origin Autonomous System (AS) of the IPv6
       address 2001:db8::1.

       Example #3

       $ cat domains.txt | script6 get-aaaa > domains-aaaa.txt

       Map the domain names contained in  the  file  "domains.txt"  into  AAAA
       records,	and save the results in	the file "domains-aaaa.txt".

       Example #4

       #  cat  domains-aaaa.txt	 |  script6  trace do8 tcp port	25 > trace-re-
       sults.txt

       Find IPv6 blackholes in the path	to each	of  the	 IPv6  addresses  con-
       tained  in the file "domains-aaaa.txt" (one per line), and save the re-
       sults to	the file "trace-results.txt". The probe	packets	to be employed
       are IPv6	packets	with a Destination Options header of 8 bytes, encapsu-
       lating a	TCP segment with the Destinatio	Port set to 25.

       Example #5

       $ cat trace-results.txt | script6 get-trace-stats

       Produce statistics based	on the trace results from the file  "trace-re-
       sults.txt" (produced with "script6 trace").

SEE ALSO
       blackhole6(1) path6(1)

       draft-gont-v6ops-ipv6-ehs-in-real-world		(available	   at:
       <http://tools.ietf.org/html/draft-gont-v6ops-ipv6-ehs-in-real-world>)
       for a discussion	of support of IPv6 Extension Headers in	the public In-
       ternet.

AUTHOR
       The script6 tool	and the	corresponding manual pages  were  produced  by
       Fernando	    Gont     <fgont@si6networks.com>	for    SI6    Networks
       <http://www.si6networks.com>.

COPYRIGHT
       Copyright (c) 2014-2015 Fernando	Gont.

       Permission is granted to	copy, distribute and/or	modify	this  document
       under  the  terms of the	GNU Free Documentation License,	Version	1.3 or
       any later version published by the Free Software	 Foundation;  with  no
       Invariant  Sections,  no	Front-Cover Texts, and no Back-Cover Texts.  A
       copy  of	 the   license	 is   available	  at   <http://www.gnu.org/li-
       censes/fdl.html>.

								    SCRIPT6(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=script6&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help