- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
PING(8) | iputils | PING(8) |
НАЗВА¶
ping — надсилання ICMP ECHO_REQUEST до вузлів мережі
КОРОТКИЙ ОПИС¶
ping [-aAbBdCDfhHLnOqrRUvV46] [-c кількість] [-e ідентифікатор] [-F мітка_потоку] [-i інтервал] [-I інтерфейс] [-l попереднє_завантаження] [-m позначка] [-M параметр_pmtudisc] [-N параметр_nodeinfo] [-w строк_дії] [-W час_очікування] [-p взірець] [-Q tos] [-s розмір_пакета] [-S sndbuffer] [-t ttl] [-T параметр часової позначки] [hop...] {призначення}
ОПИС¶
ping використовує обов'язкову датаграму ECHO_REQUEST протоколу ICMP для отримання ICMP ECHO_RESPONSE від вузла або шлюзу. Датаграми ECHO_REQUEST («пінги») складаються із заголовка IP та ICMP, структури timeval і довільної кількості байтів «доповнень», які доповнюють пакет до потрібного розміру.
ping працює як з IPv4, так і з IPv6. Наказати програмі використовувати один із протоколів можна за допомогою параметра -4 або -6.
ping може також надсилати запити щодо відомостей вузла IPv6 (RFC4620). Проміжні переходи може бути заборонено, оскільки маршрутизація джерела у IPv6 вважається застарілою (RFC5095).
ПАРАМЕТРИ¶
-4
-6
-a
-A
-b
-B
-c кількість
-C
-d
-D
-e ідентифікатор
-f
-F мітка потоку
-h
-H
-i інтервал
-I інтерфейс
-l попереднє_завантаження
-L
-m позначка
-M параметр_pmtudisc
-N параметр_nodeinfo
help
назва
ipv6
ipv6-global
ipv6-sitelocal
ipv6-linklocal
ipv6-all
ipv4
ipv4-all
subject-ipv6=адреса_ipv6
subject-ipv4=адреса_ipv4
subject-name=назва_вузла
subject-fqdn=назва_вузла
-n
-O
-p взірець
-q
-Q tos
У RFC2474 ці поля має бути оброблено як 8-бітові диференційовані служби (DS), що складається з таких компонентів: бітів 0-1 (2 нижчих бітів) окремих даних і бітів 2-7 (6 вищих бітів) диференційованої кодової точки служб (DSCP). У RFC2481 і RFC3168 біти 0-1 використано для ECN.
Історично (RFC1349, став застарілим після впровадження RFC2474), ці дані мало бути оброблено так: біт 0 (нижчий біт) зарезервовано (у поточній версії перевизначено як керування перевантаженням), біти 1-4 для типу служби і біти 5-7 (вищі біти) для пріоритетності.
-r
-R
-s розмір_пакета
-S sndbuf
-t ttl
-T параметр часової позначки
-U
-v
-V
-w строк_дії
-W час_очікування
При використанні ping для локалізації помилок програму слід спочатку запустити на локальному вузлі для перевірки того, чи є працездатним локальний інтерфейс мережі. Далі, слід виконати зондування усе віддаленіших вузлів і шлюзів. Буде обчислено часи проходження та статистику щодо втрати пакетів. Якщо буде отримати дублікати пакетів, їх не буде включено в обчислення втрати пакетів, хоча час проходження цих пакетів буде використано для обчислення мінімального, середнього, максимального та стандартного відхилення часу проходження.
Стандартне відхилення вибірки (mdev), по суті, середнє відхилення часу проходження сигналу від середнього часу проходження сигналу. Чим більшим буде mdev, тим більшою є зміна часу проходження сигналу (з часом). Якщо розкид часу проходження сигналу є великим, ви матимете проблеми зі швидкістю при передаванні великих масивів даних (таке передавання, якщо говорити строго, є довшим, ніж потрібно, оскільки зміна часу проходження, врешті, спричиняє потребу в очікуванні підтвердження на боці надсилання даних) і низьку якість інтернет-телефонії.
Якщо було надіслано (і отримано) вказану кількість пакетів або якщо роботу програми було перервано сигналом SIGINT, буде виведено коротке резюме. Коротші поточні статистичні дані можна отримати без переривання процесу за допомогою сигналу SIGQUIT.
Цю програму призначено для використання у перевірках працездатності мережі, вимірюваннях та керуванні мережами. Через навантаження, яке програма здатна спричинити у мережі, не варто використовувати ping під час звичайної роботи системи або використовувати її в автоматизованих сценаріях.
СТАН ВИХОДУ¶
Якщо ping не отримує ніяких пакетів взагалі, програма завершує роботу з кодом 1. Якщо одночасно вказано кількість пакетів і строк дії, і отримано менше за кількість пакетів до завершення строку дії, програма також завершить роботу з кодом 1. Якщо станеться інша помилка, програма завершить роботу з кодом 2. Якщо помилки не станеться, кодом виходу буде 0. Таким чином, кодом виходу можна скористатися для визначення того, чи є вузол працездатним.
LINK-LOCAL ПРИЗНАЧЕННЯ IPV6¶
Для IPv6, якщо адреса призначення належить до області link-local і ping використовує сокети датаграми ICMP, має бути вказано інтерфейс виведення даних. Якщо ping використовує сокети без обробки, необхідності у визначенні інтерфейсу виведення даних немає, але його слід визначити, щоб уникнути неоднозначності, якщо існує декілька можливих інтерфейсів виведення даних.
Передбачено два способи визначити інтерфейс виведення даних:
• з використанням % notation
ping fe80::5054:ff:fe70:67bc%eth0
ping fe80::5054:ff:fe70:67bc%2
• з використанням -I параметр
ПОДРОБИЦІ ЩОДО ПАКЕТІВ ICMP¶
Розмір заголовка IP без параметрів складає 20 байтів. Пакет ICMP ECHO_REQUEST містить додаткові 8 байтів заголовка ICMP з наступним довільним об'ємом даних. Якщо вказано аргумент розмір_пакета, цей розмір визначатиме розмір додаткового фрагмента даних (типовим є значення). Таким чином, об'єм даних, які отримано у пакеті IP типу ICMP ECHO_REPLY завжди перевищуватиме на 8 байтів об'єм даних, щодо якого надійшов запит (заголовок ICMP).
Якщо об'єм даних не є меншим за розмір структури timeval, ping використає початкові байти цього об'єму для включення часової позначки, яку програма використовує для обчислення часу проходження сигналу. Якщо об'єм даних є меншим за розмір структури, дані щодо часу проходження сигналу надано не буде.
ДУБЛЬОВАНІ ТА ПОШКОДЖЕНІ ПАКЕТИ¶
ping повідомлятиме про дублювання та пошкодження пакетів. Дублювання пакетів має бути виключено, але все ж трапляється через неналежні повторні передавання даних на рівні зв'язку. Дублювання може траплятися з багатьох причин і навряд (якщо взагалі колись) є ознакою чогось доброго, хоча наявність малої кількості дублювань не завжди є причиною аж надто перейматися.
Пошкоджені пакети, очевидно, є серйозною проблемою і часто вказують на апаратні несправності десь на шляху пакетів ping (у мережі або на вузлах).
ЗБІГИ ІДЕНТИФІКАТОРІВ¶
На відміну від TCP і UDP, де порт використовують для однозначної ідентифікації одержувача для доставки даних, у ICMP для ідентифікації використовують поле ідентифікатора (ID). Таким чином, якщо на одній машині одночасно два процеси ping використовують той самий ідентифікатор, відповідь на зондування може бути доставлено неправильному одержувачу. Це відома проблема через обмежений розмір 16-бітного поля ID. Це історичне обмеження протоколу, яке неможливо виправити на даний момент, якщо ми не закодуємо ідентифікатор у корисних даних пакета ping. ping виводить помилку ІНША АДРЕСА і встановлює для втрати пакетів від'ємне значення.
У ping для отримання однозначного числа використано PID. Типовим значенням /proc/sys/kernel/pid_max є 32768. У системах, які широко використовують ping із встановленим значенням pid_max, що перевищує 65535, можуть траплятися збіги ідентифікаторів.
СПРОБИ ВИКОРИСТАННЯ ІНШИХ ВЗІРЦІВ ДАНИХ¶
(Між)мережевий шар ніколи не повинен обробляти пакети залежно від даних, які у них містяться. На жаль, у мережах все ж трапляються проблеми, які пов'язано із обробкою даних, і ці проблеми лишаються невиявленими протягом довгих періодів часу. У багатьох випадках взірцем даних, який спричиняє проблеми, є взірець, у якому недостатньо «переходів», зокрема взірець, який складається лише з одиниць або нулів, або близький до екстремального взірець, зокрема взірець, який складається майже з нулів. Не обов'язково визначення взірця з одних нулів (наприклад) у рядку команди не обов'язково буде достатнім, оскільки цікавий для нас взірець перебуває на рівні передавання даних і зв'язок між тим, що ви вводите, і тим, що передають контролери, може бути складним.
Це означає, що якщо у вас є проблема з даними, вам, ймовірно, доведеться виконати багато перевірок, щоб виявити її. Якщо вам поталанить, ви знайдете файл, який або не можна надіслати мережею, або передавання якого триватиме набагато довше за передавання інших файлів такого самого розміру. Потім ви можете проаналізувати цей файл на наявність повторюваних взірців, перевірити які ви можете за допомогою параметра -p ping.
ПОДРОБИЦІ ЩОДО TTL¶
Значення TTL пакета IP відповідає максимальній кількості маршрутизаторів IP, через які пакет може пройти до того, як його буде відкинуто. На сьогодні, можна очікувати, що кожен маршрутизатор в інтернеті зменшує значення поля TTL точно на одиницю.
Поле TTL для пакетів TCP може приймати різні значення. Максимальним можливим значенням для цього поля є 255, а рекомендованим початковим — 64. Щоб дізнатися більше, ознайомтеся із розділом щодо TCP/низькорівневого інтерфейсу у RFC9293.
У звичайному режимі ping виводить значення TTL з пакета, який програма отримує. Коли віддалена система отримує пакет зондування, вона може виконати одну з трьох дій з полем TTL у своїй відповіді:
ВАДИ¶
ДИВ. ТАКОЖ¶
ЖУРНАЛ¶
Команда ping з'явилася у 4.3BSD.
На цій сторінці підручника описано її похідну, специфічну для Linux.
Починаючи з версії s20150815, виконуваний файл ping6 вилучено з пакунка. Його об'єднано із ping. Створення символічного посилання із назвою ping6, яке вказує на ping, надасть у ваше розпорядження ті самі функціональні можливості, що і у попередніх версіях.
БЕЗПЕКА¶
ping потребує можливості CAP_NET_RAW, щоб програму можна було виконати 1) якщо програму використовують для запитів, відмінних від луна-сигналів (див. параметр -N) або якщо для поля розпізнавання встановлено 0 для ECHO_REQUEST (див. -e), або 2) якщо у ядрі не передбачено підтримки сокетів датаграм ICMP, або 3) якщо користувачеві не дозволено створювати сокет луна-сигналу ICMP. Програмою можна користуватися із визначенням біта запуску від імені root.
ДОСТУПНІСТЬ¶
ping є частиною пакунка iputils.
ПЕРЕКЛАД¶
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.
iputils 20240117 |