Ці мережі передаються пакетами. Пакети перед тим, як потрапити адресату, проходять кілька інших мережевих вузлів, щоб опинитися на початку локальної мережі адресата, а потім уже безпосередньо до нього. Нерідко подібні пакети збиваються з маршруту. Щоб їх направити на правильний шлях у мережі, кожному пакету надали певний час життя.
За час свого життя він відповідає параметр TTL. Це число вузлів, які може пройти пакет, перед знищенням. Під час проходження кожного вузла значення TTL знижується доти, доки час не досягне значення нуль. Що більший TTL, то більш заплутані мережі може проходити пакет.
Низькорівневі параметри мережі TTL у Linux керуються ядром. Налаштовувати його можна за допомогою інтерфейсу налаштування ядра. Який TTL використовується в системі?
Скористаємося командою ping:
$ ping 127.0.0.1
У даних про надсилання пакета видно TTL, з яким його було надіслано. Бачимо, що використовується значення 64. Для Windows застосовується значення TTL 128. Зазвичай цього вистачить, оскільки між вузлами мережі мінімум 20-30 маршрутизаторів. Не завжди варто змінювати TTL, щоб пакети змогли досягати мети.
Зміна TTL можлива з коригуванням параметра net.ipv4.ip_default_ttl.
Пробуємо таку команду:
$ sudo sysctl -w net.ipv4.ip_default_ttl=65
Для того щоб зміни збереглися після перезавантаження можна прописати цей рядок налаштувань у файл /etc/sysctl.conf:
$ sudo vi /etc/sysctl.conf
net.ipv4.ip_default_ttl=65
Після TTL буде 65:
Якщо ви не хочете змінювати параметри ядра, можна модифікувати TTL у пакети під час його проходження через мережевий фільтр iptables. Для цього виконайте таку команду:
$ iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65
Це теж буде працювати. Зміна TTL Linux виконується зовсім не складно.