Настройка Микротика

Цена договорная
30 июня 2020, 11:09 • 2 отклика • 60 просмотров
Для Microtik hap ac2 или аналогичного, у которого есть 2-3 подключения:
1. WAN - постоянный Интернет-адрес, предполагаем, что не за NAT, доступный снаружи.
2. Ethernet на 1м порту с подключенным 4G-модемом либо DSL-модемом.
3. Сервисный, возможно подключение реле и др. устройств, выход в LAN.

Реализовать:
1. Настройку HTTP прокси с доступом по логин\паролю, открытом на порту 1100 на сетевом интерфейсе 1 и передачей запроса в интерфейс 2. Доступ в LAN должен быть закрыт.
логин прокси = substr(md5(MAC + "thetruthisoutthere"),1,8)
пароль прокси = substr(md5(MAC + "donttrytoguessthisvalues"),1,8)

2. Если скриптовый язык микротика позволяет открывать и получать данные по веб-сокетам, то:

2.1. Создать скрипт, который при старте микротика работает в цикле и:
1) Подключается через веб-сокет на указанный адрес_A1 сервера и в зависимости от ответа выполняет действия:
1.0) Отправляет состояние устройства: свой MAC, подключенные порты и их link-состояние, настроенные IP-адреса на них в любом удобном формате, можно json.
1.1) Команда "CHANGEIP\n" - перезапускает подключенный 4G/DSL-модем на 2м сетевом интерфейсе (1 LAN) для смены IP-адреса. По завершении отправляет в сокет "CHANGEIP-DONE".
1.2) Команда "REBOOT\n" - рестарт микротика.
1.3) Команда "UPDATE path_to_script_to_download CRC32" - скачать скрипт с указанного адреса и заменить текущий на него при условии совпадения CRC32 скрипта со скачанным, выполнить перезагрузку.
2) В случае обрыва соединения выполняет переподключение сокета 100 раз с интервалом в 5 секунд. Если все 100 раз не успешны, то выполняет HTTP GET запрос на адрес_А2 сервера с указанием своего MAC в параметре "mac". Затем заново выполняет переподключение к сокету.

2.2. Если не позволяет делать запросы к веб-сокетам, то создать скрипт, который:
1) При старте отправляет HTTP POST запрос на адрес_А3 сервера, содержащий состояние устройства: свой MAC, подключенные порты и их link-состояние в них, настроенные IP-адреса на них в раздельных параметрах HTTP POST:
"mac" - MAC
"ports" - число сетевых подключений
"link" - bitmask состояния подключения кабелей в портах
"port1ip" - IP в порту 1
"port2ip" - IP в порту 2
либо в любом доступном на скриптовом языке формате, например JSON. Отправлять можно и в HTTP BODY.
2) Выполняет "ждущий" HTTP GET запрос на адрес_А4 сервера с максимально доступным таймаутом, согласно скриптовому языку. При невозможности выполнить запрос (ответы 500, 403, 404, таймаут дозвона) - выполнить запрос повторно через 5 секунд после предыдущего. После 100 неуспешных попыток выполняет HTTP GET запрос на адрес_А2 сервера с указанием своего MAC в параметре "mac". Затем заново осуществляет попытки соединения на адрес_А4 и т.д.
После получения ответа с адреса_А4 сервера выполнить команды в соответствии с п.2.1 данного ТЗ.

Проксирование в микротике можно выставить и без авторизации, но так, чтобы подключение было разрешено строго с указанных IP (основной и тестовый, с которого идет настройка).
Сам прокси следует настроить либо через HTTP либо через SOCKS5 согласно мануалу https://wiki.mikrotik.com/wiki/Manual:IP/Proxy
HTTPS-прокси нам не требуется. Можно и через SOCKS4.