Hi Behcet, QUIC-LB is QUIC Load Balancers, the draft we've been talking about this whole time: https://datatracker.ietf.org/doc/draft-ietf-quic-load-balancers/
On Mon, Jan 18, 2021 at 8:04 AM Behcet Sarikaya <[email protected]> wrote: > Hi Martin, > > > On Fri, Jan 15, 2021 at 7:09 PM Martin Duke <[email protected]> > wrote: > >> I've been playing with Ian's algorithm (specifically, the way I had to >> modify it to fit into the QUIC-LB framework) and filed an issue. >> > > What is QUIC-LB? > > Is it public domain? > > Behcet > >> >> https://github.com/quicwg/load-balancers/issues/84 >> >> This is very long and hard to reason about, but the upshot is there are >> significant problems and without some clever design I'm not sure how to >> make this work. >> >> On Fri, Jan 15, 2021 at 12:26 PM Mikkel Fahnøe Jørgensen < >> [email protected]> wrote: >> >>> There is also >>> >>> https://en.wikipedia.org/wiki/Rendezvous_hashing >>> >>> >>> On 15 Jan 2021, at 21.18, Mikkel Fahnøe Jørgensen <[email protected]> >>> wrote: >>> >>> I would be hesitant to introduce a situation where a load balancer is >>> forced to use memory, especially memory it doesn’t fully control. It may be >>> fine as a choice, but not the only choice. >>> >>> Aside from potential attacks, there is also the hardware >>> cost/complexity. SHA256 and AES is pretty standard in almost anything, but >>> lots of RAM is a cost driver. >>> >>> It is really hard to estimate crypto vs lookup overhead, but it is far >>> from a given that lookup will be faster once the tables grow large. >>> >>> Less coordination is a good thing though. I’m afraid that without out of >>> band payload to coordinate, there will have to be a choice between >>> configuration and state. >>> >>> Mikkel >>> >>> On 15 Jan 2021, at 21.04, Martin Duke <[email protected]> wrote: >>> >>> To muddy this discussion a little further, after a little more thinking >>> I believe there's a way to generalize this approach to all three of the >>> original algorithms, encrypted or unencrypted, so there is never a need to >>> manually allocate server IDs. >>> >>> Again, the main tradeoff here is simpler configuration vs. more >>> complexity and state at the load balancer. >>> >>> As a document organization matter, rather than have six different >>> algorithms I would prefer to specify three with a separate section >>> describing the two separate ways to allocate a server ID. >>> >>> But it is not too late to yell "stop" at this multiplicity of options if >>> people feel the tradeoffs are clear-cut in one way or the other. >>> >>> On Mon, Jan 11, 2021 at 6:50 PM Martin Duke <[email protected]> >>> wrote: >>> >>>> Yes. Do you have an alternate suggestion? >>>> >>>> On Mon, Jan 11, 2021 at 5:54 PM Christian Huitema <[email protected]> >>>> wrote: >>>> >>>>> >>>>> On 1/11/2021 5:22 PM, Martin Duke wrote: >>>>> >>>>> Perhaps I should make some edits for clarity! >>>>> >>>>> On Mon, Jan 11, 2021, 16:52 Christian Huitema <[email protected]> >>>>> wrote: >>>>> >>>>>> I am looking at the text of section 4.2, and I am not sure how I >>>>>> would implement that. What should be the value of the config rotation >>>>>> bits >>>>>> in CID created by the server? >>>>>> >>>>> Any config includes the corresponding CR bits, and when generating the >>>>> CID it would use those bits. >>>>> >>>>> The confusing part is that, for this algorithm, a usable SID has to be >>>>> extracted from any CID, hence all the weird stuff about CIDs with >>>>> undefined >>>>> configs. >>>>> >>>>> Aside from that, it's like PCID: any server-generated CID uses the CR >>>>> bits in the config, optional length encoding, SID, server-use octets. >>>>> >>>>> >>>>>> Should the 6 other bits in the first octet be set to a CID Len or to >>>>>> a random value? >>>>>> >>>>> It depends on the rest of the config, as with the other algorithms. >>>>> >>>>>> >>>>>> Issss the timer set when the server ID is first added to the table, >>>>>> or is the timer reset each time a packet is received with that CID? In >>>>>> the >>>>>> latter case, is it reset when any packet is received, or only when a >>>>>> "first >>>>>> initial" packet is received? >>>>>> >>>>> When any packet is received with that SID (not CID), the expiration is >>>>> refreshed. >>>>> >>>>> OK. So we can have the following: >>>>> >>>>> 1) Server learns of Server-ID = X. >>>>> >>>>> 2) Server creates new CID with that server ID, uses it to complete >>>>> handshake. >>>>> >>>>> 3) Client maintains a long running connection with that CID. >>>>> >>>>> 4) Server keeps receiving messages with CID pointing to server-ID = X >>>>> >>>>> 5) server-ID=X never expires. >>>>> >>>>> Is that by design? >>>>> >>>>> -- Christian Huitema >>>>> >>>>> >>>>> >>> >>>
