Squid и два внешних IP(реализация разделения трафика), edem337, 04-Апр-07, 12:38 [смотреть все]Господа, в недавнем прошлом(месяц назад) перевел тариф с лимитки на безлимит. Как водится обещали приемлемую скорость, в итоге вышло "возвращение в 90е". Долго ругался с провайдером, в итоге дали второй IP и лимит 3Гб с уверенной скоростью. Теперь стоит вопрос реализации. Стоит Linux RH 9.0, eth0 - смотрит наружу, eth1 - LAN. Стоит FireStarter(могу ходить в инет без прокси) В идеале хочется, чтобы пользователи ходили по страничкам через лимит, а грузили файлы через анлим. Внешние ip - 83.217.х.х и 83.234.х.х eth0 -83.234.х.х Завел alias eth0:0 - 83.217.х.хРешил проверить на Squid'e Squid позволяет с помощью ACL создать правило(tcp_outgiong_address) для отправки через нужный канал. сначала установил ip одного клиента, чисто для проверки acl S_HOST src 192.168.1.5 tcp_outgoing_address 83.217.х.х S_HOST запускаю браузер - не рабоатет. Настраиваю ходить без прокси - идет через et0:0. до старта aliasa gw 83.234.х.х после - менятеся на 83.217.х.х. Кто нибудь бился с подобным? |
- Squid и два внешних IP(реализация разделения трафика), Sloboda, 14:18 , 04-Апр-07 (1)
- Squid и два внешних IP(реализация разделения трафика), edem337, 14:57 , 04-Апр-07 (2)
>iproute2 осваивать >если не получиться, и у меня будет время - подскажу >ключевые слова: /etc/iproute2/rt_tables и в iproute2: table, from, via прочел статью https://www.opennet.ru/base/net/iproute2_cebka.txt.html Познавательная статья На примере показано каким образом можно клиентские ip раскидать на разные ip провайдеров. Алгоритм я вижу так 1) настраиваю alias 2) устанавливаю в squid'е ACL по IP клиента acl FAST_HOST src 192.168.1.5 ... acl SLOW_HOST src 192.168.1.100 по расширениям acl SLOW_DOWN urlpath_regex -i \.exe$ .... acl SLOW_DOWN urlpath_regex -i \.rar$ по размеру заачки(правда на сколько я читал не все сервера поддерживают) и потом подставляю IP-шники своих реальных IP которые смотрят в инет tcp_outgiong_address 83.217.х.х FAST_HOST tcp_outgiong_address 83.234.х.х SLOW_HOST 3) далее для пакетов должны быть применены соответсвующие GetWay, то бишь FAST_HOST(начальство etc.) - GW 83.217.х.GW SLOW_DOWN (файлы+простые смертные) - GW 83.234.х.GW Затруднение у меня в пункте 3. Но возможно я что-то упустил.
- Squid и два внешних IP(реализация разделения трафика), Sloboda, 15:31 , 04-Апр-07 (3)
- Squid и два внешних IP(реализация разделения трафика), edem337, 16:31 , 04-Апр-07 (4)
>всё правильно и статья хорошая Статью изучил, вот только вопрос если честно возникает следкющий Вроде как бы iproute надо пакетыполагаю, что разруливать должно быть что-то типа, по живому тестить пока не могу #echo 200 inet_dsl1 >> /etc/iproute2/rt_tables #echo 201 inet_dsl2 >> /etc/iproute2/rt_tables #ip route add default via 83.217.x.GW dev eth0:0 table inet_dsl1 #ip route add via 83.234.x.GW dev eth0 table inet_dsl2 Но вопрос - как мне подать через squid команду(отмаркировать пакет) чтобы он пошел при объявлении tcp_outgoing_address именно по тому GW?
- Squid и два внешних IP(реализация разделения трафика), Sloboda, 17:10 , 04-Апр-07 (5)
- Squid и два внешних IP(реализация разделения трафика), edem337, 14:15 , 05-Апр-07 (7)
>это не сквид делает >сквид выставляет source >а роутингом рулит ядро :-) (iproute2 - это userspace-утилита) Прошу прощения за squid. >перечитай статью на предмет таких конструкций ># ip rule add from 192.168.1.20 table inet_adsl В описанном случае идет пересылка пакетов от определенных IP в таблицу маршрутизации inet_dsl. ---- 1) создаем таблицу маршрутов для медленного DSL(slow_dsl) # echo 200 slow_dsl > /etc/iproute2/rt_tables говорим 192.168.1.6 ходить через таблицу маршрутов slow_dsl # ip rule add from 192.168.1.6 table slow_dsl устанавливаем маршрут по умолчанию для slow_dsl с eth0 ходить через шлюз 83.234.0.GW # ip route add default via 83.234.0.GW dev eth0 table slow_dsl сбрасываем кэш маршрутизации # ip route flush cache 2) создаем таблицу маршрутов для быстрого DSL(fast_dsl) # echo 201 fast_dsl > /etc/iproute2/rt_tables говорим 192.168.1.5 ходить через таблицу маршрутов fast_dsl # ip rule add from 192.168.1.5 table fast_dsl устанавливаем маршрут по умолчанию для fast_dsl с eth0:0 ходить через шлюз 83.217.0.GW # ip route add default via 83.217.0.GW dev eth0:0 table fast_dsl сбрасываем кэш маршрутизации # ip route flush cache ---- а) Не понял, только в этом случае tcp_outgoing_address необходим или достаточно таблицы маршрутизации? б) необходимо ли указывать ip моих внешних ip 83.234.x.MyIP_1, 83.217.x.MyIP_2 # ip route add default via 83.234.0.GW dev eth0 src 83.234.x.MyIP_1 table slow_dsl # ip route add default via 83.234.0.GW dev eth0 src 83.217.x.MyIP_2 table fast_dsl б) Как разделить закачку файлов и просмотр страниц(что является более приорететным для меня).
- Squid и два внешних IP(реализация разделения трафика), kvs, 12:29 , 05-Апр-07 (6)
|