Це команда lft.db, яку можна запустити в постачальнику безкоштовного хостингу OnWorks, використовуючи одну з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
traceroute - друкує трасування пакетів маршруту на мережевий хост
СИНТАКСИС
traceroute [-46dFITUnreAV] [-f first_ttl] [-g ворота,...]
[-i пристрій] [-m max_ttl] [-p порт] [-s src_addr]
[-q nqueries] [-N запити] [-t малюк]
[-l мітка_потоку] [-w час очікування] [-z sendwait] [-УЛ] [-D]
[-P тому] [--спорт=порт] [-M метод] [-O mod_options]
[--mtu] [--назад]
господар [packet_len]
traceroute6 [опції]
tcptraceroute [опції]
lft [опції]
ОПИС
traceroute відстежує маршрути пакетів, узятих з IP-мережі на шляху до даного хосту.
Він використовує поле часу існування протоколу IP (TTL) і намагається отримати ICMP
TIME_EXCEEDED відповідь від кожного шлюзу на шляху до хоста.
traceroute6 еквівалентна traceroute -6
tcptraceroute еквівалентна traceroute -T
lft , Layer Four Traceroute, виконує трасування TCP, наприклад traceroute -T , Але
спроби забезпечити сумісність з оригіналом таку реалізацію, також наз
"lft".
Єдиний необхідний параметр - це ім'я або IP-адреса місця призначення господар ,
необов'язковий packet_len`gth є загальним розміром пакету для тестування (за замовчуванням 60 байт для IPv4
і 80 для IPv6). У деяких ситуаціях вказаний розмір можна ігнорувати або збільшити до
мінімальне значення.
Ця програма намагається відстежити маршрут IP-пакету до якогось інтернет-хосту
шляхом запуску пробних пакетів з невеликим ttl (час життя), а потім прослуховуванням ICMP
відповідь "час перевищено" від шлюзу. Ми починаємо наші зонди з ttl одиниці і збільшуємо
на один, поки ми не отримаємо ICMP "порт недоступний" (або скидання TCP), що означає, що ми потрапили до
"host" або досягти максимуму (який за замовчуванням становить 30 стрибків). На адресу надсилаються три зонди (за замовчуванням).
кожне налаштування ttl та рядок, що показує ttl, адресу шлюзу та раунд
час спрацювання кожного зонда. Після адреси може бути додаткова інформація, коли
запитав. Якщо відповіді на зонд надходять з різних шлюзів, адреса кожного
система відповідей буде надрукована. Якщо немає відповіді протягом 5.0 секунд
(за замовчуванням), для цього датчика друкується «*» (зірочка).
Після закінчення поїздки можна роздрукувати додаткову анотацію: !H, !Nабо !P (господар,
мережа або протокол недоступні), !S (помилка вихідного маршруту), !F (потрібна фрагментація), !X
(спілкування адміністративно заборонено), !V (порушення пріоритету хосту), !C
(діє обмеження пріоритету), або ! (Недоступний код ICMP ). Якщо майже всі
зонди призводять до якоїсь недосяжності, traceroute відмовиться і вийде.
Ми не хочемо, щоб хост-адресат обробляв пакети пробних UDP, тому місце призначення
порту встановлено малоймовірне значення (ви можете змінити його за допомогою -p прапор). Немає такого
проблема для трасування ICMP або TCP (для TCP ми використовуємо напіввідкриту техніку, яка запобігає
наші зонди для перегляду програмами на хості призначення).
У сучасному мережевому середовищі традиційні методи трасування можуть бути не завжди
застосовно через широке використання брандмауерів. Такі брандмауери фільтрують "малоймовірно"
Порти UDP або навіть відлуння ICMP. Щоб вирішити цю проблему, існують додаткові методи трасування
реалізовано (включаючи tcp), див СПИСОК OF В НАЯВНОСТІ МЕТОДИ нижче. Такі методи намагаються використовувати
конкретний протокол і порт джерела/призначення, щоб обійти брандмауери (щоб було видно
брандмауерами як початок дозволеного типу мережевого сеансу).
ВАРІАНТИ
--допомога Роздрукуйте довідкову інформацію та вийдіть.
-4, -6 Явно примусово примусове трасування IPv4 або IPv6. За замовчуванням програма намагатиметься
розв’язати задане ім’я та автоматично вибрати відповідний протокол. Якщо
розпізнавання імені хоста повертає адреси IPv4 і IPv6, traceroute буде використовувати
IPv4.
-я, --icmp
Використовуйте ICMP ECHO для зондів
-Т, --tcp
Використовуйте TCP SYN для зондів
-d, --відлагоджувати
Увімкнути налагодження на рівні сокета (якщо ядро Linux це підтримує)
-F, --не фрагмент
Не фрагментуйте пробні пакети. (Для IPv4 він також встановлює біт DF, який повідомляє
проміжні маршрутизатори також не фрагментувати віддалено).
Змінення розміру пакета зондування за packet_len параметр командного рядка,
ви можете вручну отримати інформацію про MTU окремих мережевих переходів. The
--mtu параметр (див. нижче) намагається зробити це автоматично.
Зауважте, що нефрагментовані функції (наприклад -F or --mtu) працюють належним чином, починаючи з Linux
тільки ядро 2.6.22. До цієї версії IPv6 завжди був фрагментованим, IPv4 міг
використовуйте лише один раз виявлений остаточний mtu (з кешу маршруту), який може бути
менше, ніж фактичний mtu пристрою.
-f first_ttl, --перший=first_ttl
Вказує, з якого TTL почати. За замовчуванням 1.
-g шлюз, --шлюз=шлюз
Вказує traceroute додати параметр маршрутизації джерела IP до вихідного пакету, що
повідомляє мережі маршрутизувати пакет через вказаний шлюз (більшість маршрутизаторів
вимкнули маршрутизацію джерела з міркувань безпеки). Загалом, декілька шлюз's
дозволено (відокремлюється комою). Для IPv6 форма Num,адр,адрес... дозволено,
де Num — тип заголовка маршруту (за замовчуванням — тип 2). Зверніть увагу на заголовок маршруту типу 0
тепер не підтримується (rfc5095).
-i інтерфейс, --інтерфейс=інтерфейс
Вказує інтерфейс, через який traceroute повинні надсилати пакети. За замовчуванням,
інтерфейс вибирається відповідно до таблиці маршрутизації.
-m max_ttl, --max-hops=max_ttl
Вказує максимальну кількість стрибків (максимальне значення часу життя) traceroute волі
зонд. За замовчуванням – 30.
-N запити, --sim-queries=запити
Вказує кількість пакетів, які надсилаються одночасно. Відправка кількох
зонди одночасно можуть прискорюватися traceroute значно. Значення за замовчуванням – 16.
Зауважте, що деякі маршрутизатори та хости можуть використовувати регулювання швидкості ICMP. У такій ситуації
введення занадто великої кількості може призвести до втрати деяких відповідей.
-n Не намагайтеся зіставити IP-адреси з іменами хостів під час їх відображення.
-p порт, --порт=порт
Для трасування UDP вказує базу порту призначення traceroute буде використовувати (
номер порту призначення буде збільшуватися кожним зондом).
Для трасування ICMP вказує початкове значення послідовності ICMP (збільшується на кожне
зонд також).
Для TCP та інших вказується лише (постійний) порт призначення для підключення. Коли
за допомогою обгортки tcptraceroute -p вказує вихідний порт.
-t малюк, --tos=малюк
Для IPv4 встановіть тип послуги (TOS) і значення пріоритету. Корисні значення 16
(низька затримка) і 8 (висока пропускна здатність). Зауважте, що для використання певного пріоритету TOS
значення, ви повинні бути суперкористувачем.
Для IPv6 встановіть значення керування трафіком.
-l мітка_потоку, --flowlabel=мітка_потоку
Використовуйте вказаний flow_label для пакетів IPv6.
-w час очікування, --зачекайте=час очікування
Встановіть час (у секундах) очікування відповіді на зонд (за замовчуванням 5.0 с).
-q nqueries, --запити=nqueries
Встановлює кількість пробних пакетів на перехід. За замовчуванням 3.
-r Обійти звичайні таблиці маршрутизації та надіслати безпосередньо на хост на підключеному
мережі. Якщо хост не знаходиться в мережі, підключеній безпосередньо, повертається помилка.
Цю опцію можна використовувати для ping локального хоста через інтерфейс, який не має маршруту
крізь це.
-s джерело_адреса, --джерело=джерело_адреса
Вибирає альтернативну адресу джерела. Зауважте, що ви повинні вибрати адресу одного
інтерфейсів. За замовчуванням використовується адреса вихідного інтерфейсу.
-z sendwait, --sendwait=sendwait
Мінімальний інтервал часу між зондами (за замовчуванням 0). Якщо значення більше 10,
тоді він визначає число в мілісекундах, інакше це кількість секунд (float
також дозволені значення балів). Корисно, коли деякі маршрутизатори використовують обмеження швидкості для ICMP
повідомлення
-е, --розширення
Показати розширення ICMP (rfc4884). Загальна форма є КЛАС/TYPE: слідом за a
шістнадцятковий дамп. MPLS (rfc4950) показано розібраним у вигляді:
MPLS:L=етикетка,E=exp_use,S=stack_bottom,T=TTL (більше об'єктів, розділених / ).
-A, --as-path-lookups
Виконуйте пошук шляху AS у реєстрах маршрутизації та друкуйте результати безпосередньо після
відповідні адреси.
-V, -- версія
Роздрукуйте версію та вийдіть.
Існують додаткові параметри, призначені для розширеного використання (наприклад, альтернативні методи трасування
і т.д.):
--спорт=порт
Вибирає вихідний порт для використання. Має на увазі -N 1. Зазвичай вихідні порти (якщо
застосовні) вибираються системою.
--fwmark=позначити
Встановіть позначку брандмауера для вихідних пакетів (починаючи з ядра Linux 2.6.25).
-M метод, --module=ім'я
Використовуйте вказаний метод для операцій трасування. Традиційний метод udp за замовчуванням має
ім'я дефолт, icmp (-I) і tcp (-T) мають імена icmp та тпп відповідно.
Можна пропускати параметри, що стосуються конкретного методу -O . Більшість методів мають свої прості
ярлики, (-I засоби -M icmpІ т.д.).
-O варіант, --параметри=опції
Вказує певну опцію для конкретного методу. Кілька варіантів відокремлюються комами (або
використовувати кілька -O на cmdline). Кожен метод може мати свої специфічні варіанти або багато
їх взагалі немає. Щоб роздрукувати інформацію про доступні параметри, використовуйте -O допомога.
-У, --udp
Використовуйте UDP до певного порту призначення для трасування (замість збільшення
порт для кожного датчика). Порт за замовчуванням — 53 (dns).
-УЛ Використовуйте UDPLITE для трасування (порт за замовчуванням — 53).
-Д, --dccp
Використовуйте запити DCCP для зондів.
-P протокол, --протокол=протокол
Використовуйте необроблений пакет зазначеного протоколу для трасування. Протокол за замовчуванням — 253
(rfc3692).
--mtu Знайдіть MTU вздовж траси, що трасується. Має на увазі -F -N 1. Новий Персона друкується один раз
у формі F=NUM при першому пробуванні хопу, який потребує такого Персона бути
досягнуто. (Насправді, відповідне повідомлення icmp «потрібен фрагмент» зазвичай надсилається
попередній стрибок).
Зауважте, що деякі маршрутизатори можуть кешувати, як тільки побачена інформація про фрагментацію.
Таким чином, ви можете отримати остаточний mtu з ближчого стрибка. Спробуйте вказати незвичайне
малюк by -t , це може допомогти за одну спробу (тоді його також можна кешувати там).
Читати -F варіант для отримання додаткової інформації.
--назад Надрукуйте кількість стрибків назад, коли воно здається іншим разом із прямим
напрямок. Це число вгадується в припущенні, що віддалені стрибки надсилають пакети-відповіді
з початковим ttl встановленим або 64, або 128, або 255 (що здається звичайною практикою).
Воно друкується як від'ємне значення у формі '-NUM'.
СПИСОК OF В НАЯВНОСТІ МЕТОДИ
Загалом, певний метод трасування, можливо, доведеться вибрати -M ім'я, але більшість
методи мають прості перемикачі командної лінії (ви можете побачити їх після імені методу, якщо
присутній).
дефолт
Традиційний, стародавній метод трасування. Використовується за замовчуванням.
Пробні пакети — це дейтаграми udp з так званими «малоймовірними» портами призначення. The
"малоймовірний" порт першого датчика - 33434, потім для кожного наступного датчика він збільшується на
один. Оскільки очікується, що порти не будуть використовуватися, хост-адресат зазвичай повертається
"icmp unreach port" як остаточна відповідь. (Ніхто не знає, що відбувається, коли якась програма
але прислухається до таких портів).
Цей метод дозволений для непривілейованих користувачів.
icmp -I
Найпоширеніший на даний момент метод, який використовує ехо-пакети icmp для перевірок.
Якщо ти можеш пінг(8) також застосовується хост-адресат, icmp tracerouting.
Цей метод може бути дозволений для непривілейованих користувачів, починаючи з ядра 3.0 (тільки IPv4), який
підтримує нові dgram icmp (або "пінг") сокети. Щоб дозволити такі сокети, системний адмін повинен
забезпечувати net/ipv4/ping_group_range діапазон sysctl для відповідності будь-якій групі користувачів.
варіанти:
сировина Використовуйте тільки необроблені розетки (традиційний спосіб).
Цей спосіб спочатку пробується за замовчуванням (з міркувань сумісності), потім новий dgram icmp
розетки як запасний варіант.
dgram Використовуйте лише сокети dgram icmp.
тпп -T
Відомий сучасний метод, призначений для обходу брандмауерів.
Використовує постійний порт призначення (за замовчуванням 80, http).
Якщо в мережевому шляху присутні деякі фільтри, то, швидше за все, будь-який «малоймовірний» udp
порти (як дефолт метод) або навіть відлуння icmp (як для icmp) фільтруються і цілі
трасування просто зупиниться на такому брандмауері. Щоб обійти мережевий фільтр, ми повинні
використовувати лише дозволені комбінації протоколу/порту. Якщо ми відстежуємо якийсь, скажімо, поштовий сервер, то
більш імовірно, -T -p 25 може досягти його, навіть коли -I не можна.
У цьому методі використовується добре відома «напіввідкрита техніка», яка запобігає накладенням на
хост призначення взагалі не бачив наші зонди. Зазвичай надсилається tcp syn. Для не-
прослухані порти отримуємо скидання tcp, і все готово. Для активного прослуховування портів ми
отримати tcp syn+ack, але відповісти скиданням tcp (замість очікуваного підтвердження tcp), таким чином
віддалений сеанс tcp припиняється, навіть якщо програма не помічає.
Є пара варіантів для тпп метод:
syn,ack,fin,prst,psh,urg,ece,cwr
Встановлює вказані прапори tcp для пакету проби в будь-якій комбінації.
прапори=Num
Встановлює поле прапорів у заголовку tcp точно на Num.
ecn Надіслати пакет syn з прапорами tcp ECE та CWR (для явного сповіщення про перевантаження,
rfc3168).
sack,timestamps,window_scaling
Використовуйте відповідний параметр заголовка tcp у вихідному пакеті проби.
Sysctl Використовуйте поточний sysctl (/proc/sys/net/*) налаштування для параметрів заголовка tcp вище та
ecn. Завжди встановлюється за замовчуванням, якщо нічого іншого не вказано.
MSS=Num
Користувальна вартість Num для параметра заголовка maxseg tcp (коли син).
інформація Друк прапорів tcp остаточних відповідей tcp, коли буде досягнуто цільовий хост. Дозволяє
визначити, чи програма прослуховує порт та інші корисні речі.
Параметри за замовчуванням syn,sysctl.
tcpconn
Початкова реалізація методу tcp, проста у використанні з'єднуватися(2) виклик, який виконує повний tcp
відкриття сесії. Не рекомендується для звичайного використання, оскільки це цільова програма
завжди впливають (і можуть бути сплутані).
udp -U
Використовуйте дейтаграму udp з постійним портом призначення (за замовчуванням 53, dns).
Також призначений для обходу брандмауера.
Зауважте, що на відміну від в тпп метод, відповідна програма на хості призначення завжди
отримувати наші зонди (з випадковими даними), і більшість з них може бути легко заплутана. Більшість випадків
однак він не відповідатиме на наші пакети, тому ми ніколи не побачимо остаточного переходу в
слід. (На щастя, здається, що принаймні сервери dns відповідають чимось гнівним).
Цей метод дозволений для непривілейованих користувачів.
udplite -УЛ
Використовуйте дейтаграму udplite для зондування (з постійним портом призначення, за замовчуванням 53).
Цей метод дозволений для непривілейованих користувачів.
варіанти:
охоплення=Num
Установити покриття для надсилання udplite Num.
dccp -D
Використовуйте пакети запитів DCCP для зондів (rfc4340).
Цей метод використовує ту саму «напіввідкриту техніку», що й для TCP. Місце призначення за замовчуванням
порт 33434.
варіанти:
обслуговування=Num
Встановіть код служби DCCP на Num (за замовчуванням - 1885957735).
сировина -P тому
Надіслати необроблений пакет протоколу тому.
Не використовуються специфічні для протоколу заголовки, лише IP-заголовок.
Має на увазі -N 1.
варіанти:
протокол=тому
Використовуйте IP-протокол тому (за замовчуванням 253).
ПРИМІТКИ
Для прискорення роботи, як правило, одночасно надсилається кілька зондів. З іншого боку, це
створює «шторм пакетів», особливо у напрямку відповіді. Маршрутизатори можуть гальмувати
швидкість відповідей icmp, і деякі відповіді можуть бути втрачені. Щоб уникнути цього, зменшіть
кількість одночасних проб, або навіть встановіть його на 1 (як у початковому traceroute
реалізація), тобто -N 1
Остаточний (цільовий) хост може скинути деякі з одночасних запитів і навіть відповісти
тільки останні. Це може призвести до додаткових «виглядів як прострочених» хмелів біля останнього стрибка.
Ми використовуємо розумний алгоритм для автоматичного виявлення такої ситуації, але якщо це не може допомогти у вашій
футляр, просто використовуйте -N 1 теж.
Для ще більшої стабільності можна уповільнити роботу програми -z варіант, наприклад
використання -z 0.5 на півсекундну паузу між датчиками.
Якщо деякі хмелі нічого не повідомляють для кожного методу, останній шанс отримати щось – це
використання пінг -R команда (IPv4 і лише для найближчих 8 переходів).
Використовуйте lft.db онлайн за допомогою служб onworks.net