Админская фамилия

Make Sysadmins Great Again

RouterOS DNS failure

В RouterOS 6.27 добавили несколько фич в DNS резолвер. В некоторых ситуациях адреса просто не резолвятся (DNS failure). Выход простой - в IP-DNS вместо нулей в строках  Query Server Timeout и Query Total Timeout прописываем 2. И DNS снова в строю!


Объединение одинаковых подсетей в RouterOS

Имеем две сети с одинаковой адресацией и site-to-site VPN между ними. Необходимо обеспечить взаимодействие между сетями, не изменяя их внутренней адресации. Не спрашивайте почему нельзя сменить адресацию - просто нельзя. В обеих точках оборудование Mikrotik.Решение подсказала эта статья. Вся основная настройка будет проводиться только на роутере-клиенте. На втором роутере необходимо будет лишь прописать маршрут до фэйковой сети. Будем считать, что VPN уже функционирует. Я не буду расписывать детали прохождения пакетов, т.к. это описано в указанной статье. Просто код с хабра и как это делается в RouterOS.Итак, наша сеть - 192.168.0.0/16. Сеть, в которую нужно попасть - 192.168.15.0/24. Отличия моих адресов от хабра:1. там с обеих сторон 192.168.0.0/24. У меня 192.168.0.0/16 и 192.168.15.0/242. там фэйковые адреса 10.8.1.0/24, 10.8.2.0/24. У меня 10.9.0.0/16 и 172.25.25.0/24iptables -t mangle -A PREROUTING -i tun0 -d 10.8.1.0/24 -j MARK –set-mark 8chain=prerouting action=mark-connection new-connection-mark=in passthrough=yes dst-address=172.25.25.0/24 in-interface=vpnchain=output action=mark-routing new-routing-mark=in passthrough=yes connection-mark=in iptables -t nat -A PREROUTING -m mark –mark 8 -j NETMAP –to 192.168.0.0/24chain=dstnat action=netmap to-addresses=192.168.15.0/24 connection-mark=iniptables -t nat -A POSTROUTING -m mark –mark 8 -j NETMAP –to 10.8.2.0/24chain=srcnat action=netmap to-addresses=10.9.0.0/16 connection-mark=inip route add 192.168.0.0/24 dev eth1 table netmapdst-address=192.168.15.0/24 gateway=ether2-master-local routing-mark=inНу и приведу всю конфигурацию Mangle, NAT и Route./ip firewall mangle> printFlags: X - disabled, I - invalid, D - dynamic 0   chain=prerouting action=mark-connection new-connection-mark=in passthrough=yes     dst-address=172.25.25.0/24 in-interface=vpn 1   chain=output action=mark-routing new-routing-mark=in passthrough=yes     connection-mark=in 2   chain=prerouting action=mark-connection new-connection-mark=out passthrough=yes     dst-address=10.9.0.0/16 in-interface=ether2-master-local 3   chain=output action=mark-routing new-routing-mark=out passthrough=yes     connection-mark=out/ip firewall nat> print Flags: X - disabled, I - invalid, D - dynamic  0   ;;; default configuration     chain=srcnat action=masquerade out-interface=ether1-gateway  1   chain=dstnat action=netmap to-addresses=192.168.15.0/24 connection-mark=in  2   chain=srcnat action=netmap to-addresses=10.9.0.0/16 connection-mark=in  3   chain=dstnat action=netmap to-addresses=192.168.15.0/24 routing-mark=out  4   chain=srcnat action=netmap to-addresses=172.25.25.0/24 routing-mark=out  /ip> route print detail Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit  0 A S  dst-address=192.168.15.0/24 gateway=ether2-master-local         gateway-status=ether2-master-local reachable distance=1 scope=30         target-scope=10 routing-mark=in  1 A S  dst-address=192.168.0.0/16 gateway=vpn         gateway-status=vpn reachable distance=1 scope=30 target-scope=10         routing-mark=out  4 A S  dst-address=192.168.0.0/16 gateway=%vpn_serv_IP%         gateway-status=192.168.242.1 reachable via  vpn distance=1 scope=30         target-scope=10


Самый полный мануал по резервированию интернета на Mikrotik RouterOS

В сети много мануалов по фэйловеру на RouterOS и подобрать нужный под конкретные цели иногда проблематично. В ходе своих экспериментов я выяснил, что наиболее универсальным является этот способ. Но у меня возникло несколько вопросов, ответы на которые я пока не нашел.

/ip route  
add dst-address=**Host1** gateway=GW1 scope=**10**  
add dst-address=**Host2** gateway=GW2 scope=**10**
/ip route  
add distance=1 gateway=**Host1** routing-mark=ISP1 check-gateway=ping  
add distance=2 gateway=**Host2** routing-mark=ISP1 check-gateway=ping
/ip route  
add distance=1 gateway=**Host2** routing-mark=ISP2 check-gateway=ping  
add distance=2 gateway=**Host1** routing-mark=ISP2 check-gateway=ping

Я делаю немного по-другому: первые две строки точно такие же, а дальше:


RouterOS failover links

Фэйловер разных типов подключений


Dude и SNMP

Про The Dude я уже писал. Отличная система мониторинга для сетей, построенных на базе оборудования Mikrotik. Столкнулся со следующей проблемой: хочу получить графики пропускной способности интерфейсов коммутаторов не строя при этом связи между портом коммутатора и конечным устройством на схеме (ну не надо мне перегружать карту клиентскими компами/телефонами). Что-то подобное Dude организовать может, но в ходе чтения различных материалов и обсуждений конкретного решения я не нашел и пришлось копать дальше в тему. Для нетерпеливых: ответа я пока не нашел.Итак, мы можем опросить устройство по SNMP и произвести какие-либо манипуляции с полученными данными средствами самой дудки. Стандартный SNMP позволяет нам увидеть следующие параметры:ifSpeed1.3.6.1.2.1.2.2.1.5Текущая скорость интерфейса в битах за секунду.ifInOctets1.3.6.1.2.1.2.2.1.10Полное число полученных байтов, включая символы заголовковifOutOctets1.3.6.1.2.1.2.2.1.16Полное количество отправленных октетов с интерфейса, включая символы заголовков.Сначала я думал, что первая строчка этой таблицы спасет меня. Но нет - она показывает скорость, в которую установлен интерфейс (10/100/1000 Мб/с). Соответственно, ковырять придется второй и третий параметры. Вычислить скорость, исходя из полученных данных можно так: (ifInOctets(time1) - ifInOctets(time2)) / (time2 - time1)Но вот проблема: куда записать текущее значение полученных байтов, чтобы потом вычесть одно из другого. Тут должны помочь функции, встроенные в Dude. Но использование переменных я в них не нашел. Поэтому откладываю эту задачку на неопределенное время. На форуме предлагают решение для The Dude 3.6, но в 4 версии оно не работает. Ссылки, которые дали информацию для размышлений: 1, 2, 3, 4, 5. 


RouterOS firewall links

http://wiki.mikrotik.com/wiki/Dmitry_on_firewallinghttp://wiki.mikrotik.com/images/f/f2/Firewall.pdf


Скрипт для проверки наличия USB-модема на RouterOS

Понадобился скрипт, определяющий наличие USB-модема, подключенного к Mikrotik. Присылает на почту название модема и его серийник. Хорошо бы допилить скрипт до отправки уровня сигнала и количества денег на счете, но мои модемы не дают доступа к своему меню - надо шить.:log info “Starting Modem Info Script…”;:local sysname [/system identity get name];:local sysver [/system package get system version];:local mname [/system resource usb get 1 value-name=name];:local mnumber [/system resource usb get 1 value-name=serial-number];:local smtpserv [:resolve “smtp.mail.ru”];:local Eaccount “mail@mail.ru”;:local pass “your_password”;:log info “Collecting Information”;:delay 5;:log info “Sending Information via E-mail…”;/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv </span>port=587 user=$Eaccount password=$pass start-tls=yes </span>subject=("$sysname Modem Information (" . [/system clock get date] . “)”) </span>body=("$sysname Modem.\nTime and Date stamp: " . [/system clock get time] . " " . </span>[/system clock get date] . “\nModem $mname, SN: $mnumber”);:log info “Modem Info Complete!”;


Mikrotik и DNS

В настройках RouterOS в разделе DNS есть галочка Allow Remote Requests. Судя по названию, она должна разрешать удаленные запросы. Но не тут то было. При снятой галке RouterOS вообще не обрабатывает входящие DNS запросы, а использует указанные сервера лишь для своих собственных нужд.В целях безопасности необходимо закрыть доступ к 53 порту снаружи - мало сколько пакетов вам захотят послать недруги.


Cacti + Mikrotik = Full Monitoring

Захотелось мне собирать все логи с сетевого оборудования в одном месте. Решил поднять syslog-сервер. Так как с такими сервисами никогда не сталкивался, пришлось спросить у великого гугля. Он подсказал мне, что с этим неплохо справляется система мониторинга Cacti. А о ней то я уже наслышан, и в планах стояло внедрение сего чуда в сеть. Итак, теперь основная цель не сислог, а мониторинг - то, для чего и создан cacti. Настроим мониторинг, а потом примемся за сислог.