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 [PARAME-
     TERS]

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  re-
     sults  of a "script6 trace" command (typically piped from a file), and pro-
     duce 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  com-
     mand  is  not  the intended destination, this means that the destination is
     unreachable even when no IPv6 extension headers are employed, 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	standard
     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, encapsulat-
     ing an ICMPv6 Echo Request message. However,  this  can  be  overridden  by
     specifying   the	EHTYPE	 {DO,HBH,FH},	EHSIZE	(an  integer),	PROTOCOL
     {tcp,udp,icmpv6}, and DESTPORT (a short integer) parameters.

     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". Assuming 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 drop-
     ping the EH-enabled packets will depend on whether the dropping  node  fil-
     ters  packets  on	ingress  or the egress. If the former, the dropping node
     will be M+1.  If the latter, the dropping node will be  "M".

     path6 assumes that nodes perform ingress-filtering.  Thus, in  our  example
     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  ad-
     dress 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-results.txt

     Find IPv6 blackholes in the path to each of the IPv6 addresses contained in
     the  file	"domains-aaaa.txt"  (one  per line), and save the results to the
     file "trace-results.txt". The probe packets to be employed are IPv6 packets
     with a Destination Options header of 8 bytes, encapsulating 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 Internet.

AUTHOR
     The  script6  tool and the corresponding manual pages were produced by Fer-
     nando Gont <fgont@si6networks.com>  for  SI6  Networks  <http://www.si6net-
     works.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  Sec-
     tions,  no  Front-Cover  Texts, and no Back-Cover Texts.  A copy of the li-
     cense is available at <http://www.gnu.org/licenses/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.1.quarterly>

home | help