какой параметр отвечает за время существования ip пакета

Электронная библиотека

Протокол Интернет (IP) является подсистемой доставки семейства протоколов TCP/IP. Протокол Интернет — это ненадежный, не ориентированный на соединение протокол, пользующийся датаграммами для доставки информации в сети TCP/IP. Датаграмма протокола IP называется IP-датаграммой. Все приложения TCP/IP передают информацию, упаковав ее предварительно в IP-датаграмму. IP-датаграмма состоит из заголовка и собственно данных.

Термины «IP-датаграмма» и «IP-пакет» являются синонимами. Независимо от того, какие и сколько сообщений переносится, датаграмма представляет собой «самодостаточный» блок данных, в отличие от потока байтов. Термин «датаграмма» характеризует тип службы доставки. Любой протокол использует либо датаграммы, либо поток байтов. Тип датаграммы, например IP или UDP, определяет ее формат и содержимое.

Более общий термин «пакет» обозначает просто блок данных. Термин «пакет» относится к данным, а термин «датаграмма» — к службе доставки.

Следуя сквозь сетевые уровни, блок данных изменяет свое название. Как правило, данные называются по названию сетевого модуля, через который они в данный момент проходят. Как только данные выходят из одного модуля и попадают в следующий, они меняют имя на новое.

Данные, проходящие между прикладным и транспортным уровнями, называются прикладными сообщениями. TCP и UDP пользуются потоковой и датаграммной службами доставки соответственно. Блок данных протокола TCP называется сегментом, а протокола UDP — датаграммой. Название соответствует блоку данных на пути между транспортным и сетевым уровнями. На рис. 2.7 показано, как изменяется название блока данных на пути сквозь стек протоколов TCP/IP.

Сегмент TCP иногда называется транспортным сообщением. В рамках Интернет термин «сообщение» всегда относится к данным определенного протокола или процесса виртуального соединения, или потока байтов. Сегменты TCP и датаграммы UDP превращаются в IP-пакеты на пути между модулем IP и уровнем соединения. Сеть TCP/IP инкапсулирует все сегменты TCP и датаграммы UDP в датаграммы IP, перемещая данные между сетевым уровнем и уровнем соединения. Все поступающие на уровень соединения данные называются IP-датаграммами или IP-пакетами.

Если применяется сеть технологии Ethernet, программное обеспечение инкапсулирует проходящие из уровня соединения на физический уровень данные в формат кадров Ethernet. В дальнейшем эти данные называются либо «кадр данных», либо «кадр Ethernet».

Вся информация в сетях TCP/IP инкапсулируется в формат IP-датаграмм. Процесс инкапсуляции создает IP-датаграмму, состоящую из IP-заголовка и данных. Размер IP-заголовка всегда кратен 32-битному слову, даже если для этого он должен дополниться нулями до нужной величины. Размер IP-заголовка равен всего лишь 20 байтам. IP-заголовок всегда имеет такую длину, за исключением специальных случаев.

Источник

Что такое время жизни пакета (TTL)

Вероятно, многие из нас обращали внимание на параметр 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.

После этого перезагрузите компьютер. Снова запустив ping localhost, можно увидеть, что значение TTL изменилось.

Отдельно стоит упомянуть протокол IPv6. Если вы его используете, то нужная вам в реестре ветка: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters.

О том, как провернуть подобную настройку в Ubuntu, читайте в статье по этой ссылке.

Источник

Что такое TTL

Time to live (TTL) – это время жизни пакета. TTL показывает максимальный период времени существования набора данных (пакета).

TTL IP-пакетов

В IPv4 TTL представляет собой восьмиразрядное поле IP-заголовка. Параметр TTL считается верхней границей времени существования IP-дейтаграммы в сети. Поле TTL устанавливается отправителем пакета и уменьшается в течение всего процесса передачи данных, в соответствии со временем пребывания в данном устройстве, согласно протоколу обработки.

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

В каждой промежуточной точке (маршрутизаторе) значение поля TTL уменьшается на 1 (данный параметр изменяется) до тех пор, пока пакет данных не достигнет точки назначения.

При условии, что значение на каком-либо из задействованных узлов достигнет 1, пакет данных уничтожается, а на исходный сервер посылается сообщение о необходимости повторить передачу пакета. В этом случае отправителю отправляется ICMP-пакет с кодом 11 — «Превышение временного интервала». При слишком маленьком значении пакет может просто не дойти, при слишком большом, в случае задержки, ожидание может занять много времени (при значении TTL 255 оно достигает 4 минут и 10 секунд).

Маршрутизатор не пропускает пакеты с нулевым значением TTL. Это делается для того, чтобы в случае ошибочной маршрутизации пакет не «гулял» бесконечно по сети, а уничтожался через некоторое время.

TTL у DNS

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

При использовании стандартных настроек TTL обновление произойдет на сервере через день. Перед запланированными процедурами первую строку записи следует изменить на значение 550 или меньше, после чего ввести serial number и перегрузить зоны, обновив DNS-сервер. После обновления данных можно начинать производить необходимые процедуры по миграции серверов. Проверку произвести с помощью команды dig. После этого произойдет обновление IP-адресов в течение указанного времени.

После выполнения всех процедур по передаче данных, значение TTL можно увеличить, чтобы снизить нагрузку на DNS-сервер и избежать использования большого трафика для обновления зон.

Источник

Подробное руководство по настройке 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) представляет собой продолжительность кэширования записи *каждым звеном* цепочки установки соответствий 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?


Значение 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. Курс бесплатный и очень информативный.

Источник

Сказочный портал