Есть микротик(RB951G-2HnD, RouterOS 6.37.3, 192.168.42.1), получает интернет от БиЛайн по IPoE(DHCP, без дополнительных заморочек, default-route-distance=50), локалка 192.168.42.0/24.
Внутри локальной сети, по адресу 192.168.42.253 имеется pfSense, который работает динамическим пиром для подключения к удалённой сети(192.168.4.0/24) по IPSec(работает из-за НАТ-а).
С микротика 192.168.42.253 доступен(пингуется обычно и arp-пингом с br_lan).
Так как микротик работает "основным" роутером в сети(и шлюзом по-умолчанию для устройств в локальной сети), решил маршрут до удалённой сети прописать на нём.
В Windows всё просто: route add 192.168.4.0 mask 255.255.255.0 192.168.42.253. С компьютеров сети при локальном прописывании маршрута через pfSense связь с 192.168.4.0/24 работает.
Если судить по манам и морю статей, в микротике тоже всё просто, хоть из WinBox(IP => Routes), хоть из консоли: ip route add dst-address=192.168.4.0/24 gateway=192.168.42.253
Вот только почему-то маршрут получается unreachable, и соответственно не активный. В результате попытки пингования уходят на шлюз провайдера(дефолтовый маршрут для 0.0.0.0).
Пробовал включать проверку доступности шлюза(arp/ping), пофиг - gateway-status unreachable, и роутим вместо pfSens-а на шлюз провайдера...
Добавлял в начало правил файрвола:
add action=accept chain=forward
add action=accept chain=input
add action=accept chain=output
Шлюз не обнаруживается...
Активная таблица маршрутизации:
[user@RB951G-2HnD] > 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 ADS dst-address=0.0.0.0/0 gateway=95.27.136.1 gateway-status=95.27.136.1 reachable via WAN distance=50 scope=30 target-scope=10 vrf-interface=WAN
1 S dst-address=192.168.4.0/24 gateway=192.168.42.253 gateway-status=192.168.42.253 unreachable distance=1 scope=30 target-scope=10
2 A S dst-address=192.168.42.0/24 gateway=br_lan gateway-status=br_lan reachable distance=1 scope=30 target-scope=10
3 A S dst-address=192.168.44.0/24 gateway=br_lan gateway-status=br_lan reachable distance=1 scope=30 target-scope=10
4 ADC dst-address=95.27.136.0/21 pref-src=95.27.142.111 gateway=WAN gateway-status=WAN reachable distance=0 scope=10
5 ADC dst-address=255.255.255.0/32 pref-src=192.168.42.1 gateway=br_lan gateway-status=br_lan reachable distance=0 scope=10
Пробовал гуглить, но все разбираются с глобальными проблемами вроде роутинга между сегментами на разных портах, и балансировкой при нескольких провайдерах. Такого простого случая как "нужно задать шлюз внутри локалки" не нагуглил.
Так как на работающем в той же сети MikroTik mAP 2hnd(работает как точка доступа, настройки сети получает по DHCP + CapsMan, порты в свиче + мост на WiFi, никаких правил Firewall/NAT) маршрут нормально добавляется и работает, похоже что тут очередной неочевидный(для меня) нюанс микротика всплыл - почему хост с микротика доступен, но при выборе его шлюзом для статического маршрута он "недостижим"? Что препятствует нормальной работе маршрута на роутере, и как это побороть(отключить проверку доступности шлюза, например)?
P.S. Оба микротика настраивал вручную после полного сброса, на обоих устройствах RouterOS 6.37.3. Пока единственная идея, это сделать полный сброс роутера и настраивать всё с нуля, параллельно проверяя работоспособность маршрута(чтобы выяснить какая настройка его поломает), но заняться этим смогу только в выходные.
P.P.S. Полный конфиг в вопрос не влезает -
pastebin.com/tj4rpeUX
_____________
Добавлено: ошибка крылась в неверной интерпретации мною интерфейса Winbox, и отсутствием проверки на этот счёт вводимых данных со стороны Winbox - роутер получил адрес с маской /32, и это мешало ему использовать адрес шлюза который не попадал в "подсеть" /32. Огромная благодарность Илье Демьянову(@turbidit) за помощь в локализации этой ошибки. @2016-12-05 20:52MSK