myst Posted November 7, 2011 Posted November 7, 2011 Коллеги, уже неделю бьюсь над проблемой. Есть RB1200 Ros 5.7/5.8 Задача: Заворачивать весь трафик в сеть Интернет из локальных сетей на определенный хост. Этот хост будет выступать своего рода captive portal для авторизации пользователей и подсчета трафика. Прокси НЕ натит, а только роутит между интерфейсами. Тестовая схема: /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> И так до бесконечности. Подскажите куда копать? Спасибо! Вставить ник Quote
martini Posted November 7, 2011 Posted November 7, 2011 ну так тыже заворачиваешь на прокси весь трафик, а не только 80 порт, ICMP у тебя заворачивается на прокси а тот походу не натит ничего а только проксирует. Тебе маркировать нужно только ХТТП трафик, а весь остальной направлять на интерфейс с натом в котором есть инет Вставить ник Quote
myst Posted November 7, 2011 Author Posted November 7, 2011 (edited) ну так тыже заворачиваешь на прокси весь трафик, а не только 80 порт, ICMP у тебя заворачивается на прокси а тот походу не натит ничего а только проксирует. Тебе маркировать нужно только ХТТП трафик, а весь остальной направлять на интерфейс с натом в котором есть инет Спасибо за ответ. Действительно я заворачиваю на прокси весь трафик и действительно прокси не натит. Мне это и нужно. Прокси это условное обозначение. На самом деле там будет что-то типа Captive Portal по функционалу. Тоесть авторизация пользователей и подсчет их трафика. Следовательно мне нужно весь исходящий-входящий Интернет трафик завернуть через этот "прокси". Edited November 7, 2011 by myst Вставить ник Quote
martini Posted November 7, 2011 Posted November 7, 2011 ну так может причина иненно в Captive Portal Вставить ник Quote
myst Posted November 7, 2011 Author Posted November 7, 2011 (edited) ну так может причина иненно в 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 November 7, 2011 by myst Вставить ник Quote
myst Posted November 10, 2011 Author Posted November 10, 2011 Уточнил проблему. Удалось поставить в разрыв между провайдером и роутеромА сниффер. Оказывается что пакеты из локальных сетей уходят "неотначенные" Правила такие: 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 пожалуйста обратите внимание на маленький ньюанс. В такой конфигурации пакеты инициированные самим прокси сервером натятся без проблем. Не натятся ТОЛЬКО транзитные пакеты. Спасибо. Вставить ник Quote
sexst Posted November 10, 2011 Posted November 10, 2011 Меня смущает то, что в манах по RouterOS про routing-mark написано "This kind of marks is used for policy routing purposes only" несмотря на возможность смотреть на эту метку в таблицах firewall. Вообще лично не пробовал натировать пакеты по routing-mark, но может попробуете это условие убрать? Вставить ник Quote
myst Posted November 10, 2011 Author Posted November 10, 2011 Меня смущает то, что в манах по 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 С прокси пакеты уходят. Те, что роутятся через прокси - нет. Честно говоря я пробовал все даже экзотические варианты. Вставить ник Quote
martini Posted November 10, 2011 Posted November 10, 2011 выйди на связь через аську, стукни в личку. Ато ты еще полгода будешь проблему решать )) Вставить ник Quote
myst Posted November 15, 2011 Author Posted November 15, 2011 Проблему победить не удалось. Теперь я на 100% уверен то микротик не маскарадит то, что было отмаркировано в прероутинге. Здесь есть официальные ресселеры? Хотелось бы создать тикет не только от своего имени, а от более официального лица. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.