On Thu, Dec 15, 2022 at 08:40:59PM -0700, Shawn Heisey wrote:
> On 12/15/22 09:47, Shawn Heisey wrote:
> > The version of curl with http3 support is not available in any of the
> > distro repos for my Ubuntu machines, so I found a docker image with it.
> > That works in cases where a browser won't switch, but that's because it
> > never tries TCP, it goes straight to UDP.  The problem doesn't break H3,
> > it just breaks a browser's ability to transition from TCP to UDP.
> 
> With the provided patch, the h3 is working well on the machine with this
> URL:
> 
> https://http3test.elyograg.org/
> 
> But it doesn't work correctly on the machine with this URL:
> 
> https://admin.elyograg.org/

Both work for me using firefox (green flash after reload).

(...)
> TLDR:  I also have another oddity.  The basement server is part of a
> pacemaker cluster which starts a virtual IP and haproxy on one of the
> servers, with the server in question having the highest resource placement
> setting.  Two of the servers in the cluster are bare metal, the third is a
> VM running on a third machine, providing a tiebreaker vote so the cluster
> works properly without STONITH.  Settings prevent the resources from
> starting on the VM, and cause haproxy to always be co-located with the
> virtual IP.  I had to go with a VM because the third machine is running
> Ubuntu 22.10 and I couldn't form the cluster with different versions of
> pacemaker/corosync/pcsd on that machine compared to the other two.

OK that's indeed a significant difference.

> If I bind quic4@0.0.0.0:443 then UDP/443 requests to that virtual IP do not
> work.  But if I bind quic4@192.168.217.170:443 which is that virtual IP,
> then UDP/443 requests do work.

Expected (even though annoying). It's likely that responses are sent from
the native IP address instead of the virtual one. That's actually due to
QUIC relying on UDP, and UDP not being well supported by the good old BSD
socket API (you can't specify the address to send from). We have a work
around for this in 2.8-dev, which comes with other benefits but for now
it's better to limit it to setups with less than a few thousands QUIC
connections (yours very likely qualifies based on your explanation).
I remembered we noted this limitation somehwere but can't find it anymore.
Maybe it was just in the announce message. At least we need to make it more
prominent (e.g. in the "bind" keyword documentation). You indeed need to
bind to both the native and the virtual IP addresses (you can have the
two on the same "bind" line, delimited by comma).

Hoping this helps,
Willy

Reply via email to