home | help
PING6(8)		     System Manager's Manual			PING6(8)

NAME
     ping6 -- send ICMPv6 ECHO_REQUEST packets to network hosts

SYNOPSIS
     ping6 [-DdfHmnNoqrRtvwW] [-a addrtype] [-b bufsiz] [-c count] [-g gateway]
	   [-h hoplimit] [-I interface] [-i wait] [-x waittime] [-X timeout]
	   [-l preload] [-P policy] [-p pattern] [-S sourceaddr] [-s packetsize]
	   [hops ...] host

DESCRIPTION
     The  ping6  utility uses the ICMPv6 protocol's mandatory ICMP6_ECHO_REQUEST
     datagram  to  elicit  an  ICMP6_ECHO_REPLY  from	a   host   or	gateway.
     ICMP6_ECHO_REQUEST  datagrams  (``pings'')  have an IPv6 header, and ICMPv6
     header formatted as documented in RFC2463.  The options are as follows:

     -a addrtype
	     Generate ICMPv6 Node Information Node Addresses query, rather  than
	     echo-request.  addrtype must be a string constructed of the follow-
	     ing characters.
	     a	     requests  unicast addresses from all of the responder's in-
		     terfaces.	If the character  is  omitted,	only  those  ad-
		     dresses which belong to the interface which has the respon-
		     der's address are requests.
	     c	     requests  responder's  IPv4-compatible  and IPv4-mapped ad-
		     dresses.
	     g	     requests responder's global-scope addresses.
	     s	     requests responder's site-local addresses.
	     l	     requests responder's link-local addresses.
	     A	     requests responder's anycast addresses.  Without this char-
		     acter, the responder will return  unicast	addresses  only.
		     With  this character, the responder will return anycast ad-
		     dresses only.  Note that the specification does not specify
		     how to get responder's anycast addresses.	This is  an  ex-
		     perimental option.

     -b bufsiz
	     Set socket buffer size.

     -c count
	     Stop after sending (and receiving) count ECHO_RESPONSE packets.

     -D      Disable IPv6 fragmentation.

     -d      Set the SO_DEBUG option on the socket being used.

     -f      Flood  ping.  Outputs packets as fast as they come back or one hun-
	     dred times per second, whichever is more.	For  every  ECHO_REQUEST
	     sent a period "." is printed, while for every ECHO_REPLY received a
	     backspace	is  printed.   This provides a rapid display of how many
	     packets are being dropped.  Only the super-user may  use  this  op-
	     tion.   This  can be very hard on a network and should be used with
	     caution.

     -g gateway
	     Specifies to use gateway as the next hop to the  destination.   The
	     gateway must be a neighbor of the sending node.

     -H      Specifies to try reverse-lookup of IPv6 addresses.  The ping6 util-
	     ity does not try reverse-lookup unless the option is specified.

     -h hoplimit
	     Set the IPv6 hoplimit.

     -I interface
	     Source packets with the given interface address.  This flag applies
	     if the ping destination is a multicast address, or link-local/site-
	     local unicast address.

     -i wait
	     Wait  wait  seconds between sending each packet.  The default is to
	     wait for one second between each packet.  This option is incompati-
	     ble with the -f option.

     -x waittime
	     Time in milliseconds to wait for a reply for each packet sent.   If
	     a	reply  arrives	later, the packet is not printed as replied, but
	     considered as replied when calculating statistics.

     -X timeout
	     Specify a timeout, in seconds, before ping exits regardless of  how
	     many packets have been received.

     -l preload
	     If  preload  is specified, ping6 sends that many packets as fast as
	     possible before falling into its normal mode of behavior.	Only the
	     super-user may use this option.

     -m      By default, ping6 asks the kernel to fragment packets to  fit  into
	     the  minimum IPv6 MTU.  The -m option will suppress the behavior in
	     the following two levels: when the option is  specified  once,  the
	     behavior  will be disabled for unicast packets.  When the option is
	     more than once, it will be disabled for both unicast and  multicast
	     packets.

     -n      Numeric  output  only.   No attempt will be made to lookup symbolic
	     names from addresses in the reply.

     -N      Probe node information multicast group address (ff02::2:ffxx:xxxx).
	     host must be string hostname of the target (must not be  a  numeric
	     IPv6  address).   Node information multicast group will be computed
	     based on given host, and will be used  as	the  final  destination.
	     Since  node  information  multicast group is a link-local multicast
	     group, outgoing interface needs to be specified by -I option.

	     When specified twice, the address (ff02::2:xxxx:xxxx) is  used  in-
	     stead.  The former is in RFC 4620, the latter is in an old Internet
	     Draft  draft-ietf-ipngwg-icmp-name-lookup.   Note that KAME-derived
	     implementations including FreeBSD use the latter.

     -o      Exit successfully after receiving one reply packet.

     -p pattern
	     You may specify up to 16 "pad" bytes to fill  out	the  packet  you
	     send.   This  is useful for diagnosing data-dependent problems in a
	     network.  For example, "-p ff" will cause the  sent  packet  to  be
	     filled with all ones.

     -P policy
	     policy specifies IPsec policy to be used for the probe.

     -q      Quiet  output.   Nothing  is  displayed except the summary lines at
	     startup time and when finished.

     -r      Audible.  Include a bell (ASCII 0x07) character in the output  when
	     any packet is received.

     -R      Audible.	Output	a  bell (ASCII 0x07) character when no packet is
	     received before the next  packet  is  transmitted.   To  cater  for
	     round-trip  times	that are longer than the interval between trans-
	     missions, further missing packets cause a bell only if the  maximum
	     number of unreceived packets has increased.

     -S sourceaddr
	     Specifies	the  source  address of request packets.  The source ad-
	     dress must be one of the unicast addresses of the sending node, and
	     must be numeric.

     -s packetsize
	     Specifies the number of data bytes to be sent.  The default is  56,
	     which  translates	into 64 ICMP data bytes when combined with the 8
	     bytes of ICMP header data.  You may need to specify -b as	well  to
	     extend socket buffer size.

     -t      Generate  ICMPv6  Node  Information  supported  query  types query,
	     rather than echo-request.	-s has no effect if -t is specified.

     -v      Verbose output.  ICMP packets other than ECHO_RESPONSE that are re-
	     ceived are listed.

     -w      Generate ICMPv6 Node Information DNS Name query, rather than  echo-
	     request.  -s has no effect if -w is specified.

     -W      Same as -w, but with old packet format based on 03 draft.	This op-
	     tion is present for backward compatibility.  -s has no effect if -w
	     is specified.

     hops    IPv6  addresses for intermediate nodes, which will be put into type
	     0 routing header.

     host    IPv6 address of the final destination node.

     When using ping6 for fault isolation, it should first be run on  the  local
     host,  to verify that the local network interface is up and running.  Then,
     hosts and gateways further and further away should be "pinged".  Round-trip
     times and packet loss statistics are computed.  If  duplicate  packets  are
     received,	they  are  not included in the packet loss calculation, although
     the round trip time of these packets is used in calculating the  round-trip
     time  statistics.	When the specified number of packets have been sent (and
     received) or if the program is terminated with a SIGINT, a brief summary is
     displayed, showing the number of packets sent and received, and  the  mini-
     mum, mean, maximum, and standard deviation of the round-trip times.

     If  ping6	receives a SIGINFO (see the status argument for stty(1)) signal,
     the current number of packets sent and received,  and  the  minimum,  mean,
     maximum,  and standard deviation of the round-trip times will be written to
     the standard output in the same format as the standard completion message.

     This program is intended for use in network testing, measurement  and  man-
     agement.  Because of the load it can impose on the network, it is unwise to
     use ping6 during normal operations or from automated scripts.

DUPLICATE AND DAMAGED PACKETS
     The  ping6  utility  will	report duplicate and damaged packets.  Duplicate
     packets should never occur when pinging a unicast address, and seem  to  be
     caused  by  inappropriate link-level retransmissions.  Duplicates may occur
     in many situations and are rarely (if ever) a good sign, although the pres-
     ence of low levels of duplicates may not always be cause for alarm.  Dupli-
     cates are expected when pinging a broadcast  or  multicast  address,  since
     they are not really duplicates but replies from different hosts to the same
     request.

     Damaged  packets  are  obviously serious cause for alarm and often indicate
     broken hardware somewhere in the ping6 packet's path (in the network or  in
     the hosts).

TRYING DIFFERENT DATA PATTERNS
     The  (inter)network  layer should never treat packets differently depending
     on the data contained in the data portion.   Unfortunately,  data-dependent
     problems  have  been known to sneak into networks and remain undetected for
     long periods of time.  In many cases the particular pattern that will  have
     problems  is something that does not have sufficient "transitions", such as
     all ones or all zeros, or a pattern right at the edge, such as  almost  all
     zeros.  It is not necessarily enough to specify a data pattern of all zeros
     (for  example)  on the command line because the pattern that is of interest
     is at the data link level, and the relationship between what you  type  and
     what the controllers transmit can be complicated.

     This means that if you have a data-dependent problem you will probably have
     to  do  a	lot  of testing to find it.  If you are lucky, you may manage to
     find a file that either cannot be sent across your network  or  that  takes
     much  longer to transfer than other similar length files.	You can then ex-
     amine this file for repeated patterns that you can test using the -p option
     of ping6.

EXIT STATUS
     The ping6 utility returns 0 on success (the host is alive), 2 if the trans-
     mission was successful but no responses were received, any  other	non-zero
     value if the arguments are incorrect or another error has occurred.

EXAMPLES
     Normally, ping6 works just like ping(8) would work; the following will send
     ICMPv6 echo request to dst.foo.com.

	   ping6 -n dst.foo.com

     The  following  will  probe hostnames for all nodes on the network link at-
     tached to wi0 interface.  The address ff02::1 is named the link-local  all-
     node  multicast  address, and the packet would reach every node on the net-
     work link.

	   ping6 -w ff02::1%wi0

     The following will  probe	addresses  assigned  to  the  destination  node,
     dst.foo.com.

	   ping6 -a agl dst.foo.com

SEE ALSO
     netstat(1),  icmp6(4),  inet6(4),	ip6(4), ifconfig(8), ping(8), routed(8),
     traceroute(8), traceroute6(8)

     A. Conta and S. Deering, Internet Control Message Protocol (ICMPv6) for the
     Internet Protocol Version 6 (IPv6) Specification, RFC2463, December 1998.

     Matt Crawford, IPv6 Node Information Queries,  draft-ietf-ipngwg-icmp-name-
     lookups-09.txt, May 2002, work in progress material.

HISTORY
     The  ping(8)  utility appeared in 4.3BSD.	The ping6 utility with IPv6 sup-
     port first appeared in the WIDE Hydrangea IPv6 protocol stack kit.

     IPv6 and IPsec support based on  the  KAME  Project  (http://www.kame.net/)
     stack was initially integrated into FreeBSD 4.0.

BUGS
     The ping6 utility is intentionally separate from ping(8).

     There  have  been	many  discussions  on why we separate ping6 and ping(8).
     Some people argued that it would be more convenient  to  uniform  the  ping
     command  for  both  IPv4 and IPv6.  The followings are an answer to the re-
     quest.

     From a developer's point of view: since the underling raw	sockets  API  is
     totally  different  between IPv4 and IPv6, we would end up having two types
     of code base.  There would actually be less benefit to uniform the two com-
     mands into a single command from the developer's standpoint.

     From an operator's point of view: unlike ordinary network applications like
     remote login tools, we are usually aware of address family when using  net-
     work management tools.  We do not just want to know the reachability to the
     host,  but  want to know the reachability to the host via a particular net-
     work protocol such as IPv6.  Thus, even if we had a unified ping(8) command
     for both IPv4 and IPv6, we would usually type a -6 or -4 option  (or  some-
     thing  like  those)  to specify the particular address family.  This essen-
     tially means that we have two different commands.

FreeBSD 10.3		       September 22, 2014			PING6(8)

home | help