Фиксация ttl на роутере
Что такое TTL и на что влияет «Время жизни пакета» на смартфоне и у маршрутизатора?
ВНИМАНИЕ! По последним данных от надежного источника стало известно, что не только 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. Список таких серверов постоянно пополняется. Но и эта проблема достаточно легко решается. По этому поводу у нас на портале есть подробные инструкции для всех операторов:
Там расписаны все шаги с картинками и пояснениями. Также вы сможете определить и проверить свой ТТЛ, но на деле они имеют одинаковые значения для всех типов устройств, о которых я написал в самом начале.
TTL в роутере
Также этот параметр встречается и в роутере, а также в любых сетях, которые работают с IP адресами. На уровне маршрутизации пакетов ТТЛ постоянно используется как внутри сети пользователя, так и в сети провайдера. Например, у Keenetic есть параметр «Не уменьшать TTL» – который нужен для того, чтобы пакеты данных от маршрутизатора провайдера при проходе через ваш роутер не уменьшался. Дело в том, что некоторые провайдеры специально выставляют ТТЛ=1. Сделано это для того, чтобы к основным шлюзам всякие нехорошие люди не подключили сторонние маршрутизаторы. Проблема в том, что если убрать эту галочку, то при проходе пакета ТТЛ уменьшится до 0. А ТТЛ со значение 0 отбрасываются и уничтожаются всеми сетевыми устройствами, который работают на уровне IP адресации. То есть ваш компьютер или любое другое устройство просто не будет принимать эти пакеты. Ещё раз объясню – это нужно для того, чтобы пользователь не подключал к своему роутеру других абонентов через другие шлюзы. Это если вы захотите стать провайдером для кого-то ещё. Понятное дело, провайдер начнет вас блокировать. Теоретически да, но делать это НЕЛЬЗЯ по установленному пункту в договоре от поставщика услуг. Не знаю точно, что может грозить за это, но огромный штраф и судебное дело – вполне реально. С другой стороны, данный параметр иногда нужно изменять при настройке локальной сети компании или предприятия. В таком случае будет использоваться несколько маршрутизаторов. В этом случае поможет TELNET для изменения параметра (x – это значение от 1 до 255) для входящих пакетов:
[FAQ] Как скрыть от оператора раздачу трафика по Wi-Fi?
Видимо, у Вас есть на руках 3G/4G-модем с возможностью раздачи Wi-Fi, но в настройках тарифа (который, как правило, еще и смартфонный) стоит запрет на раздачу трафика по Wi-Fi и вы хотите обойти это ограничение.
Решение тут только одно — фиксация TTL. Это связано с тем, что смартфоны на андроиды и яблоки отдают пакеты со значением ТТЛ=64, а Windows 7/8/10/11/Phone — со значением ТТЛ=128. Именно на разнице этих значений оператор и палит факт раздачи. Т.е. чтобы обойти ограничение на раздачу трафика по Wi-Fi, необходимо, чтобы оператор получал пакеты с ОДИНАКОВЫМИ значениями TTL. Например, чтобы оператор всегда получал только 128 или только 64.
Фиксация ТTL может быть трех видов — на модеме, на роутере, и на ПК.
Наиболее приемлемый вариант — фиксация ТТЛ непосредственно на модеме. Главный плюс — если ТТЛ зафиксирован на 4G-модеме, то на значения ТТЛ, которые уходят от компа или смартфона уже глубоко пофигу. Минус — далеко не на любом модеме есть возможность зафиксировать TTL, а там где она есть — это можно сделать не на любой прошивке.
По своему опыту могу сказать, что зафиксировать ТТЛ можно на следующих модемах:
Huawei:
— E3272s [только модиф. прошивка]
— E3276s [только модиф. прошивка]
— E3372s [только модиф. прошивка]
— E3372h (кроме -320 и -325) [только модиф. прошивка]
— E8372h (кроме -320 и -820) [только модиф. прошивка]
— E5573s/Bs/Cs/C [только модиф. прошивка]
— E5372 [только модиф. прошивка]
— E8278 [только модиф. прошивка]
— B315 [только модиф. прошивка]
ZTE:
— MF30
— MF823, MF823D, MF825
— MF831
— MF90, MF90+, MF90C1 (не путать с MF90M)
— MF910
— MF833T [только модиф. прошивка]
— MF833V
— MF93D
— MF79
— MF79U/RU
Прочие модемы:
— Quanta 1K6E (Билайн)
— Теле2 OSH-150 (не путать с SM25)
— Билайн S23 (не путать с SM25)
— Мегафон MR150-6 (не путать с MR150-7)
— МТС 874FT / 8920FT
— МТС 8810FT
— МТС 8723FT
— Alcatel IK40V
— Alcatel MW45V
— Vegatel M24
Если зафиксировать ТТЛ на модеме не получается, изучаем прошивку роутера. И здесь уже зависит от конкнетного роутера, а также от его прошивки.
Плюсы — прошивка модема уже роли как таковой не играет. Минусы — не на всех роутерах такое возможно на заводских прошивках.
Например, на Netis MW5230 на оригинальной прошивке зафиксировать ТТЛ невозможно, но если прошить его в одну из сборок OpenWRT «Хитрый домовенок» — такая возможность появляется (но там свои тонкости, которые не для этой темы).
Похожая ситуация и с роутерами TP-Link MR3420 v2 — фиксация ТТЛ там возможна только после перепрошивки на OpenWRT. Наиболее рекомендуемые — ROOter GolderOrb и Rooter RusBie 4G.
А вот у роутеров Keenetic на последних прошивках эта опция заложена с завода, т.е. самый максимум, что нужно сделать — просто обновить прошивку до последней.
Ну а если зафиксировать ТТЛ на модеме или роутере нет возможности, то остается только один вариант — фиксировать ТТЛ на ПК. Для этого скачиваем архив со всем необходимыми РАСПАКОВЫВАЕМ его. Если все запускать прямиком из архива, то ничего не получится.
Через правый клик с правами администратора запускаем fix_ttl_pc.cmd:
Если смартфоны на андроиде или iOS — пишем 64, если WindowsPhone — пишем 128, после чего должно появиться два сообщения «операция успешно завершена».
После перезагрузки запускаем проверка фикс.ТТЛ (после перезагрузки).cmd (обычным двойным кликом) и убеждаемся, что в ответе везде 64 (или 128 — смотря какое значение было указано в предыдущем шаге).
Осталось только повторить процедуру на других компах, которые подключаются к роутеру (ну или 4G-модему с раздачей Wi-Fi).
Плюс методики: доступна каждому и не требуется ничего перепрошивать. Минус: годится только для тех случаев, когда все компьютеры и смартфоны «запитаны» от ОДНОГО роутера (или 4G-модема с возможностью раздачи Wi-Fi).
Фиксация TTL в MikroTik
Рассмотрим фиксацию TTL на примере использования USB модема сотового оператора. Такие модемы могут работать в разных режимах, в зависимости от программного обеспечения, прошитого в них:
- Stick — это классический USB модем, управление по установке соединения и поддержка работы канала производится программным обеспечением устройства, к которому подключен модем.
- HiLink — модем работает как роутер, представляясь устройству, к которому подключен, как сетевой интерфейс. Устройство получает от модема по DHCP сетевые настройки и IP адрес, образуя небольшую локальную сеть. Подключение и работу по поддержанию канала связи выполняет сам модем.
Фиксация TTL выполняется в правилах Mangle, IP -> Firewall -> Mangle .
Добавляем новое правило + . В меню General указываем настройки:
- Chain — postrouting, значение будет устанавливаться на выходе.
- Out Interface — интерфейс, через который осуществляется выход в интернет, в нашем случае это USB модем.
Если зафиксировать одинаковое значение TTL необходимо на нескольких интерфейсах, то создается список интерфейсов ( Interfaces -> Interface List -> List ), в него добавляются необходимые интерфейсы и этот список указывается в поле Out Interface List .
На вкладке Action указываем необходимое значение TTL. Заполняем:
- Action — change TTL.
- TTL Action — change.
- New TTL — необходимое значение TTL. Для модемов сотовых операторов это значение обычно устанавливается равным 64, соответственно, если модем работает в режиме Stick TTL = 64, если модем работает в режиме HiLink, то TTL = 65, т.к. это значение уменьшится на единицу при проходе через роутер в модеме.
- Passthrough — Вкл.
В консоли добавление правила для фиксации TTL будет выглядеть так:
/ip/firewall/mangle/add chain=postrouting out-interface=ppp-out-mobile action=change-ttl new-ttl=set:64