Skip to main content

Інструкція користувача

Зміна значень TTL

Важливо

Інформація, наведена в цій статті, призначена лише для досвідчених користувачів.

Починаючи з версії KeeneticOS 3.1, налаштування TTL доступне лише з інтерфейсу командного рядка (CLI) маршрутизатора.

Time To Live (TTL) у комп’ютерних мережах — це обмеження за часом або кількістю ітерацій чи переходів, протягом яких набір даних (пакет) може існувати до того, як він зникне. Значення TTL можна розглядати як верхню межу часу життя IP-датаграми в мережі. Поле TTL встановлюється відправником датаграми і зменшується кожним вузлом (наприклад, маршрутизатором) на її шляху, відповідно до часу, проведеного в цьому пристрої, або протоколу обробки. Якщо поле TTL стає нульовим до того, як датаграма прибуде до місця призначення, датаграма відкидається, а відправнику надсилається ICMP-пакет з кодом 11ICMP Time Exceeded. Відкидання пакетів, термін дії яких минув, дозволяє уникнути ситуацій, коли недоставлені датаграми продовжують нескінченно циркулювати в Інтернеті, перевантажуючи мережу (наприклад, коли через некоректну маршрутизацію утворюються зациклені маршрути).

Маршрутизатори Keenetic мають можливість контролювати значення TTL для вхідних (від інтернет-провайдера) і вихідних (до інтернет-провайдера) пакетів. За замовчуванням, якщо ми підключаємося до маршрутизатора для доступу до Інтернету, значення TTL зменшуватиметься на 1, коли пакет проходить через маршрутизатор як для вхідних (WAN>LAN), так і для вихідних (LAN>WAN) пакетів.

Для прикладу, розглянемо дампи мережевих пакетів у програмі-аналізаторі трафіку Wireshark (додаткову інформацію дивіться у статтях «Використання вбудованого модуля захоплення мережевих пакетів» та Захоплення мережевих пакетів за допомогою Wireshark) і подивимося на зміни TTL для вхідного пакета (від інтернет-провайдера).

При прямому підключенні до інтернет-провайдера TTL дорівнює 56 (дамп знято з мережевого інтерфейсу ПК, підключеного безпосередньо до інтернет-провайдера):

ttl-change-01-en.jpg

При підключенні цього ПК через маршрутизатор, це значення зменшиться і стане 55 (дамп знято з мережевого інтерфейсу ПК, підключеного до маршрутизатора):

ttl-change-02-en.jpg

У деяких випадках це зменшення може бути критичним (наприклад, деякі інтернет-провайдери встановлюють TTL=1 для пакетів, що надходять безпосередньо до абонента, щоб запобігти використанню маршрутизаторів у їхній мережі).

Щоб керувати значенням TTL для вихідних пакетів на вибраному інтерфейсі, використовуйте команду:

interface {name} ip adjust-ttl send {ttl}

{ttl} — значення зміни TTL. Може приймати значення від 1 до 255 включно.

Наприклад, щоб пакети, що виходять до інтернет-провайдера, мали такий самий TTL, якби комп’ютер з ОС Windows був підключений безпосередньо до інтернет-провайдера, а не через маршрутизатор, виконайте таку команду:

interface ISP ip adjust-ttl send 128

У версіях KeeneticOS 3.7 і вище, щоб змінити параметр TTL усіх пакетів для вхідних з'єднань, використовуйте команду:

interface {name} ip adjust-ttl recv {ttl}

{ttl} — значення зміни TTL. Може приймати значення від 1 до 255 включно.

Наприклад, щоб пакети мали TTL=65 для вхідних з'єднань на інтерфейсі UsbQmi0, використовуйте таку команду:

interface UsbQmi0 ip adjust-ttl recv 65

Щоб скасувати налаштування, пов'язані зі зміною TTL на інтерфейсі {name}, використовуйте команди:

(config-if)> no ip adjust-ttl recv
(config-if)> no ip adjust-ttl send