DNAT, несколько провайдеров

Сообщения не соответствующие ПФ, а также неоднократно повторяющиеся Темы
Ответить
Merk
Сообщения: 1
Зарегистрирован: 09 сен 2014, 14:26

11 сен 2014, 13:10

Микротик 2011UAS, 5й LAN включен в локальную сеть, в 9й LAN подключен провайдер (transtelecom2), интерфейсу присвоен белый стат. адрес х.х.х.х. В будущем будут подключены еще несколько провайдеров.
Задача: нужно пробросить порт 4890 (радмин), дабы получать доступ извне через каждого провайдера, на локальный компьютер 10.8.0.200. Таким образом, требуется сделать так, чтобы ответ шел через того же провайдера, с которого и пришел запрос.
Помечаю трафик, пришедший с первого провайдера, и маршрут, который будет использован при ответе:

 
[admin@MikroTik] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; mark conn transtelecom2-in
chain=prerouting action=mark-connection new-connection-mark=transtelecom2-in passthrough=no connection-state=new in-interface=ether9

1 chain=prerouting action=mark-routing new-routing-mark=transtelecom2-out passthrough=no connection-mark=transtelecom2-in

Порт 4890 проброшен:
 
[admin@MikroTik] /ip firewall nat> print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; transtelecom2
chain=srcnat action=masquerade src-address-list=local dst-address-list=!local out-interface=ether9
...
...

6 ;;; RDP200
chain=dstnat action=dst-nat to-addresses=10.8.0.200 to-ports=4890 protocol=tcp dst-address=х.х.х.х dst-port=4890

Создал маршруты: дефоулт- без маркировок (под номером 3) и маркированный - для того, чтоб ответ шел именно через того же провайдера, с которого пришел запрос(под номером 2):
 
[admin@MikroTik] /ip route> print
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
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 A S ;;; metka transtelecom2-icmp
0.0.0.0/0 х.х.х.y 1
1 X S ;;; route for users_megaline
0.0.0.0/0 Megaline_100035 1
2 A S ;;; metka transtelecom2-out
0.0.0.0/0 х.х.х.y 1
3 A S ;;; marshrut bez routing-mark
0.0.0.0/0 х.х.х.y 25
4 ADC 10.8.0.0/24 10.8.0.5 ether5 0
5 ADC 10.8.4.0/30 10.8.4.1 ether10 0
6 ADC Х.Х.Х.Z/30 X.X.X.X ether9 0

в фильтрах ничего особенного:
 
[admin@MikroTik] /ip firewall filter> print
Flags: X - disabled, I - invalid, D - dynamic
...
4 ;;; Drop Invalid connections
chain=input action=drop connection-state=invalid

5 ;;; Drop block-list connections
chain=forward action=drop connection-state=new src-address-list=block

...

10 ;;; Allow established connections
chain=input action=accept connection-state=established

11 ;;; Allow related connections
chain=input action=accept connection-state=related

12 ;;; full access for Local
chain=input action=accept src-address-list=local

13 ;;; full access for Local
chain=forward action=accept src-address-list=local

14 ;;; All other inputs drop
chain=input action=drop
-- [Q quit|D dump|up|down]


В общем, если последнее правило манглов (под номером 1) задизейблить, то доступ извне на порт работает, клиент извне успешно подключается к радмину и может управлять компьютером. Но в этом случае трафик остается без routing-mark, т.е. пойдет по default-маршруту. Как только я активирую это правило, доступ извне пропадает.
Уже несколько дней курю мануалы, но просветления пока не приходит, поэтому прошу помощи здесь.


Ответить