PING(8)

NUME
ping - trimite ICMP ECHO_REQUEST către gazdele din rețea

SINOPSIS

ping [-aAbBdCDfhHLnOqrRUvV346] [-c număr] [-e identificator] [-F etichetă-flux] [-i interval] [-I interfața] [-l pre-încărcare] [-m marcaj] [-M opțiune-pmtudisc] [-N opțiune-nodeinfo] [-w timp-limită] [-W timp-așteptare] [-p model] [-Q tos] [-s dimensiune-pachet] [-S sndbuf] [-t ttl] [-T marcă-temporală opțiune] [salt...] {destinație}

DESCRIERE

ping utilizează datagrama obligatorie ECHO_REQUEST a protocolului ICMP pentru a obține un ICMP ECHO_RESPONSE de la o gazdă sau de la o poartă de acces. Datagramele ECHO_REQUEST („pings”) au un antet IP și ICMP, urmat de o structură «struct timeval» și apoi de un număr arbitrar de octeți de „umplere” utilizați pentru a completa pachetul.

ping funcționează atât cu protocolul IPv4, cât și cu protocolul IPv6. Utilizarea explicită a unuia dintre acestea poate fi impusă prin specificarea -4 sau -6.

ping poate trimite, de asemenea, interogări de informații despre noduri IPv6 (RFC4620). Este posibil ca salturile intermediare să nu fie permise, deoarece direcționarea sursei IPv6 a fost eliminată (RFC5095).

OPȚIUNI

-3
    Precizie RTT (nu se rotunjește timpul rezultat).

-4
    Utilizează numai IPv4.

-6
    Utilizează numai IPv6.

-a
    Ping audibil.

-A
    Ping adaptiv. Intervalul dintre pachete se adaptează la timpul de parcurgere a drumului dus-întors („round-trip time”: RRT), astfel încât în rețea să nu fie prezentă efectiv mai mult de o sondă fără răspuns (sau mai multe, dacă este definită preîncărcarea). Intervalul implicit este de 2 ms, pentru mai multe informații consultați opțiunea -i. În rețelele cu RTT redus, acest mod este în esență echivalent cu modul inundare.

-b
    Permite trimiterea unui ping la o adresă de difuzare.

-B
    Nu-i permite lui ping să schimbe adresa sursă a probelor. Adresa este asociată cu cea selectată atunci când ping pornește.

-c număr
    Se oprește după trimiterea a număr pachete ECHO_REQUEST. Cu opțiunea timp-limită, ping așteaptă număr pachete ECHO_REPLY, până când expiră timpul de așteptare.

-C
    Apelează apelul de sistem connect() la crearea unui soclu.

-d
    Activează opțiunea SO_DEBUG pe soclul care este utilizat. În esență, această opțiune de soclu nu este utilizată de nucleul Linux.

-D
    Imprimă marcajul de timp (ora unix + microsecunde ca în gettimeofday()) înainte de fiecare linie.

-e identificator
    Definește câmpul de identificare al ECHO_REQUEST. Valoarea 0 implică utilizarea soclu brut (nu este acceptată pe soclu de datagramă ICMP). Valoarea câmpului poate fi afișată cu opțiunea -v.

-f
    Ping de inundare. Pentru fiecare ECHO_REQUEST trimis se imprimă un punct „.”, în timp ce pentru fiecare ECHO_REPLY primit se imprimă un „backspace” (se șterge un punct). Acest lucru oferă o afișare rapidă a numărului de pachete care sunt respinse. Dacă intervalul nu este dat, stabilește intervalul la zero și emite pachetele la fel de repede cum vin înapoi sau de o sută de ori pe secundă, oricare dintre acestea este mai mare. Numai super-utilizatorul poate utiliza această opțiune cu interval zero.

-F etichetă-flux
    Numai pentru IPv6. Alocă și definește o etichetă de flux de 20 de biți (în hexazecimal) pe pachetele de cerere de ecou. Dacă valoarea este zero, nucleul alocă o etichetă de flux aleatorie.

-h
    Afișează ajutorul.

-H
    Forțează rezoluția DNS a numelui pentru ieșire. Util pentru destinații numerice sau opțiunea -f, care în mod implicit nu o efectuează. De asemenea, poate ajuta la rezolvarea problemelor legate de rezoluția DNS. Suprascrie opțiunea -n definită anterior. Consultați și variabila de mediu IPUTILS_PING_PTR_LOOKUP.

-i interval
    Așteaptă intervalul secunde între trimiterea fiecărui pachet. Număr real admis cu punct ca separator zecimal (indiferent de configurația regională). Valoarea implicită este de a aștepta o secundă între fiecare pachet în mod normal, sau de a nu aștepta în modul de inundare. Numai super-utilizatorul poate stabili intervalul la valori mai mici de 2 ms. Ping-ul de difuzare și multicast are o limitare și mai mare pentru utilizatorul obișnuit: minimul este de 1 sec.

-I interfața
    interfața este fie o adresă, fie un nume de interfață sau un nume VRF. Dacă interfața este o adresă, stabilește adresa sursă la adresa de interfață specificată. Dacă interfața este un nume de interfață, stabilește interfața sursă la interfața specificată. Dacă interfața este un nume VRF, fiecare pachet este direcționat utilizând tabelul de direcționare corespunzător; în acest caz, opțiunea -I poate fi repetată pentru a specifica o adresă sursă. NOTĂ: Pentru IPv6, atunci când se efectuează ping către o adresă de sferă de aplicare legătură locală, se poate utiliza specificarea legăturii (prin notația „%” în destinație sau prin această opțiune), dar nu mai este necesară.

-l preîncărcare
    Dacă este specificată preîncărcarea, ping trimite atâtea pachete care nu așteaptă răspunsul. Numai super-utilizatorul poate selecta preîncărcarea la mai mult de 3.

-L
    Suprimă bucla de întoarcere a pachetelor multicast. Această opțiune se aplică numai dacă destinația ping este o adresă multicast.

-m marcaj
    Utilizează marcajul pentru a marca pachetele care ies în afară. Acest lucru este util pentru o varietate de lucruri în cadrul nucleului, cum ar fi utilizarea politicii de direcționare pentru a selecta o anumită procesare de ieșire. Este necesară capacitatea CAP_NET_ADMIN sau CAP_NET_RAW (de la Linux 5.17), consultați socket(7).

-M opțiune-pmtudisc
    Selectează strategia Path MTU Discovery (descoperirea rutei MTU). opțiunea-pmtudisc poate fi, fie do (activează fanionul DF, dar este supus verificărilor PMTU de către nucleu, pachetele prea mari vor fi respinse), want (face descoperire PMTU, fragmentează local atunci când dimensiunea pachetului este mare), probe (activează fanionul DF și ocolește verificările PMTU, util pentru sondare) sau dont (nu activează fanionul DF).

-N opțiune-nodeinfo
    Numai pentru IPv6. Trimite IPv6 Node Information Queries (RFC4620), în loc de Echo Request. Este necesară capacitatea CAP_NET_RAW.

    help
        Afișează ajutorul pentru suportul NI.

    name
        Interogări pentru nume de noduri.

    ipv6
        Interogări pentru adrese IPv6. Există mai multe opțiuni specifice IPv6.

        ipv6-global
            Solicită adrese IPv6 din sfera de acoperire globală.

        ipv6-sitelocal
            Solicită adresele locale ale sitului IPv6.

        ipv6-linklocal
            Solicită adrese locale de legătură IPv6.

        ipv6-all
            Solicită adrese IPv6 pe alte interfețe.

    ipv4
        Interogări pentru adrese IPv4. Există o singură opțiune specifică pentru IPv4.

        ipv4-all
            Solicită adrese IPv4 pe alte interfețe&.

    subject-ipv6=adresă-ipv6
        Adresa subiectului IPv6.

    subject-ipv4=adresă-ipv4
        Adresa subiectului IPv4.

    subject-name=nume-nod
        Numele subiectului. În cazul în care conține mai mult de un punct,se presupune că este vorba de un nume de domeniu complet calificat.

    subject-fqdn=nume-nod
        Numele subiectului. Se presupune întotdeauna că este vorba de un nume de domeniu complet calificat.

-n
    Ieșire numerică doar. Nu se va încerca să se caute nume simbolice pentru adresele de gazdă (nu se va face o rezoluție DNS inversă). Aceasta este valoarea implicită pentru destinația numerică sau opțiunea -f. Suprascrie opțiunea -H definită anterior. A se vedea și variabila de mediu IPUTILS_PING_PTR_LOOKUP.

-O
    Raportează răspunsul ICMP ECHO în așteptare înainte de a trimite următorul pachet. Acest lucru este util împreună cu marcajul de timp -D pentru a înregistra ieșirea într-un fișier de diagnosticare și pentru a căuta răspunsurile lipsă.

-p model
    Puteți specifica până la 16 octeți „de umplutură” pentru a completa pachetul pe care îl trimiteți. Acest lucru este util pentru diagnosticarea problemelor dependente de date într-o rețea. De exemplu, -p ff va face ca pachetul trimis să fie umplut cu toate acestea.

-q
    Ieșire silențioasă. Nu se afișează nimic în afară de liniile de rezumat la pornire și la terminarea programului.

-Q tos
    Definește biții legați de calitatea serviciului în datagramele ICMP. tos poate fi un număr zecimal (numai pentru ping) sau hexazecimal.

    În RFC2474, aceste câmpuri sunt interpretate ca servicii diferențiate (DS) pe 8 biți, constând din: biții 0-1 (cei mai mici 2 biți) de date separate și biții 2-7 (cei mai mari 6 biți) de puncte de cod pentru servicii diferențiate (DSCP). În RFC2481 și RFC3168, biții 0-1 sunt utilizați pentru ECN.

    Din punct de vedere istoric (RFC1349, înlocuit de RFC2474), acestea au fost interpretate astfel: bitul 0 (cel mai mic bit) pentru rezervat (în prezent redefinit drept control al congestiei), 1-4 pentru tipul de serviciu și biții 5-7 (cei mai mari biți) pentru precedență.

-r
    Ocolește tabelele de direcționare normale și trimite direct către o gazdă pe o interfață atașată. Dacă gazda nu se află pe o rețea direct atașată, este returnată o eroare. Această opțiune poate fi utilizată pentru a trimite un ping unei gazde locale printr-o interfață care nu are nici o rută prin ea, cu condiția să se utilizeze și opțiunea -I.

-R
    ping doar. Ruta de înregistrare. Include opțiunea RECORD_ROUTE în pachetul ECHO_REQUEST și afișează memoria tampon a rutei pe pachetele returnate. Rețineți că antetul IP este suficient de mare doar pentru nouă astfel de rute. Multe gazde ignoră sau resping această opțiune.

-s dimensiune-pachet
    Specifică numărul de octeți de date care urmează să fie trimiși. Valoarea implicită este 56, care se traduce în 64 de octeți de date ICMP atunci când sunt combinați cu cei 8 octeți de date de antet ICMP. Valoarea maximă permisă este 65507 pentru IPv4 (65467 atunci când -R sau -T sau saltul/salturile intermediar(e)) sau 65527 pentru IPv6, dar majoritatea sistemelor limitează această valoare la un număr mai mic, dependent de sistem.

-S sndbuf
    Stabilește sndbuf (memoria tampon de trimitere) a soclului. Dacă nu este specificat, se selectează să nu se stocheze mai mult de un pachet în memoria tampon.

-t ttl
    ping doar. Stabilește durata de viață „Time to Live” a IP.

-T opțiune-marcă-temporală
    Stabilește opțiunile speciale pentru marcajul de timp IP. opțiune-marcă-temporală poate fi tsonly (numai marcaje de timp), tsandaddr (marcaje de timp și adrese) sau tsprespec gazda1 [gazda2 [gazda3 [gazda4]]] (marcaj de timp salturi prestabilite).

-U
    Imprimă latența completă de la utilizator la utilizator (vechiul comportament). În mod normal, ping afișează timpul de parcurgere dus-întors al rețelei, care poate fi diferit, de exemplu, din cauza eșecurilor DNS.

-v
    Ieșire detaliată. Nu suprimă răspunsurile DUP atunci când se trimite un ping la o adresă multicast.

-V
    Afișează versiunea și iese.

-w timp-limită
    Specifică un timp de așteptare, în secunde, înainte ca ping să iasă, indiferent de câte pachete au fost trimise sau primite. În acest caz, ping nu se oprește după ce sunt trimise numărul de pachete, ci așteaptă fie ca timpul-limită să expire, fie până când numărul de sondări primește un răspuns sau până la o notificare de eroare din partea rețelei.

-W timp-așteptare
    Timpul de așteptare a unui răspuns, în secunde. Opțiunea afectează doar timpul de așteptare în absența oricărui răspuns, în caz contrar ping așteaptă două RTT-uri. Număr real admis cu punct ca separator zecimal (indiferent de configurația regională). 0 înseamnă timp de așteptare infinit.

Atunci când se utilizează ping pentru izolarea defecțiunilor, trebuie mai întâi să fie rulat pe gazda locală, pentru a verifica dacă interfața de rețea locală este activă și funcționează. Apoi, ar trebui să fie trimis un ping către gazdele și porțile de acces din ce în ce mai îndepărtate. Se calculează timpii de parcurgere dus-întors și statisticile de pierdere a pachetelor. În cazul în care se primesc pachete duplicate, acestea nu sunt incluse în calculul pierderilor de pachete, deși timpul de călătorie dus-întors al acestor pachete este utilizat la calcularea numerelor de timp de călătorie dus-întors minim/mediu/maxim/standard.

Abaterea standard a eșntionării (mdev), în esență o medie a distanței dintre fiecare RTT ping și media RTT. Cu cât mdev este mai mare, cu atât RTT-ul este mai variabil (în timp). Cu o variabilitate ridicată a RTT, veți avea probleme de viteză la transferurile în masă (acestea vor dura mai mult decât este strict necesar, deoarece variabilitatea va determina în cele din urmă expeditorul să aștepte ACK-uri) și veți avea o calitate VoIP medie sau slabă.

Când numărul specificat de pachete a fost trimis (și primit) sau dacă programul se termină cu un SIGINT, se afișează un scurt rezumat. Statistici curente mai scurte pot fi obținute fără încheierea procesului cu semnalul SIGQUIT.

Acest program este destinat utilizării în testarea, măsurarea și gestionarea rețelelor. Din cauza încărcăturii pe care o poate impune asupra rețelei, nu este indicat să se utilizeze ping în timpul operațiilor normale sau din scripturi automate.

MEDIU

Variabila de mediu IPUTILS_PING_PTR_LOOKUP stabilită la 0 dezactivează rezoluția DNS inversă (PTR lookup) în mod implicit. Aceasta va fi anulată de opțiunea -H sau -n.

STARE DE IEȘIRE

În cazul în care ping nu primește niciun pachet de răspuns, va ieși cu codul 1. În cazul în care sunt specificate atât un număr pachet , cât și timp-limită și se primesc mai puține pachete decât număr până la atingerea timpului-limită, se va ieși, de asemenea, cu codul 1. În caz de altă eroare, acesta iese cu codul 2. În caz contrar, iese cu codul 0. Acest lucru face posibilă utilizarea codului de ieșire pentru a vedea dacă o gazdă este în viață sau nu.

DESTINAȚII ALE LEGĂTURII LOCALE IPV6

Pentru IPv6, atunci când adresa de destinație are domeniul de aplicare la nivel de legătură locală și ping utilizează socluri de datagramă ICMP, interfața de ieșire trebuie să fie specificată. Atunci când ping utilizează socluri brute, nu este strict necesar să se specifice interfața de ieșire, dar ar trebui să se facă acest lucru pentru a evita ambiguitățile atunci când există mai multe interfețe de ieșire posibile.

Există două moduri de a specifica interfața de ieșire:

• folosind notația %
    Adresa de destinație este postfixată cu % și numele interfeței de ieșire sau ifindex, de exemplu:

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

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

• folosind opțiunea „-I”
    Atunci când se utilizează socluri de datagramă ICMP, această metodă este acceptată începând cu următoarele versiuni de nucleu: 5.17, 5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. De asemenea, nu este acceptată în „musl libc”.

DETALII DESPRE PACHETUL ICMP

Un antet IP fără opțiuni are 20 de octeți. Un pachet ICMP ECHO_REQUEST conține un antet ICMP suplimentar de 8 octeți, urmat de o cantitate arbitrară de date. Atunci când se dă o dimensiune-pachet, aceasta indică dimensiunea acestei bucăți suplimentare de date (valoarea implicită este 56). Astfel, cantitatea de date primită în interiorul unui pachet IP de tip ICMP ECHO_REPLY va fi întotdeauna cu 8 octeți mai mare decât spațiul de date solicitat (antetul ICMP).

În cazul în care spațiul de date are cel puțin dimensiunea „struct timeval” ping utilizează octeții de început ai acestui spațiu pentru a include o marcă temporală pe care o utilizează în calculul timpilor de parcurs dus-întors&. În cazul în care spațiul de date este mai mic, nu se indică timpii de parcurs dus-întors.

PACHETE DUPLICATE ȘI DETERIORATE

ping va raporta pachetele duplicate și deteriorate. Pachetele duplicate nu ar trebui să apară niciodată și se pare că sunt cauzate de retransmisiuni necorespunzătoare la nivel de legătură. Dublurile pot apărea în multe situații și sunt rareori (sau chiar niciodată) un semn bun, deși prezența unor niveluri scăzute de duplicate nu este întotdeauna un motiv de alarmă.

Pachetele deteriorate sunt, în mod evident, un motiv serios de alarmă și indică adesea defecțiuni hardware undeva pe traseul pachetului ping (în rețea sau în gazde).

COLIZIUNI DE IDENTIFICATOR

Spre deosebire de TCP și UDP, care utilizează portul pentru a identifica în mod unic destinatarul pentru a livra datele, ICMP utilizează câmpul de identificare (ID) pentru identificare. Prin urmare, dacă pe aceeași mașină, în același timp, două procese ping folosesc același ID, răspunsul de ecou poate fi livrat unui destinatar greșit. Aceasta este o problemă cunoscută din cauza dimensiunii limitate a câmpului ID de 16 biți. Aceasta este o limitare istorică a protocolului, care nu poate fi rezolvată în acest moment decât dacă codificăm un ID în sarcina utilă a pachetului ping. ping afișează eroarea DIFFERENT ADDRESS (ADRESĂ DIFERITĂ) și pierderea pachetului este negativă.

ping utilizează PID pentru a obține un număr unic. Valoarea implicită a /proc/sys/kernel/pid_max este 32768. Pe sistemele care utilizează ping intensiv și cu pid_max mai mare de 65535 este inevitabil să apară coliziuni.

ÎNCERCAREA UNOR MODELE DE DATE DIFERITE

Stratul (inter)rețea nu ar trebui să trateze niciodată pachetele în mod diferit în funcție de datele conținute în porțiunea de date. Din nefericire, se știe că problemele care depind de date se strecoară în rețele și rămân nedetectate pentru perioade lungi de timp. În multe cazuri, modelul special care va avea probleme este ceva care nu are suficiente „tranziții”, cum ar fi toate „unu” sau „zero”, sau un model chiar la limită, cum ar fi aproape toate „zero”. Nu este neapărat suficient să specificați un model de date format din toate zerourile (de exemplu) pe linia de comandă, deoarece modelul care prezintă interes se află la nivelul legăturii de date, iar relația dintre ceea ce introduceți și ceea ce transmit controlorii poate fi complicată.

Acest lucru înseamnă că, dacă aveți o problemă dependentă de date, va trebui probabil să efectuați multe teste pentru a o găsi. Dacă sunteți norocos, este posibil să reușiți să găsiți un fișier care fie nu poate fi trimis prin rețeaua dvs., fie durează mult mai mult timp pentru a fi transferat decât alte fișiere de lungime similară. Puteți examina apoi acest fișier pentru a găsi modele repetate pe care le puteți testa folosind opțiunea -p din ping.

DETALII TTL

Valoarea TTL a unui pachet IP reprezintă numărul maxim de routere IP prin care poate trece pachetul înainte de a fi respins. În practica curentă, vă puteți aștepta ca fiecare router din Internet să diminueze câmpul TTL cu exact unu.

Câmpul TTL pentru pachetele TCP poate lua diferite valori. Valoarea maximă posibilă a acestui câmp este 255, o valoare inițială recomandată este 64. Pentru mai multe informații, consultați secțiunea TCP/Lower-Level Interface din RFC9293.

În timpul funcționării normale, ping afișează valoarea TTL din pachetul pe care îl primește. Atunci când un sistem la distanță primește un pachet ping, acesta poate face unul dintre următoarele trei lucruri cu câmpul TTL din răspunsul său:

    • Nu-l schimbă; așa făceau sistemele Berkeley Unix înainte de versiunea 4.3BSD Tahoe. În acest caz, valoarea TTL din pachetul primit va fi 255 minus numărul de routere din traseul dus-întors.

    • Îl stabilește la 255; aceasta este ceea ce fac sistemele Berkeley Unix actuale. În acest caz, valoarea TTL din pachetul primit va fi 255 minus numărul de rutere din ruta de la sistemul la distanță la gazda ce face ping.

    • Îl stabilește la o altă valoare. Unele mașini folosesc aceeași valoare pentru pachetele ICMP pe care o folosesc pentru pachetele TCP, de exemplu, fie 30, fie 60. Altele pot folosi valori complet neașteptate.

ERORI

    • Multe gazde și porți de acces ignoră opțiunea RECORD_ROUTE.

    • Lungimea maximă a antetului IP este prea mică pentru ca opțiunile precum RECORD_ROUTE să fie complet utile. Cu toate acestea, nu se pot face prea multe în această privință.

    • În general, ping-ul de inundare nu este recomandat, iar ping-ul de inundare al adresei de difuzare ar trebui să se facă numai în condiții foarte controlate.

CONSULTAȚI ȘI

ip(8), ss(8).

ISTORIC

Comanda ping a apărut în 4.3BSD.

Versiunea descrisă aici este descendenta sa specifică pentru Linux.

Începând cu versiunea s20150815, binarul ping6 nu mai există. A fost fuzionat în ping. Crearea unei legături simbolice numite ping6 care să arate spre ping va avea ca rezultat aceeași funcționalitate ca înainte.

SECURITATE

ping necesită capacitatea CAP_NET_RAW pentru a fi executată 1) dacă programul este utilizat pentru interogări fără ecou (a se vedea opțiunea -N) sau atunci când câmpul de identificare este stabilit la 0 pentru ECHO_REQUEST (a se vedea -e), sau 2) dacă nucleul nu acceptă socluri de datagramă ICMP, sau 3) dacă utilizatorului nu i se permite să creeze un soclu de ecou ICMP. Programul poate fi utilizat ca set-uid root.

DISPONIBILITATE

ping face parte din pachetul iputils.

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.