У меня есть сервер с 10 адресами IPv4, и я хочу, чтобы Squid случайным образом выбрал один из этих адресов IPv4 для каждый запрос.
Моя текущая конфигурация для этого выглядит так:
acl random1 random 1/10
acl random2 random 1/10
acl random3 random 1/10
acl random4 random 1/10
acl random5 random 1/10
acl random6 random 1/10
acl random7 random 1/10
acl random8 random 1/10
acl random9 random 1/10
acl random10 random 1/10
tcp_outgoing_address 10.0.0.2 random1
tcp_outgoing_address 10.0.0.3 random2
tcp_outgoing_address 10.0.0.4 random3
tcp_outgoing_address 10.0.0.5 random4
tcp_outgoing_address 10.0.0.6 random5
tcp_outgoing_address 10.0.0.7 random6
tcp_outgoing_address 10.0.0.8 random7
tcp_outgoing_address 10.0.0.9 random8
tcp_outgoing_address 10.0.0.10 random9
tcp_outgoing_address 10.0.0.11 random10
Но это продолжает повторять основной IPv4-адрес сервера, как 96% запросов.
Есть ли способ избежать этого?
При выборе случайных значений вероятность выбора каждого IP-адреса определяется геометрическое распределение. Если вы хотите выбрать их единообразно, вероятность выбора IP-адреса (зная, что предыдущие были отброшены) должна быть 1/9
для второго, 1/8
для третьего и так далее:
acl random1 random 1/10
acl random2 random 1/9
acl random3 random 1/8
acl random4 random 1/7
acl random5 random 1/6
acl random6 random 1/5
acl random7 random 1/4
acl random8 random 1/3
acl random9 random 1/2
tcp_outgoing_address 10.0.0.2 random1
tcp_outgoing_address 10.0.0.3 random2
tcp_outgoing_address 10.0.0.4 random3
tcp_outgoing_address 10.0.0.5 random4
tcp_outgoing_address 10.0.0.6 random5
tcp_outgoing_address 10.0.0.7 random6
tcp_outgoing_address 10.0.0.8 random7
tcp_outgoing_address 10.0.0.9 random8
tcp_outgoing_address 10.0.0.10 random9
tcp_outgoing_address 10.0.0.11