Jump to content
Калькуляторы

Mikrotik странная работа маркировки

Коллеги, уже неделю бьюсь над проблемой.

Есть RB1200 Ros 5.7/5.8

Задача: Заворачивать весь трафик в сеть Интернет из локальных сетей на определенный хост. Этот хост будет выступать своего рода captive portal для авторизации пользователей и подсчета трафика. Прокси НЕ натит, а только роутит между интерфейсами.

Тестовая схема:

a2245b16b22527498d865540d185dede.jpg

/ip firewall mangle add chain=prerouting src-address-list=local dst-address-list=!local action=mark-routing new-routing-mark=route_to_proxy in-interface=!ether9
/ip route add dst-address=0.0.0.0/0 gateway=10.1.1.2 routing-mark=route_to_proxy
/ip firewall address-list add address=10.0.0.0/8 list=local
/ip firewall address-list add address=172.16.0.0/12 list=local   
/ip firewall address-list add address=192.168.0.0/16 list=local

 

В соответствии с этим правилом все пакеты пришедшие на интерфейсы отличные от ether9 с src = списку локальных сетей и dst != этому списку отправляются на IP адрес прокси сервера.

По идее должно работать. Но при трассировке до публичного IP с RouterB и с клиента TestB наблюдается очень странная картина.

Трассировка с RouterB:

[admin@M3] > tool traceroute 8.8.8.8
# ADDRESS                                 RT1   RT2   RT3   STATUS              
1 192.168.168.1                           1ms   1ms   1ms                       
2 10.1.1.2                              1ms   1ms   1ms                       
[b]3 192.168.168.1                           1ms   1ms   1ms[/b]      

С роутера А трассировка до 8.8.8.8 отрабатывает правильно.

Ещё одна странность:

Выключаю порт ether9

Снова делаю трассировка с роутераВ до 8.8.8.8

[admin@M3] > tool traceroute 8.8.8.8
# ADDRESS                                 RT1   RT2   RT3   STATUS            
1 192.168.168.1                           1ms   1ms   1ms                     
2 10.1.1.2                             0ms   1ms   1ms                     
3 10.1.1.2                              1ms   1ms   1ms   host unreachable  
4 10.1.1.2                              1ms   1ms   1ms   host unreachable  
5 10.1.1.2                              1ms   1ms   1ms   host unreachable  
6 10.1.1.2                              1ms   1ms   1ms   host unreachable  
7 10.1.1.2                              1ms   1ms   1ms   host unreachable  
<SKIPPED>

И так до бесконечности.

 

Подскажите куда копать?

Спасибо!

Edited by myst

Share this post


Link to post
Share on other sites

ну так тыже заворачиваешь на прокси весь трафик, а не только 80 порт, ICMP у тебя заворачивается на прокси а тот походу не натит ничего а только проксирует.

Тебе маркировать нужно только ХТТП трафик, а весь остальной направлять на интерфейс с натом в котором есть инет

Share this post


Link to post
Share on other sites

ну так тыже заворачиваешь на прокси весь трафик, а не только 80 порт, ICMP у тебя заворачивается на прокси а тот походу не натит ничего а только проксирует.

Тебе маркировать нужно только ХТТП трафик, а весь остальной направлять на интерфейс с натом в котором есть инет

Спасибо за ответ.

Действительно я заворачиваю на прокси весь трафик и действительно прокси не натит. Мне это и нужно.

Прокси это условное обозначение. На самом деле там будет что-то типа Captive Portal по функционалу. Тоесть авторизация пользователей и подсчет их трафика.

Следовательно мне нужно весь исходящий-входящий Интернет трафик завернуть через этот "прокси".

Edited by myst

Share this post


Link to post
Share on other sites

ну так может причина иненно в Captive Portal

Share this post


Link to post
Share on other sites

ну так может причина иненно в Captive Portal

100% нет.

Как только эта схема не заработала, я заменил виндовый портал на машинку с freebsd и включенным роутингом.

На ЛАН интрефейсе я вижу что пакеты с тестБ на 8.8.8.8 приходят, на ВАН интерфейсе я вижу что они уходят.

Проблема именно в правиле мангл. Точнее в логике его работы.

 

 

Пробовал видоизменить правило

/ip firewall mangle add chain=prerouting src-address-list=local dst-address-list=!local action=mark-routing new-routing-mark=route_to_proxy in-interface=ether6

где ether6 аплинк до роутераВ - ничего не поменялось.

Edited by myst

Share this post


Link to post
Share on other sites

Уточнил проблему.

Удалось поставить в разрыв между провайдером и роутеромА сниффер.

 

Оказывается что пакеты из локальных сетей уходят "неотначенные"

 

Правила такие:

 

chain=prerouting action=mark-routing new-routing-mark=To_NAT src-address-list=local dst-address-list=!local passthrough=yes in-interface=ether9

 

chain=srcnat action=masquerade routing-mark=To_NAT src-address-list=local dst-address-list=!local out-interface=ether10

 

Вроде все просто и правильно. Ан нет.

Что может быть не так?

 

PS пожалуйста обратите внимание на маленький ньюанс.

В такой конфигурации пакеты инициированные самим прокси сервером натятся без проблем.

Не натятся ТОЛЬКО транзитные пакеты.

 

Спасибо.

Share this post


Link to post
Share on other sites

Меня смущает то, что в манах по RouterOS про routing-mark написано "This kind of marks is used for policy routing purposes only" несмотря на возможность смотреть на эту метку в таблицах firewall. Вообще лично не пробовал натировать пакеты по routing-mark, но может попробуете это условие убрать?

Share this post


Link to post
Share on other sites

Меня смущает то, что в манах по RouterOS про routing-mark написано "This kind of marks is used for policy routing purposes only" несмотря на возможность смотреть на эту метку в таблицах firewall. Вообще лично не пробовал натировать пакеты по routing-mark, но может попробуете это условие убрать?

Выключил правило

chain=prerouting action=mark-routing new-routing-mark=To_NAT src-address-list=local dst-address-list=!local passthrough=yes in-interface=ether9

Из правила НАТ убрал routing-mark=To_NAT

Ровным счетом ничего не поменялось.

[admin@M3] > tool traceroute 8.8.8.8

# ADDRESS RT1 RT2 RT3 STATUS

1 192.168.168.1 1ms 1ms 1ms

2 10.1.1.2 1ms 1ms 1ms

3 192.168.168.1 1ms 1ms 1ms

 

С прокси пакеты уходят.

Те, что роутятся через прокси - нет.

 

Честно говоря я пробовал все даже экзотические варианты.

Share this post


Link to post
Share on other sites

выйди на связь через аську, стукни в личку. Ато ты еще полгода будешь проблему решать ))

Share this post


Link to post
Share on other sites

Проблему победить не удалось.

 

Теперь я на 100% уверен то микротик не маскарадит то, что было отмаркировано в прероутинге.

Здесь есть официальные ресселеры? Хотелось бы создать тикет не только от своего имени, а от более официального лица.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this