PING(8)

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

SAMENVATTING

ping [-aAbBdCDefhLnOqrRUvV46] [-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...] {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 los te krijgen. ECHO_REQUEST datagrammen (“pings”) hebben een IP en ICMP header gevolgd door een »struct timeval« en dan een willekeurig aantal »opvullings« 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

-4
    Gebruik alleen IPv4.

-6
    Gebruik alleen IPv6.

-a
    Hoorbare ping.

-A
    Aangepaste ping. Interval tussen pakketten aangepast aan Heen-en-terug tijd, zodat er effectief niet meer dan een (of meerdere, als voorladen werd ingesteld) onbeantwoorde sonde aanwezig is in het netwerk. Het minimale interval is 200msec behalve als systeembeheerder. 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 sondes. Het adres wordt bepaald door het geselecteerde 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.

-e
    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.

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

-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 soconde, 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.

-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 wacjhten tussen elke pakket of niet te wachten in stortvloed modus. Alleen de systeembeheerder mag een interval korter dan 2 ms instellen.

-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 routeer 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.

-M pmtudisc_opt
    Selecteer de Path MTU Discovery strategie. pmtudisc_option is ofwel do (voorkom fragmentatie, zelfs een lokale), want (doe PMTU ontdekking, fragmenteer lokaal wanneer de pakket grootte groot is), 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
        Stoon 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. Geen poging zal gedaan worden om symbolische namen op te zoeken voor machine adressen.

-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 zend. Dit is bruikbaar voor diagnostizering 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 samenvattings regels 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 gegevens bytes wanneer opgeteld bij de 8 bytes ICMP header.

-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 sondes 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 variabliteit ervoor zal zorgt 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.

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.

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.

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.

VERDUBBELDE EN BESCHADIGDE PAKKETTEN

ping zal kopieerde pakketten en beschadigde pakketten rapporteren. Kopieerde pakketten zouden nooit moeten voorkomen, en lijken te worden veroorzaakt door niet toepasselijke verbindings-niveau her-verzendingen. Kopieerden kunnen optreden in vele situaties en zijn zelden (als ooit) een goed teken, alhoewel het voorkomen van kleine hoeveelheden kopieerden 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).

PROBEREN VAN ANDERE GEGEVENS PATRONEN

De (inter)netwerk laag zou nooit pakketten anders moeten behandelen afhankelijk van de gegevens in het gegevens deel. Helaas komt het wel eens voor dat gegevens afhankelijke problemen in netwerken kunnen sluipen en onopgemerkt kunnen blijven voor lange tijd. In veel gevallen zal het bijzondere patroon dat problemen geeft iets zijn dat niet genoeg “overgangen” heeft, zoals allemaal enen of allemaal nullen, of een patroon aan de rand zoals bijna allemaal nullen. Het is niet noodzakelijkerwijs genoeg om een gegevens patroon op te geven met allemaal nullen (bijvoorbeeld) op de opdracht regel omdat het patroon dat van belang is op het gegevens verbindings niveau, en de afhankelijkheden 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.

De TCP/IP bepalingen geven op dat het TTL veld voor TCP pakketten gezet zou moeten worden naar 60, maar vele systemen gebruiken kleinere waardes (4.3 BSD gebruikt 30, 4.2 gebruikt 15).

De maximaal mogelijke waarde voor dit veld is 255, en de meeste Unix systemen zetten het TTL veld van ICMP ECHO_REQUEST pakketten naar 255. Dit is waarom u zult merken dat u sommige machines op het net kunt “pingen”, maar ze niet kan bereiken met telnet(1) of ftp(1).

In normale gang van zaken drukt ping de TTL waarde van het pakket dat het ontvangt af. Wanneer een op-afstand systeem een ping pakket ontvangt kan het één van 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.

Sind 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 functionalitiet 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.