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

Mikrotik перенаправление на другой шлюз

Здравствуйте!

Возникла необходимость пустить всех клиентов локальной сети через другой шлюз (а конкретно через прозрачный squid);

И так имеем:

1) Mikrotik:

Eth1 - смотрит в сеть провайдера, DHCP Client;

Eth2(10.0.0.1) - смотрит в локальную сеть, DHCP Server - 10.0.0.0/20; (Lease time 3d)

Всё прекрасно работает, клиенты получают ip из своего диапазона с DNS 10.0.0.1 и шлюзом 10.0.0.1;

 

Далее был настроен комп, на ubuntu 14.04, прозрачный squid, завёрнут трафик с 80 на 3128 порт сквида, 443 на 3129 порт сквида.

Eth0 - DHCP client, смотрит в сеть интернет провайдера;

Eth1 - Смотрит в локальную сеть, адрес 10.0.9.1;

 

Требуется: всех клиентов локальной сети пропустить через шлюз 10.0.9.1;

проблемы: клиентам уже выдан шлюз 10.0.0.1, и время жизни настроек 3 дня. Менять это не хочется, т.к. новый шлюз будет использоваться всего 1 день.

Что испробавано: пробовал настроить ip->firewall->Mangle - mark routing ("onsquid") и IP->Routes - Dst.address:0.0.0.0/0 Distance:1 Gateway: 10.0.9.1 Routing mark: "onsquid". Но на клиенте ничего не открывается, страница "висит".

Если же на самом клиенте поменять шлюз 10.0.9.1 вместо 10.0.0.1 то всё отрабатывает отлично.

Так же пробовал через netmap перекинуть всех с 80 порта на 10.0.9.1:3128 и 443 на 10.0.9.1:3129 - но тоже тишина;

 

Как правильно перенаправить всех клиентов локальной сети на новый шлюз(или завернуть трафик через squid на 10.0.9.1)?

Share this post


Link to post
Share on other sites

Через терминал сделайте экспорт или принт правил и выложите, у меня такая подобная схема одна локальная сеть и пять каналов

Share this post


Link to post
Share on other sites

Возникла необходимость пустить всех клиентов локальной сети через другой шлюз (а конкретно через прозрачный squid);

И так имеем:

Eth2(10.0.0.1) - смотрит в локальную сеть, DHCP Server - 10.0.0.0/20; (Lease time 3d)

Что испробавано: пробовал настроить ip->firewall->Mangle - mark routing ("onsquid") и IP->Routes - Dst.address:0.0.0.0/0 Distance:1 Gateway: 10.0.9.1 Routing mark: "onsquid". Но на клиенте ничего не открывается, страница "висит".

Если же на самом клиенте поменять шлюз 10.0.9.1 вместо 10.0.0.1 то всё отрабатывает отлично.

 

Важное выделено жирным. То, что страница висит - это скорее всего циклическая переадресация, т.к. нужно создать исключение, что запрос не идет на 10.0.9.1.

 

Как правильно перенаправить всех клиентов локальной сети на новый шлюз(или завернуть трафик через squid на 10.0.9.1)?

 

Другой вариант развития событий:

 

Повесьте на один из интерфейсов микротика (можно туда же где и 10.0.0.1) сеть вида 10.0.20.1/24, на ваш сквид повесьте адрес 10.0.20.2 и в указанном вами правиле перенаправления, в качестве шлюза установите вместо 10.0.9.1 адрес 10.0.20.2.

 

Сейчас у вас получается, что вы создали перенаправление маршрута, а абонентский трафик туда не попадает, потому что находится в одной L2 сети с ним, т.к. маска /20 перекрывает сеть 10.0.9.х

Share this post


Link to post
Share on other sites

Важное выделено жирным. То, что страница висит - это скорее всего циклическая переадресация, т.к. нужно создать исключение, что запрос не идет на 10.0.9.1.

 

Как создать это исключение?

 

потом попробую перекинуть уже в 10.0.20.0/24

Share this post


Link to post
Share on other sites

Как создать это исключение?

 

Вы же когда правило в манглах создаете, что-то указываете? Нужно указать src.address = вашей подсети, из которой абонентов перенаправлять, dst.address = ! вашей подсети - то есть на любой запрос не на адрес локалки выполнять перенаправление. Если вы просто делаете перенаправление всех, то сменив маршрут данные опять вернуться в локалку, ведь прокси находится в ней, и правило по новой отработает и так по кругу.

Share this post


Link to post
Share on other sites

Вы же когда правило в манглах создаете, что-то указываете? Нужно указать src.address = вашей подсети, из которой абонентов перенаправлять, dst.address = ! вашей подсети - то есть на любой запрос не на адрес локалки выполнять перенаправление. Если вы просто делаете перенаправление всех, то сменив маршрут данные опять вернуться в локалку, ведь прокси находится в ней, и правило по новой отработает и так по кругу.

 

 

Я пока пробую перекинуть не всю подсеть, а свой локальный ip для теста.

Создаю правило Mangle:

chain: prerouting

src: 10.0.2.2

dst: !10.0.2.2 (пробовал и 10.0.0.0/20)

protocol: tcp

dst.port: 80,8080

Action: mark routing

New mark: testsquid

Passthrough: enable

 

И сам маршрут

IP -> Routes

Dst: 0.0.0.0/0

type: unicast

Gateway: 10.0.9.1

Distance: 1

Scope: 30

Target scope: 10

Routing mark: testsquid

 

И не работает :(

Это идея первоапрельской шутки, на squid настроен splash page(показать пользователю страницу-шутку, после чего он спокойно работает в интернете дальше) потому что именно он хорошо работает с компами которые ещё за NAT'ом в локальной сети(политика компании).

 

Так же пробовал принудительно в DHCP сервере выдавать шлюз 10.0.9.1 - и если подключить новое устройство, то всё отрабатывает хорошо.

Но текущие клиенты уже получили шлюз 10.0.0.1 :(

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.