До этого в качестве шлюза был сервер с линуксом на борту, с адресом 192.168.0.1, сейчас на его место встал mikroitk, серв переехал на 192.168.0.100, как перекинуть весь трафик, приходящий на микротик tcp\udp, за исключением пары портов (ssh\winbox) на 192.168.0.100?
Если надо перекинуть весь трафик, за исключением некоторых портов, то:
1) Создаете правило для портов-исключений, в Action ставите RETURN (выход из обработки)
2) Создаете правило для всех портов, в Action — dst-nat (по мануалу)
В итоге ситуация такая, делаю telnet на 3306 с 192.168.0.99 на 192.168.0.1, на 192.168.0.100:
— на 192.168.0.100 вижу запросы и ответы с 192.168.0.99, т.е. тут все работает норм
— на 192.168.0.99 вижу только исходящие запросы, т.е. обратно к нему ничего не приходит.
На микротике настройка базовая стандартная, только маскарад с внешнего интерфейса и
/ip firewall nat add chain=dstnat dst-address=192.168.0.1 protocol=tcp dst-port=3306 \
action=dst-nat to-addresses=192.168.0.100 to-ports=3306
Адрес A: 192.168.0.99
Адрес B: 192.168.0.1
Адрес C: 192.168.0.100
Для их общения между собой не нужен шлюз, так как они находятся в одной сети, я так понимаю, маска у вас 255.255.255.0, правильно?
Соответственно, адрес C видит пакет от адреса A и отвечает A. Напрямую. В сеть. Без микротика. Он же не знает, что вы пакет через микротик (адрес B) зарулили =)
Тут у вас два варианта: или потестить с внешки и убедиться, что все работает, либо настроить src-nat пакетов (или маскарадинг, как угодно), уходящих на адрес C с микротика.
Но это уже вопрос технологии, к микротику он имеет посредственное отношение. Вам бы и на линукс-сервере пришлось то же самое делать, и причем почти в таком же синтаксисе =)