<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">just to tell you <div class="">i updated the acl as below :</div><div class=""><div class="">acl half10001 random 0.0009980010000000</div><div class="">acl half10006 random 0.0009930209650350</div><div class="">acl half10011 random 0.0009880657804942</div><div class="">acl half10020 random 0.0009792086759647</div><div class="">acl half10037 random 0.0009626946373158</div><div class="">acl half10043 random 0.0009569328906720</div><div class="">acl half10059 random 0.0009417362622232</div><div class="">acl half10079 random 0.0009230793978373</div><div class="">acl half10082 random 0.0009203129279589</div><div class="">acl half10084 random 0.0009184732224159</div><div class="">acl half10094 random 0.0009093297114627</div><div class="">acl half10098 random 0.0009056978449587</div><div class="">acl half10109 random 0.0008957848329039</div><div class="">acl half10113 random 0.0008922070646991</div><div class="">acl half10114 random 0.0008913148576344</div><div class="">acl half10122 random 0.0008842092457380</div><div class="">acl half10137 random 0.0008710385479118</div><div class="">acl half10154 random 0.0008563487636013</div><div class="">acl half10168 random 0.0008444374977929</div><div class="">acl half10171 random 0.0008419067177676</div><div class="">acl half10173 random 0.0008402237462388</div><div class="">acl half10218 random 0.0008032337005613</div><div class="">acl half10221 random 0.0008008264083574</div><div class="">acl half10222 random 0.0008000255819491</div><div class="">acl half10223 random 0.0007992255563671</div><div class="">acl half10227 random 0.0007960334462989</div><div class="">acl half10247 random 0.0007802631200941</div><div class="">acl half10248 random 0.0007794828569740</div><div class="">.</div><div class="">.</div><div class="">.</div><div class="">.</div><div class="">.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">but the rotation is very bad and the outgoing ip now is the ip that is on my eth0 ipv6 address  only .</div><div class="">i mean the lists above not working at all and all request go with  1 ipv6 which is the ip that is on my eth0 address .</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">what wrong did i do ?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On Aug 28, 2016, at 11:04 AM, --Ahmad-- <<a href="mailto:ahmed.zaeem@netstream.ps" class="">ahmed.zaeem@netstream.ps</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">thanks for reply <div class=""><br class=""></div><div class="">how about the length of the number?</div><div class=""><br class=""></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class="">1/1000 to which digits should i round ??</font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class="">4 or 5 6 digits ?</font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class="">AS AN EXAMPLE the 1/1000 probabilities will have the acls as below :</font></div><div class=""><span style="font-family: -webkit-standard; font-size: inherit;" class=""><br class=""></span></div><div class=""><span style="font-family: -webkit-standard; font-size: inherit;" class=""><br class=""></span></div><div class=""><span style="font-family: -webkit-standard; font-size: inherit;" class="">0.001 0.000999 0.000998001 0.000997002999 0.000996005996001</span></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class="">the question is how many digits should i round ?</font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class="">will squid understand the long digits ?</font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class="">cheers</font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font></div><div class=""><font color="#007700" face="Fira Mono, Source Code Pro, monospace" class=""><br class=""></font><div class=""><blockquote type="cite" class=""><div class="">On Aug 28, 2016, at 2:38 AM, Alex Rousskov <<a href="mailto:rousskov@measurement-factory.com" class="">rousskov@measurement-factory.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">On 08/27/2016 04:34 PM, --Ahmad-- wrote:<br class=""><br class=""><blockquote type="cite" class="">i guess i need to create probability 1/1000 for each ip.<br class=""></blockquote><br class="">Yes, but that is _not_ the same as 1/1000 probability for each<br class="">tcp_outgoing_address rule, unfortunately. tcp_outgoing_address rules are<br class="">evaluated top to bottom until the first matches. If you have N rules and<br class="">each rule has a 1/N probability of a match in isolation, then you will<br class="">get the following probabilities of a match when the rules are combined:<br class=""><br class="">  rule #0: 1/N   -- good!<br class="">  rule #1: (1-1/N) * 1/N  -- which is not 1/N<br class="">  rule #2: (1-1/N) * (1-1/N) * 1/N  -- even less 1/N than rule #2 was<br class="">  rule #3: (1-1/N) * (1-1/N) * (1-1/N) * 1/N  -- and getting worse!<br class="">  ...<br class=""><br class="">To simplify equations, let me denote 1/N as p and (1-1/N) as q. With<br class="">your incorrect 1/N ACLs, you get the following probabilities (I am just<br class="">rewriting the above using p and q):<br class=""><br class="">  rule #0: p<br class="">  rule #1: q * p<br class="">  rule #2: q*q * p<br class="">  rule #3: q*q*q * p<br class="">  ...<br class=""><br class="">If you are still unsure, consider the simple case of just 2 rules<br class="">(instead of 1000). You want the second rule to match 50% of the time. If<br class="">you give the second rule ACL the same 1/2 probability of a match, then<br class="">the second rule will only match 1/4 of the time because it will match<br class="">only when the previous rule did _not_ match (1/2) _and_ when its own ACL<br class="">matched (1/2): 1/2*1/2 = 1/4.<br class=""><br class=""><br class="">To compensate for the cumulative effect of rules evaluation, you need<br class="">rule i to have p/(q^i) probability of a match (where "q^i" is "q to the<br class="">power of i"). With that, you will always get the same probability of a<br class="">match (p) for each rule when that rule is evaluated:<br class=""><br class="">  rule #0: p<br class="">  rule #1: q * p/q = p<br class="">  rule #2: q*q * p/(q*q) = p<br class="">  rule #3: q*q*q * p/(q*q*q) = p<br class="">  ...<br class="">  rule #998: q^998 * p/(q^998) = p<br class=""><br class="">To avoid uncertainty, the last rule (rule #999 in the above notation)<br class="">should use the "all" ACL (i.e., it will always match).<br class=""><br class=""><br class=""><blockquote type="cite" class="">how can i create the randomized acls ???<br class=""></blockquote><br class="">I suggest writing a script that generates 999 ACLs with correct p/(q^i)<br class="">probability and the corresponding tcp_outgoing_address lines to match them.<br class=""><br class="">Please note that computing ~500 random ACL matches for each outgoing<br class="">Squid connection (or is it each request?) is not going to be<br class="">instantaneous! If you are worried about Squid performance, then you may<br class="">want to add custom Squid code to select a random or round-robin IP<br class="">address out of a pool of 1000 addresses instead.<br class=""><br class="">[ It is not going to be easy, but if you do it right, the same new<br class="">configuration interface and underlying code can then be applied to other<br class="">similar tasks in Squid (e.g., selecting one of several load-balanced<br class="">ICAP services). In that case, it would be a welcomed feature that may be<br class="">officially accepted. If you decide to make this generally useful, then I<br class="">recommend getting your configuration design pre-approved on squid-dev<br class="">before you implement anything (or before you pay somebody else to<br class="">implement it)! ]<br class=""><br class=""><br class=""><blockquote type="cite" class="">is my settings below is correct ??<br class=""></blockquote><br class="">No. Your ACL(s) and rule probabilities are wrong. See above.<br class=""><br class=""><br class="">HTH,<br class=""><br class="">Alex.<br class=""><br class=""></div></div></blockquote></div><br class=""></div></div>_______________________________________________<br class="">squid-users mailing list<br class=""><a href="mailto:squid-users@lists.squid-cache.org" class="">squid-users@lists.squid-cache.org</a><br class="">http://lists.squid-cache.org/listinfo/squid-users<br class=""></div></blockquote></div><br class=""></div></body></html>