Здравствуйте, уважаемые! Пожалуйста помогите.Ситуация изъежжена, но прошу не пинать. Поиск юзал, ничего не получилось.
Итак, есть сетка локальная, два прова.
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И аналогично для второго прова. И вот всё это хозяйство НЕ РАБОТАЕТ!
Пожалуйста помогитое...
>В 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И не нужно ничего чудить с маршрутизацией.
>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 провайдер?
>>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 провайдер?Да.
а не подскажете как можно разграничить по логинам, т.е в зависимости от логина работает от нужного провайдера, логины хранятся в mysql
>а не подскажете как можно разграничить по логинам, т.е в зависимости от
>логина работает от нужного провайдера, логины хранятся в mysqlПри настроенной идентификации, сквиду глубоко начхать где храняться логины.
Соответственно весь тот богатый набор acl, который доступен для http_allow доступен и здесь (если только сквид не может использовать некоторые типы acl в tcp_outgoing_address).
Додуматься до следующего, наверное очень сложно :)
acl users4prov1 proxy_auth login11 login12 login13...
tcp_outgoing_address ip.of.proxy.from.prov1 users4prov1acl users4prov2 proxy_auth login21 login22 login23...
tcp_outgoing_address ip.of.proxy.from.prov2 users4prov2
Ну еще и external_acl_type можно прикрутить.