Ttl, что это?

TTL — время жизни пакета данных в протоколе IP. Чем TTL может заинтересовать обычного пользователя? Наверняка, большинство из Вас оказались на этой странице с целью узнать, как обойти ограничения на раздачу интернета со смартфона. Контроль TTL используется операторами мобильной связи для обнаружения трафика несанкционированного подключенного устройства. Из этого обзора Вы узнаете, как именно TTL помогает провайдеру узнать о раздаче интернета с помощью Wi-Fi или USB и каким образом обычному абоненту обхитрить жадного оператора. Мы постараемся доходчиво объяснить, что такое TTL и как это значение может помочь абонентам.

Принцип работы TTL

К сожалению, безлимитный мобильный интернет без каких-либо ограничений на сегодняшний день не предоставляется ни одним оператором. Существуют тарифы, которые предусматривают отсутствие ограничений по скорости и трафику, но при использовании SIM-карты только в смартфоне. Также нельзя делиться интернетом с другими устройствами. Если вы включите на смартфоне точку доступа Wi-Fi или подключитесь к ноутбуку по USB, оператор моментально зафиксирует этот факт и предпримет соответствующие меры (предложит дополнительно заплатить). Многие недоумевают, что за технологии позволяют провайдеру вычислить раздачу интернета. На самом деле все гораздо проще, чем кажется. Чтобы не позволять абонентам делиться интернетом с другими устройствами, оператору достаточно контролировать TTL. Например, если Вы включите на телефоне режим модема, исходящий от подключенных устройств TTL будет на 1 меньше, чем у смартфона, на что незамедлительно отреагирует провайдер. Манипуляции с ТТЛ позволяют обойти ограничение на тетеринг.

Если вы все еще не поняли, что такое TTL и какой у него принцип работы, ознакомьтесь с приведенной ниже инфографикой.

Девайс работает без раздачи интернета.

У iOS и Android устройств TTL по умолчанию равен 64. Если телефон не раздает интернет другим устройствам, все пакеты уходят к оператору со значением TTL=64.

Девайс раздает интернет.

При попытке раздачи интернета с помощью Wi-Fi, Bluetooth или USB на другие устройства, например, ноутбук и еще один телефон, пакеты от раздающего устройства, по-прежнему, уходят со значением TTL=64. Пакеты от компьютера/ноутбука до раздающего интернет устройства доходят со значением TTL=128 (значение для Windows по умолчанию), теряют единицу на раздающем устройстве и уходят к оператору с TTL=127. Пакеты от принимающего интернет телефона доходят до раздающего устройства с TTL=64 и уходят к оператору с TTL=63, потеряв одну единицу. Для оператора это означает, что абонент раздает интернет, о чем свидетельствуют пакеты с тремя разными значениями TTL. В итоге, провайдер предпринимает соответствующие меры в отношении такого абонента.

Девайс раздает интернет с корректировкой TTL.

Чтобы оператор не вычислил факт запуска тетеринга, необходимо изменить на раздающем интернет устройстве TTL по умолчанию таким образом, чтобы пакеты с других устройств при потере единицы от TTL имели значение, которое было задано для раздающего устройства “по умолчанию”. На приведенной выше картинке видно, что после корректировки значение TTL на раздающем интернет телефоне равно 63. iOS и Android девайсы имеют TTL=64, но после прохождения пакетов через раздающее устройства TTL теряет единицу и поступает к оператору со значением 63. Получается, оператор не видит ничего подозрительного и абонент может раздавать интернет без каких-либо ограничений и дополнительной оплаты.

Если принимающее интернет устройство имеет TTL по умолчанию не 64, нужно внести соответствующие изменения. Например, если вы хотите раздать интернет на ноутбук или компьютер, который имеет TTL=128, вам нужно изменить его на 64. Такая схема позволяет одновременно раздавать интернет на компьютер, а также iOS и Android устройства. Если по какой-то причине Вы не можете изменить TTL на ПК, то измените TTL раздающего устройства на 127. В итоге пакеты будут уходить к оператору с одинаковым значением и никаких подозрений не возникнет. Правда, у такой схемы есть недостаток. У вас не получится одновременно с компьютером подключить к интернету iOS и Android устройства, если у них TTL по умолчанию не 128.

Девайс раздает интернет с корректировкой и фиксацией TTL.

Данная схема является самой удобной. Вам необходимо изменить и зафиксировать TTL для любых исходящих пакетов. То есть, абсолютно не важно, какие устройства будут подключаться к интернету. Такой вариант будет идеальным для тех, кто не может изменить TTL на принимающем устройстве, например, smart-tv или игровые приставки. Недостаток этого способа заключается в том, что он подходит не для всех телефонов.

Надеемся Вы поняли, что такое TTL и чем корректировка этого значения может быть полезна для обычного абонента. Мы постарались объяснить все коротко и доступно. Если у вас остались вопросы, задавайте их в комментариях и мы постараемся Вам помочь. Напомним, что этот обзор предназначен для того, чтобы вы получили представление о таком понятии, как TTL. Что касается практических способов изменения этого значения, то все они описаны в отдельной статье.

Термины: Вход/выход TTL-совместимый

TTL (transistor–transistor logic) – транзисторно-транзисторная логика (ТТЛ) – это устоявшийся с 60-х годов XX-го века стандарт логических элементов, постороенных на транзисторной биполярной технологии с напряжением питания +5 В. Типичный базовый элемент этой технологии – это логический элемент 2И-НЕ типа 7400 (например, SN7400 от Texas Instruments или отечественный аналог К155ЛА3). Принципиальная схема этого элемента показана на рисунке. В последующие годы технология логических элементов совершенствовалась, оставаясь совместимой c прежней. На смену биполярной технологии пришли МОП (CMOS) и другие комбинированные кремниевые технологии. С целью повышения быстродействия выпускались (и выпускаются до сих пор) семейства CMOS, LVTTL логических элементов с уменьшенным напряжение питания: 3,3 В, 2,5 В, и т.д., при этом разработчики элементов всеми возможными техническими способами старались сохранить совместимость по логическим уровням напряжений с классическим базовым TTL-элементом 7400 с напряжением питания +5 В, поскольку за прошедшие 50 лет (!) было порождено немыслимое количество приборов и устройств с TTL входами и выходами.

Перечислим основные характеристики входов и выходов TTL:

Входы: Выходы:

  • Напряжение логического нуля не выше 0,8 В
    при рабочем выходном токе 8 мА.
  • Напряжение логической единицы не ниже 2 В
    при рабочем выходном токе -0,4 мА.

Представленные выше характеристики относятся к перым TTL-элементам, которые содержат целый ряд несовершенств, преодолённых впоследствии. В частности, большинство современных CMOS, LVTTL элементов уже имеют симметричные выходные токи логичекого нуля и логической единицы, значительно меньшие входные токи (большее входное сопротивление), некоторые имеют свойство сохранения высокого входного сопротивления при выключенном питании, а также совместимость с входными 5-вольтовым уровнями при собственнном напряжении питания 3,3 В и ниже.

В любом случае, если в документации указан «TTL-совместимый вход или выход», для пользователя это означает, что данный вход (выход) принадлежит большому семейству совместимых TTL-устройств, но с особенностями данного входа и выхода в любом случае нужно ознакомиться в руководстве на данное устройство.

Кроме того, выход любого устройства, который подключается к TTL-совместимому входу, должен обеспечить также разумное время перепада напряжения (для оценки: не более, чем время задержки стандартного TTL-элемента, составляющее порядка 10 нс). На обычный TTL-вход (кроме специального, имеющего гистерезис) не рекомендуется подавать сигнал с длительностями перепадов более 10 нс, поскольку это может вызвать сбой (дребезг, неоднозначное состояние) входного TTL-логического элемента.

Также важно отметить, что стандарт TTL предназначен для организации локальных коротких связей (рекомендуется – длиной менее 0,5 м) в устройствах, имеющих цепь общего провода или общее сигнальное заземление.

Для повышения помехоустойчивости TTL-линий применяют электрическое согласование линий для уменьшения волновых эффектов отражения от несогласованных концов линий.

Если TTL-интерфейс применяется для передачи сигналов синхронизации измерительной системы, то, кроме требований согласованности линий, цепи общих проводов передатчика и приёмника должны быть эквипотенциальны в широкой полосе частот (сотни МГц). Это достижимо при очень хорошей высокочастотной связности цепей общих проводов передатчика и приёмника (либо это должны быть связи значительно короче 0,5 м, либо роль цепи общего провода должна выполнять электропроводная пластина или единое электропроводное шасси блока). Такие усиленные технические меры необходимы для обеспечения низкого уровня вносимых фазовых шумов при передаче сигналов синхронизации.

Cтатья создана: 09.07.2014
О разделе «Терминология» Последняя редакция: 17.08.2019

Примеры использования терминов

Термины, связанные TTL-технологией цифровых устройств, употребляются в документации различных систем сбора данных, например, выпускаемых OOO «Л Кард».

Модуль ввода-вывода дискретных сигналов
32 входа/выхода

ВНИМАНИЕ! По последним данных от надежного источника стало известно, что не только TTL является причиной блокировки мобильного интернета. Если же вам нужна информация по ТТЛ для роутеров, и на что данный протокол влияет, то смотрите последнюю главу.

Всем доброго времени суток! Скорее всего ты зашел сюда для того, чтобы обойти блокировку мобильного оператора. Ведь с помощью именно TTL данные компании ловят за руку абонентов, который включили на своем телефоне режим точки доступа. Что такое TTL? Time To Live – это время жизни пакета во вселенной IP адресации.

Когда пользователь включает режим модема или точки доступа, то телефон начинает раздавать Wi-Fi вместе с интернетом. При подключении компьютера, ноутбука, телевизора, приставки или другого телефона (планшета) провайдер именно за счет TTL и понимает, что идет раздача интернета на другое устройство.

На данный момент этим грешат такие операторы как МТС, Билайн, YOTA, Теле2 и другие. Насколько я помню, только у Мегафона ограничения пока нет, но я могу ошибаться – поправьте меня в комментариях, если я не прав. Далее я расскажу, как узнать значение TTL, как его поменять и как обойти блокировку. Начнем с теории – советую её прочесть, чтобы вам в дальнейшем было все понятно.

Более подробно про TTL

Разберем на простом примере. У вас есть телефон, который при подключении к мобильному интернету оператора постоянно отправляет запросы. В каждом таком запросе есть значение TTL, которое по умолчанию равно 64 – на Android и iOS. У Windows Phone, насколько помню, это значение равно 130.

После того как на телефоне включен режим роутера и идет раздача Wi-Fi с интернетом, к нему подключаются другие устройства. На Windows TTL по умолчанию равно 128. На других телефонах 64.

А теперь мы подошли к самой сути TTL. Как вы помните, TTL это время жизни пакета, а называется оно так, потому что при проходе через один узел или устройство, данное значение уменьшается на 1. В итоге компьютер, подключенный к вашему телефону будет отправлять запрос в интернет с TTL, который будет равен 127 (то есть минус 1). От подключённых телефонов ТТЛ будет равен уже 63.

В итоге на сервер оператора от вашего телефона приходят три пакета с разными ТТЛ. Оператор понимает, что дело не чисто, и блокирует устройство. Но блокировку можно также легко обойти.

Обход блокировок

Обходится блокировка достаточно просто – нужно на подключенных устройствах выставить TTL, который будет ровен на 1 больше чем у раздающего телефона. Например, вы раздаете интернет на ноутбук, тогда нужно установить у этого устройства ТТЛ со значение на 1 больше чем у раздающего устройства (то есть 65). В итоге пакет от компьютера, попадая на телефон будет принимать значение 64. Оператор будет видеть, что все пакеты одинаковые, и никого блокировать не будет.

ПРИМЕЧАНИЕ! Можно, конечно, не уменьшать ТТЛ на принимающем устройстве, а уменьшить его на раздающем, но для этого понадобятся ROOT права и программа TTL Master. Поэтому проще всего изменить значение на второстепенных аппаратах – об этом поподробнее чуть ниже.

Но есть ещё одна загвоздка, про которую нигде почему-то не написано. Дело в том, что операторы начали также по-другому вычислять раздачу. У провайдера есть список серверов, к которым можно обратиться только с компьютера.

Например, если на подключенном компьютере начнется обновление Windows, то оператор это сразу поймет. Потому что с телефона никто в здравом уме не будет обращаться к серверам обновления от Microsoft. Список таких серверов постоянно пополняется. Но и эта проблема достаточно легко решается. По этому поводу у нас на портале есть подробные инструкции для всех операторов:

  • МТС
  • Билайн
  • YOTA

Там расписаны все шаги с картинками и пояснениями. Также вы сможете определить и проверить свой ТТЛ, но на деле они имеют одинаковые значения для всех типов устройств, о которых я написал в самом начале.

TTL в роутере

Также этот параметр встречается и в роутере, а также в любых сетях, которые работают с IP адресами. На уровне маршрутизации пакетов ТТЛ постоянно используется как внутри сети пользователя, так и в сети провайдера.

Например, у Keenetic есть параметр «Не уменьшать TTL» – который нужен для того, чтобы пакеты данных от маршрутизатора провайдера при проходе через ваш роутер не уменьшался. Дело в том, что некоторые провайдеры специально выставляют ТТЛ=1. Сделано это для того, чтобы к основным шлюзам всякие нехорошие люди не подключили сторонние маршрутизаторы.

Проблема в том, что если убрать эту галочку, то при проходе пакета ТТЛ уменьшится до 0. А ТТЛ со значение 0 отбрасываются и уничтожаются всеми сетевыми устройствами, который работают на уровне IP адресации. То есть ваш компьютер или любое другое устройство просто не будет принимать эти пакеты.

Ещё раз объясню – это нужно для того, чтобы пользователь не подключал к своему роутеру других абонентов через другие шлюзы. Это если вы захотите стать провайдером для кого-то ещё. Понятное дело, провайдер начнет вас блокировать.

Теоретически да, но делать это НЕЛЬЗЯ по установленному пункту в договоре от поставщика услуг. Не знаю точно, что может грозить за это, но огромный штраф и судебное дело – вполне реально.

С другой стороны, данный параметр иногда нужно изменять при настройке локальной сети компании или предприятия. В таком случае будет использоваться несколько маршрутизаторов. В этом случае поможет TELNET для изменения параметра (x – это значение от 1 до 255) для входящих пакетов:

ПРИМЕЧАНИЕ! 255 – это максимальное возможное значение TTL.

  • Увеличить:

interface ISP ip adjust-ttl inc x

  • Уменьшить:

interface ISP ip adjust-ttl dec x

  • Установить:

interface ISP ip adjust-ttl set x

Для исходящих данных к провайдеру, нужно заменить «ISP» на «Home». Например:

interface Home ip adjust-ttl inc 1

СОВЕТ! Не забываем сохранить изменения командой:
system configuration save

На роутере ASUS есть два других параметра, которые решают аналогичные проблемы:

  • «Расширить значение TTL» (Extend The TTL Value) – данная опция работает на входящий трафик. Если от провайдера пришел пакет с ТТЛ равным 1, то он не будет обнулен. Следовательно, ваши внутренние устройства смогут его получить. Аналогично, как и у «Кинетик».
  • «Подменить значение LAN TTL» – отправляет пакеты с фиксированным TTL, то есть не важно сколько узлов в вашей локальной сети, ТТЛ будет одинаковым, и провайдер вас не заблокирует.

Подобные значения есть у всех роутеров. Для более продвинутых пользователей их можно изменять в роутер через командную строку (TELNET). В общем, все обходится, и ничего заблокировать нельзя, да пребудет свобода в беспроводном и проводном пространстве – первая заповедь великого Wi-Fi-Гида, да растет его борода!

Вероятно, многие из нас обращали внимание на параметр TTL в запущенной команде ping. Расшифровывается TTL как Time to live.

Время жизни пакета это предельное число итераций, которое пакет данных может совершить до своего исчезновения. Выражаясь не так официально, TTL — это число «прыжков» от устройства к устройству, которое может совершить пакет.

Строго говоря, TTL это не только про пакеты данных. Время жизни имеют и другие вещи, например, DNS-записи на серверах. Поэтому не связывайте понятие TTL только с пакетами данных.

Возвращаясь к теме статьи, объясним предназначение времени жизни пакета. Дело в том, что данные в сети имеют свойство зацикливаться, что создаёт своего рода «мусорный» трафик. Поскольку количество «прыжков» между узлами у пакетов ограничено, они не смогут «бродить» по сети вечно.

На самом деле, изначально предполагалось, что TTL пакетов будет измеряться в секундах. Так что это должно было быть время в буквальном смысле слова. Однако позже от этой концепции отказались в пользу простого числа «прыжков» или хопов (hop). На каждом промежуточном узле это число уменьшается на единицу (по умолчанию, хотя настройки можно выставить иначе). Если число «прыжков» у пакета истекло, а адресата он так и не достиг, этот пакет уничтожается, а адресату направляется сообщение о необходимости повторной отправки данных (Time Exceeded). Учтите, что коммутаторы оставшееся число «прыжков» не изменяют, так как действуют на канальном уровне (более низком) модели OSI, а не сетевом.

Время жизни пакета задаётся в соответствующем поле в заголовке IPv4-пакета. В стандарте IPv6 используется уже другое поле Hop Limit. Максимально возможное значение TTL равно 255. В большинстве популярных операционных систем (macOS, Linux, Android, iOS и т.д.) TTL=64. В Windows по умолчанию TTL=128.

TTL и интернет-провайдеры

Достаточно интересно используют TTL пакетов интернет провайдеры для обнаружения несанкционированного подключения устройств. Способ массово стал использоваться со временем распространения мобильного интернета и устройств, которые могут этот интернет не только потреблять, но и раздавать другим (смартфоны, планшеты).

Как это выглядит на практике? Если Вы пользуетесь мобильным интернетом со смартфона, то тот отправляет TTL=64, но, если раздать с него Wi-Fi, то TTL подключенных устройств будет изменяться на единицу. Нагляднее это можно проследить на схеме ниже.

Изменение TTL при раздаче Wi-Fi со смартфона.

Таким образом, оператор видит, что TTL «прыгает» с 64 до 63, а то и до 127 (если это ноутбук с Windows), и делает вывод, что в сеть выходит не одно устройство, а больше. В зависимости от условий предоставления связи, это может привести к блокировке.

Мы не будем в этой статье рассматривать способы обхода блокировок. Скажем лишь, что значение TTL по умолчанию можно изменить. Возьмём для примера Windows. Если вы запустите ping localhost, то увидите, что, как и говорилось ранее, TTL=128.

Для изменения установленного по умолчанию значения TTL нам нужно открыть редактор реестра, пройти в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters и отредактировать (или создать, если его нет) параметр DefaultTTL. Если у вас 64-битная версия ОС, то тип параметра будет QWORD (64 бита), если 32-битная версия ОС, то тип DWORD (32 бита). Система исчисления — десятичная, а значение можете задать от 1 до 255. Например, 65. Тогда пакеты данных, пройдя через раздающий Wi-Fi смартфон, будут выдавать TTL=64.

Изменение значения TTL в Windows.

Подробное руководство по настройке TTL для записей DNS


Система DNS — это фундаментальный технологический продукт. Обработка практически всех сетевых запросов верхнего уровня и поисковых запросов в Интернете, пересылка интернет-трафика и электронной почты, а также многие другие операции становятся возможными благодаря установке определенных соответствий при поиске DNS (преобразованию таких имен, как some.domain.org, в IP-адреса или имена других доменов).
Мы решили написать о времени жизни (Time To Live, TTL) данных, поскольку большинству системных администраторов не приходится каждый день работать с конфигурациями DNS и значительная часть информации об этом параметре — это полузабытые байки, передаваемые системными администраторами из поколения в поколение.
Задав соответствующий вопрос в Twitter, мы выяснили, что некоторые системные администраторы даже не могут расшифровать аббревиатуру TTL (хотя такие, к счастью, в меньшинстве).
Отгадайте загадку! Что означает аббревиатура TTL, когда речь идет о системе DNS?
18:43 26 окт. 2016 г.
4 % Граница терминальной передачи
85 % Время жизни
8 % Телеметрическая транспортная линия
3 % Список доверенных технологий
26 голосов • Окончательный результат
Ретвит 1 Отметка «Нравится» 1
Чтобы внести ясность, мы рассмотрим следующие темы.
1. Общие сведения о системе DNS и параметре TTL
2. Устранение проблем с TTL в записях DNS
3. Рекомендации по управлению изменениями в записях DNS
4. Инструменты DNS
5. Дальнейшие действия
1. ОБЩИЕ СВЕДЕНИЯ О СИСТЕМЕ DNS
Что такое запись DNS?
Запись сервера доменных имен (Domain Name Server, DNS) содержит два важных параметра:
адресацию (установку соответствия) запросов для той или иной записи;
время актуальности записи при кэшировании — именно это значение получило зловещее название «время жизни» (TTL).
Зачем кэшируются записи DNS?
Многие организации настраивают записи DNS один раз и после этого годами не изменяют их. Поскольку записи DNS часто запрашиваются, но редко обновляются, их кэширование помогает значительно повысить производительность сети, увеличивая при этом сложность оценки и устранения проблем с DNS.
Что такое TTL?
Время жизни (TTL) представляет собой продолжительность кэширования записи *каждым звеном* цепочки установки соответствий DNS. Это значение измеряется в секундах (важность этого будет объяснена ниже).
К сожалению, общепринятый термин «время жизни» нельзя назвать исчерпывающим. Возможно, более логичным было бы название «время на поиск» или «продолжительность хранения записи DNS в кэше».
Каково стандартное значение TTL для записей DNS?
Значение TTL всегда выражается в секундах. Большинство служб настройки конфигурации DNS содержат готовый список значений для записей.
300 секунд = 5 минут = «Очень короткое»
3600 секунд = 1 час = «Короткое»
86 400 секунд = 24 часа = «Длинное»
604 800 секунд = 7 дней = «Абсолютный максимум»
Как осуществляется поиск DNS?
Когда вы вводите в браузере какой-либо URL-адрес, создается целая серия поисков.
На каждом этапе этого процесса (часто этапов бывает больше, чем перечислено) задаются следующие вопросы.
1. Кэширована ли нужная запись?
2. Если да, действительно ли ее значение TTL?
Если на какой-либо из этих вопросов получен ответ «Нет», запрос перемещается на следующее звено цепочки.
Почему в основе системы DNS лежат сетевые подключения, а не устройства?
Устранение проблем с DNS представляет собой непростую задачу не только из-за ряда сложностей, связанных с использованием TTL и системы кэширования, но и потому, что подключение многих современных устройств осуществляется через различные сети и цепочки серверов DNS.
Рассмотрим ситуацию на примере обычного ноутбука. Я, как правило, работаю на ноутбуке дома. Несмотря на то что я уже несколько недель никуда его не брал, за это время на устройстве устанавливались следующие подключения:
• к основной домашней сети Wi-Fi/кабельной сети;
• к мобильному телефону при недоступности кабельной сети;
• оба варианта выше, но с подключением через VPN.
При каждой смене сети активируется новая цепочка DNS. Если это происходит в момент внесения изменений, серверы и узлы кэширования в цепочке DNS могут предоставлять неверные данные.
Такое часто случается в корпоративных сетях, где имя домена Active Directory совпадает с адресом веб-сайта компании. На внешнем сервере DNS (уровень поставщика Интернета) хранится запись DNS, направляющая адрес www.example.com к верному IP-адресу/CNAME веб-сервера, но на внутреннем сервере DNS, используемом службой Active Directory, записи не дублируются.
Сразу же начнется паника: «Веб-сервер не работает!», «Это конец света!», «Где мои брюки?». Но, приступив к устранению проблемы, вы обнаружите, что ее причиной стало незакрытое подключение через VPN.
2. УСТРАНЕНИЕ ПРОБЛЕМ С TTL В ЗАПИСЯХ DNS
Сколько времени требуется на обновление записи DNS?
Для расчета максимального (худший случай) временного интервала, необходимого на обновление значения записи DNS в ссылках для всех клиентов, умножьте число звеньев цепочки (без учета полномочного сервера) на значение TTL.
Например, если значение TTL составляет 3600 секунд (1 час), а цепочка DNS состоит из 5 звеньев, полное распространение изменений должно занять не более 18 000 секунд (5 часов).

Но если бы все было так просто.
Каковы затраты на поиск DNS?
Когда речь заходит о «затратах» на поиск DNS, обычно имеются в виду не денежные, а временные затраты. В зависимости от численности интернет-гремлинов в глобальной сети на выполнение запроса DNS обычно уходит 100–200 миллисекунд.
Это очень небольшое время, но представьте себе веб-страницу. Соответствие между именем и IP-адресом в системе DNS необходимо настроить для всех изображений, файлов CSS и файлов активов JavaScript, доступных по ссылкам на странице. Без кэширования время загрузки заметно увеличится.
Упрощенная схема расчета затрат на поиск DNS
Я назвал эту схему упрощенной, поскольку маловероятно, что все активы на вашем веб-сайте находятся в разных доменах. Кроме того, в браузеры встраивается множество различных средств кэширования, которые обеспечивают более быструю загрузку содержимого, чем показано в моей схеме.
С кэшированием
(30 файлов изображений x 50 мс на загрузку каждого файла) + (100 мс на выполнение одного поиска DNS с последующим кэшированием) = 1600 мс
Без кэширования
(30 файлов изображений x 50 мс на загрузку каждого файла) + (30 x 100 мс на каждый поиск DNS) = 3000 мс
Почему мои записи DNS не обновляются?
Существуют и другие факторы, увеличивающие время распространения изменений. Некоторые из них перечислены ниже.
• Веб-браузеры самостоятельно кэшируют записи DNS и хранят их в течение некоторого времени без учета TTL, что якобы повышает скорость их работы. Например, современные версии Internet Explorer по умолчанию кэшируют записи DNS на 30 минут (до версии IE 4 это время составляло 24 часа) и игнорируют более низкие значения TTL.
• Поставщики мобильного Интернета могут пытаться уменьшить общий объем передаваемого трафика путем увеличения времени TTL, что снижает частоту запросов.
• Сложные внутренние сети с большим числом сервером DNS, чем предполагалось, обновляются дольше по очевидным причинам.
Именно поэтому во многих службах можно встретить следующее заявление: «Полное распространение изменений в записях DNS может занять несколько дней, поэтому планируйте свои действия соответствующим образом».
Можно ли как-нибудь принудить клиент удаленно обновить запись DNS?
Этот вопрос обычно задается в следующем контексте: «После обновления записей DNS клиент не может получить доступ к некоторым сайтам. Как выполнить обновление принудительно?»
К сожалению, единственный ответ на этот вопрос: «Никак». В системе DNS нет команды, позволяющей принудительно выполнить раннее обновление данных для клиентов более низкого уровня.
Можно использовать команды для удаления записей DNS из локального кэша, но обычно они работают не так эффективно, как хотелось бы, из-за наличия как восходящих (кэширование записей DNS на стороне поставщика Интернета), так и нисходящих (кэширование записей DNS в браузере) каналов.
Лучше всего изменить значения TTL в своих записях заблаговременно.
3. РЕКОМЕНДАЦИИ ПО УПРАВЛЕНИЮ ИЗМЕНЕНИЯМИ В ЗАПИСЯХ DNS
Какие значения TTL лучше: маленькие или большие?
Разработчики уже давно ведут священную войну по поводу того, как нужно оформлять отступы в коде: с помощью знаков табуляции или пробелов. Я выяснил, что сетевые администраторы испытывают примерно те же чувства, когда дело касается длительности TTL.

Обычно это мнение подкрепляется их собственным опытом по отражению предыдущих сетевых атак и устранению проблем с конфигурацией сети.
Атака DDOS, способная на 12 часов остановить работу корневых серверов DNS или аналогичных серверов поставщика Интернета, меньше скажется на сайтах с очень высоким значением TTL. В таких случаях клиенты будут работать даже при выключении или перегрузке сервера DNS.
Однако, если при переключении узлов Интернета или электронной почты вы случайно сделаете ошибку, 12 часов без какой-либо возможности устранить ее — это последнее, что вам будет нужно. Именно поэтому некоторые администраторы считают, что время жизни не должно превышать 1 минуты.
Лично я стараюсь указывать для записей DNS малое значение TTL (меньше 1 часа/3600 секунд).
Как узнать, когда клиент запросит обновленную запись DNS?
Определить, когда все клиенты обновят данные, очень сложно.
Время жизни — это *не* срок годности. Не стоит сравнивать значение TTL в записи DNS с рекомендуемой датой употребления, указанной, например, на несвежем хлебе: это не определенное время, при наступлении которого запись станет недействительной и потребует замены.

Запись DNS — это, скорее, штатное расписание, изменения в котором медленно распространяются по всей сети. Когда у клиентов, расположенных в расписании «ниже», истекает срок действия кэша, они запрашивают запись у сервера DNS более высокого уровня.
Как лучше всего изменять записи DNS?
Создание «плана» или «стратегии» для выполнения относительно простых задач, к которым относится изменение одной записи в домене, может казаться перегибом, но, учитывая колоссальное влияние сбоев DNS на доступность ваших данных, определенную осторожность проявить все же стоит. Как говорится в старой пословице: «Предотвратить легче, чем лечить».
Есть простой способ свести ошибки к минимуму: никогда не обновляйте запись DNS и значение TTL для этой записи одновременно. В идеале у вас должен быть реализован следующий процесс.
1. За несколько дней до переключения укажите для параметра TTL записи DNS низкое значение, например 300 секунд.
2. Установите для записи дату переключения.
3. Через несколько дней после переключения задайте более высокое значение TTL.
Как лучше всего добавлять новые записи DNS?
Добавить новую запись проще, чем изменить существующую.
1. Добавьте запись с низким значением TTL.
2. Проверьте, все ли работает, и увеличьте значение TTL.
Какое значение TTL наиболее распространено?
Мнения относительно *правильного* значения TTL настолько расходятся, что мы предприняли попытку определить его на основе статистики. Список из 500 самых важных веб-сайтов по версии Moz показался нам отличным срезом Интернета. Кроме того, на этом ресурсе был доступен готовый файл CSV с перечнем сайтов, вошедших в итоговый список.
Я написал небольшой сценарий для выполнения итерации по списку и поиска текущего значения TTL для основной записи в каждом домене. Как и в любом проекте по анализу данных, эти данные будут сильно варьироваться в зависимости от постановки вопроса. Пример не всеобъемлющий, в нем представлены текущие (кэшированные) результаты и т. д. и т. п. Невзирая на все эти оговорки, полученные результаты все же имеют определенную ценность.
Анализ значений TTL для 500 важнейших интернет-доменов по версии Moz
Вы можете просмотреть или изменить этот сценарий либо загрузить его и выполнить анализ самостоятельно: gist.github.com/mbuckbee/79b2e76bd9271bea38487defd8a9138b
Посмотреть список и загрузить его в формате CSV можно по адресу moz.com/top500
Минимальное значение TTL: 1
Максимальное значение TTL: 129 540
Домены с установленным соответствием: 485
Среднее арифметическое значение TTL: 6468
Медианное значение TTL: 300
Минимальные значения были получены от доменов, которые очень часто изменяют записи DNS в целях балансировки нагрузки. Максимальные значения соответствовали доменам, которые не обновлялись в течение длительного времени (да-да, python.org, это я про вас).
При необходимости обосновать свое решение об установке низкого (в пределах 1 часа, 3600 секунд) значения TTL вы можете предоставить медианное значение 300 секунд (5 минут) и уверенно заявить, что у вас есть эмпирическое доказательство правильности своего выбора.
4. ИНСТРУМЕНТЫ ПЛАТФОРМЫ DNS
Как проверить значение TTL для записи DNS в Windows?
Для проверки записей DNS в Windows проще всего использовать служебную программу nslookup: technet.microsoft.com/en-us/library/bb490950.aspx.
Пример: C:\>nslookup -type=cname -debug www.varonis.com

Значение TTL указывается в нижней части выходных данных. Фраза Non-authoritative answer (Не заслуживающий доверия ответ) указывает на значение TTL, полученное от клиента (2 минуты 11 секунд до проверки локальным клиентом следующего уровня в цепочке DNS).
Как проверить значение TTL для записи DNS в Unix/Linux/Mac?
В системе Unix (и ее производных) для устранения проблем с DNS используется команда dig.
Пример: dig www.varonis.com
Значение TTL обведено красным цветом.
Как проверить запись DNS через Интернет?
Иногда бывает так, что вам необходимо проверить запись DNS без компьютера под рукой. Удобная (и бесплатная) версия команды dig доступна в инструментах Google по следующему адресу: toolbox.googleapps.com/apps/dig.
Значение TTL обведено красным цветом.
Как убедиться в распространении TTL для записи DNS?
Если вам необходимо выяснить, обновлены ли на конкретном сервере DNS параметры записи DNS, то в любом инструменте DNS (dig, nslookup и т. д.) вместо локальной настройки по умолчанию можно выбрать сервер DNS, на котором будет выполнен запрос.
Для получения полной картины изменений я рекомендую ресурс whatsmydns.net, который позволяет проверить множество серверов DNS верхнего уровня (уровень поставщика Интернета) и выявить возможные проблемы.
ДАЛЬНЕЙШИЕ ДЕЙСТВИЯ ПО НАСТРОЙКЕ TTL ДЛЯ ЗАПИСЕЙ DNS
Настройка TTL для записей DNS может оказаться непростой задачей, но при выборе небольших значений (меньше одного часа) вы сможете сохранить работоспособность сети и лучше подготовить ее к внедрению изменений.
Если вам понравилась эта статья, я рекомендую также ознакомиться с нашим курсом, посвященным основам веб-безопасности. Это поможет вам лучше защитить сайт или приложение, для которого вы только что настроили запись DNS. Курс бесплатный и очень информативный.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *