Тогда у меня только на правила mangle колдующие с ttl подозрение: типа для клиента ttl получается «правильный», для самого роутера - нет.
Например перенести их в forward (возможно добавив доп условия), чтобы они самого роутера не касались.
Проблема с DNS.
-
- Сообщения: 4230
- Зарегистрирован: 25 фев 2018, 22:41
- Откуда: Москва
Telegram: @thexvo
-
- Сообщения: 13
- Зарегистрирован: 23 окт 2022, 23:14
Если же я получаю dns (динамический dns) от провайдера, то ping в микротике работает (через dns сервера провайдера), минуя прописанные статические днс сервера (узнаю отсюда https://www.top10vpn.com/tools/what-is-my-dns-server/). И в компе тоже работает инет с правилами mangle. Там активно только одно правило, которое увеличивает ttl на единицу.
Последний раз редактировалось WWW_223e 24 окт 2022, 14:07, всего редактировалось 1 раз.
-
- Сообщения: 4230
- Зарегистрирован: 25 фев 2018, 22:41
- Откуда: Москва
Что-то у меня больше особо нет идей, как оно может нормально работать через него, но не с него самого.
Telegram: @thexvo
-
- Сообщения: 13
- Зарегистрирован: 23 окт 2022, 23:14
Похоже это все таки блокировка провайдера.
Как я понимаю микротик обращается к серверам днс со своим ttl.
Если же у нас в mangle правила будут такими
/ip firewall mangle
add action=change-ttl chain=prerouting new-ttl=increment:1 passthrough=yes
add action=change-ttl chain=postrouting new-ttl=set:65 passthrough=yes
то ping проходит.
Только при переподключении приходится, изменять ttl второго правила на 64, потом обратно на 65 чтобы заработало.
Можно его как то автоматизировать?
-
- Модератор
- Сообщения: 3418
- Зарегистрирован: 01 окт 2012, 14:48
Можно :)
Отправить пакеты к 1.1.1.1 по другому маршруту - в впн.
Ну и скриптом можно, конечно, сами правила менять. Но это костыль, который в любой момент перестанет работать.
Самое надежное - отправлять в впн.
Отправить пакеты к 1.1.1.1 по другому маршруту - в впн.
Ну и скриптом можно, конечно, сами правила менять. Но это костыль, который в любой момент перестанет работать.
Самое надежное - отправлять в впн.
-
- Сообщения: 4230
- Зарегистрирован: 25 фев 2018, 22:41
- Откуда: Москва
При подключении чего куда?!
Вам надо чтобы ttl был в любом случае одинаковый (и тот который ожидает провайдер), независимо от того, откуда идет трафик - с самого микротика или от клиента за ним, так?
Ну так и попробуйте выставлять для микротика и для проходящего трафика их отдельно.
Там даже matcher должен быть для трафика, который сгенерирован локально.
Telegram: @thexvo
-
- Сообщения: 13
- Зарегистрирован: 23 окт 2022, 23:14
В mangle правило
add action=change-ttl chain=postrouting new-ttl=set:65 passthrough=yes
Только при включении режима самолета и отключении его в телефоне инет пропадает
- Пингую 1.1.1.1 - timeout
- Меняю правило "new-ttl=set:65" на "new-ttl=set:64", жду пока пинг пойдет
- Когда пинг идет - меняю обратно new-ttl=set:65
Теперь и ping ya.ru проходит.
Получается провайдеру одинаковый ttl и не нужен, в крайнем случае в начале?
В таком случае не потребуется

-
- Сообщения: 4230
- Зарегистрирован: 25 фев 2018, 22:41
- Откуда: Москва
Я что-то такое поведение вообще ничем не могу объяснить.
Telegram: @thexvo
-
- Сообщения: 13
- Зарегистрирован: 23 окт 2022, 23:14
Пока временное решение - скрипт,
может кому понадобится
может кому понадобится
Код: Выделить всё
:local scriptName "Script_ChangeTTL"
:local lteInterface "lte1"
:local mangleComment "lte1_ChangeTTL"
:local dnsServer "1.1.1.1"
:local domain "ya.ru"
:local pingSeconds 10
:put "Script Start"
:local startScriptsCount [:len [/system script job find script=$scriptName]]
if ($startScriptsCount=1) do={
do {
if ([/interface get $lteInterface running] = true) do={
:put " $lteInterface running"
do {
:resolve $domain server=$dnsServer
:put " DNS is working"
} on-error={
:local strTTL "set:65"
:local mangleID [/ip firewall mangle find comment="$mangleComment"]
if ([:len $mangleID] = 0) do={
:put " Add new mangle rule"
/ip firewall mangle add action=change-ttl chain=postrouting new-ttl=$strTTL passthrough=yes comment=$mangleComment out-interface="$lteInterface" disabled=no
:set mangleID [/ip firewall mangle find comment="$mangleComment"]
} else={
:put " Renew mangle rule"
/ip firewall mangle set [$mangleID] action=change-ttl chain=postrouting new-ttl=$strTTL passthrough=yes out-interface="$lteInterface" disabled=no
}
:local statusPing ([/ping address=$dnsServer count=1 as-value]->"status")
if ($statusPing = "timeout") do={
:set strTTL "set:64"
:put " ping $dnsServer timeout. new-ttl=$strTTL"
/ip firewall mangle set [$mangleID] new-ttl=$strTTL
} else={
if ($statusPing = "no route to host") do={
:put " Please reconnect the $lteInterface modem. statusPing = $statusPing"
}
}
:local iTime 0
while (($statusPing = "timeout") and ($iTime<$pingSeconds)) do={
:delay 700ms
:set statusPing ([/ping address=$dnsServer count=1 as-value]->"status")
:set iTime ($iTime + 1)
:put " How many times did you ping: $iTime"
}
if ($strTTL != "set:65") do={
:set strTTL "set:65"
:put " new-ttl=$strTTL"
/ip firewall mangle set [$mangleID] new-ttl=$strTTL
}
do {
:resolve $domain server=$dnsServer
:put " Result_Good"
} on-error={
:put " Result_Bad"
}
}
} else={
:put " $lteInterface NOT running"
}
} on-error= {
:put " $lteInterface not connected"
}
} else={
:put " The script is already running"
}
:put "Script End"
Последний раз редактировалось WWW_223e 08 ноя 2022, 22:28, всего редактировалось 4 раза.
-
- Модератор
- Сообщения: 3418
- Зарегистрирован: 01 окт 2012, 14:48
Почему нельзя отправить запросы к 1.1.1.1 через впн?
Зачем же такие костыли?
Да и не сошелся свет клином на 1.1.1.1.
ADguard, nextdns выдадут вам ваши собственные IP ДНС. Они вряд ли будут заблокированы.
Зачем же такие костыли?
Да и не сошелся свет клином на 1.1.1.1.
ADguard, nextdns выдадут вам ваши собственные IP ДНС. Они вряд ли будут заблокированы.