]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sbin/ping/ping.8
Make use of IP_VLAN_PCP setsockopt in ping and ping6.
[FreeBSD/FreeBSD.git] / sbin / ping / ping.8
1 .\" Copyright (c) 1985, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)ping.8      8.2 (Berkeley) 12/11/93
29 .\" $FreeBSD$
30 .\"
31 .Dd October 2, 2020
32 .Dt PING 8
33 .Os
34 .Sh NAME
35 .Nm ping
36 .Nd send
37 .Tn ICMP ECHO_REQUEST
38 packets to network hosts
39 .Sh SYNOPSIS
40 .Nm
41 .Op Fl AaDdfHnoQqRrv
42 .Op Fl C Ar pcp
43 .Op Fl c Ar count
44 .Op Fl G Ar sweepmaxsize
45 .Op Fl g Ar sweepminsize
46 .Op Fl h Ar sweepincrsize
47 .Op Fl i Ar wait
48 .Op Fl l Ar preload
49 .Op Fl M Cm mask | time
50 .Op Fl m Ar ttl
51 .Op Fl P Ar policy
52 .Op Fl p Ar pattern
53 .Op Fl S Ar src_addr
54 .Op Fl s Ar packetsize
55 .Op Fl t Ar timeout
56 .Op Fl W Ar waittime
57 .Op Fl z Ar tos
58 .Ar host
59 .Nm
60 .Op Fl AaDdfHLnoQqRrv
61 .Op Fl C Ar pcp
62 .Op Fl c Ar count
63 .Op Fl I Ar iface
64 .Op Fl i Ar wait
65 .Op Fl l Ar preload
66 .Op Fl M Cm mask | time
67 .Op Fl m Ar ttl
68 .Op Fl P Ar policy
69 .Op Fl p Ar pattern
70 .Op Fl S Ar src_addr
71 .Op Fl s Ar packetsize
72 .Op Fl T Ar ttl
73 .Op Fl t Ar timeout
74 .Op Fl W Ar waittime
75 .Op Fl z Ar tos
76 .Ar mcast-group
77 .Sh DESCRIPTION
78 The
79 .Nm
80 utility uses the
81 .Tn ICMP
82 .No protocol Ap s mandatory
83 .Tn ECHO_REQUEST
84 datagram to elicit an
85 .Tn ICMP ECHO_RESPONSE
86 from a host or gateway.
87 .Tn ECHO_REQUEST
88 datagrams
89 .Pq Dq pings
90 have an IP and
91 .Tn ICMP
92 header, followed by a
93 .Dq struct timeval
94 and then an arbitrary number of
95 .Dq pad
96 bytes used to fill out the packet.
97 The options are as follows:
98 .Bl -tag -width indent
99 .It Fl A
100 Audible.
101 Output a bell
102 .Tn ( ASCII
103 0x07)
104 character when no packet is received before the next packet
105 is transmitted.
106 To cater for round-trip times that are longer than the interval
107 between transmissions, further missing packets cause a bell only
108 if the maximum number of unreceived packets has increased.
109 .It Fl a
110 Audible.
111 Include a bell
112 .Tn ( ASCII
113 0x07)
114 character in the output when any packet is received.
115 This option is ignored
116 if other format options are present.
117 .It Fl C Ar pcp
118 Add an 802.1p Ethernet Priority Code Point when sending a packet.
119 0..7 uses that specific PCP, -1 uses the interface default PCP (or none).
120 .It Fl c Ar count
121 Stop after sending
122 (and receiving)
123 .Ar count
124 .Tn ECHO_RESPONSE
125 packets.
126 If this option is not specified,
127 .Nm
128 will operate until interrupted.
129 If this option is specified in conjunction with ping sweeps,
130 each sweep will consist of
131 .Ar count
132 packets.
133 .It Fl D
134 Set the Don't Fragment bit.
135 .It Fl d
136 Set the
137 .Dv SO_DEBUG
138 option on the socket being used.
139 .It Fl f
140 Flood ping.
141 Outputs packets as fast as they come back or one hundred times per second,
142 whichever is more.
143 For every
144 .Tn ECHO_REQUEST
145 sent a period
146 .Dq .\&
147 is printed, while for every
148 .Tn ECHO_REPLY
149 received a backspace is printed.
150 This provides a rapid display of how many packets are being dropped.
151 Only the super-user may use this option.
152 .Bf -emphasis
153 This can be very hard on a network and should be used with caution.
154 .Ef
155 .It Fl G Ar sweepmaxsize
156 Specify the maximum size of
157 .Tn ICMP
158 payload when sending sweeping pings.
159 This option is required for ping sweeps.
160 .It Fl g Ar sweepminsize
161 Specify the size of
162 .Tn ICMP
163 payload to start with when sending sweeping pings.
164 The default value is 0.
165 .It Fl H
166 Hostname output.
167 Try to do a reverse DNS lookup when displaying addresses.
168 This is the opposite of the
169 .Fl n
170 option.
171 .It Fl h Ar sweepincrsize
172 Specify the number of bytes to increment the size of
173 .Tn ICMP
174 payload after
175 each sweep when sending sweeping pings.
176 The default value is 1.
177 .It Fl I Ar iface
178 Source multicast packets with the given interface address.
179 This flag only applies if the ping destination is a multicast address.
180 .It Fl i Ar wait
181 Wait
182 .Ar wait
183 seconds
184 .Em between sending each packet .
185 The default is to wait for one second between each packet.
186 The wait time may be fractional, but only the super-user may specify
187 values less than 1 second.
188 This option is incompatible with the
189 .Fl f
190 option.
191 .It Fl L
192 Suppress loopback of multicast packets.
193 This flag only applies if the ping destination is a multicast address.
194 .It Fl l Ar preload
195 If
196 .Ar preload
197 is specified,
198 .Nm
199 sends that many packets as fast as possible before falling into its normal
200 mode of behavior.
201 Only the super-user may use this option.
202 .It Fl M Cm mask | time
203 Use
204 .Dv ICMP_MASKREQ
205 or
206 .Dv ICMP_TSTAMP
207 instead of
208 .Dv ICMP_ECHO .
209 For
210 .Cm mask ,
211 print the netmask of the remote machine.
212 Set the
213 .Va net.inet.icmp.maskrepl
214 MIB variable to enable
215 .Dv ICMP_MASKREPLY
216 and
217 .Va net.inet.icmp.maskfake
218 if you want to override the netmask in the response.
219 For
220 .Cm time ,
221 print the origination, reception and transmission timestamps.
222 Set the
223 .Va net.inet.icmp.tstamprepl
224 MIB variable to enable or disable
225 .Dv ICMP_TSTAMPREPLY .
226 .It Fl m Ar ttl
227 Set the IP Time To Live for outgoing packets.
228 If not specified, the kernel uses the value of the
229 .Va net.inet.ip.ttl
230 MIB variable.
231 .It Fl n
232 Numeric output only.
233 No attempt will be made to lookup symbolic names for host addresses.
234 This is the opposite of
235 .Fl H ,
236 and it is the default behavior.
237 .It Fl o
238 Exit successfully after receiving one reply packet.
239 .It Fl P Ar policy
240 .Ar policy
241 specifies IPsec policy for the ping session.
242 For details please refer to
243 .Xr ipsec 4
244 and
245 .Xr ipsec_set_policy 3 .
246 .It Fl p Ar pattern
247 You may specify up to 16
248 .Dq pad
249 bytes to fill out the packet you send.
250 This is useful for diagnosing data-dependent problems in a network.
251 For example,
252 .Dq Li \-p ff
253 will cause the sent packet to be filled with all
254 ones.
255 .It Fl Q
256 Somewhat quiet output.
257 .No Don Ap t
258 display ICMP error messages that are in response to our query messages.
259 Originally, the
260 .Fl v
261 flag was required to display such errors, but
262 .Fl v
263 displays all ICMP error messages.
264 On a busy machine, this output can be overbearing.
265 Without the
266 .Fl Q
267 flag,
268 .Nm
269 prints out any ICMP error messages caused by its own ECHO_REQUEST
270 messages.
271 .It Fl q
272 Quiet output.
273 Nothing is displayed except the summary lines at startup time and
274 when finished.
275 .It Fl R
276 Record route.
277 Includes the
278 .Tn RECORD_ROUTE
279 option in the
280 .Tn ECHO_REQUEST
281 packet and displays
282 the route buffer on returned packets.
283 Note that the IP header is only large enough for nine such routes;
284 the
285 .Xr traceroute 8
286 command is usually better at determining the route packets take to a
287 particular destination.
288 If more routes come back than should, such as due to an illegal spoofed
289 packet, ping will print the route list and then truncate it at the correct
290 spot.
291 Many hosts ignore or discard the
292 .Tn RECORD_ROUTE
293 option.
294 .It Fl r
295 Bypass the normal routing tables and send directly to a host on an attached
296 network.
297 If the host is not on a directly-attached network, an error is returned.
298 This option can be used to ping a local host through an interface
299 that has no route through it
300 (e.g., after the interface was dropped by
301 .Xr routed 8 ) .
302 .It Fl S Ar src_addr
303 Use the following IP address as the source address in outgoing packets.
304 On hosts with more than one IP address, this option can be used to
305 force the source address to be something other than the IP address
306 of the interface the probe packet is sent on.
307 If the IP address
308 is not one of this machine's interface addresses, an error is
309 returned and nothing is sent.
310 .It Fl s Ar packetsize
311 Specify the number of data bytes to be sent.
312 The default is 56, which translates into 64
313 .Tn ICMP
314 data bytes when combined
315 with the 8 bytes of
316 .Tn ICMP
317 header data.
318 Only the super-user may specify values more than default.
319 This option cannot be used with ping sweeps.
320 .It Fl T Ar ttl
321 Set the IP Time To Live for multicasted packets.
322 This flag only applies if the ping destination is a multicast address.
323 .It Fl t Ar timeout
324 Specify a timeout, in seconds, before ping exits regardless of how
325 many packets have been received.
326 .It Fl v
327 Verbose output.
328 .Tn ICMP
329 packets other than
330 .Tn ECHO_RESPONSE
331 that are received are listed.
332 .It Fl W Ar waittime
333 Time in milliseconds to wait for a reply for each packet sent.
334 If a reply arrives later, the packet is not printed as replied, but
335 considered as replied when calculating statistics.
336 .It Fl z Ar tos
337 Use the specified type of service.
338 .El
339 .Pp
340 When using
341 .Nm
342 for fault isolation, it should first be run on the local host, to verify
343 that the local network interface is up and running.
344 Then, hosts and gateways further and further away should be
345 .Dq pinged .
346 Round-trip times and packet loss statistics are computed.
347 If duplicate packets are received, they are not included in the packet
348 loss calculation, although the round trip time of these packets is used
349 in calculating the round-trip time statistics.
350 When the specified number of packets have been sent
351 (and received)
352 or if the program is terminated with a
353 .Dv SIGINT ,
354 a brief summary is displayed, showing the number of packets sent and
355 received, and the minimum, mean, maximum, and standard deviation of
356 the round-trip times.
357 .Pp
358 If
359 .Nm
360 receives a
361 .Dv SIGINFO
362 (see the
363 .Cm status
364 argument for
365 .Xr stty 1 )
366 signal, the current number of packets sent and received, and the
367 minimum, mean, and maximum of the round-trip times will be written to
368 the standard error output.
369 .Pp
370 This program is intended for use in network testing, measurement and
371 management.
372 Because of the load it can impose on the network, it is unwise to use
373 .Nm
374 during normal operations or from automated scripts.
375 .Sh ICMP PACKET DETAILS
376 An IP header without options is 20 bytes.
377 An
378 .Tn ICMP
379 .Tn ECHO_REQUEST
380 packet contains an additional 8 bytes worth of
381 .Tn ICMP
382 header followed by an arbitrary amount of data.
383 When a
384 .Ar packetsize
385 is given, this indicated the size of this extra piece of data
386 (the default is 56).
387 Thus the amount of data received inside of an IP packet of type
388 .Tn ICMP
389 .Tn ECHO_REPLY
390 will always be 8 bytes more than the requested data space
391 (the
392 .Tn ICMP
393 header).
394 .Pp
395 If the data space is at least eight bytes large,
396 .Nm
397 uses the first eight bytes of this space to include a timestamp which
398 it uses in the computation of round trip times.
399 If less than eight bytes of pad are specified, no round trip times are
400 given.
401 .Sh DUPLICATE AND DAMAGED PACKETS
402 The
403 .Nm
404 utility will report duplicate and damaged packets.
405 Duplicate packets should never occur when pinging a unicast address,
406 and seem to be caused by
407 inappropriate link-level retransmissions.
408 Duplicates may occur in many situations and are rarely
409 (if ever)
410 a good sign, although the presence of low levels of duplicates may not
411 always be cause for alarm.
412 Duplicates are expected when pinging a broadcast or multicast address,
413 since they are not really duplicates but replies from different hosts
414 to the same request.
415 .Pp
416 Damaged packets are obviously serious cause for alarm and often
417 indicate broken hardware somewhere in the
418 .Nm
419 packet's path (in the network or in the hosts).
420 .Sh TRYING DIFFERENT DATA PATTERNS
421 The
422 (inter)network
423 layer should never treat packets differently depending on the data
424 contained in the data portion.
425 Unfortunately, data-dependent problems have been known to sneak into
426 networks and remain undetected for long periods of time.
427 In many cases the particular pattern that will have problems is something
428 that does not have sufficient
429 .Dq transitions ,
430 such as all ones or all zeros, or a pattern right at the edge, such as
431 almost all zeros.
432 It is not
433 necessarily enough to specify a data pattern of all zeros (for example)
434 on the command line because the pattern that is of interest is
435 at the data link level, and the relationship between what you type and
436 what the controllers transmit can be complicated.
437 .Pp
438 This means that if you have a data-dependent problem you will probably
439 have to do a lot of testing to find it.
440 If you are lucky, you may manage to find a file that either
441 cannot
442 be sent across your network or that takes much longer to transfer than
443 other similar length files.
444 You can then examine this file for repeated patterns that you can test
445 using the
446 .Fl p
447 option of
448 .Nm .
449 .Sh TTL DETAILS
450 The
451 .Tn TTL
452 value of an IP packet represents the maximum number of IP routers
453 that the packet can go through before being thrown away.
454 In current practice you can expect each router in the Internet to decrement
455 the
456 .Tn TTL
457 field by exactly one.
458 .Pp
459 The
460 .Tn TCP/IP
461 specification recommends setting the
462 .Tn TTL
463 field for
464 .Tn IP
465 packets to 64, but many systems use smaller values
466 .No ( Bx 4.3
467 uses 30,
468 .Bx 4.2
469 used 15).
470 .Pp
471 The maximum possible value of this field is 255, and most
472 .Ux
473 systems set
474 the
475 .Tn TTL
476 field of
477 .Tn ICMP ECHO_REQUEST
478 packets to 255.
479 This is why you will find you can
480 .Dq ping
481 some hosts, but not reach them with
482 .Xr telnet 1
483 or
484 .Xr ftp 1 .
485 .Pp
486 In normal operation
487 .Nm
488 prints the ttl value from the packet it receives.
489 When a remote system receives a ping packet, it can do one of three things
490 with the
491 .Tn TTL
492 field in its response:
493 .Bl -bullet
494 .It
495 Not change it; this is what
496 .Bx
497 systems did before the
498 .Bx 4.3 tahoe
499 release.
500 In this case the
501 .Tn TTL
502 value in the received packet will be 255 minus the
503 number of routers in the round-trip path.
504 .It
505 Set it to 255; this is what current
506 .Bx
507 systems do.
508 In this case the
509 .Tn TTL
510 value in the received packet will be 255 minus the
511 number of routers in the path
512 .Em from
513 the remote system
514 .Em to
515 the
516 .Nm Ns Em ing
517 host.
518 .It
519 Set it to some other value.
520 Some machines use the same value for
521 .Tn ICMP
522 packets that they use for
523 .Tn TCP
524 packets, for example either 30 or 60.
525 Others may use completely wild values.
526 .El
527 .Sh EXIT STATUS
528 The
529 .Nm
530 utility exits with one of the following values:
531 .Bl -tag -width indent
532 .It 0
533 At least one response was heard from the specified
534 .Ar host .
535 .It 2
536 The transmission was successful but no responses were received.
537 .It any other value
538 An error occurred.
539 These values are defined in
540 .In sysexits.h .
541 .El
542 .Sh SEE ALSO
543 .Xr netstat 1 ,
544 .Xr icmp 4 ,
545 .Xr ifconfig 8 ,
546 .Xr routed 8 ,
547 .Xr traceroute 8
548 .Sh HISTORY
549 The
550 .Nm
551 utility appeared in
552 .Bx 4.3 .
553 .Sh AUTHORS
554 The original
555 .Nm
556 utility was written by
557 .An Mike Muuss
558 while at the US Army Ballistics
559 Research Laboratory.
560 .Sh BUGS
561 Many Hosts and Gateways ignore the
562 .Tn RECORD_ROUTE
563 option.
564 .Pp
565 The maximum IP header length is too small for options like
566 .Tn RECORD_ROUTE
567 to be completely useful.
568 .No There Ap s
569 not much that can be done about this, however.
570 .Pp
571 Flood pinging is not recommended in general, and flood pinging the
572 broadcast address should only be done under very controlled conditions.
573 .Pp
574 The
575 .Fl v
576 option is not worth much on busy hosts.