У меня MikroTik CRS125-24G-1S-IN
Сбросил без применения стандартных настроек. Далее настроил его как написал ниже, упустив некоторые детали.
К нему в порт ether1 подключен новый провайдер через pon медяк со скоростью 1 гигабит.
Порты с 2 по 16 объединены в бридж, на них настроен dhcp сервер. Остальные порты не использованы и не задействованы на данный момент.
Применяются simple queue к отдельным ip адресам, ограничивая их скорость до 50М/50М. А всему диапазону ip адресов общее правило, которое ограничивает скорость на 20М/20М.
Также в firewall есть одно правило fasttrack, чтобы скорость на ip 192.168.88.21 не ограничивалась.
Для мониторинга в боте телеграмм, работает ли всё, с помощью скрипта, который добавлен в расписание. Скрипт добавляю.
:local botToken "-------:AAGmvhHsqEХХХХХХХХХХХХХХХХХfw"
:local chatID "--------"
:local pingResult [:len [/ping 8.8.8.8 count=3]]
:if ($pingResult = 0) do={
:log info "Нет интернет соединения, перезапускаю DHCP клиент на ether1."
/interface dhcp-client disable ether1
:delay 5s
/interface dhcp-client enable ether1
:delay 5s
:local message "MikroTik: dhcp на ether1 перезапущен."
/tool fetch url="https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$message" keep-result=no
} else={
:log info "Интернет работает, действия не требуются."
:local message "MikroTik: ping к 8.8.8.8 ок"
/tool fetch url="https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$message" keep-result=no
}
:local domain "google.com"
:local resolvedIP
:do {
:set resolvedIP [:resolve $domain]
} on-error={
:set resolvedIP ""
}
:if ($resolvedIP = "") do={
:log warning "Не удалось разрешить IP для $domain"
:local message "MikroTik: Нет IP для $domain. Перезапустил dhcp на ether1."
/tool fetch url="https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$message" keep-result=no
/interface dhcp-client disable ether1
:delay 3s
/interface dhcp-client enable ether1
:delay 3s
} else={
:log info "DNS для $domain ОК, действия не требуются."
:local message "MikroTik: DNS для $domain ОК"
/tool fetch url="https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$message" keep-result=no
}Также в netwatch добавлено отслеживание за узлами в сети по ip. Чтобы по аналогии со скриптом выше я знал, когда и что в сети выключается или включается.
ПРОБЛЕМА
Каждый день в одно и то же время с 15-30 до разного от 16-00 до 19-30 перестает стабильно работать интернет.
А именно ping на 8.8.8.8 может быть, а ResolveIP google.com не выполняется. То есть по сообщениям в боте я вижу, когда не выполняется ResolveIP, это может длиться от 10 минут до часа, иногда всё нормально, и снова пропадает. При этом пропадает и ping на 8.8.8.8 тоже бывает до 20 минут. Как вы видите, я перезапускаю порт ether1, когда такое происходит. Делаю это потому, что когда я присутствовал на месте в момент появления этих глюков, то через winbox, подключившись к MikroTik вручную, выключаю порт и включаю, и проблема исчезает. Может появиться уже на следующий день в этот же период.
Что пробовали сделать:
Провайдер говорил, чтобы я поменял mac адрес на ether1 - сделал. Ничего не изменилось.
Перепаивалась оптика как на моей стороне, так и на стороне провайдера.
Порт WAN пробовал менять на ether24 - не помогло.
Я пробовал с MikroTik сделать тупой свитч и отключил всё лишнее, а интернет подавал ему через обычный роутер, на который взял на себя функцию DHCP для сети, но без каких-либо ограничений, конечно, по скоростям и т.д. Просто на asus 100 мегабитном роутере не возникало таких проблем. Интернет не пропадал несколько дней. Когда вернул назад MikroTik, всё восстановилось с глюком.