Mikrotik мониторинг vpn соединений

IPsec Tunnel

IPsec в туннельном режиме используется в основном для подключения с сторонними сетями. Указываем какие сети с нашей и с той стороны во 2 фазе IPsec, трафик начинает бегать (но не сразу).

Аппаратное шифрование IPsec

Настройка фазы 1

Никогда не используйте дефолтные профили, создавайте под каждую настройку отдельные!

Название должно отражать для какого подключения профиль

Хэш алгоритмы, группа Диффи — Хеллмана подбирается исходя из аппаратных возможностей MikroTik и согласуется с противоположной стороной

NAT-T так же согласуется с противоположной стороной
Но если по пути нет NAT, то эта опция не используется.

DPD используется для проверки работы IPsec.
Стандартное значение 120/5

Настройка фазы 2

Всё аналогично настройкам 1 фазы по настройкам шифрования

Для параноиков можно уменьшить время жизни 2 фазы и выбрать PFS Group для генерации нового ключа, отличного от сгенерированного DF в 1 фазе.

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

Создаем соединение с другой стороной, с указанием профиля 1 фазы
Если сервер является центральный, то ему незачем стучаться самому до клиентов, можно выставить режим Passive

Настройка идентификации

Связываем пира с настройками идентификации, вешаем пароль (Secret) или ключ.

Настройка политики

Выбираем Peer, ставим опцию Tunnel и указываем какие IP адреса нужно связать 2 фазой IPsec

Указываем шифрование, Level — unique, если у вас несколько сетей на 2 фазе, протокол esp, если нужно шифровать, ah если нужно проверять заголовок на «подмену»
И указываем профиль 2 фазы.

Настройка NAT IPsec Policy

Чтобы трафик проходил через NAT и не нужно было делать лишних правил, добавим настройку IPsec Policy: out: none

Тем самым NAT не будет обрабатывать IPsec траифик

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

Чтобы «обхитрить» схему прохождения трафика, завернем маршрут до другой сети в lo интерфейс. Это даст возможность объявить об этом маршруте в OSPF

Источник

Мониторинг IPSec-туннелей по SNMP — как?

Средний 1 комментарий

Easy way to handle IPsec Tunnel Status on RouterOS\Mikrotik using SNMP

Читайте также:  Создаем wifi без роутера

CityCat4, самое приятное то, что все очень просто. Настолько просто, что думаешь , как же я сам не догадался.

напиши тут , пусть будет

1) SNMP Asks for OID: 1.3.6.1.4.1.14988.1.1.18.1.1.2.X (Where last «X» is an SNMP ID number of a script in RouterOS\Mikrotik /system script)

2) RouterOS\Mikrotik automatically runs the script and returns a result to SNMP with 0 or 1 if IPsec Phase 2 Established with the IP

Create a copy of the script to your RouterOS/Mikrotik system > scripts
Name it for example as «probe-ipsec-x.x.x.x»
Enable SNMP on RouterOS\Mikrotik (we will use the version of SNMP v2c):

/snmp community set [ find default=yes ] addresses=0.0.0.0/0 write-access=yes
/snmp set contact=»XXXXXXXXX» enabled=yes location=»YYYYYYYYYY» trap-version=2

Download https://www.paessler.com/tools/snmptester for SNMP debugging also you can use *nix snmpget and snmpwalk (more info: https://wiki.mikrotik.com/wiki/Manual:SNMP#Run_Script)
Check OIDs of scripts that you have on your RouterOS\Mikrotik using SNMP walk and OID for scripts: 1.3.6.1.4.1.14988.1.1.8

Change 8 to 18 in OID: 1.3.6.1.4.1.14988.1.1.8.1.1.2.1 to 1.3.6.1.4.1.14988.1.1.18.1.1.2.1 to execute the script via SNMP and get results
Check result of the script that you have on your RouterOS\Mikrotik using SNMP get

Add the SNMP probe check to your SNMP Management System (In my case we will use PRTG)
Done
Now using SNMP you can ask and receive a result of the status of yours IPsec Tunnels
Using the same way you can get any other data from RouterOS\Mikrotik

Источник

Mikrotik мониторинг работы туннеля

Добрый день, есть работающий l2pt/ipsec туннель, есть огромное желание мониторить его zabbix’ом, но все бы нечего если бы oid не менялся при разрыве-реконекте его:

12 DR name=.1.3.6.1.2.1.2.2.1.2.8388643 mtu=.1.3.6.1.2.1.2.2.1.4.8388643 mac-address=.1.3.6.1.2.1.2.2.1.6.8388643
admin-status=.1.3.6.1.2.1.2.2.1.7.8388643 oper-status=.1.3.6.1.2.1.2.2.1.8.8388643
bytes-in=.1.3.6.1.2.1.31.1.1.1.6.8388643 packets-in=.1.3.6.1.2.1.31.1.1.1.7.8388643
discards-in=.1.3.6.1.2.1.2.2.1.13.8388643 errors-in=.1.3.6.1.2.1.2.2.1.14.8388643
bytes-out=.1.3.6.1.2.1.31.1.1.1.10.8388643 packets-out=.1.3.6.1.2.1.31.1.1.1.11.8388643
discards-out=.1.3.6.1.2.1.2.2.1.19.8388643 errors-out=.1.3.6.1.2.1.2.2.1.20.8388643

т.е вот эти данные 8388643 каждый раз меняются, есть у кого идея как воплотить в жизнь данную схему ?

  • Вопрос задан более трёх лет назад
  • 5097 просмотров

В документации написано про динамические идентификаторы интерфейсов: https://www.zabbix.com/documentation/ru/1.8/manual.

PS
Динамические индексы поддерживаются в Zabbix начиная с версии 1.5.

У микротика есть ifAlias? Если циферками, то ifAlias это .1.3.6.1.2.1.31.1.1.1.18 если буковками, то ifAlias или IF-MIB::ifAlias

Читайте также:  Блок питания для роутера xiaomi с евровилкой

Вот я хочу узнать ifAlias интерфейса 1354

Ок. Узнал. ifAlias у него «iptv». Точно так же я узнаю ifInOctets или ifOperStatus. Допустим после перезапуска ID изменился но ifAlias, то всегда одинаковый вот по нему и вычислю новый ID с помощью забиксовской приблуды для узнавания динамических идентификаторов.

Чтоб узнать сколько байт принято воспользуюсь ifInOctets[«index»,»ifAlias»,»iptv»]
Чтоб узнать в дауне интерфейс или в апе (down/up) воспользуюсь ifOperStatus[«index»,»ifAlias»,»iptv»]

Заббикс видимо сделает snmpwalk по ifTable затем у найденных интерфейсов узнает ifAlias и у того у которого ifAlias==»iptv» возьмёт идентификатор и подставит в ifOperStatus или в ifInOctets или. Да во что угодно.

Ну вот и хорошо 🙂
Только смущает пустая строка в качестве ifDescr. Если появится ещё одни интерфейс у которого ifDescr пустая строка будет не очень хорошо.

Вот на циске каталисте например:

Видите ifDescr это тип порта его никак не поменяешь, а ifAlias это название/описание (называйте, как хотите) оно даётся для удобства, чтоб было ясно для каких целей используется интерфейс (в данном случае в качестве UP-Link).
На этой циске она задаётся командой «description UP-Link». На некоторых D-Link-ах, например, ifAlias название/описание (называйте, как хотите) задаётся командой «config ports 26 description Up-Link», а ifDescr у него «D-Link DES-3200-26 Port 26». В микротеках наверняка есть некий параметр «name» (или что-то вроде этого) который позволяет задать осмысленное имя интерфейсу. Вот если его задать ifAlias и ifDescr всё-равно остаются пустыми? В WINbox-е измените имя интерфейса и запросите по SNMP ifAlias и ifDescr, неужели они не изменятся?

@karabanov просто в mikrotik’e есть еще не Alias, а коммент ), к примеру

$ snmpwalk -v2c -Os -c public mikrotik-host IF-MIB::ifAlias
ifAlias.1 = STRING:
ifAlias.2 = STRING: ISP1-Megafon
ifAlias.3 = STRING: ISP2-Spark
ifAlias.4 = STRING:
ifAlias.5 = STRING: to hp procurve
ifAlias.6 = STRING: to cisco
ifAlias.7 = STRING:
ifAlias.8 = STRING:
ifAlias.9 = STRING:
ifAlias.10 = STRING:
ifAlias.11 = STRING:
ifAlias.12 = STRING: wifi
ifAlias.20 = STRING:
ifAlias.30 = STRING:
ifAlias.31 = STRING:
ifAlias.8388611 = STRING:

А вот тут то что нам надо.
zabbix:

$ snmpwalk -v2c -Os -c public mikrotik-host 1.3.6.1.2.1.2.2.1.2
iso.3.6.1.2.1.2.2.1.2.1 = STRING: «sfp1»
iso.3.6.1.2.1.2.2.1.2.2 = STRING: «ether1»
iso.3.6.1.2.1.2.2.1.2.3 = STRING: «ether2»
iso.3.6.1.2.1.2.2.1.2.4 = STRING: «ether3»
iso.3.6.1.2.1.2.2.1.2.5 = STRING: «ether4»
iso.3.6.1.2.1.2.2.1.2.6 = STRING: «ether5»
iso.3.6.1.2.1.2.2.1.2.7 = STRING: «ether6»
iso.3.6.1.2.1.2.2.1.2.8 = STRING: «ether7»
iso.3.6.1.2.1.2.2.1.2.9 = STRING: «ether8»
iso.3.6.1.2.1.2.2.1.2.10 = STRING: «ether9»
iso.3.6.1.2.1.2.2.1.2.11 = STRING: «ether10»
iso.3.6.1.2.1.2.2.1.2.12 = STRING: «wlan1»
iso.3.6.1.2.1.2.2.1.2.20 = STRING: «admin-tools»
iso.3.6.1.2.1.2.2.1.2.30 = STRING: «bridge1»
iso.3.6.1.2.1.2.2.1.2.31 = STRING: «lm-network»
iso.3.6.1.2.1.2.2.1.2.8388611 = STRING: «l2tp-client1»

Читайте также:  Пароль для роутера подобрать

А вот по запросу snmpwalk -v2c -Os -c public Mikrotik-hosts IF-MIB:ifTable
pastebin.com/H3Uj5jXs

Нда. Главное, чтоб ещё один интерфейс с пустой строкой в качестве ifDescr не появился.

Вот посмотрите: «настройка l2tp на микротике», там некий товарищ задаёт имя l2tp интерфейсу. Попробуйте сделать так и покажите вывод всей ifTable (ну как-то так «snmpwalk -v2c -Os -c vashe_comunity IP_mikrotika IF-MIB:ifTable»). Где-то это имя должно светиться.

Ок. Рад, что все работает.

PS
Сообщил в техподдержку о проблеме с парсером и предложил решение. Надеюсь скоро починят.

Источник

Mikrotik мониторинг vpn соединений

Mon Mar 12, 2018 12:27 pm

Please forgive me if I have re-invented the wheel! But I have been looking for a Script that would monitor an IPSec tunnel and if it couldn’t reach the endpoint it would force the tunnel to restart, unfortunately I couldn’t find any script to do quite what i wanted, so I borrowed some peoples code from other scripts and had a go myself, the below is what I have come up with constructive comments are welcome but please remember that this is the first script I have ever written.

<
:log info «IPSec Watchdog Started»
##### The host you want to ping######
:local HOST «Type IP Here»
##### Location of host########
:local LOCATION «Name of location»
##### Interface to Remote Network#######
:local GW «interface with route to host»
#### Ping Time out Increase or decrease as Required #####
:local TIMEOUT «100ms»
#### How Many try’s ######
:local COUNT «10»
### If less than 8 successful reply’s Restart IPSec#####
:local LESSTHAN «8»

##################################DONT EDIT BELOW###################################
:log info «Looking for $HOST at $LOCATION»
:log info «Route to IPSec endpoint in $LOCATION is via $GW»
:if ([/ping interface=$GW $HOST interval=$TIMEOUT count=$COUNT] panisk0

Источник