Назад | Перейти на главную страницу

Squid 3.2 - Правильная конфигурация для случайного исходящего IP-адреса с аутентификацией одного пользователя?

Я пытаюсь использовать AclRandom для Squid 3.2, и я думаю, что немного запутался в правильном методе для этого. Вот моя конфигурация:

http_port 3128
auth_param basic program /usr/local/squid32/libexec/basic_ncsa_auth /usr/local/squid32/etc/passwords
auth_param basic children 5
auth_param basic realm proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl my_auth proxy_auth REQUIRED
http_access allow my_auth

max_filedesc 32768

acl randomIP random 1/3
tcp_outgoing_address x.154.198.x randomIP
tcp_outgoing_address x.154.198.x randomIP
tcp_outgoing_address x.154.198.x randomIP

tcp_outgoing_address x.154.198.x

forwarded_for delete
via off

И он всегда использует первый IP-адрес в списке. Кто-нибудь знает, как я могу сделать так, чтобы он случайно использовал один из 3? Также я получаю много TCP_MISS для любого запрашиваемого веб-сайта, что-то еще выглядит странно?

Изменить: обновление с потенциальным решением:

http_port 3128
auth_param basic program /usr/local/squid32/libexec/basic_ncsa_auth /usr/local/squid32/etc/passwords
auth_param basic children 5
auth_param basic realm proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl my_auth proxy_auth REQUIRED
http_access allow my_auth
http_access allow localhost
http_access deny all

max_filedesc 32768

authenticate_ttl 5 seconds
authenticate_ip_ttl 1 seconds

acl r_14 random 1/14
acl r_13 random 1/13
acl r_12 random 1/12
acl r_11 random 1/11
acl r_10 random 1/10
acl r_9 random 1/9
acl r_8 random 1/8
acl r_7 random 1/7
acl r_6 random 1/6
acl r_5 random 1/5
acl r_4 random 1/4
acl r_3 random 1/3
acl r_2 random 1/2
acl r_1 random 1/1

tcp_outgoing_address x.x.198.145 r_14
tcp_outgoing_address x.x.198.146 r_13
tcp_outgoing_address x.x.198.147 r_12
tcp_outgoing_address x.x.198.148 r_11
tcp_outgoing_address x.x.198.149 r_10
tcp_outgoing_address x.x.198.150 r_9
tcp_outgoing_address x.x.198.151 r_8
tcp_outgoing_address x.x.198.152 r_7
tcp_outgoing_address x.x.198.153 r_6
tcp_outgoing_address x.x.198.154 r_5
tcp_outgoing_address x.x.198.155 r_4
tcp_outgoing_address x.x.198.156 r_3
tcp_outgoing_address x.x.198.157 r_2
tcp_outgoing_address x.x.198.158 r_1

tcp_outgoing_address x.x.198.148

forwarded_for delete
via off

В онлайн-документации есть пример трехстороннего разделения. Каждый шаг отбирает часть трафика, который попадает на этот шаг, а не часть всего трафика.

  • Начиная со всего трафика, занимающего 1/3, остается 2/3.
  • Возьмите половину 2/3 листьев 1/3
  • Возьмите всю оставшуюся 1/3

Squid-Cache-Wiki: Функция: ACL типа "Случайный"

acl third random 1/3
acl half random 1/2

tcp_outgoing_address x.154.198.x third
tcp_outgoing_address x.154.198.x half
tcp_outgoing_address x.154.198.x

В вашей конфигурации есть 1/3, 1/3, 1/3, и все это работает для:

  • Начиная со всех берут 1/3, оставляя 2/3
  • Возьмите 1/3 из 2/3 (2/9) листьев 4/9
  • Возьмите 1/3 из 4/9 (4/27), уйдет 8/27
  • Возьмите оставшиеся 8/27

Если ваш первый и четвертый исходящие адреса совпадают, то он получит 17/27 трафика.