Friday, December 30, 2022

Настройка отправки email в MikroTik через скрипт в Netwatch

 

Настройка отправки email в MikroTik через скрипт в Netwatch

В данном примере будет рассмотрена настройка отправки email через устройство MikroTik с RouterOS. Устройство будет использоваться только как почтовый клиент, т.е. email адрес должен будь актуальным и доступным.

Практически задачи, когда может пригодиться:

  1. Система оповещения когда: обрывается связь, необходимо оповестить о состоянии устройства или другое событие;
  2. Отправка backup на внешний ящик.

В качестве примера будет рассмотрен первый случай: имеется интернет соединение, изменение статуса которого будет сопровождаться соответствующим письмом.

Подключение email(почтового ящика) в MikroTik

Email предварительно был зарегистрирован в gmail.com и в качестве дополнительной опции была указана опция удаленного управления через приложение в разделе безопасности.

Настройка отправки email в MikroTik через Netwatch, разрешить подключение приложений к gmail

Настройка отправки email в MikroTik через Netwatch, безопасность gmail

Этот параметр следует учитывать не только с gmail, но и с большинством других почтовых сервисов.

Со стороны MikroTik нужно настроить одноименный раздел Email, который будет содержать все авторизационные данные для отправки писем.

Настройка находится Tools→Email

Настройка отправки email в MikroTik через Netwatch, подключение к почтовому ящику

/tool e-mail
set address=173.194.220.108 from=mikrotik.config.ukr@gmail.com password=mikrotik.config.ukr \
port=587 start-tls=yes user=mikrotik.config.ukr@gmail.com

Отправка email в случае обрыва интернета в MikroTik

Наблюдение за событием обрыва интернета будет производиться с помощью утилиты Netwatch. Суть её работы в том, что утилита отправляет ICMP запросы на определенный IP и в зависимости от состояния(UP или DOWN) выполняет определенный скрипт. В данном примере это будет отправка email.

В качестве IP адреса рекомендуется указывать шлюз(gateway) или DNS сервер интернет провайдера.

Настройка находится Tools→Netwatch

Настройка отправки email в MikroTik через Netwatch, настройка PING

Настройка отправки email в MikroTik через Netwatch, отправки email при состоянии UP

Настройка отправки email в MikroTik через Netwatch, отправки email при состоянии DOWN

/tool netwatch
add down-script="tool e-mail send to=mikrotik.config.ukr@gmail.com subject=\"\
Internet is DOWN\" body=\"\"" host=8.8.8.8 interval=10s up-script="tool e-\
mail send to=mikrotik.config.ukr@gmail.com subject=\"Internet is UP\" bod\
y=\"\""

Netwatch в MikroTik не работает, что делать

Элементарная команда Ping может не приносить требуемого результата если в системе больше одного провайдера или маршрутизация настроена таким образом, что при падении канала узел(Host) остается доступным. В этом случае рекомендуется обратиться к разделу Firewall, добавив правило, которое блокирует иные варианты маршрутизации для ICMP запросов.

Настройка находится IP→Firewall

Настройка отправки email в MikroTik, когда не работает Netwatch

Настройка Mikrotik winbox, правило firewall drop

/ip firewall filter
add action=drop chain=output dst-address=8.8.8.8 out-interface=!ether3

Настройка резервирования интернета в MikroTik, автопереключение провайдера через Netwatch

 


Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера

В расширении статьи “Настройка двух провайдеров на MikroTik, балансировка и автопереключение ” будет рассмотрен сценарий, когда маршрут не работает, но при этом не переключается по параметру Distance:

  • не обновляется IP по DHCP;
  • шлюз провайдера виден, а за ним нет сети;
  • не корректно отрабатывает PPPOE подключение при плохой связи.

Для решения задачи по корректному автопереключению стоит обратиться к утилите Netwatch, принцип которой состоит из действий: отправка ICMP запросов будет сопровождаться выполнением скрипта под изменение состояния UP и DOWN. В обоих сценариях будет заложена логика, в соответствии с техническим требованием.

Как настроить Netwatch в MikroTik для переключения между провайдерами

Схема интернет подключений будет состоять из двух провайдеров, между которыми нужно организовать автоматическое переключение в случае обрыва. Как было упомянуто выше, параметр Distance и Ping не всегда может решить эту проблему. Комплекс правил по автопереключению будет состоять из настроек таких разделов:

  1. Создание записи Netwatch с соответствующими сценариями при состоянии UP и DOWN;
  2. Запрет отправки пакетов узлов указанных в Netwatch через другие интерфейсы(Firewall);
  3. Создание статических маршрутов(Routes) для трафика Netwatch.

Создание правила Netwatch

Настройка находится Tools→Netwatch

Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера, настройка Netwatch

Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера, настройка Netwatch состояние UP

Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера, настройка Netwatch состояние DOWN

/tool netwatch
add disabled=yes down-script="/ip route disable [find comment=\"ISP-1\"]\r\
\n/ip route enable [find comment=\"ISP-2\"]\r\
\n:foreach i in=[/ip firewall connection find protocol~\"tcp\"] do={ /ip f\
irewall connection remove \$i }" host=8.8.8.8 interval=30s up-script="/ip \
route disable [find comment=\"ISP-2\"]\r\
\n/ip route enable [find comment=\"ISP-1\"]\r\
\n:foreach i in=[/ip firewall connection find protocol~\"tcp\"] do={ /ip f\
irewall connection remove \$i }"

Запрет на отправку пакетов для Netwatch через другие интерфейсы

Настройка находится IP→Firewall→Filter rules

Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера, запрет отправки пакетов через другие интерфейсы

Настройка Mikrotik winbox, правило firewall drop

/ip firewall filter
add action=drop chain=output dst-address=8.8.8.8 out-interface=!ether1

Создание статического маршрута для работы Netwatch

Настройка находится IP→Routes

Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера, добавление маршрута для узла Netwatch

/ip route
add distance=1 dst-address=8.8.8.8/32 gateway=ether1

В качестве gateway нужно указать или шлюз провайдера(его IP адрес) или интерфейс, в таком варианте подключения как pppoe client.

При переключении провайдеров в MikroTik не работает SIP или видеонаблюдение

Дело в том, что когда происходит переключение между провайдерами, старое соединение между внешним SIP телефоном и АТС “Asterisk” продолжает быть активным, но не работает из-за перестроенной таблицы маршрутизации. В этом случае нужно дополнить правила переключения провайдеров очисткой:

TCP соединений

:foreach i in=[/ip firewall connection find protocol~"tcp"] do={ /ip firewall connection remove $i }

UDP соединений

:foreach i in=[/ip firewall connection find protocol~"udp"] do={ /ip firewall connection remove $i }

или с дополнением по порту

:foreach i in=[/ip firewall connection find dst-address~":5060" protocol~"udp"] do={ /ip firewall connection remove $i }

или по IP

:foreach i in=[/ip firewall connection remove [find where src-address~"192.168.1.101"]] do={ /ip firewall connection remove $i }

Список всех соединений можно посмотреть в IP→Firewall→Connection

Настройка резервирования интернета в MikroTik, автопереключение на 2 провайдера, список всех подключений

Netwatch не работает, основной провайдер меняет шлюз у DHCP client

Для решения этой проблемы можно адаптировать такие скрипты:

Вариант-1

:global ispgw [ip dhcp-client get [/ip dhcp-client find interface=ether1] gateway ];
:global ispgwstat [ip route get [/ip route find comment="ISP-1" ] gateway ];

#:log info ("$ispgw" )
#:log info ("$ispgwstat" )

:if ($ispgw = $ispgwstat ) do={ :log info ("ISP-1 Gateway is OK" ) } else={ ip route set [/ip route find comment="ISP-1"] gateway=$ispgw; :log info ("ISP-1 Gateway WAS CHANGED" )}

который сравнивает установленное значение gateway провайдера ISP-1 в маршрутах Routes со значением gateway, установленного в DHCP client.

Вариант-2

В свойствах DHCP клиента добавить скрипт

{
:local rmark "ISP-1"
:local count [/ip route print count-only where comment="ISP-1"]
:if ($bound=1) do={
:if ($count = 0) do={
/ip route add gateway=$"gateway-address" comment="ISP-1" distance=1
} else={
:if ($count = 1) do={
:local test [/ip route find where comment="ISP-1"]
:if ([/ip route get $test gateway] != $"gateway-address") do={
/ip route set $test gateway=$"gateway-address"
}
} else={
:error "Multiple routes found"
}
}
} else={
/ip route remove [find comment="ISP-1"]
}
}

который будет отрабатывать на любое изменение статуса DHCP клиента, удаляя и создавая новый маршрут в таблице маршрутизации.

Настройка Netwatch для балансировки нагрузки двух провайдеров

Данные правила будут регулировать работу интернет каналов, если один из провайдеров перестанет работать. Ниже приведён отрезок из рабочей конфигурации, который передаваёт последовательность настроек.

Настройка Firewall

Правилами необходимо запретить отправку пакета для тестирования статуса интернет канала через другой интерфейс. Т.е. конкретный PING должен уходить только через определённого провайдера.

Настройка находится в основном меню Ip→Firewall→Filter Rules

/ip firewall filter
add action=drop chain=output dst-address=77.88.8.2 out-interface=!ether1 \
protocol=icmp
add action=drop chain=output dst-address=77.88.8.1 out-interface=ether1 \
protocol=icmp

Настройка маршрутизации

Будет создано три маршрута: отдельный для балансировки и два отдельных маршрута на случай падения одного из провайдеров.

Настройка находится в основном меню Ip→Routes→Routes

/ip route
add comment=ISP-12 disabled=yes distance=1 dst-address=77.88.8.1/32 gateway=\
77.121.98.129,pppoe-Datagroup
add comment=ISP-1 disabled=yes distance=2 dst-address=77.88.8.1/32 gateway=\
77.121.98.129
add comment=ISP-2 disabled=yes distance=3 dst-address=77.88.8.1/32 gateway=\
pppoe-Datagroup

Настройка Netwatch

В каждом действии Up и Down правило Netwatch-1 будет наблюдать за статусом правила Netwatch-2 и в зависимости от значения выполнять переключение между балансировкой и отдельным провайдером. Это также распространяется в отношении работы Netwatch-2.

/tool netwatch
add comment=Netwatch-1 down-script=":local stat\r\
\n:set stat [/tool netwatch get [find comment=\"Netwatch-2\"] status]\r\
\n:if (\$stat=\"up\") do={\r\
\n/ip route enable [find comment=\"ISP-2\"]\r\
\n}\r\
\n/ip route disable [find comment=\"ISP-12\"]\r\
\n/ip route disable [find comment=\"ISP-1\"]\r\
\n:foreach i in=[/ip firewall connection find protocol~\"tcp\"] do={ /ip f\
irewall connection remove \$i }\r\
\n:foreach i in=[/ip firewall connection find protocol~\"udp\"] do={ /ip f\
irewall connection remove \$i }\r\
\nlog warning (\"ISP-1 IS DOWN\")" host=77.88.8.1 interval=20s up-script="\
:local stat\r\
\n:set stat [/tool netwatch get [find comment=\"Netwatch-2\"] status]\r\
\n:if (\$stat=\"up\") do={\r\
\n/ip route enable [find comment=\"ISP-12\"]\r\
\n}\r\
\n:if (\$stat=\"down\") do={\r\
\n/ip route enable [find comment=\"ISP-1\"]\r\
\n}\r\
\n/ip route disable [find comment=\"ISP-2\"]"
add comment=Netwatch-2 down-script=":local stat\r\
\n:set stat [/tool netwatch get [find comment=\"Netwatch-1\"] status]\r\
\n:if (\$stat=\"up\") do={\r\
\n/ip route enable [find comment=\"ISP-1\"]\r\
\n}\r\
\n/ip route disable [find comment=\"ISP-12\"]\r\
\n/ip route disable [find comment=\"ISP-2\"]\r\
\n:foreach i in=[/ip firewall connection find protocol~\"tcp\"] do={ /ip f\
irewall connection remove \$i }\r\
\n:foreach i in=[/ip firewall connection find protocol~\"udp\"] do={ /ip f\
irewall connection remove \$i }\r\
\nlog warning (\"ISP-2 IS DOWN\")" host=77.88.8.2 interval=20s up-script="\
:local stat\r\
\n:set stat [/tool netwatch get [find comment=\"Netwatch-1\"] status]\r\
\n:if (\$stat=\"up\") do={\r\
\n/ip route enable [find comment=\"ISP-12\"]\r\
\n}\r\
\n:if (\$stat=\"down\") do={\r\
\n/ip route enable [find comment=\"ISP-2\"]\r\
\n}\r\
\n/ip route disable [find comment=\"ISP-1\"]"


Как подключить usb HDD, SSD к MikroTik, создание сетевой папки

 Как подключить usb HDD, SSD к MikroTik

Краткое описание: инструкция по подключению usb HDD\SSD\flash к роутеру MikroTik. Также будет рассмотрен процесс создания сетевой папки SAMBA, создания пользователей и прав доступа. И в завершении сетевая папка будет подключена на Windows ПК и будет сделан замер скорости чтения\записи:

Нужно настроить MikroTik SAMBA?

Подключение usbHDD\SSD\flash к роутеру MikroTik, создание сетевой папки, ограничение доступа с парольной авторизацией.

    Подключение usb HDD\SSD\flash диска к роутеру MikroTik

    В состав тестового стенда будут входить элементы:

    Подключение usb SSD роутеру MikroTik

    Проверка подключения HDD\SSD\flash

    Настройка находится System→Resources→Usb

    Подключение HDD, SSD, flash к MikroTik, проверка

    Если в списке Usb устройств не отображается HDD\SSD\flash, можно попытаться перезагрузить Usb порт.

    Настройка находится System→Routerboard→Usb Power Reset

    Подключение HDD, SSD, flash к MikroTik, перезагрузить Usb порт

    /system routerboard usb power-reset duration=5s

    Форматирование и инициализация HDD\SSD\flash

    Настройка находится System→Disks

    Подключение HDD, SSD, flash к MikroTik, форматирование диска

    Файловая система FAT32 будет иметь ограничение на размер файла равный 4Гб. Чтобы не упираться в это ограничение будет использоваться файловая система EXT3.

    После успешного форматирования, список Disk list будет иметь вид:

    Подключение HDD, SSD, flash к MikroTik, список дисков

    Настройка MikroTik SAMBA(SMB сервер)

    Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS.

    Настройка MikroTik SAMBA(SMB сервер)

    Настройка SMB

    Настройка находится IP→SMB

    Подключение HDD, SSD, flash к MikroTik, настройка SMB

    /ip smb
    set allow-guests=no domain=MikroTik-Config.ukr enabled=yes interfaces=Bridge-LAN

    allow-guests=no отключить гостевой доступ;

    interfaces=Bridge-LAN сетевые ресурсы будут доступны только в локальном размещении(интерфейс Bridge-LAN)

    Добавление пользователя для доступа к сетевой папке

    Настройка находится IP→SMB→Users

    Подключение HDD, SSD, flash к MikroTik, добавление пользователя

    /ip smb users
    add name=mt-user-1 password=1qaz@WSX read-only=no

    Создание сетевой папки SAMBA

    Настройка находится IP→SMB→Shares

    Подключение HDD, SSD, flash к MikroTik, добавление сетевой папки

    /ip smb shares
    set [ find default=yes ] disabled=yes
    add directory=disk1/Share max-sessions=100 name=Share

    И вновь созданная папка будет доступна в общем списке(Files):

    Подключение HDD, SSD, flash к MikroTik, отображение списка папок

    Подключение сетевой папки MikroTik SMB на Windows ПК

    Все действия будут производить со стороны ПК c ОС Windows.

    Подключение к сетевой папке

    Подключение HDD, SSD, flash к MikroTik по IP

    SAMBA авторизация

    Подключение HDD, SSD, flash к MikroTik, авторизация Windows

    Попытка записать файл

    Подключение HDD, SSD, flash к MikroTik, попытка записи файла

    Проверка скорости чтения\записи MikroTik SAMBA

    При тестировании будет использоваться один файл, размер которого чуть менее 2Гб.

    Проверка скорости записи

    Подключение HDD, SSD, flash к MikroTik, запись файла

    Отображение файла в MikroTik SAMBA

    Подключение HDD, SSD, flash к MikroTik, список файлов

    Проверка скорости чтения

    Подключение HDD, SSD, flash к MikroTik, чтение файла