Управление значением TTL
Важно
Информация, приведенная в данной статье, предназначена только для опытных пользователей.
Начиная с версии KeeneticOS 3.1
настройка TTL доступна только из интерфейса командной строки (CLI) интернет-центра.
Time To Live (TTL) в компьютерных сетях — предельный период времени или число итераций или переходов, за который набор данных (пакет) может существовать до своего исчезновения. Значение TTL может рассматриваться как верхняя граница времени существования IP-датаграммы в сети. Поле TTL устанавливается отправителем датаграммы и уменьшается каждым узлом (например, маршрутизатором) на пути его следования, в соответствии со временем пребывания в данном устройстве или согласно протоколу обработки. Если поле TTL становится равным нулю до того, как датаграмма прибудет в пункт назначения, то такая датаграмма отбрасывается и отправителю отсылается ICMP-пакет с кодом 11
— Превышение TTL (ICMP Time Exceeded). Отбрасывание пакетов с истекшим временем жизни позволяет избежать ситуаций, когда недоставленные датаграммы продолжают "вечно" циркулировать в системе Интернет, перегружая сеть (например, при образовании зацикленных маршрутов из-за некорректной маршрутизации).
В интернет-центрах Keenetic существует возможность управления значением TTL для входящих (от провайдера) и исходящих (к провайдеру) пакетов. По умолчанию, если мы подключимся к интернет-центру для выхода в Интернет, значение TTL будет уменьшаться на 1
при прохождении пакета через маршрутизатор как для входящих пакетов (WAN>LAN), так и для исходящих (LAN>WAN).
Для примера, посмотрим дампы сетевых пакетов в программе анализаторе трафика Wireshark (дополнительную информацию вы найдете в статьях «Использование встроенного модуля захвата сетевых пакетов» и «Захват сетевых пакетов с помощью программы Wireshark») и увидим изменения TTL для входящего пакета (от провайдера).
Так, при подключении напрямую к провайдеру TTL имеет значение 56
(дамп снят с сетевого интерфейса ПК, подключенного напрямую к провайдеру):
При подключении этого ПК через интернет-центр это значение уменьшится и станет равным 55
(дамп снят с сетевого интерфейса ПК, подключенного к интернет-центру):
В некоторых случаях данное уменьшение может быть критичным (например, некоторые провайдеры выставляют TTL=1
на пакеты, идущие уже к абоненту для предотвращения использования маршрутизаторов в своей сети), поэтому в настройках интернет-центра Keenetic (до версии KeeneticOS 3.1
) есть опция "Не уменьшать TTL". Эта опция была доступна в веб-интерфейсе интернет-центра на странице "Проводной" в разделе "Параметры IP и DNS", нажав "Показать дополнительные настройки IPoE".
Для управления значением TTL для исходящих пакетов на выбранном интерфейсе используется команда:
interface {name} ip adjust-ttl send {ttl}
{ttl}
— величина изменения TTL. Может принимать значения от 1
до 255
включительно.
Например, если необходимо, чтобы уходящие в сторону провайдера (ISP
) пакеты имели такой же TTL, как если бы компьютер на ОС Windows был подключен к провайдеру напрямую, а не через маршрутизатор, дайте следующую команду:
interface ISP ip adjust-ttl send 128
Начиная с версии KeeneticOS 3.7
для изменения параметра TTL всех пакетов для входящих соединений используется команда:
interface {name} ip adjust-ttl recv {ttl}
{ttl}
— величина изменения TTL. Может принимать значения от 1
до 255
включительно.
Например, если необходимо, чтобы для входящих соединений на интерфейсе UsbQmi0
пакеты имели TTL=65
, используйте следующую команду:
interface UsbQmi0 ip adjust-ttl recv 65
Для отмены настроек, связанных с изменением TTL, на интерфейсе {name}
используйте команды:
(config-if)>no ip adjust-ttl recv
(config-if)>no ip adjust-ttl send