Сложная маршрутизация на Mikrotik

Обсуждение ПО и его настройки
iSupport
Сообщения: 2359
Зарегистрирован: 06 фев 2011, 20:44

тогда наличие пакета на не его интерфейсе = проблема настроек


Граждане, сколько раз просил =) чем понятнее и точнее сформулирован вопрос - тем понятнее и точнее будет на него ответ.
Я просматриваю ВСЕ темы форума и стараюсь помочь в каждой из них
Поэтому, НА ЛС отвечаю в последнюю очередь
mistiq
Сообщения: 18
Зарегистрирован: 13 окт 2011, 09:55

Ладно, сейчас намеренно упростил схему до минимума.

LAN1 (192.168.2.0/24) ----РоутерБ (дефолт смотрит в сторону РоутерА ) ether1 ---- ether6 РоутерА (дефолт смотрит в сторону гейта провайдера за ether10)

Ether8 - LAN прокси
Ether9- WAN прокси

адресация
Б:

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

 ether1 192.168.1.2/30  |  dst-address=0.0.0.0/0 gateway=192.168.1.1 gateway-status=192.168.1.1 reachable ether1 distance=0 


A:

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

 ether6 192.168.1.1/30    |  dst-address=192.168.2.0/24 gateway=192.168.1.2 gateway-status=192.168.1.2 reachable ether6 distance=0 
 ether8 10.0.0.1/30 (Прокся 10.0.0.2/30)
 ether9 10.1.1.1/30 (Прокся 10.1.1.2/30)
 ether10 10.0.3.107/24 (Сеть провайдера, получается по DHCP)   |  dst-address=0.0.0.0/0 gateway=10.0.3.1 gateway-status=10.0.3.1 reachable ether10 distance=0


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

Добавляем правила заворота на прокси.

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

/ip firewall mangle add chain=prerouting dst-address-list=!local action=mark-routing new-routing-mark=route_to_proxy
/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.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=192.168.0.0/16 list=local
/ip firewall address-list add address=172.16.0.0/12 list=local


На проксе:

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

route add default 10.1.1.1
route add net 10.0.0.0/8 10.0.0.1
route add net 172.16.0.0/12 10.0.0.1
route add net 192.168.0.0/16 10.0.0.1

Правило НАТ:

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

chain=srcnat action=masquerade dst-address-list=!local out-interface=ether10


Оправляю пакет icmp на 8.8.8.8 c РоутерБ
Смотрю пакеты tcpdump на ЛАН интерфейсе прокси, вижу icmp src = 192.168.1.2 dst = 8.8.8.8
Смотрю пакеты на WAN интерфейсе прокси, вижу icmp src = 192.168.1.2 dst = 8.8.8.8
Все верно.
А дальше начинаются чудеса:
Смотрю пакеты на шлюзе провайдера (10.0.3.1) и вижу эти же пакеты icmp src = 192.168.1.2 dst = 8.8.8.8 которые дропаются т.к. провайдер не знает о сети 192.168.1.0 на этом интерфейсе.
Вывод: пакет по какой-то причине не попал на НАТ.
НО (!!!)
Когда я отправляю такой же пинг с самой прокси.
icmp src = 10.1.1.2 dst = 8.8.8.8.
На шлюзе провайдера я вижу: icmp src = 10.0.3.107 dst = 8.8.8.8.
В счетчиках НАТ микротик так же вижу эти пакетики.
Если я включаю дополнительно НАТ на самом прокси сервере: то мгновенно начинает работать интернет у клинтов (с РоутерБ и с LAN1).
Вывод: на НАТ микротика не попадают пакеты которые были завернуты на проксю правилом mangle. (Отмечу, через прокси все проходит корректно).

Вот такой ответ мне прислал суппорт самого микротика:
1st - mark routing that goes from client interfaces and route it to captive portal, that you are already doing, but your captive protal is not doing NAT, so as result, packets are sent back to captive portal till TLL=0. To avoid that, set up packet marks so that they are marking packets using destination address and incoming interface and send all these packets to your captive portal. Now packets from your captive portal router with same source address as before and are sent back. Addition of in-interface will avoid that. And then just NAT on external interface.

2nd - use bridge, so packets from users use captive portal as gateway.

1е собственно я и так повторил.
2е для меня неприемлемо совсем.

Я склоняюсь к версии что это ошибка в ROS. Точнее ошибка в логике работы реализации ipfilter микротик.


iSupport
Сообщения: 2359
Зарегистрирован: 06 фев 2011, 20:44

а любой пакет с прокси надо натить в интернет?


Нельзя ли добавить правило, нат с ин интерфейса *после прокси*, без адресов,то есть все что пришло с прокси натить

и поставить его в файрволле выше чем правило *заворот локалки на прокси*


Граждане, сколько раз просил =) чем понятнее и точнее сформулирован вопрос - тем понятнее и точнее будет на него ответ.
Я просматриваю ВСЕ темы форума и стараюсь помочь в каждой из них
Поэтому, НА ЛС отвечаю в последнюю очередь
mistiq
Сообщения: 18
Зарегистрирован: 13 окт 2011, 09:55

iSupport писал(а):а любой пакет с прокси надо натить в интернет?


Нельзя ли добавить правило, нат с ин интерфейса *после прокси*, без адресов,то есть все что пришло с прокси натить

и поставить его в файрволле выше чем правило *заворот локалки на прокси*


Извините, может я хреново объясняю.
Но мне это и нужно.
Но это не работает.

Сейчас выходом из моей ситуации является двойной нат. Сначала на проксе, затем на микротике.
Но это решение очень корявое.

Натит я пытался и с адресами и без. По всякому.

Вот эту часть фразы я не понял

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

и поставить его в файрволле   выше  чем правило *заворот локалки на прокси*

Нат делается в секции ip firewall NAT заворот на прокси делается в секции ip routing
Маркировка для заворота делается в секции ip firewall mangle
Как можно поставить что-то над чем-то?

И да, нат невозможно сделать на in-interface посколько нат это построутинг, а in-interface работает только в цепочках input и prerouting.


iSupport
Сообщения: 2359
Зарегистрирован: 06 фев 2011, 20:44

попробуйте сделайте нат на srcnat, там есть ин-интерфейс


Граждане, сколько раз просил =) чем понятнее и точнее сформулирован вопрос - тем понятнее и точнее будет на него ответ.
Я просматриваю ВСЕ темы форума и стараюсь помочь в каждой из них
Поэтому, НА ЛС отвечаю в последнюю очередь
mistiq
Сообщения: 18
Зарегистрирован: 13 окт 2011, 09:55

iSupport писал(а):попробуйте сделайте нат на srcnat, там есть ин-интерфейс

Разве? Беглый взгляд в мануал сказал что в srcnat можно только out-interface указать.
Хотя завтра конечно проверю.
Спасибо.
По результатам отпишусь.
iSupport, у меня к Вам вопрос. Вы же являетесь официальным ресселером или представителем микротика?


iSupport
Сообщения: 2359
Зарегистрирован: 06 фев 2011, 20:44

У SIA Mikrotikls ни в одной стране мира не представительств, такова политика компании.

Мы являемся не реселлером(посредником между дистрибьютором и конечным клиентом), а официальным дистрибьютором.

Можно уточнить, чем мотивирован этот вопрос?


Граждане, сколько раз просил =) чем понятнее и точнее сформулирован вопрос - тем понятнее и точнее будет на него ответ.
Я просматриваю ВСЕ темы форума и стараюсь помочь в каждой из них
Поэтому, НА ЛС отвечаю в последнюю очередь
Ответить