<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<span style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">Hello,</span><br>
</div>
<div dir="ltr">
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
I'm facing to issue with squid : i want to use squid to route http traffic though the fastest path ( based on RTT ).</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<span style="color:rgb(0,0,0); font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">Before to explain my problem, this is my configuration where :</span><br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<ul>
<li><b>client</b> is a http client : curl, wget, firefox, ...</li><li><b>squid</b> is a squid instance with <i>never_direct allow all</i> option to prevent direct access but with <b>squid a</b> and
<b>squid b</b> as parents peers and <i>query_icmp</i> <i>on</i> option</li><li><b>squid a</b> and <b>squid b</b> are squid instances that can make direct connections</li><li>all <b>squid </b>instances are cacheless and built with <i>--enable-icmp</i></li></ul>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<img size="27112" class="x_w-320 x_h-465" width="183" height="266" style="width:183.054px; height:266px; max-width:initial" data-outlook-trace="F:2|T:2" src="cid:d09aa68c-f986-4341-9d45-52c2a7a7a2d9"><br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Now, come issues. When <b>squid</b> send a request to <b>squid a</b> or <b>squid b</b>, two ICP packets are sent ( to
<b>squid a</b> and <b>squid b</b> ) and the squid which do the direct connection send an icmp to origin server and squid instances update their netdb informations (
<b>squid a</b> or <b>squid b</b> "locally" from icmp answer and <b>squid</b> though ICP ).</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
If <b>link a</b> slows down, the RTT will increase and <b>squid</b> will send all requests to
<b>squid b</b> because his RTT is low.</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
But, if <b>link a</b> come back and with a lower RTT than <b>squid b</b>, <b>squid a</b> will never know because no requests are made to him until RTT on <b>squid b</b> goes up ( upper than the "uppest" / "oldest" RTT of
<b>squid a</b> ).</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
How to deal with this scenario ? Maybe my approach is bad or even worst, it's not possible with squid ?</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
I can curl regulary on <b>squid a</b> and <b>squid b</b> to keep RTT up to date but this solution is more a workaround from my point of view than a good solution.<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
I can also restart <b>squid a</b> and <b>squid b</b> every 5 minutes for example to flush netdb informations but same things as above, not a good solution.</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Waiting to read you, i hope you have a solution for my case,</div>
<div class="x_elementToProof elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Théo BARRAGUE</div>
</div>
</body>
</html>