The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"squid: cache_peer совместно с tcp_outgoing_address"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid и других прокси серверов (Прозрачный proxy)
Изначальное сообщение [ Отслеживать ]

"squid: cache_peer совместно с tcp_outgoing_address"  +/
Сообщение от ALex_hha (ok) on 22-Апр-13, 02:38 
Итак есть связка из двух прокси. главный squid запущен в transparent режиме. Пакеты заварачиваются через iptables + DNAT. У данного сквида указан cache_peer

cache_peer 192.168.220.2 sibling 3128 3130

И правила, по которым необходимо обращаться к соседу


acl AMAZON dstdom_regex -i (.*)s3\.amazonaws\.com
cache_peer_access 192.168.220.2 allow AMAZON

acl RACKSPACE dstdom_regex -i (.*)rackcdn\.com
cache_peer_access 192.168.220.2 allow RACKSPACE

И все классно работает, до тех пор пока я на основном сквиде не задаю параметр tcp_outgoing_address. Как только я там прописываю один из внеш ip адресов, то в логах я получаю ошибку и закачка после задержки 5-7 секунд начинается напрямую.


2013/04/22 00:26:58| TCP connection to 192.168.220.2/3128 failed

Собственно как победить данную проблему?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "squid: cache_peer совместно с tcp_outgoing_address"  +/
Сообщение от PavelR (ok) on 22-Апр-13, 09:33 

> И все классно работает, до тех пор пока я на основном сквиде
> не задаю параметр tcp_outgoing_address.
> Собственно как победить данную проблему?

1) Если всё классно работает, то зачем что-то менять :-)
1.1) Особенно, зачем прописывать внешний IP для доступа к внутреннему вышестоящему прокси
1.2) Пропиши правильную маршрутизацию в ip ru
1.3) Либо пропиши отдельный tcp_outgoing_address по условию вышестоящего прокси
2) Разъясни еще раз, что есть основной сквид, что не основной, где что прописывается, а то твоя терминология - она у тебя в голове и только тебе понятна, ИМХО.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "squid: cache_peer совместно с tcp_outgoing_address"  +/
Сообщение от ALex_hha (ok) on 22-Апр-13, 10:01 
>> И все классно работает, до тех пор пока я на основном сквиде
>> не задаю параметр tcp_outgoing_address.
>> Собственно как победить данную проблему?
> 1) Если всё классно работает, то зачем что-то менять :-)
> 1.1) Особенно, зачем прописывать внешний IP для доступа к внутреннему вышестоящему прокси

tcp_outgoing_address используется для маршрутизации трафика по соотв каналу в соотв с правилами в ip ru sh

> 1.2) Пропиши правильную маршрутизацию в ip ru

правильную это какую? На данный момент правила следующие


# ip ru sh
0:      from all lookup local
1000:   from all fwmark 0x3e8 lookup ISP1
2000:   from all fwmark 0x7d0 lookup ISP2
3011:   from all fwmark 0xbc3 lookup ISP3
32762:  from xxx.xxx.xxx.xxx lookup ISP1
32763:  from yyy.yyy.yyy.yyy lookup ISP2
32764:  from zzz.zzz.zzz.zzz lookup ISP3
32765:  from all lookup main
32767:  from all lookup default

> 1.3) Либо пропиши отдельный tcp_outgoing_address по условию вышестоящего прокси

пробовал так

acl squid_sibling dst 192.168.220.2
tcp_outgoing_address 192.168.220.1 squid_sibling

не помогает, ошибка та же. Может имеет значение порядок описания tcp_outgoing_address  в squid.conf?

> 2) Разъясни еще раз, что есть основной сквид, что не основной, где
> что прописывается, а то твоя терминология - она у тебя в
> голове и только тебе понятна, ИМХО.

как то так - http://i.piccy.info/i7/67e000ae268a9c8d8ad7a71ea67f3fdc/4-57...

основной squid стоит на дефолтном шлюзе, с соседом соединяется напрямую витой парой. У соседа свой выделенный канал.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "squid: cache_peer совместно с tcp_outgoing_address"  +/
Сообщение от PavelR (ok) on 22-Апр-13, 11:25 

>[оверквотинг удален]
> 0:      from all lookup local
> 1000:   from all fwmark 0x3e8 lookup ISP1
> 2000:   from all fwmark 0x7d0 lookup ISP2
> 3011:   from all fwmark 0xbc3 lookup ISP3
> 32762:  from xxx.xxx.xxx.xxx lookup ISP1
> 32763:  from yyy.yyy.yyy.yyy lookup ISP2
> 32764:  from zzz.zzz.zzz.zzz lookup ISP3
> 32765:  from all lookup main
> 32767:  from all lookup default
>

кроме правил, важно еще и то, что у тебя в ISP\d

Правильную - это такую:

http://www.opennet.ru/tips/2009_policy_route_linux.shtml

как у тебя трафик с xxx.x.x.x.x.x найдет путь к серверу в локалке, если ты его на провайдера отправляешь?

>> 1.3) Либо пропиши отдельный tcp_outgoing_address по условию вышестоящего прокси
> пробовал так
> acl squid_sibling dst 192.168.220.2
> tcp_outgoing_address 192.168.220.1 squid_sibling

и не должно помочь, с какого перепугу dst внезапно стало 220.2, если это .amazonaws\.com или rackcdn\.com ?

> не помогает, ошибка та же. Может имеет значение порядок описания tcp_outgoing_address  
> в squid.conf?

конечно имеет.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "squid: cache_peer совместно с tcp_outgoing_address"  +/
Сообщение от ALex_hha (ok) on 22-Апр-13, 13:46 
>[оверквотинг удален]
>> 1000:   from all fwmark 0x3e8 lookup ISP1
>> 2000:   from all fwmark 0x7d0 lookup ISP2
>> 3011:   from all fwmark 0xbc3 lookup ISP3
>> 32762:  from xxx.xxx.xxx.xxx lookup ISP1
>> 32763:  from yyy.yyy.yyy.yyy lookup ISP2
>> 32764:  from zzz.zzz.zzz.zzz lookup ISP3
>> 32765:  from all lookup main
>> 32767:  from all lookup default
>>
> кроме правил, важно еще и то, что у тебя в ISP\d

в ISP шлюз провайдера

# ip ro sh table ISP1
xxx.xxx.xxx.xxx/30 dev bond1.1000  scope link  src xxx.xxx.xxx.xxx
default via xxx.xxx.xxx.254 dev bond1.1000

> Правильную - это такую:
> http://www.opennet.ru/tips/2009_policy_route_linux.shtml
> как у тебя трафик с xxx.x.x.x.x.x найдет путь к серверу в локалке,
> если ты его на провайдера отправляешь?
>>> 1.3) Либо пропиши отдельный tcp_outgoing_address по условию вышестоящего прокси
>> пробовал так
>> acl squid_sibling dst 192.168.220.2
>> tcp_outgoing_address 192.168.220.1 squid_sibling
> и не должно помочь, с какого перепугу dst внезапно стало 220.2, если
> это .amazonaws\.com или rackcdn\.com ?

потому что на amazon и rackcdn у меня есть ACL

cache_peer_access 192.168.220.2 allow AMAZON
cache_peer_access 192.168.220.2 allow RACKCDN

и на эти домены обращение будет через 220.2. Или я что то не так понял?

>> не помогает, ошибка та же. Может имеет значение порядок описания tcp_outgoing_address
>> в squid.conf?
> конечно имеет.

тогда понятно, у меня первым стояло

tcp_outgoing_address xxx.xxx.xxx.xxx local_net

где local_net это 192.168.0.0/16

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "squid: cache_peer совместно с tcp_outgoing_address"  +/
Сообщение от ALex_hha (ok) on 17-Май-13, 15:20 
>[оверквотинг удален]
> если ты его на провайдера отправляешь?
>>> 1.3) Либо пропиши отдельный tcp_outgoing_address по условию вышестоящего прокси
>> пробовал так
>> acl squid_sibling dst 192.168.220.2
>> tcp_outgoing_address 192.168.220.1 squid_sibling
> и не должно помочь, с какого перепугу dst внезапно стало 220.2, если
> это .amazonaws\.com или rackcdn\.com ?
>> не помогает, ошибка та же. Может имеет значение порядок описания tcp_outgoing_address
>> в squid.conf?
> конечно имеет.

более правильным будет использование acl peername, которая доступна начиная со squid-3.1

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру