Michail Опубликовано 19 января, 2011 · Жалоба Возникла дурацкая задача, нет понимания чем ее решать. На фирме дорогой инет с платой за трафик. Изначально на squid были запрещены всякие видеосервисы типа yotube? но сейчас возникла производственная необходимость им пользоваться. Для этого был куплен безлимитный радиоканал, который естественно все запросы предприятия не потянет. Есть мысль, повесить на этот радиоканал всякие низкоприоритетные сервисы типа youtube.com и прочего. Сходу совершенно непонятно, чем это сделать? Где можно прописать, что к примеру для сайта *.youtube.com default route eth2 ? Подскажите, в какую сторону смотреть? . Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 19 января, 2011 · Жалоба ip r add подсеть via адрес_на_eth2 Как-то так. Подсети нужно искать самому. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 (изменено) · Жалоба Abram Это и так очевидно. Вопрос-то как сделать по имени домена, а не по IP. Michail Делайте так: 1. Пишите acl в squid 2. Используете директиву tcp_outgoing_address сквида, чтобы назначить src ip для определённых доменов 3. По исходящему src ip с помощью iptables в таблице mangle маркируете интересный исходящий трафик 4. С помощью ip rule выпускаете промаркированный трафик через нужный gw. 5. Не забудьте отключить rp_filter, иначе обратный трафик через 2ой интерфейс будет дропаться. Идея понятна? Изменено 19 января, 2011 пользователем s.lobanov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 19 января, 2011 · Жалоба Michail Делайте так: 1. Пишите acl в squid 2. Используете директиву tcp_outgoing_address сквида, чтобы назначить src ip для определённых доменов 3. По исходящему src ip с помощью iptables в таблице mangle маркируете интересный исходящий трафик 4. С помощью ip rule выпускаете промаркированный трафик через нужный gw. 5. Не забудьте отключить rp_filter, иначе обратный трафик через 2ой интерфейс будет дропаться. Идея понятна? В общих чертах да, но подробней придется читать документацию. Более простых вариантов не существует? Или более подробных руководств вам не попадалось? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 19 января, 2011 · Жалоба Мне кажется кабельный оператор вас разводит, может с ним проще поговорить? Это как так что вам по дохлому радио дают без учёта трафика, а на кабеле дерут за трафик? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 19 января, 2011 · Жалоба Мне кажется кабельный оператор вас разводит, может с ним проще поговорить?Это как так что вам по дохлому радио дают без учёта трафика, а на кабеле дерут за трафик? Увы, интернет прилагается к договору аренды, где прямым текстом запрещено пользоваться услугами других операторов связи. Канал 100 мегабит, трафик стоит 0,1$ мег, что для youtube - убийственно. Соответственно дополнительный радиоканал это махровая нелегальщина, с целью снизить ежемесячные платежи. Использование дополнительного канала надо замаскировать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 · Жалоба Или более подробных руководств вам не попадалось? Иногда пишу более подробно, но squid не входит в мою область интересов, поэтому всю схему собирать не буду. По iptables/ip rule могу более подробно расписать, если надо, тогда вам останется только разобраться с acl и установкой source ip Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kirya Опубликовано 19 января, 2011 · Жалоба Более простых вариантов не существует?Или более подробных руководств вам не попадалось? 1. ACL-ем описываете youtube-овский домены, ну и другие по желанию. http://www.squid-cache.org/Doc/config/acl/ 2. Squid-ом разворачиваете трафик на них. http://www.squid-cache.org/Doc/config/tcp_outgoing_address/ А вот зачем s.lobanov предлагает ещё iptables-ом пакеты метить я как-то не догоняю... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 (изменено) · Жалоба Kirya Ну так два оператора, в таблице маршрутизации main будет дефолт на основного(дорогого) оператора, в дополнительной таблице маршрутизации(создаём её в файлике /etc/iproute2/rt_tables) будет дефолт на второго оператора. Если не метить трафик и не использовать эти метки в ip rule, то тогда пакеты до ютубов пойдут через default gw таблицы main с src ip второго оператора, что является в чистейшем виде ip spoofing-ом и такой абонентский трафик основной сервис-провайдер должен дропать Изменено 19 января, 2011 пользователем s.lobanov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 19 января, 2011 · Жалоба Или более подробных руководств вам не попадалось? Иногда пишу более подробно, но squid не входит в мою область интересов, поэтому всю схему собирать не буду. По iptables/ip rule могу более подробно расписать, если надо, тогда вам останется только разобраться с acl и установкой source ip Со сквидом то понятно, там все относительно просто. примерно так: acl radio_net src 10.0.1.0/24 tcp_outgoing_address 10.1.0.2 radio_net tcp_outgoing_address 10.1.0.3 А вот с iptables пока разбираюсь, не совсем понятно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 · Жалоба Допустим, на eth1(радио-канал) ip 1.1.1.2, со стороны провайдера 1.1.1.1 Тогда acl radio_net ютубы tcp_outgoing_address 1.1.1.2 radio_net Дальше добавляете таблицу radio в /etc/iproute2/rt_tables , далее: ip ro add t radio default via 1.1.1.1 ip ru add fwmark 100 lookup radio iptables -t mangle -I OUTPUT -s 1.1.1.2 -j MARK --set-mark 100 default gw в таблице main оставляете, т.е. дорого провайдера Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kirya Опубликовано 19 января, 2011 (изменено) · Жалоба Kirya Ну так два оператора, в таблице маршрутизации main будет дефолт на основного(дорогого) оператора, в дополнительной таблице маршрутизации(создаём её в файлике /etc/iproute2/rt_tables) будет дефолт на второго оператора. Если не метить трафик и не использовать эти метки в ip rule, то тогда пакеты до ютубов пойдут через default gw таблицы main с src ip второго оператора, что является в чистейшем виде ip spoofing-ом и такой абонентский трафик основной сервис-провайдер должен дропать Это у Вас слишком большой опыт работы в операторских сетях. :)На 99,9% у Michail стоящий Linux выполняет и функции NAT-а. Иначе б мы услышали вопрос как средствами BGP развернуть youtube во второй канал. :))) Соответственно метить ничего не надо. Просто забивается командочка ip route add default dev $IF2 src $IP2 metric 2 где нужно подставить значения второго интерфейса. (Пишу на память, linux-а под рукой нет) Iproute2 в отличии от сисек умеет роутить по src-ip. Далее все, имеющее IP второго интерфейса, полетит соответсвенно через второй канал. Изменено 19 января, 2011 пользователем Kirya Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 19 января, 2011 · Жалоба Kirya Ну так два оператора, в таблице маршрутизации main будет дефолт на основного(дорогого) оператора, в дополнительной таблице маршрутизации(создаём её в файлике /etc/iproute2/rt_tables) будет дефолт на второго оператора. Если не метить трафик и не использовать эти метки в ip rule, то тогда пакеты до ютубов пойдут через default gw таблицы main с src ip второго оператора, что является в чистейшем виде ip spoofing-ом и такой абонентский трафик основной сервис-провайдер должен дропать Это у Вас слишком большой опыт работы в операторских сетях. :)На 99,9% у Michail стоящий Linux выполняет и функции NAT-а. Иначе б мы услышали вопрос как средствами BGP развернуть youtube во второй канал. :))) Соответственно метить ничего не надо. Просто забивается командочка ip route add default dev $IF2 src $IP2 metric 2 где нужно подставить значения второго интерфейса. (Пишу на память, linux-а под рукой нет) Iproute2 в отличии от сисек умеет роутить по src-ip. Далее все, имеющее IP второго интерфейса, полетит соответсвенно через второй канал. Точно! "Внутриофис" естественно натится. ;) Спасибо за упрощение задачи. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 · Жалоба Просто забивается командочкаip route add default dev $IF2 src $IP2 metric 2 где нужно подставить значения второго интерфейса. (Пишу на память, linux-а под рукой нет) Iproute2 в отличии от сисек умеет роутить по src-ip. Далее все, имеющее IP второго интерфейса, полетит соответсвенно через второй канал. PBR делается с помощью ip rule, а не ip route Что-то я не вижу в документации на ip route возможность классификации пакетов по src_ip. http://www.policyrouting.org/iproute2.doc.html#ss9.5.1 src это указание предпочительного src_ip, которое используется в случае, если приложение само не заказывает src_ip (тогда он назначается по лучшей записи в таблице маршрутизации). К маршрутизации на основе адреса источника вроде как никакого отношения не имеет. Если я не прав, подскажите, с удовольствием будут использовать ip route вместо iptables+ip rule+ip route. "Внутриофис" естественно натится. ;) Исходя из Вашего первого у вас в офисе используется прокси, а не нат. Или и то и то? Или прозрачная прокси? Уточните, пожалуйста. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 19 января, 2011 (изменено) · Жалоба "Внутриофис" естественно натится. ;) Исходя из Вашего первого у вас в офисе используется прокси, а не нат. Или и то и то? Или прозрачная прокси? Уточните, пожалуйста. NAT + прозрачный squid на который трафик заворачивает iptables. Внутриофисные компы имеют адреса из 192 подсети. Изменено 19 января, 2011 пользователем Michail Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 · Жалоба Т.е. на squid заворачивается только 80ый порт? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 19 января, 2011 · Жалоба Т.е. на squid заворачивается только 80ый порт?Вот так заворачивается:iptables -t nat -A PREROUTING -s 192.168.Х.0/24 -i eth1 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.Х.Х:3128 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 января, 2011 · Жалоба То что я описал будет работать в вашей схеме. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kirya Опубликовано 20 января, 2011 · Жалоба Если я не прав, подскажите, с удовольствием будут использовать ip route вместо iptables+ip rule+ip route.Хочешь корректно-документированно работать через ip rule - No Problem.ip rule add from IP_2 table Radio ip route add default via GW_2 src IP_2 table Radio Зачем только в этой задаче лишнюю маркировку делать - не понимаю. ps. Данная схема кстати в дальнейшем всего лишь игрой содержимого таблицы Radio позволит принудительно заворачивать не-web-трафик нужных ip внутрисети в радиоканал. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 20 января, 2011 · Жалоба Если я не прав, подскажите, с удовольствием будут использовать ip route вместо iptables+ip rule+ip route.Хочешь корректно-документированно работать через ip rule - No Problem.ip rule add from IP_2 table Radio ip route add default via GW_2 src IP_2 table Radio Зачем только в этой задаче лишнюю маркировку делать - не понимаю. Ага, так согласен. Забыл что у rule есть селектор from, поэтому сходу дал универсальное решение(с помощью mark). Всё же интересно, без ip rule можно обойтись? похоже что нельзя. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Michail Опубликовано 25 апреля, 2011 · Жалоба То что я описал будет работать в вашей схеме. Поднимаю старую тему, возник дурацкий вопрос, а как проверить, что эта конструкция работает нормально? Делать с клиентских машин из внутрисети "tracert youtube.com" бессмысленно - пакеты не попадут на squid. Из браузера youtube.com открывается, но как проверить, что он ходит через правильный интерфейс и что не образовалось "петель"? Сетевая карта с дополнительным каналом - eth2 eth2 addr - 192.168.89.252 eth2 gw - 192.168.89.76 Текущие настройки: /etc/squid/squid.conf acl radio_net dstdomain youtube.com tcp_outgoing_address 192.168.89.76 radio_net /etc/iproute2/rt_tables 100 radio и три команды: ip ro add t radio default via 192.168.89.252 ip ru add fwmark 100 lookup radio iptables -t mangle -I OUTPUT -s 192.168.89.76 -j MARK --set-mark 100 Есть у меня ощущение, что работает оно по прежнему через основной канал. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 26 апреля, 2011 · Жалоба Послушать tshark-ом например. Или посмотреть iftop-ом. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...