]>
Commit | Line | Data |
---|---|---|
7ba0088d A |
1 | .\" $KAME: ping6.8,v 1.43 2001/06/28 06:54:29 suz Exp $ |
2 | .\" | |
3 | .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. | |
4 | .\" All rights reserved. | |
5 | .\" | |
6 | .\" Redistribution and use in source and binary forms, with or without | |
7 | .\" modification, are permitted provided that the following conditions | |
8 | .\" are met: | |
9 | .\" 1. Redistributions of source code must retain the above copyright | |
10 | .\" notice, this list of conditions and the following disclaimer. | |
11 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
12 | .\" notice, this list of conditions and the following disclaimer in the | |
13 | .\" documentation and/or other materials provided with the distribution. | |
14 | .\" 3. Neither the name of the project nor the names of its contributors | |
15 | .\" may be used to endorse or promote products derived from this software | |
16 | .\" without specific prior written permission. | |
17 | .\" | |
18 | .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND | |
19 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
20 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
21 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE | |
22 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
23 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
24 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
25 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
26 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
27 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
28 | .\" SUCH DAMAGE. | |
29 | .\" | |
30 | .\" $FreeBSD: src/sbin/ping6/ping6.8,v 1.3.2.8 2001/07/06 08:56:46 ume Exp $ | |
31 | .\" | |
32 | .Dd May 17, 1998 | |
33 | .Dt PING6 8 | |
34 | .Os | |
35 | .Sh NAME | |
36 | .Nm ping6 | |
37 | .Nd send | |
38 | .Tn ICMPv6 ECHO_REQUEST | |
39 | packets to network hosts | |
40 | .Sh SYNOPSIS | |
41 | .Nm | |
42 | .\" without ipsec, or new ipsec | |
43 | .Op Fl dfHnNqRtvwW | |
44 | .\" old ipsec | |
45 | .\" .Op Fl AdEfnNqRtvwW | |
46 | .Bk -words | |
47 | .Op Fl a Ar addrtype | |
48 | .Ek | |
49 | .Bk -words | |
50 | .Op Fl b Ar bufsiz | |
51 | .Ek | |
52 | .Bk -words | |
53 | .Op Fl c Ar count | |
54 | .Ek | |
55 | .Bk -words | |
56 | .Op Fl h Ar hoplimit | |
57 | .Ek | |
58 | .Bk -words | |
59 | .Op Fl I Ar interface | |
60 | .Ek | |
61 | .Bk -words | |
62 | .Op Fl i Ar wait | |
63 | .Ek | |
64 | .Bk -words | |
65 | .Op Fl l Ar preload | |
66 | .Ek | |
67 | .Bk -words | |
68 | .Op Fl p Ar pattern | |
69 | .Ek | |
70 | .Bk -words | |
71 | .\" new ipsec | |
72 | .Op Fl P Ar policy | |
73 | .Ek | |
74 | .Bk -words | |
75 | .Op Fl S Ar sourceaddr | |
76 | .Ek | |
77 | .Bk -words | |
78 | .Op Fl s Ar packetsize | |
79 | .Ek | |
80 | .Bk -words | |
81 | .Op Ar hops...\& | |
82 | .Ek | |
83 | .Bk -words | |
84 | .Ar host | |
85 | .Ek | |
86 | .Sh DESCRIPTION | |
87 | .Nm | |
88 | uses the | |
89 | .Tn ICMPv6 | |
90 | protocol's mandatory | |
91 | .Tn ICMP6_ECHO_REQUEST | |
92 | datagram to elicit an | |
93 | .Tn ICMP6_ECHO_REPLY | |
94 | from a host or gateway. | |
95 | .Tn ICMP6_ECHO_REQUEST | |
96 | datagrams (``pings'') have an IPv6 header, | |
97 | and | |
98 | .Tn ICMPv6 | |
99 | header formatted as documented in RFC2463. | |
100 | The options are as follows: | |
101 | .Bl -tag -width Ds | |
102 | .\" old ipsec | |
103 | .\" .It Fl A | |
104 | .\" Enables transport-mode IPsec authentication header | |
105 | .\" .Pq experimental . | |
106 | .It Fl a Ar addrtype | |
107 | Generate ICMPv6 Node Information Node Addresses query, rather than echo-request. | |
108 | .Ar addrtype | |
109 | must be a string constructed of the following characters. | |
110 | .Bl -tag -width Ds -compact | |
111 | .It Ic a | |
112 | requests all the responder's unicast addresses. | |
113 | If the character is omitted, | |
114 | only those addresses which belong to the interface which has the | |
115 | responder's address are requests. | |
116 | .It Ic c | |
117 | requests responder's IPv4-compatible and IPv4-mapped addresses. | |
118 | .It Ic g | |
119 | requests responder's global-scope addresses. | |
120 | .It Ic s | |
121 | requests responder's site-local addresses. | |
122 | .It Ic l | |
123 | requests responder's link-local addresses. | |
124 | .It Ic A | |
125 | requests responder's anycast addresses. | |
126 | Without this character, the responder will return unicast addresses only. | |
127 | With this character, the responder will return anycast addresses only. | |
128 | Note that the specification does not specify how to get responder's | |
129 | anycast addresses. | |
130 | This is an experimental option. | |
131 | .El | |
132 | .It Fl b Ar bufsiz | |
133 | Set socket buffer size. | |
134 | .It Fl c Ar count | |
135 | Stop after sending | |
136 | .Pq and receiving | |
137 | .Ar count | |
138 | .Tn ECHO_RESPONSE | |
139 | packets. | |
140 | .It Fl d | |
141 | Set the | |
142 | .Dv SO_DEBUG | |
143 | option on the socket being used. | |
144 | .\" .It Fl E | |
145 | .\" Enables transport-mode IPsec encapsulated security payload | |
146 | .\" .Pq experimental . | |
147 | .It Fl f | |
148 | Flood ping. | |
149 | Outputs packets as fast as they come back or one hundred times per second, | |
150 | whichever is more. | |
151 | For every | |
152 | .Tn ECHO_REQUEST | |
153 | sent a period | |
154 | .Dq .\& | |
155 | is printed, while for every | |
156 | .Tn ECHO_REPLY | |
157 | received a backspace is printed. | |
158 | This provides a rapid display of how many packets are being dropped. | |
159 | Only the super-user may use this option. | |
160 | .Bf -emphasis | |
161 | This can be very hard on a network and should be used with caution. | |
162 | .Ef | |
163 | .It Fl H | |
164 | Specifies to try reverse-lookup of IPv6 addresses. | |
165 | The | |
166 | .Nm | |
167 | command does not try reverse-lookup unless the option is specified. | |
168 | .It Fl h Ar hoplimit | |
169 | Set the IPv6 hoplimit. | |
170 | .It Fl I Ar interface | |
171 | Source packets with the given interface address. | |
172 | This flag applies if the ping destination is a multicast address, | |
173 | or link-local/site-local unicast address. | |
174 | .It Fl i Ar wait | |
175 | Wait | |
176 | .Ar wait | |
177 | seconds | |
178 | .Em between sending each packet . | |
179 | The default is to wait for one second between each packet. | |
180 | This option is incompatible with the | |
181 | .Fl f | |
182 | option. | |
183 | .It Fl l Ar preload | |
184 | If | |
185 | .Ar preload | |
186 | is specified, | |
187 | .Nm | |
188 | sends that many packets as fast as possible before falling into its normal | |
189 | mode of behavior. | |
190 | Only the super-user may use this option. | |
191 | .It Fl n | |
192 | Numeric output only. | |
193 | No attempt will be made to lookup symbolic names from addresses in the reply. | |
194 | .It Fl N | |
195 | Probe node information multicast group | |
196 | .Pq Li ff02::2:xxxx:xxxx . | |
197 | .Ar host | |
198 | must be string hostname of the target | |
199 | .Pq must not be a numeric IPv6 address . | |
200 | Node information multicast group will be computed based on given | |
201 | .Ar host , | |
202 | and will be used as the final destination. | |
203 | Since node information multicast group is a link-local multicast group, | |
204 | destination link needs to be specified by | |
205 | .Fl I | |
206 | option. | |
207 | .It Fl p Ar pattern | |
208 | You may specify up to 16 | |
209 | .Dq pad | |
210 | bytes to fill out the packet you send. | |
211 | This is useful for diagnosing data-dependent problems in a network. | |
212 | For example, | |
213 | .Dq Li \-p ff | |
214 | will cause the sent packet to be filled with all | |
215 | ones. | |
216 | .\" new ipsec | |
217 | .It Fl P Ar policy | |
218 | .Ar policy | |
219 | specifies IPsec policy to be used for the probe. | |
220 | .It Fl q | |
221 | Quiet output. | |
222 | Nothing is displayed except the summary lines at startup time and | |
223 | when finished. | |
224 | .It Fl R | |
225 | Make the kernel believe that the target | |
226 | .Ar host | |
227 | .Po | |
228 | or the first | |
229 | .Ar hop | |
230 | if you specify | |
231 | .Ar hops | |
232 | .Pc | |
233 | is reachable, by injecting upper-layer reachability confirmation hint. | |
234 | The option is meaningful only if the target | |
235 | .Ar host | |
236 | .Pq or the first hop | |
237 | is a neighbor. | |
238 | .It Fl S Ar sourceaddr | |
239 | Specifies the source address of request packets. | |
240 | The source address must be one of the unicast addresses of the sending node. | |
241 | If the outgoing interface is specified by the | |
242 | .Fl I | |
243 | option as well, | |
244 | .Ar sourceaddr | |
245 | needs to be an address assigned to the specified interface. | |
246 | .It Fl s Ar packetsize | |
247 | Specifies the number of data bytes to be sent. | |
248 | The default is 56, which translates into 64 | |
249 | .Tn ICMP | |
250 | data bytes when combined | |
251 | with the 8 bytes of | |
252 | .Tn ICMP | |
253 | header data. | |
254 | You may need to specify | |
255 | .Fl b | |
256 | as well to extend socket buffer size. | |
257 | .It Fl t | |
258 | Generate ICMPv6 Node Information supported query types query, | |
259 | rather than echo-request. | |
260 | .Fl s | |
261 | has no effect if | |
262 | .Fl t | |
263 | is specified. | |
264 | .It Fl v | |
265 | Verbose output. | |
266 | .Tn ICMP | |
267 | packets other than | |
268 | .Tn ECHO_RESPONSE | |
269 | that are received are listed. | |
270 | .It Fl w | |
271 | Generate ICMPv6 Node Information DNS Name query, rather than echo-request. | |
272 | .Fl s | |
273 | has no effect if | |
274 | .Fl w | |
275 | is specified. | |
276 | .It Fl W | |
277 | Same as | |
278 | .Fl w , | |
279 | but with old packet format based on 03 draft. | |
280 | This option is present for backward compatibility. | |
281 | .Fl s | |
282 | has no effect if | |
283 | .Fl w | |
284 | is specified. | |
285 | .It Ar hops | |
286 | IPv6 addresses for intermediate nodes, | |
287 | which will be put into type 0 routing header. | |
288 | .It Ar host | |
289 | IPv6 adddress of the final destination node. | |
290 | .El | |
291 | .Pp | |
292 | When using | |
293 | .Nm | |
294 | for fault isolation, it should first be run on the local host, to verify | |
295 | that the local network interface is up and running. | |
296 | Then, hosts and gateways further and further away should be | |
297 | .Dq pinged . | |
298 | Round-trip times and packet loss statistics are computed. | |
299 | If duplicate packets are received, they are not included in the packet | |
300 | loss calculation, although the round trip time of these packets is used | |
301 | in calculating the round-trip time statistics. | |
302 | When the specified number of packets have been sent | |
303 | .Pq and received | |
304 | or if the program is terminated with a | |
305 | .Dv SIGINT , | |
306 | a brief summary is displayed, showing the number of packets sent and | |
307 | received, and the minimum, maximum, mean, and standard deviation of | |
308 | the round-trip times. | |
309 | .Pp | |
310 | This program is intended for use in network testing, measurement and | |
311 | management. | |
312 | Because of the load it can impose on the network, it is unwise to use | |
313 | .Nm | |
314 | during normal operations or from automated scripts. | |
315 | .\" .Sh ICMP PACKET DETAILS | |
316 | .\" An IP header without options is 20 bytes. | |
317 | .\" An | |
318 | .\" .Tn ICMP | |
319 | .\" .Tn ECHO_REQUEST | |
320 | .\" packet contains an additional 8 bytes worth of | |
321 | .\" .Tn ICMP | |
322 | .\" header followed by an arbitrary amount of data. | |
323 | .\" When a | |
324 | .\" .Ar packetsize | |
325 | .\" is given, this indicated the size of this extra piece of data | |
326 | .\" .Pq the default is 56 . | |
327 | .\" Thus the amount of data received inside of an IP packet of type | |
328 | .\" .Tn ICMP | |
329 | .\" .Tn ECHO_REPLY | |
330 | .\" will always be 8 bytes more than the requested data space | |
331 | .\" .Pq the Tn ICMP header . | |
332 | .\" .Pp | |
333 | .\" If the data space is at least eight bytes large, | |
334 | .\" .Nm | |
335 | .\" uses the first eight bytes of this space to include a timestamp which | |
336 | .\" it uses in the computation of round trip times. | |
337 | .\" If less than eight bytes of pad are specified, no round trip times are | |
338 | .\" given. | |
339 | .Sh DUPLICATE AND DAMAGED PACKETS | |
340 | .Nm | |
341 | will report duplicate and damaged packets. | |
342 | Duplicate packets should never occur when pinging a unicast address, | |
343 | and seem to be caused by | |
344 | inappropriate link-level retransmissions. | |
345 | Duplicates may occur in many situations and are rarely | |
346 | .Pq if ever | |
347 | a good sign, although the presence of low levels of duplicates may not | |
348 | always be cause for alarm. | |
349 | Duplicates are expected when pinging a broadcast or multicast address, | |
350 | since they are not really duplicates but replies from different hosts | |
351 | to the same request. | |
352 | .Pp | |
353 | Damaged packets are obviously serious cause for alarm and often | |
354 | indicate broken hardware somewhere in the | |
355 | .Nm | |
356 | packet's path | |
357 | .Pq in the network or in the hosts . | |
358 | .Sh TRYING DIFFERENT DATA PATTERNS | |
359 | The | |
360 | (inter)network | |
361 | layer should never treat packets differently depending on the data | |
362 | contained in the data portion. | |
363 | Unfortunately, data-dependent problems have been known to sneak into | |
364 | networks and remain undetected for long periods of time. | |
365 | In many cases the particular pattern that will have problems is something | |
366 | that does not have sufficient | |
367 | .Dq transitions , | |
368 | such as all ones or all zeros, or a pattern right at the edge, such as | |
369 | almost all zeros. | |
370 | It is not | |
371 | necessarily enough to specify a data pattern of all zeros (for example) | |
372 | on the command line because the pattern that is of interest is | |
373 | at the data link level, and the relationship between what you type and | |
374 | what the controllers transmit can be complicated. | |
375 | .Pp | |
376 | This means that if you have a data-dependent problem you will probably | |
377 | have to do a lot of testing to find it. | |
378 | If you are lucky, you may manage to find a file that either | |
379 | cannot | |
380 | be sent across your network or that takes much longer to transfer than | |
381 | other similar length files. | |
382 | You can then examine this file for repeated patterns that you can test | |
383 | using the | |
384 | .Fl p | |
385 | option of | |
386 | .Nm . | |
387 | .Sh RETURN VALUES | |
388 | .Nm | |
389 | returns 0 on success (the host is alive), | |
390 | and non-zero if the arguments are incorrect or the host is not responding. | |
391 | .Sh EXAMPLES | |
392 | Normally, | |
393 | .Xr ping6 8 | |
394 | works just like | |
395 | .Xr ping 8 | |
396 | would work; the following will send ICMPv6 echo request to | |
397 | .Li dst.foo.com . | |
398 | .Bd -literal -offset indent | |
399 | ping6 -n dst.foo.com | |
400 | .Ed | |
401 | .Pp | |
402 | The following will probe hostnames for all nodes on the network link attached to | |
403 | .Li wi0 | |
404 | interface. | |
405 | The address | |
406 | .Li ff02::1 | |
407 | is named the link-local all-node multicast address, and the packet would | |
408 | reach every node on the network link. | |
409 | .Bd -literal -offset indent | |
410 | ping6 -w ff02::1%wi0 | |
411 | .Ed | |
412 | .Pp | |
413 | The following will probe addresses assigned to the destination node, | |
414 | .Li dst.foo.com . | |
415 | .Bd -literal -offset indent | |
416 | ping6 -a agl dst.foo.com | |
417 | .Ed | |
418 | .Pp | |
419 | .Sh SEE ALSO | |
420 | .Xr netstat 1 , | |
421 | .Xr icmp6 4 , | |
422 | .Xr inet6 4 , | |
423 | .Xr ip6 4 , | |
424 | .Xr ifconfig 8 , | |
425 | .Xr ping 8 , | |
426 | .Xr routed 8 , | |
427 | .Xr traceroute 8 , | |
428 | .Xr traceroute6 8 | |
429 | .Rs | |
430 | .%A A. Conta | |
431 | .%A S. Deering | |
432 | .%T "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification" | |
433 | .%N RFC2463 | |
434 | .%D December 1998 | |
435 | .Re | |
436 | .Rs | |
437 | .%A Matt Crawford | |
438 | .%T "IPv6 Node Information Queries" | |
439 | .%N draft-ietf-ipngwg-icmp-name-lookups-07.txt | |
440 | .%D August 2000 | |
441 | .%O work in progress material | |
442 | .Re | |
443 | .Sh BUGS | |
444 | There have been many discussions on why we separate | |
445 | .Xr ping6 8 | |
446 | and | |
447 | .Xr ping 8 . | |
448 | Some people argued that it would be more convenient to uniform the | |
449 | ping command for both IPv4 and IPv6. | |
450 | The followings are an answer to the request. | |
451 | .Pp | |
452 | From a developer's point of view: | |
453 | since the underling raw sockets API is totally different between IPv4 | |
454 | and IPv6, we would end up having two types of code base. | |
455 | There would actually be less benefit to uniform the two commands | |
456 | into a single command from the developer's standpoint. | |
457 | .Pp | |
458 | From an operator's point of view: unlike ordinary network applications | |
459 | like remote login tools, we are usually aware of address family when using | |
460 | network management tools. | |
461 | We do not just want to know the reachability to the host, but want to know the | |
462 | reachability to the host via a particular network protocol such as | |
463 | IPv6. | |
464 | Thus, even if we had a unified | |
465 | .Xr ping 8 | |
466 | command for both IPv4 and IPv6, we would usually type a | |
467 | .Fl 6 | |
468 | or | |
469 | .Fl 4 | |
470 | option (or something like those) to specify the particular address family. | |
471 | This essentially means that we have two different commands. | |
472 | .Sh HISTORY | |
473 | The | |
474 | .Xr ping 8 | |
475 | command appeared in | |
476 | .Bx 4.3 . | |
477 | The | |
478 | .Nm | |
479 | command with IPv6 support first appeared in WIDE Hydrangea IPv6 protocol stack | |
480 | kit. | |
481 | .Pp | |
482 | IPv6 and IPsec support based on the KAME Project (http://www.kame.net/) stack | |
483 | was initially integrated into | |
484 | .Fx 4.0 |