Nekit73rus Опубликовано 31 марта, 2016 · Жалоба Здравствуйте! Возникла необходимость пустить всех клиентов локальной сети через другой шлюз (а конкретно через прозрачный 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)? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Svyatoybog Опубликовано 31 марта, 2016 · Жалоба Через терминал сделайте экспорт или принт правил и выложите, у меня такая подобная схема одна локальная сеть и пять каналов Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 31 марта, 2016 · Жалоба Возникла необходимость пустить всех клиентов локальной сети через другой шлюз (а конкретно через прозрачный 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.х Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Nekit73rus Опубликовано 31 марта, 2016 · Жалоба Важное выделено жирным. То, что страница висит - это скорее всего циклическая переадресация, т.к. нужно создать исключение, что запрос не идет на 10.0.9.1. Как создать это исключение? потом попробую перекинуть уже в 10.0.20.0/24 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 31 марта, 2016 · Жалоба Как создать это исключение? Вы же когда правило в манглах создаете, что-то указываете? Нужно указать src.address = вашей подсети, из которой абонентов перенаправлять, dst.address = ! вашей подсети - то есть на любой запрос не на адрес локалки выполнять перенаправление. Если вы просто делаете перенаправление всех, то сменив маршрут данные опять вернуться в локалку, ведь прокси находится в ней, и правило по новой отработает и так по кругу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Nekit73rus Опубликовано 1 апреля, 2016 · Жалоба Вы же когда правило в манглах создаете, что-то указываете? Нужно указать 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 :( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...