http://routeworld.ru/set-i-internet/web ... rotik.html
Проблема NAT
Точнее это даже не проблема, а следствие настройки. Создавая правило с действием masquerade для out-interface L2TP мы сталкиваемся с тем, что уходящие с него пакеты меняют свой родной src.address из пулов 192.168.30.0/24 и 192.168.31.0/24 на IP, который присвоен L2TP-соединению.
Допустим, L2TP соединениям присваиваются IP из пула 192.168.29.0/24, и вот поднятому виртуальному интерфейсу выдан IP 192.168.29.252. Пакеты по велению раут-таблицы лезут на него и теряют свои уникальные src.address 192.168.31.51...52...251...etc., они заменятся адресом интерфейса из VPN-пула. Здесь и возникает проблема. Устройство на другой стороне будет пытаться адресовать ответный трафик не оригинальному IP, а всё тому же адресу L2TP-интерфейса. Всему виной правило NAT превратившее всё многообразие хостов 192.168.31.0/24 в скромный 192.168.29.252:
[admin@MT1] > ip firewall nat
[admin@MT1] /ip firewall nat> add chain=srcnat out-interface=your_l2tp_connection action=masquerade
Просто отключить правило? Но тогда для хостов вообще упадет железный занавес. Нужно разрешить пакетам ходить туда, но продиктовать более удобные условия визы. Разберемся во всех вариантах натирования трафика мы в следующий раз, а пока по нашему вопросу.
Вместо masquerade нужно использовать просто action=accept. В чем разница? Маскарад заменяет адрес отправителя на первый адрес out-interface, который в нашем случае является айпишником туннеля. А вот действие accept, говорит, что пакеты обрабатывать не нужно, как раз таки это является залогом правильной работы IPSec. Вот и всё, в итоге правило должно выглядеть так:
[admin@MT1] > ip firewall nat
[admin@MT1] /ip firewall nat> add chain=srcnat out-interface=your_l2tp_connection action=accept
Вот именно эта проблема у меня и есть. Я сделал accept, но все равно не пашет. Может надо микроты ребутнуть...