Ping: Unterschied zwischen den Versionen

Aus Foxwiki
AlexandraCampos (Diskussion | Beiträge)
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(124 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Bezeichnung=
'''ping''' - Prüft die Erreichbarkeit eines Netzwerkknotens durch Senden eines ICMP ECHO_REQUEST
ping (Packed Internet Grouper) ist ein Programm / Befehl zum Prüfen der Erreichbarkeit von anderen Rechnern oder Geräten über ein (beliebiges) Netzwerk.


=Intallation=
== Beschreibung ==
Die Programme ping und ping6 sind in jeder Installation bereits enthalten und im Paket '''iputils-ping''' integriert.
'''p'''acked '''in'''ternet '''g'''rouper
* Prüft die Erreichbarkeit eines Netzwerkknotens durch Senden eines ICMP ECHO_REQUEST


= Benutzung=
'''[[ping]]''' prüft die Verbindung zu einem Zielsystem, indem es einen '''Echo Request''' sendet und einen '''Echo Reply''' erwartet


Es gibt zwei Varianten des ping-Befehl
$ '''ping google.de'''
ping - für IPv4-Adressen
PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes
{| class="wikitable"
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms
|-
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms
| [-c count] || [-i interval] || [-m mark] || [-M pmtudisc_option] || [-l preload] || [-p pattern] || [-W timeout]  
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms
|-  
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms
| [-Q tos] || [-s packetsize] || [-S sndbuf] || [-t ttl] || [-T timestamp_option] || [-w deadline] || [hop1 ...] destination
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms
|}
  ^C
  --- google.de ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
  rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms


== Installation ==
* ''ping'' ist Teil des Pakets [[iputils-ping]]
*  sollte in jeder Installation enthalten sein


ping6 - für IPv6-Adressen
== Aufruf ==
ping [-aAbBdDfhLnOqrRUvV46] [-c count] [-F flowlabel] [-i interval] [-I interface] [-l preload]
[-m mark] [-M pmtudisc_option] [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern]
[-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop...] {destination}


{| class="wikitable"
Anstelle der IP-Adresse kann auch ein Host-Name angegeben werden. Es wird dann versucht, diesen in eine DNS-Adresse aufzulösen.
|-
  $ ping OPTIONEN 10.10.0.1
| [-c count] || [-i interval] || [-I interface] || [-l preload]  || [-l preload] || [-m mark] || [-M pmtudisc_option] 
|-
| [-N nodeinfo_option] || [-p pattern] || [[-Q tclass] || [-s packetsize] || [-t ttl] || [-T timestamp_option] || [-w deadline]
|}


=Syntax=
Man muss ping entweder händisch stoppen '''(mit Strg + C )''' oder mit der entsprechenden Option die Anzahl der gesendeten Pakete begrenzen.
Der Befehl hat die folgende, allgemeine Syntax:


ping OPTIONEN IP-ADRESSE
; Es gibt zwei Varianten des ping-Befehl
* ping - für IPv4-Adressen
* ping6 - für IPv6-Adressen


Anstelle der IP-Adresse kann auch ein Host-Name angegeben werden. Es wird dann versucht, diesen in eine DNS-Adresse aufzulösen.
$ '''ping foxtom.de'''
PING foxtom.de (116.202.118.50) 56(84) bytes of data.
64 bytes from mx10.foxtom.de (116.202.118.50): icmp_seq=1 ttl=54 time=28.5 ms
64 bytes from mx10.foxtom.de (116.202.118.50): icmp_seq=2 ttl=54 time=22.7 ms
64 bytes from mx10.foxtom.de (116.202.118.50): icmp_seq=3 ttl=54 time=22.8 ms
^C
--- foxtom.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 22.685/24.664/28.471/2.692 ms


ping OPTIONEN example.com
=== Optionen ===
 
{| class="wikitable sortable options"
Man muss ping entweder händisch stoppen (mit Strg + C ) oder mit der entsprechenden Option die Anzahl der gesendeten Pakete begrenzen.
|-
 
! Option !! Beschreibung
=Optionen=
|-
{|class="wikitable"
| '''-4''' || Use IPv4 only.
!Option !! Beschreibung !! Beispiel
|-
| '''-6''' || Use IPv6 only.
|-
| '''-a''' || Audible ping.
|-
|-
| <nowiki>-c ANZAHL</nowiki> || ANZAHL gibt an, wie viele ping-Anfragen gesendet werden sollen, danach stoppt ping automatisch
|'''-A''' || Adaptive ping. Interpacket interval adapts to round-trip time, so that effectively not more than one (or more, if preload is set) unanswered
probe is present in the network. Minimal interval is 200msec unless super-user. On networks with low RTT this mode is essentially equivalent
to flood mode.
|-
|-
| <nowiki>-w ENDE</nowiki> || ENDE wird in Sekunden angegeben. ping wird nach dieser Zeit beendet, egal wie viele Anfragen (un-) beantwortet wurden.  
| '''-b''' || Allow pinging a broadcast address.
|-
|-
| <nowiki>-W AUSZEIT</nowiki> ||AUSZEIT wird in Sekunden angegeben und gibt an, wie lange ping auf eine Antwort wartet, bevor es automatisch stoppt
| '''-B''' || Do not allow ping to change source address of probes. The address is bound to one selected when ping starts.
|-
|-
| <nowiki>-i INTERVALL</nowiki> || INTERVALL wird in Sekunden angegeben und gibt vor, in welchen Abständen die ping-Anfragen gesendet werden. Voreinstellung ist eine Sekunde.
| '''-c''' count || Stop after sending count ECHO_REQUEST packets. With deadline option, ping waits for count ECHO_REPLY packets, until the timeout expires.
|-
|-
| <nowiki>-I SCHNITTSTELLE</nowiki> || legt fest, über welche Schnittstelle die ping-Anfragen gesendet werden
| '''-d''' || Set the SO_DEBUG option on the socket being used. Essentially, this socket option is not used by Linux kernel.
|-
|-
|}
|'''-D''' || Print timestamp (unix time + microseconds as in gettimeofday) before each line.
 
==Beispiel==
$ ping -c 4 itw-berlin.net
 
<gallery>
ping2.jpg
 
</gallery>
 
=Bestimmung von MTU-Größe mit Ping=
Die Maximum Transmission Unit (MTU; deutsch maximale Übertragungseinheit) beschreibt die maximale Paketgröße eines Protokolls der Vermittlungsschicht (Schicht 3) des OSI-Modells, gemessen in Oktetten (Bytes), welche ohne Fragmentierung in den Rahmen (engl. „Frame“) eines Netzes der Sicherungsschicht (Schicht 2) übertragen werden kann. Diese Paketgröße passt also in die Nutzlast (Payload) des Protokolls der Sicherungsschicht. Die maximale Größe der Nutzlast der Sicherungsschicht wird auch oft als MTU der Sicherungsschicht (engl. 'link MTU') bezeichnet. Die maximale Größe eines Rahmens der Sicherungsschicht lässt sich so berechnen:
 
Maximale Rahmengröße = Größte MTU aller benutzten Protokolle der Vermittlungsschicht + Größe der Sicherungsschichtheader
 
{| class="wikitable float-right"
|+ Typische MTU-Größen
! Medium
! MTU in Bytes
|-
|-
| Hyperchannel || 65535
|'''-f''' || Flood ping. 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. If interval is not given, it sets interval to zero and outputs packets as fast as they
come back or one hundred times per second, whichever is more. Only the super-user may use this option with zero interval.
|-
|-
| Token Ring (4)(802.5) || 4464
| '''-F''' flow label || IPv6 only. Allocate and set 20 bit flow label (in hex) on echo request packets. If value is zero, kernel allocates random flow label.
|-
|-
| Token Ring (16) || 17914
| '''-h''' || Show help.
|-
|-
| FDDI || 4352
|'''-i''' interval || Wait interval seconds between sending each packet. Real number allowed with dot as a decimal separator (regardless locale setup). The default
is to wait for one second between each packet normally, or not to wait in flood mode. Only super-user may set interval to values less than
0.2 seconds.
|-
|-
| Ethernet || 1500
|'''-I''' interface || interface is either an address, an interface name or a VRF name. If interface is an address, it sets source address to specified interface
address. If interface is an interface name, it sets source interface to specified interface. If interface is a VRF name, each packet is
routed using the corresponding routing table; in this case, the -I option can be repeated to specify a source address. NOTE: For IPv6, when
doing ping to a link-local scope address, link specification (by the '%'-notation in destination, or by this option) can be used but it is no
longer required.
|-
|-
| Ethernet#Gigabit-Ethernet|Gigabit Ethernet <br />mit Jumboframes || 9000
| '''-l''' preload || If preload is specified, ping sends that many packets not waiting for reply. Only the super-user may select preload more than 3.
|-
|-
| PPP over Ethernet|PPPoE  (z.&nbsp;B. DSL) || ≤ 1492
| '''-L''' || Suppress loopback of multicast packets. This flag only applies if the ping destination is a multicast address.
|-
|-
| Serial Line Internet Protocol|SLIP / Point-to-Point Protocol|PPP (low delay) || 296
| '''-m''' mark || use mark to tag the packets going out. This is useful for variety of reasons within the kernel such as using policy routing to select
specific outbound processing.
|-
|-
| X.25 || 576
| '''-M''' pmtudisc_opt || Select Path MTU Discovery strategy. pmtudisc_option may be either do (prohibit fragmentation, even local one), want (do PMTU discovery,
fragment locally when packet size is large), or dont (do not set DF flag).
|-
|-
| FibreChannel || theoretisch unbegrenzt
| '''-N''' nodeinfo_option || IPv6 only. Send ICMPv6 Node Information Queries (RFC4620), instead of Echo Request. CAP_NET_RAW capability is required.
|}
 
=== Parameter ===
=== Umgebung ===
=== Paketaufbau ===
[[File:Ping.png|600px]]
=== Rückgabewert ===
 
== Anwendung ==
{| class="wikitable options"
|-
|-
| Integrated Services Digital Network|ISDN || 576
! Option !! Beispiel !! Beschreibung
|-
|-
| DQDB ||
| -c ANZAHL || $ ping -c 10 foxtom.de ||  
|-
|-
| HIPPI ||
| -w ENDE || $ ping -w 15 foxtom.de ||  
|-
|-
| Asynchronous Transfer Mode|ATM || 4500, s.&nbsp;u.
| -W AUSZEIT || $ ping -W 015 foxtom.de ||  
|-
|-
| ARCNET ||
| -i INTERVALL || $ ping -i 15 foxtom.de ||  
|-
|-
| 802.11 || 2312 (WiFi)
| -I SCHNITTSTELLE || $ ping -I enp2s0 ($ ip a)foxtom.de ||
|}
|}


Das Problem ist, dass die Probleme, die durch eine falsche MTU-Größe verursacht werden, sehr subtil sein können. Beispielsweise kann es möglich sein, zu einem Webserver zu navigieren, indem die Dateiübertragung fehlschlägt oder Verbindungen zu einem Chat-Server funktionieren, aber die Informationen darüber, wer online ist, um unvollständig zu sein oder zu fehlen.
=== Ping und MTU ===
* Die im Befehl ping angegebene Größe entspricht der Anzahl der zu sendenden Datenbytes.
* Diese muss also 28 Byte kleiner sein als die tatsächliche Paketgröße, um die Größe des Paket-Headers zu berücksichtigen.
* Dieser lässt sich recht einfach über Bordmittel des Betriebssystems bestimmen.
* siehe [[MTU]]


Wenn Sie vermuten, dass das Problem die MTU-Größe ist, besteht das erste Problem darin, die MTU-Größe für die Netzwerkverbindung zu ermitteln. Zu diesem Zweck können Sie 'ping' verwenden, um ein Paket der erforderlichen Größe mit gesetztem Bit "Nicht fragmentieren" zu senden (es ist auch eine gute Idee, eine Paketanzahl von eins zu verwenden, da es keinen Sinn macht, mehr Netzwerkverkehr zu senden als Sie brauchen).
'''Beispiel'''
$ ping -s 1500 -c 10 -M do <Hostname>


'''Hinweis''' - Die im Befehl ping angegebene Größe entspricht der Anzahl der zu sendenden Datenbytes. Diese muss also 28 Byte kleiner sein als die tatsächliche Paketgröße, um die Größe des Paket-Headers zu berücksichtigen.
=== Problembehebung ===
; Ping 127.
* https://rixx.de/blog/fun-legacy-ip-addresses/
* https://bugzilla.mozilla.org/show_bug.cgi?id=160819
* https://www.reddit.com/r/sysadmin/comments/11weum/can_someone_explain_how_this_works_ping_1271/?rdt=50191
* https://www.quora.com/Is-127-1-a-valid-IP-address


==Beispiel Ethernet==
<noinclude>
Ein Ethernet Frame besteht aus zwei Teilen: dem ''„Header“'', in dem Quell- und Zieladressen und andere wichtige Parameter für den Versand kodiert sind, und der Nutzlast, deren Größe durch die MTU bestimmt ist.


In diesem Versuch ist die Größe der MTU mit 1500 Byte vorgegeben. Mit Hilfe des ping-Programmes wird ein ''„Frame“'' erzeugt, der dann im Netzwerk über das Ethernet-Protokoll versendet wird. Die Verwendung des Begriffes Nutzlast ist hier mehrdeutig, da im OSI-Modell die verschiedenen Protokolle ineinander eingepackt (gekapselt) werden. Der im Versuch verwendete Linux-Befehl <tt>ping -s 1472 10.0.0.1</tt> (Windows-Befehl <tt>ping -l 1472 10.0.0.1</tt>) sendet dann ein Internet Control Message Protocol|ICM-Paket mit der Nutzlast von 1472 Bytes an die IP-Adresse 10.0.0.1.
== Anhang ==
=== Siehe auch ===
ping -f -l 1472 10.0.0.1
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
          1472 bytes Nutzlast des ICMP-Protokolles (Transportschicht)
==== Sicherheit ====
        +    8 bytes ICMP-Header (Transportschicht)
==== Dokumentation ====
        +  20 bytes IPv4-Header (der Vermittlungsschicht)
===== Man-Page =====
        -------------
===== Info-Pages =====
        = 1500 bytes (Nutzlast von Ethernet)
==== Links ====
        +  14 bytes (Header der Sicherungsschicht)
===== Weblinks =====
        +    4 bytes (Frame Check Sequence)
# https://wiki.ubuntuusers.de/ping/
        -------------
        = 1518 bytes (kompletter Ethernet Frame)


Mit einem Sniffer wie z.&nbsp;B. Wireshark wird als Ethernet Header nur die Größe von 14 Byte angezeigt. Hierzu kommt noch die 4 Byte große Frame Check Sequence am Ende des Frames. Falls Virtual Local Area Network|VLANs verwendet werden, besteht der Header der Sicherungsschicht aus 18 Byte und der gesamte Ethernet Frame kann eine Größe von bis zu 1522 Byte annehmen. Würde IPv6 verwendet, änderte sich obige Berechnung dahingehend, dass der IPv6-Header der Vermittlungsschicht 40 statt 20 Byte beträgt und damit statt 1472 Byte ICMP-Nutzlast nur 1452 Byte möglich wären.
[[Kategorie:Linux/Befehl]]
[[Kategorie:Linux/Netzwerk]]
[[Kategorie:Netzwerk/Befehl]]
[[Kategorie:ICMP]]


Oft ist es hilfreich dem ping-Programm vorzugeben das ''„don’t fragment (DF) bit“'' für die Testpakete im IPv4-Header zu setzen (für Linux z.&nbsp;B. <tt>ping -M do -s 1472 10.0.0.1</tt>, für Windows: <tt>ping -l 1472 -f 10.0.0.1</tt> ), denn dann erhält man eine Nachricht, falls die MTU überschritten wird. Leicht sichtbar machen lässt sich die ''Path MTU'' mit dem Programm ''tracepath'' für IPv4 bzw. ''tracepath6'' für IPv6.
{{DEFAULTSORT:ping}}


=Quelle=
{{DISPLAYTITLE:ping}}
https://wiki.ubuntuusers.de/ping/
</noinclude>
[[Category:Netzwerke]]
[[Category:Linuxbefehle]]

Aktuelle Version vom 12. November 2024, 18:40 Uhr

ping - Prüft die Erreichbarkeit eines Netzwerkknotens durch Senden eines ICMP ECHO_REQUEST

Beschreibung

packed internet grouper

  • Prüft die Erreichbarkeit eines Netzwerkknotens durch Senden eines ICMP ECHO_REQUEST

ping prüft die Verbindung zu einem Zielsystem, indem es einen Echo Request sendet und einen Echo Reply erwartet

$ ping google.de
PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms
64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms
^C
--- google.de ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms

Installation

  • ping ist Teil des Pakets iputils-ping
  • sollte in jeder Installation enthalten sein

Aufruf

ping [-aAbBdDfhLnOqrRUvV46] [-c count] [-F flowlabel] [-i interval] [-I interface] [-l preload]
[-m mark] [-M pmtudisc_option] [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern]
[-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop...] {destination}

Anstelle der IP-Adresse kann auch ein Host-Name angegeben werden. Es wird dann versucht, diesen in eine DNS-Adresse aufzulösen.

$ ping OPTIONEN 10.10.0.1

Man muss ping entweder händisch stoppen (mit Strg + C ) oder mit der entsprechenden Option die Anzahl der gesendeten Pakete begrenzen.

Es gibt zwei Varianten des ping-Befehl
  • ping - für IPv4-Adressen
  • ping6 - für IPv6-Adressen
$ ping foxtom.de
PING foxtom.de (116.202.118.50) 56(84) bytes of data.
64 bytes from mx10.foxtom.de (116.202.118.50): icmp_seq=1 ttl=54 time=28.5 ms
64 bytes from mx10.foxtom.de (116.202.118.50): icmp_seq=2 ttl=54 time=22.7 ms
64 bytes from mx10.foxtom.de (116.202.118.50): icmp_seq=3 ttl=54 time=22.8 ms
^C
--- foxtom.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 22.685/24.664/28.471/2.692 ms

Optionen

Option Beschreibung
-4 Use IPv4 only.
-6 Use IPv6 only.
-a Audible ping.
-A Adaptive ping. Interpacket interval adapts to round-trip time, so that effectively not more than one (or more, if preload is set) unanswered

probe is present in the network. Minimal interval is 200msec unless super-user. On networks with low RTT this mode is essentially equivalent to flood mode.

-b Allow pinging a broadcast address.
-B Do not allow ping to change source address of probes. The address is bound to one selected when ping starts.
-c count Stop after sending count ECHO_REQUEST packets. With deadline option, ping waits for count ECHO_REPLY packets, until the timeout expires.
-d Set the SO_DEBUG option on the socket being used. Essentially, this socket option is not used by Linux kernel.
-D Print timestamp (unix time + microseconds as in gettimeofday) before each line.
-f Flood ping. 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. If interval is not given, it sets interval to zero and outputs packets as fast as they come back or one hundred times per second, whichever is more. Only the super-user may use this option with zero interval.

-F flow label IPv6 only. Allocate and set 20 bit flow label (in hex) on echo request packets. If value is zero, kernel allocates random flow label.
-h Show help.
-i interval Wait interval seconds between sending each packet. Real number allowed with dot as a decimal separator (regardless locale setup). The default

is to wait for one second between each packet normally, or not to wait in flood mode. Only super-user may set interval to values less than 0.2 seconds.

-I interface interface is either an address, an interface name or a VRF name. If interface is an address, it sets source address to specified interface

address. If interface is an interface name, it sets source interface to specified interface. If interface is a VRF name, each packet is routed using the corresponding routing table; in this case, the -I option can be repeated to specify a source address. NOTE: For IPv6, when doing ping to a link-local scope address, link specification (by the '%'-notation in destination, or by this option) can be used but it is no longer required.

-l preload If preload is specified, ping sends that many packets not waiting for reply. Only the super-user may select preload more than 3.
-L Suppress loopback of multicast packets. This flag only applies if the ping destination is a multicast address.
-m mark use mark to tag the packets going out. This is useful for variety of reasons within the kernel such as using policy routing to select

specific outbound processing.

-M pmtudisc_opt Select Path MTU Discovery strategy. pmtudisc_option may be either do (prohibit fragmentation, even local one), want (do PMTU discovery,

fragment locally when packet size is large), or dont (do not set DF flag).

-N nodeinfo_option IPv6 only. Send ICMPv6 Node Information Queries (RFC4620), instead of Echo Request. CAP_NET_RAW capability is required.

Parameter

Umgebung

Paketaufbau

Rückgabewert

Anwendung

Option Beispiel Beschreibung
-c ANZAHL $ ping -c 10 foxtom.de
-w ENDE $ ping -w 15 foxtom.de
-W AUSZEIT $ ping -W 015 foxtom.de
-i INTERVALL $ ping -i 15 foxtom.de
-I SCHNITTSTELLE $ ping -I enp2s0 ($ ip a)foxtom.de

Ping und MTU

  • Die im Befehl ping angegebene Größe entspricht der Anzahl der zu sendenden Datenbytes.
  • Diese muss also 28 Byte kleiner sein als die tatsächliche Paketgröße, um die Größe des Paket-Headers zu berücksichtigen.
  • Dieser lässt sich recht einfach über Bordmittel des Betriebssystems bestimmen.
  • siehe MTU

Beispiel

$ ping -s 1500 -c 10 -M do <Hostname>

Problembehebung

Ping 127.


Anhang

Siehe auch

Sicherheit

Dokumentation

Man-Page
Info-Pages

Links

Weblinks
  1. https://wiki.ubuntuusers.de/ping/