wan+tunnel и mangle/routing/nat

Базовая функциональность RouterOS
Ответить
shin
Сообщения: 2
Зарегистрирован: 09 май 2018, 18:02

wan+tunnel и mangle/routing/nat

Сообщение shin » 09 май 2018, 19:02

Доброго времени суток.

Есть вопрос по настройке ната/роутинга.
есть RouterBOARD 750G r3
на входе имеем эзернет.
настроил l2tp/ipsec тунель - работает. пинги ходят из локальной сети на удаленный сервер.
хотел настроить так, что бы некоторые пакеты ходили через тунель.
если прописать статик роут на конкретный адрес - работает замечательно.
но хотелось сделать немного удобнее, через mangle

для примера, попробовал сделать, чтобы все пакеты содержащие microsoft ходили через тунель.

Код: Выделить всё

[[email protected]] > /ip firewall mangle print all
Flags: X - disabled, I - invalid, D - dynamic 
 0    chain=prerouting action=mark-routing new-routing-mark=tst passthrough=yes content=microsoft log=no log-prefix="" 

Код: Выделить всё

[[email protected]] > /ip firewall nat print all
Flags: X - disabled, I - invalid, D - dynamic 
 0    ;;; defconf: masquerade
      chain=srcnat action=masquerade out-interface-list=WAN ipsec-policy=out,none 

 1    chain=srcnat action=masquerade out-interface=l2tp-out1 

Код: Выделить всё

[[email protected]] > /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=0.0.0.0/0 pref-src=192.168.10.50 gateway=l2tp-out1 gateway-status=l2tp-out1 reachable distance=1 scope=30 
        target-scope=10 routing-mark=tst 

 1 ADS  dst-address=0.0.0.0/0 gateway=192.168.11.1 gateway-status=192.168.11.1 reachable via  ether1 distance=1 scope=30 
        target-scope=10 vrf-interface=ether1 

 2 ADC  dst-address=192.168.10.1/32 pref-src=192.168.10.50 gateway=l2tp-out1 gateway-status=l2tp-out1 reachable distance=0 
        scope=10 

 3 ADC  dst-address=192.168.11.0/24 pref-src=192.168.11.4 gateway=ether1 gateway-status=ether1 reachable distance=0 scope=10 

 4 ADC  dst-address=192.168.88.0/24 pref-src=192.168.88.1 gateway=bridge gateway-status=bridge reachable distance=0 scope=10
пакеты маркируются - роутятся в тунель, но натятся как буд-то пакеты идут в wan а не в тунель.
вот дамп с удаленного сервера:

Код: Выделить всё

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ng0, link-type NULL (BSD loopback), capture size 262144 bytes
15:56:03.506472 IP 192.168.11.4.59969 > 40.77.226.250.https: Flags [P.], seq 3247708714:3247708963, ack 3177452490, win 258, length 249
15:56:03.708905 IP 192.168.11.4.60023 > 104.43.195.251.http: Flags [P.], seq 887642315:887643234, ack 3751558375, win 258, length 919: HTTP: GET / HTTP/1.1
Что я делаю не так? :)

Аватара пользователя
Chupaka
Сообщения: 988
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: wan+tunnel и mangle/routing/nat

Сообщение Chupaka » 10 май 2018, 11:02

Доброго. Вы "не так" маркируете пакет. Использование параметра content предполагает, что по соединению уже пошли данные. А как мы помним из базовых знаний по протоколу TCP, соединение, прежде чем по нему потекут данные, необходимо ещё установить - SYN, SYN/ACK-пакетами. В них данных нет.

В итоге у вас получается такая ситуация: соединение устанавливается через WAN, натируется адресом WAN, потом в определённый момент в нём проскакивает пакет, содержащий кодовое слово ("microsoft") - и этот пакет отправляется в l2tp-тоннель. Естественно, натировать в адрес другого подключения данное соединение уже поздно, поэтому этот одинокий пакет отправляется с адресом WAN-подключения.

Резюме: решать, через какой канал пойдёт TCP-соединение, необходимо на первом пакете, по IP-адресам или портам. Потом уже поздно :)

shin
Сообщения: 2
Зарегистрирован: 09 май 2018, 18:02

Re: wan+tunnel и mangle/routing/nat

Сообщение shin » 10 май 2018, 11:52

Спасибо за ответ.
Вот ведь...
буду думать как тогда поступить.

Ответить