Контроль якості з’єднання 3G інтернет на MikroTik

Оновлення від 27/01/2018:
- Виправлені помилки, що проявили себе в новій версії RouterOS (робота протестована на ROS 6.41).
- Прибрав автоматичне визначення інтерфейсу, через який йде інтернет і який потрібно контролювати (інтерфейс USB модему). Тепер ім'я інтерфейсу необхідно вказати вручну (змінна ifName). Ця функція не завжди зручна, тому вирішив відмовитися від неї.
- Скрипт більше не підтримується. Новий сценарій: MikroTik. Скрипт контролю мобільного Інтернету
Оновлення від 03/10/2015:
- Додана можливість отримання на email звіту з 3G модему про рівень сигналу (RSSI), оператора мобільного зв'язку, моделі модему і т.д.
- Перевірка наявності маршруту за замовчуванням. Якщо ні, перезавантаження. Почала виникати проблема, що PPP з'єднання піднімається, але іноді, в таблиці маршрутизації не з'являється маршрут за замовчуванням (звичайно "Add default route" включено).
Оновлення від 09/05/2015:
- Контроль наявності інтерфейсів ім'я яких починається на «wlan» (у мене була проблема, коли дані інтерфейси зникали і допомагало тільки перезавантаження, схоже проблема була в конденсаторі, його перепояли, але про всяк випадок перевірку залишив).
- Контролює завантаження CPU протягом зазначеного часу. Якщо 100%, то перезавантаження Mikrotik.
- ICMP пакети для тестування інтернету, відправляються тільки в тому випадку, якщо в даний момент, інтернет трафік менше 30 кбіт/с (були проблеми, коли канал забивався на 100% і ICMP пакети губилися, скрипт вважав, що інтернет лежить і перезапускав з'єднання).
Оновлення від 26/09/2014:
- Зміненоінформація про налаштування SMTP. Використання SSL/TLS.
PPP з'єднання встановлено, але інтернету немає або в більшості випадків інтернет є але з 60-80% втрат пакетів. Іноді ця проблема виникає щодня, іноді щотижня, а буває кілька разів на годину. Проблему треба було вирішувати. Потрібно написати скрипт контролю з'єднання.
У MikroTik для написання скриптів використовується мова Lua. Т.к. раніше з даною мовою я ніколи не працював і вивчив його основи за годину-півтори те й скрипт вийшов простий і не претендує на геніальність, але свої функції він виконує.
Що робить скрипт
- Контроль наявності wlan інтерфейсу (якщо ні, перезапуск Mikrotik);
- Контроль завантаження CPU (якщо 100% завантаження за вказаний час, перезапуск Mikrotik);
- Контроль наявності за замовчуванням маршруту (якщо ні, перезапуск Mikrotik);
- Контроль наявності трафіку на інтерфейсі PPP;
- Якщо трафіку на інтерфейсі PPP немає, то проводиться тестування з'єднання використовуючи ICMP протокол (ping). Якщо недоступні відразу два хоста, PPP з'єднання перезапускається;
- Інформація про рівень сигналу 3G модему (RSSI), оператора стільникового зв'язку і т.д.;
- За всіма описаними вище подіями, надсилається звіт на email.
Устаткування
Маршрутизатор MikroTik RB751U-2HnD, ver. 6.32.2