PING(8)

NAAM
ping - zend ICMP ECHO_REQUEST pakketten naar machines op het net

SAMENVATTING

ping [-aAbBdCDfhHLnOqrRUvV346] [-c count] [-e identifier] [-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...] {bestemming}

BESCHRIJVING

ping gebruikt het datagram ECHO_REQUEST, een verplicht onderdeel van het ICMP protocol, om een ICMP ECHO_RESPONSE van een machine op het net of gateway te verkrijgen. ECHO_REQUEST datagrammen (“pings”) hebben een IP en ICMP header gevolgd door een "struct timeval" en dan een willekeurig aantal opvul-bytes om het pakket te vullen.

ping werkt zowel met IPv4 als IPv6. Gebruik van precies een van deze kan worden bepaald door het opgeven van -4 of -6.

ping kan ook IPv6 Node Information Queries (RFC4620) sturen. Tussen liggende hops zijn mogelijk niet toegestaan, omdat IPv6 source routing werd afgekeurd (RFC5095).

OPTIES

-3
    RTT precisie (rond de resultaat tijd niet af).

-4
    Gebruik alleen IPv4.

-6
    Gebruik alleen IPv6.

-a
    Hoorbare ping.

-A
    Adaptieve ping. Het interval tussen pakketten past zich aan aan de Heen-en-terug tijd, zodat er effectief niet meer dan een (of meerdere, als voorladen werd ingesteld) onbeantwoorde verzoek aanwezig is in het netwerk. Het standaard interval is 2 msec, voor meer info zie optie -i. Op netwerken met lage RTT is deze modus effectief equivalent aan de stortvloed modus.

-b
    Sta ping toe naar een broadcast adres.

-B
    Sta niet toe dat ping een bron adres verandert van verzoeken. Het adres wordt bepaald door het geselecteerde adres wanneer ping begint.

-c aantal
    Stopt het na het sturen van aantal ECHO_REQUEST pakketten. Met de deadline optie, zal ping wachten op aantal ECHO_REPLY pakketten, tot dat de time-out afloopt.

-C
    Roep de systeem aanroep connect() aan bij aanmaken van de socket.

-d
    Zet de SO_DEBUG optie op de socket die in gebruik is. In essentie wordt deze socket optie niet gebruikt door de Linux kernel.

-D
    Toont de tijdstempel (unix tijd + microseconden zoals in gettimeofday() voor elke regel.

-e identifier
    Zet het identificatie veld van ECHO_REQUEST aan. De waarde 0 impliceert het gebruik van de raw socket (niet ondersteund door ICMP datagram socket). De waarde van het veld kan worden getoond met de -v optie.

-f
    Stortvloed ping. Voor elke verzonden ECHO_REQUEST wordt een punt “.” afgedrukt terwijl voor elke ontvangen ECHO_REPLY een backspace wordt afgedrukt. Dit geeft in het kort weer hoeveel pakketten er worden gedumpt. Als het interval niet werd opgegeven dan wordt dit op nul ingesteld en worden pakketten zo snel als ze terugkomen gestuurd of honderd keren per seconde, welke van deze twee groter is. Alleen de super-gebruiker mag de keuze met nul interval gebruiken.

-F flow label
    Alleen IPv6. Bepaal en ken een 20 bit flow label (in hex) toe aan echo request pakketten. Als de waarde nul is dan kent de kernel een willekeurig flow label toe.

-h
    Toont help.

-H
    Forceer DNS naam resolutie voor de uitvoer. Nuttig voor numerieke bestemming, of de -f optie, die dit standaard niet doet. Dit kan ook helpen om rond DNS resolutie problemen te werken. Overschrijf eerder gedefinieerde -n optie. Zie ook de IPUTILS_PING_PTR_LOOKUP omgeving variable.

-i wacht
    Wacht wacht seconden tussen het zenden van elk pakket. Een drijvend komma getal is toegestaan met een punt als decimaal scheidingsteken (onafhankelijk van de taalgebied instelling). De standaard is om één seconde te wachten tussen elke pakket of niet te wachten in stortvloed modus. Alleen de systeembeheerder mag een interval korter dan 2 ms instellen. Broadcast en multicast ping hebben zelfs een beperktere limiet voor een normale gebruiker: minimum is 1 sec.

-I interface
    interface is ofwel een adres, een interface naam of een VRF naam. Als interface een adres is dan wordt het bron interface ingesteld conform het opgegeven interface adres. Als interface een interface naam is dan wordt het bron interface ingesteld conform het opgegeven interface. Als interface een VRF naam is dan wordt elk pakket gerouteerd gebruikmakend van een overeenkomstige routing tabel; in dit geval kan de -I optie herhaald worden om een bron adres op te geven. Let op: voor IPv6: wanneer een ping naar een link-local scope adres wordt gedaan dan kan de link specificatie (door de '%'-notatie in bestemming, of door deze optie) gebruikt worden maar dat is niet langer nodig.

-l voorladen
    Als voorladen opgegeven is zendt ping zoveel pakketten uit niet wachtende op een antwoord. Alleen de systeembeheerder mag voorladen van groter dan 3 selecteren.

-L
    Onderdrukt loopbackk van multicast pakketten. Deze vlag is alleen van toepassing als de ping bestemming een multicast adres is.

-m merk
    gebruik merk om uitgaande pakketten te merken. Dit is bruikbaar voor verschillende redenen in de kernel zoals een beleids routering om specifieke uitgaande verwerking te selecteren. CAP_NET_ADMIN of CAP_NET_RAW (vanaf Linux 5.17) capaciteit is vereist, zie socket(7).

-M pmtudisc_opt
    Selecteer de Path MTU Discovery strategie. pmtudisc_option is ofwel do (zet DF vlag, maar voer PMTU checks door de kernel uit, te grote pakketen zullen geweigerd worden), want (voer een PMTU ontdekking uit, fragmenteer lokaal wanneer de pakketgrootte groot is), probe (zet DF vlag en passeer PMTU controles, nuttig voor probe ) of dont (zet de DF vlag niet).

-N nodeinfo_option
    Alleen IPv6. Stuur ICMPv6 Node Information Queries (RFC4620), in plaats van Echo Request. CAP_NET_RAW capaciteit is benodigd.

    help
        Toon help voor NI ondersteuning.

    name
        Verzoeken voor Node namen.

    ipv6
        Verzoeken voor IPv6 adressen. Er zijn verschillende IPv6 specifieke vlaggen.

        ipv6-global
            Vraag IPv6 global-scope adressen.

        ipv6-sitelocal
            Vraag IPv6 site-local adressen.

        ipv6-linklocal
            Vraag IPv6 link-local adressen.

        ipv6-all
            Vraag IPv6 adressen op andere interfaces.

    ipv4
        Verzoeken voor IPv4 adressen. Er bestaat een IPv4 specifieke vlag.

        ipv4-all
            Vraag IPv4 adressen op andere interfaces.

    subject-ipv6=ipv6-adres
        IPv6 onderwerp adres.

    subject-ipv4=ipv4-adres
        IPv4 onderwerp adres.

    subject-name=nodename
        Onderwerp naam. Als het meer dan een punt bevat, dan wordt aangenomen dat het een volledige domeinnaam is.

    subject-fqdn=nodename
        Onderwerp naam . Er wordt altijd aangenomen dat het een volledige domeinnaam is.

-n
    Alleen numerieke uitvoer. Er zal geen poging gedaan worden om symbolische namen voor host adressen op te zoeken (geen omgekeerde DNS resolutie). Dit is de standaard voor een numerieke bestemming of -f optie. Overschrijft een eerder gedefinieerde -H optie. Zie ook IPUTILS_PING_PTR_LOOKUP omgeving variable.

-O
    Rapporteer een ICMP ECHO antwoord voordat een volgend pakket wordt verstuurd. Dit is nuttig in combinatie met het tijdstempel -D om uitvoer naar een diagnose bestand te schrijven en te zoeken naar ontbrekende antwoorden.

-p patroon
    U mag tot 16 “opvullings” bytes opgeven om de verzonden pakket te vullen dat u zendt. Dit is bruikbaar voor het diagnosticeren van gegevens afhankelijke problemen in een netwerk. Bijvoorbeeld, -p ff zal zorgen dat het verzonden pakket gevuld wordt met allemaal enen.

-q
    Stille uitvoer. Niets wordt weergegeven behalve de samenvattingsregels bij opstarten en wanneer beëindigt.

-Q tos
    Stel de Quality of Service gerelateerde bits in in het ICMP datagram. tos kan een decimaal (alleen ping) of een hexadecimaal getal zijn.

    In RFC2474, worden deze velden geinterpreteerd als 8-bit Differentiated Services (DS), bestaande uit: bits 0-1 (2 laagste bits) van aparte data, en bits 2-7 (hoogste 6 bits) van Differentiated Services Codepoint (DSCP). In RFC2481 en RFC3168, worden bits 0-1 gebruikt voor ECN.

    Historisch (RFC1349, verouderd door RFC2474), werden deze geinterpreteerd als: bit 0 (laagste bit) als gereserveerd (op dit moment onder definite als congestie instelling), 1-4 voor Type of Service en bits 5-7 (hoogste bits) for Precedence.

-r
    Passeer de normale routering tabellen en zend direct naar een machine op een verbonden netwerk. Als de machine niet op een direct-verbonden netwerk zit wordt een fout teruggegeven. Deze optie kan gebruikt worden om een locale machine te pingen door een interface die geen route door zich heeft op voorwaarde dat de -I optie ook werd gebruikt.

-R
    Alleen ping. Neem route op. Voeg de RECORD_ROUTE optie toe aan het ECHO_REQUEST pakket en geef de route buffer weer voor ontvangen pakketten. Merk op dat de IP header alleen groot genoeg is voor negen zulke routes. De meeste machines op het net negeren of dumpen deze keuze.

-s pakketgrootte
    Geeft het aantal gegevens-bytes dat verzonden zal worden. De standaard is 56, wat vertaald in 64 ICMP data bytes wanneer gecombineerd met de 8 bytes van de ICMP header data. De maximaal toegestane waarde is 65507 voor IPv4 (65467 met -R of -T of Intermediate hops) of 65527 voor IPv6, de limiet voor de meeste systemen is lager, en een systeem-afhankelijk getal.

-S sndbuf
    Stel socket sndbuf in. Indien niet opgegeven, dan wordt niet meer dan een pakket gebufferd.

-t ttl
    Alleen ping. Stel de IP Time to Live in.

-T tijdstempel optie
    Zet speciale IP tijdstempel opties. timestamp option mag zijn tsonly (alleen tijdstempel), tsandaddr (tijdstempel en adressen) of tsprespec host1 [host2 [host3 [host4]]] (tijdstempel voorgegeven hops).

-U
    Toon de volledige gebruiker-naar-gebruiker vertraging (het oude gedrag). Normaliter zal ping Heen-en-terug tijd tonen, die kan verschillen f.e. vanwege DNS fouten.

-v
    Uitgebreide uitvoer. Onderdruk DUP antwoorden niet bij pingen van multicast adressen.

-V
    Toon versie en stop.

-w deadline
    Geef een time-out op, in seconden, voordat ping stopt onafhankelijk van hoeveel pakketten werden verstuurd of ontvangen. In dit geval zal ping niet stoppen nadat count pakketten werden verstuurd, het wacht ofwel op deadline te verlopen of totdat count verzoeken werden beantwoord of op een fout melding van het netwerk.

-W timeout
    Wachttijd op een antwoord, in seconden. Deze optie beinvloed alleen de time-out voor het uitblijven van antwoorden, anders wacht ping op twee RTT´s. Drijvende komma getal is toegestaan met punt als decimaal scheidingsteken (onafhankelijk van het taalgebied). 0 betekent een oneindige time-out.

Bij gebruik van ping voor fout isolatie, zou het eerst gedraaid moeten worden op de locale machine om te verzekeren dat het locale netwerk werkt en draait. Vervolgens zouden machines en gateways verder- en verder-wegge-“pinged” moeten worden. Heen-en-terug tijden en verloren pakketten statistieken worden berekend. Als dubbele pakketten worden ontvangen worden ze niet meegerekend in de pakket-verlies berekening, alhoewel de heen-en-weer reistijd van deze pakketten wel gebruikt wordt in het berekenen van de minimum/gemiddelde/maximumheen-en-weer reistijden. Als het opgegeven aantal pakketten is verzonden (en ontvangen) of als het programma eindigt met een SIGINT, wordt een korte samenvatting weergegeven.

Groeps standaard deviatie (mdev), in essentie de gemiddelde afstand tussen de ping RTT en de gemiddelde RTT. Des te groter mdev is des te groter de variatie van RTT is (over de tijd). Bij een grote RTT variabiliteit zult u snelheids problemen met massa overdrachten hebben (die zullen langer duren dan strikt noodzakelijker, omdat de variabiliteit ervoor zal zorgen dat de verzender wacht op ACK´s) en u zult gemiddelde tot slechte VoIP kwaliteit ondervinden.

Zodra het opgegeven aantal pakketten werd verstuurd (en ontvangen) of zodra het programma werd beëindigt met een SIGINT, wordt een korte samenvatting getoond. Kortere statistieken kunnen worden verkregen zonder het beëindiging van het process met een SIGQUIT signaal.

Dit programma is bedoeld voor gebruik in het testen van netwerk, meten en beheer. Vanwege de belasting die het op het netwerk kan geven is het niet slim om ping gedurende normale gang van zaken of vanaf geautomatiseerde scripts te gebruiken.

OMGEVING

IPUTILS_PING_PTR_LOOKUP omgeving variabele gezet op 0 schakelt omgekeerde DNS resolutie (PTR lookup) als standaard uit. Deze wordt overschreven met de -H of -n optie.

EIND WAARDE

Als ping geen enkel antwoord pakket ontvangt zal het eindigen met code 1. Als het pakket aantal count en deadline beiden opgegeven werden en minder dan count pakketten werden ontvangen voordat deadline werd bereikt, dan beëindigt het ook met een code 1. Bij andere fouten eidigt het met code 2. In alle gevallen eidigt het met code 0. Dit maakt het mogelijk om de beëindings code te gebruiken om te zien of een host al dan niet actief is.

IPV6 LINK-LOCAL BESTEMMINGEN

For IPv6, als het bestemmings adre een link-local scope heeft en ping gebruik maakt van ICMP datagram sockets, moet het uitvoer interface opgegeven worden. Indien ping raw sockets gebruikt dan is het niet strikt noodzakelijk om het uitvoer interface op te geven, maar kan beter gedaan worden om ambiguiteit te voorkomen indien er meerdere uitvoer interfaces zijn.

Er zijn twee manieren op het uitvoer interface op te geven:

• gebruikmakend van de % notatie
    Het bestemmings adres wordt voor afgegaan door % en de uitvoer interface naam of ifindex, bij voorbeeld:

    ping fe80::5054:ff:fe70:67bc%eth0

    ping fe80::5054:ff:fe70:67bc%2

• gebruikmakend van de -I optie
    Indien ICMP datagram sockets gebruikt worden dan is deze methode ondersteund vanaf de volgende kerner versies: 5.17, 5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. Ook wordt het niet ondersteund op musl libc.

ICMP PAKKET DETAILS

Een IP header zonder keuzes is 20 bytes. Een ICMP ECHO_REQUEST pakket bevat een aanvullende 8 bytes met ICMP header gevolgd door een willekeurige hoeveelheid gegevens. Wanneer een pakketgrootte is gegeven, geeft dat de grootte van dit extra gedeelte gegevens op (de standaard is 56). Dus de hoeveelheid gegevens ontvangen binnen een IP pakket van soort ICMP ECHO_REPLY zal altijd 8 bytes meer zijn dan de gevraagde gegevens ruimte (door de ICMP header).

Als de gegevens ruimte tenminste acht bytes groot is dan gebruikt ping de eerste acht bytes van deze ruimte om een tijdstempel bij te voegen, die het gebruikt in het berekenen van Heen-en-terug tijden. Als minder dan acht bytes opvulling worden opgegeven worden geen heen-en-weer reistijden gegeven.

GEDUPLICEERDE EN BESCHADIGDE PAKKETTEN

ping zal gedupliceerde en beschadigde pakketten rapporteren. Gedupliceerde pakketten zouden nooit moeten voorkomen, en kunnen worden veroorzaakt door ongepaste link-level her-transmissies. Duplicaten kunnen optreden in vele situaties en zijn zelden (nooit) een goed teken, alhoewel het voorkomen van kleine aantallen duplicaten niet altijd reden voor paniek hoeft te zijn.

Beschadigde pakketten zijn duidelijk een serieuze oorzaak voor bezorgdheid en wijzen vaak op kapotte hardware ergens in de pad die het ping pakket aflegt (in het netwerk of in de machine).

ID BOTSINGEN

Anders dan TCP en UDP, die een port gebruiken om de unieke ontvanger van de data te identificeren, gebruikt ICMP het identificatie veld (ID) voor identificatie. Daarom, zullen op een en dezelfde machine, op hetzelfde tijdstip, two ping processen hetzelfde ID gebruiken en kan een echo antwoord afgeleverd worden bij de verkeerde ontvanger. Dit is een bekend probleem vanwege de beperkte grootte van het 16-bit ID veld. Dit is een historische beperking van het protocol welk niet kan worden opgelost tenzij we de ID in een ping pakket coderen. ping toont de ANDER ADDRES fout en de pakket verlies is negatief.

ping gebruikt PID om een uniek getal te krijgen. De standaard waarde van /proc/sys/kernel/pid_max is 32768. Op systemen die ping intensief gebruiken en met een pid_max groter dan 65535 zullen botsingen bijna zeker voorkomen..

PROBEREN VAN ANDERE GEGEVENS PATRONEN

De (link)netwerk laag zou pakketten nooit verschillend moeten behandelen afhankelijk van de gegevens zoals bevat in het gegevens deel. Helaas komt het wel eens voor dat gegevens afhankelijke problemen in netwerken kunnen sluipen en onopgemerkt blijven gedurende lange tijd. In veel gevallen zal het speciale patroon dat problemen geeft een zijn dat niet genoeg “overgangen” heeft, zoals allemaal enen of allemaal nullen, of een patroon aan de rand, met bijna allemaal nullen. Het is niet noodzakelijkerwijs genoeg om een gegevens patroon op te geven met (bijvoorbeeld) allemaal nullen op de opdracht regel omdat het patroon dat van belang is op het link-level niveau, en de relatie tussen wat u typt en wat de 'controllers' verzenden ingewikkeld kan zijn.

Dit betekent dat als u een gegevens afhankelijk probleem hebt u waarschijnlijk een hoop moet testen om het te vinden. Als u geluk hebt, kan het u lukken een bestand te vinden dat niet gezonden kan worden over uw netwerk, of dat veel langer over de overdracht doet dan andere bestanden van gelijksoortige lengte. U kunt dan dit bestand onderzoeken op herhaalde patronen die u kunt testen met de -p keuze van ping.

TTL DETAILS

De TTL waarde van een IP pakket vertegenwoordigd het maximum aantal IP `routers' dat het pakket door kan gaan voordat het weggegooid wordt. In de huidige praktijk kunt u verwachten dat elke router in het Internet het TTL veld met precies één zal verminderen.

Het TTL veld voor TCP pakketten kan verschillende waarden bevatten. De maximaal mogelijke waarde van dit veld is s255, een aanbevolen initiële waarde is 64. Voor meer informatie, zie de TCP/Lower-Level Interface sectie van RFC9293.

Normaliter drukt ping de TTL waarde van het pakket dat het ontvangt af. Wanneer een ander systeem een ping pakket ontvangt kan het één van deze drie dingen doen met het TTL veld in zijn antwoord:

    • Niet veranderen; dit is wat Berkeley Unix systemen deden vóór de 4.3BSD tahoe vrijgave. In dit geval is de TTL waarde in het ontvangen pakket 255 min het aantal `routers' op de heen-en-weer route.

    • Zet het naar 255; dit is wat huidige Berkeley Unix systemen doen. In dit geval is de TTL waarde van het ontvangen pakket 255 min het aantal `routers' in de route van het op-afstand systeem tot de pingende machine.

    • Zet het naar een andere waarde. Sommige machines gebruiken dezelfde waarde voor ICMP pakketten die ze gebruiken voor TCP pakketten, bijvoorbeeld 30 of 60. Anderen gebruiken wellicht volledig uit de lucht gegrepen waardes.

BUGS

    • Veel machines en Gateways negeren de RECORD_ROUTE keuze.

    • De maximaal IP header lengte is te klein voor keuzes zoals RECORD_ROUTE om volledig bruikbaar te zijn. Er is echter niet veel dat hier aan gedaan kan worden.

    • Stortvloed pingen wordt in het algemeen ontraden, stortvloed pingen van het broadcast adres moet alleen gedaan moeten worden onder heel gecontroleerde omstandigheden.

ZIE OOK

ip(8), ss(8).

GESCHIEDENIS

De ping opdracht verscheen in 4.3BSD.

De versie zoals hier beschreven is een afstammeling specifiek voor Linux.

Sinds versie s20150815, bestaat de ping6 binary niet meer. Hij is samengevoegd in ping. Het aanmaken van een symbolische koppeling genaamd ping6 wijzende naar ping zal resulteren in dezelfde functionaliteit als eerder.

BEVEILIGING

ping vereist de CAP_NET_RAW capaciteit om uit te voeren 1) als het programma wordt gebruikt voor niet-echo verzoeken (Zie -N optie), of 2) als de kernel niet-raw ICMP sockets ondersteund, of 3) als de gebruiker geen ICMP echo socket mag aanmaken. Het programma mag worden gebruikt als set-uid root.

BESCHIKBAARHEID

ping is onderdeel van het iputils pakket.

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.