<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Like it or not (and I really don’t), the majority of modern CDNs are using TCP over Anycast.<div class=""><br class=""></div><div class="">It’s ugly and it’s prone to problems like this. It’s nice to see a customer with know-how actually publicizing and digging into the problem.</div><div class=""><br class=""></div><div class="">Until now, I believe an unknown number of customers have been suffering in silence or relegated to the ISPs “We can’t reproduce you problem” bin without resolution.</div><div class=""><br class=""></div><div class="">I’ve had lots of discussions on the subject and the usual end result is “It’s too hard to measure or quantify and there’s no visible contingent of impacted users”.</div><div class=""><br class=""></div><div class="">Now we at least have one visible impacted user.</div><div class=""><br class=""></div><div class="">Owen</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 13, 2019, at 09:19 , Anoop Ghanwani <<a href="mailto:anoop@alumni.duke.edu" class="">anoop@alumni.duke.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">Not to condone what cloudflare is doing, but...</div><div class=""><br class=""></div>An ECN connection will have different bits on various packets for the duration of the connection -- pure ACKs (ACKs not piggybacking on data) will have the ECN bits as 00b, while all other packets will have either 01b, 10b (when no congestion was experienced) or 11b (when congestion was experienced).  So using the ECN bits as part of the hash would affect performance throughout the life of the connection.</div><div dir="ltr" class=""><br class=""></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 13, 2019 at 9:00 AM Matt Corallo <<a href="mailto:nanog@as397444.net" target="_blank" class="">nanog@as397444.net</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Not ideal, sure, but if it’s only for the SYN (as you seem to indicate), splitting the flow shouldn’t have material performance degradation? <br class="">
<br class="">
> On Nov 13, 2019, at 11:51, Toke Høiland-Jørgensen <<a href="mailto:toke@toke.dk" target="_blank" class="">toke@toke.dk</a>> wrote:<br class="">
> <br class="">
> <br class="">
> <br class="">
>> On 13 November 2019 17:20:18 CET, Matt Corallo <<a href="mailto:netadmin@as397444.net" target="_blank" class="">netadmin@as397444.net</a>> wrote:<br class="">
>> This sounds like a bug on Cloudflare’s end (cause trying to do anycast<br class="">
>> TCP is... out of spec to say the least), not a bug in ECN/ECMP.<br class="">
> <br class="">
> Even without anycast, an ECMP shouldn't hash on the ECN bits. Doing so will split the flow over multiple paths; avoiding that is the whole point of doing the flow-based hashing in the first place.<br class="">
> <br class="">
> Anycast "only" turns a potential degradation of TCP performance into a hard failure... :)<br class="">
> <br class="">
> -Toke<br class="">
<br class="">
</blockquote></div></div>
</div></blockquote></div><br class=""></div></body></html>