URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 6025
[ Назад ]

Исходное сообщение
"Два провайдера"

Отправлено TimSS , 30-Мрт-09 13:18 
Здравствуйте, уважаемые! Пожалуйста помогите.

Ситуация изъежжена, но прошу не пинать. Поиск юзал, ничего не получилось.

Итак, есть сетка локальная, два прова.
eth1: 192.168.1.0/24
eth2: 192.168.2.0/24
eth3: 192.168.3.0/24
eth4: 123.4.106.8/255.255.255.192

Первый провайдер сидит на шлюзе 123.4.106.1, т.е. работает ч/з eth4 (он был всегда)
Второй провайдер -- адсл модем, его ip 192.168.1.253, т.е. он работает ч/з eth1 (его подключили недавно)

Задача: подсети 1,2 пускать через 2 провайдера, подсеть 3 -- через 1 провайдера.

Что я делаю:

В squid.conf пишу:

acl ser src 192.168.1.0/24 192.168.2.0/24
tcp_outgoing_address 192.168.5.5 ser

Как я понял переменна tcp_outgoing_address назначает адрес, который получают выходящие из сквида пакеты. Так?

Теперь нам надо направить этот адрес на нужный шлюз

ip rule add from 192.168.5.5 table prov1
ip route add default via 192.168.1.253 table prov1

И аналогично для второго прова. И вот всё это хозяйство НЕ РАБОТАЕТ!

Пожалуйста помогитое...


Содержание

Сообщения в этом обсуждении
"Два провайдера"
Отправлено JohnProfic , 30-Мрт-09 18:59 
>В squid.conf пишу:

acl ser src 192.168.1.0/24 192.168.2.0/24 
tcp_outgoing_address 192.168.5.5 ser

Примерно так:

acl prov1 src 192.168.3.0/24
acl prov2 src 192.168.1.0/24 192.168.2.0/24
tcp_outgoing_address адрес.этого.прокси.от.prov1 prov1
tcp_outgoing_address адрес.этого.прокси.от.prov2 prov2

Ту пару acl/tcp_..., которая указывает на маршрут по умолчанию можно выкинуть.

>Теперь нам надо направить этот адрес на нужный шлюз

ip rule add from 192.168.5.5 table prov1 
ip route add default via 192.168.1.253 table prov1

И не нужно ничего чудить с маршрутизацией.


"Два провайдера"
Отправлено TimSS , 30-Мрт-09 19:41 
>
acl prov1 src 192.168.3.0/24 
>acl prov2 src 192.168.1.0/24 192.168.2.0/24
>tcp_outgoing_address адрес.этого.прокси.от.prov1 prov1
>tcp_outgoing_address адрес.этого.прокси.от.prov2 prov2

адрес.этого.прокси.от.prov1 это адрес интерфейса, который находится в той же подсети, что и 1 провайдер?


"Два провайдера"
Отправлено JohnProfic , 30-Мрт-09 23:12 
>>
acl prov1 src 192.168.3.0/24 
>>acl prov2 src 192.168.1.0/24 192.168.2.0/24
>>tcp_outgoing_address адрес.этого.прокси.от.prov1 prov1
>>tcp_outgoing_address адрес.этого.прокси.от.prov2 prov2

>
>адрес.этого.прокси.от.prov1 это адрес интерфейса, который находится в той же подсети, что и
>1 провайдер?

Да.


"Два провайдера"
Отправлено synapse , 06-Апр-09 13:17 
а не подскажете как можно разграничить по логинам, т.е в зависимости от логина работает от нужного провайдера, логины хранятся в mysql



"Два провайдера"
Отправлено JohnProfic , 06-Апр-09 19:24 
>а не подскажете как можно разграничить по логинам, т.е в зависимости от
>логина работает от нужного провайдера, логины хранятся в mysql

При настроенной идентификации, сквиду глубоко начхать где храняться логины.
Соответственно весь тот богатый набор acl, который доступен для http_allow доступен и здесь (если только сквид не может использовать некоторые типы acl в tcp_outgoing_address).
Додуматься до следующего, наверное очень сложно :)


acl users4prov1 proxy_auth login11 login12 login13...
tcp_outgoing_address ip.of.proxy.from.prov1 users4prov1

acl users4prov2 proxy_auth login21 login22 login23...
tcp_outgoing_address ip.of.proxy.from.prov2 users4prov2


Ну еще и external_acl_type можно прикрутить.