Hello Baptiste,

On 21 February 2018 at 08:45, Baptiste <bed...@gmail.com> wrote:
>> Is this downgrade at good thing in the first place? Doesn't it hide
>> configuration and network issues, make troubleshooting more complex
>> and the haproxy behavior less predictable?
>
>
> It is an rfc recommendation (rfc number is commented somewhere in the source
> code, but I am on a mobile and can't access it).
> Its purpose is to hide networking issues when responses has to cross the
> internet and behavior is not predictable.

And I can see how this would be useful in end-user situations,
browser, smartphone apps, etc.

However in Haproxy the administrator *explicitly* configures a higher
payload size, because this higher payload size is probably actually
*required* to get all backend servers. Silently downgrading the
payload size is harmful in my opinion here.



>> When we see a response with the TC flag set, do we drop it or do we
>> still consider the DNS response?
>
> Haproxy ignores tc flag for now.

Ok, but you can see how ignoring the TC flag, combined with automatic
payload size downgrade will make the backend servers number fluctuate
with a little bit of packet loss? So with 40 servers in DNS and the
loss of a single packet we will downgrade the entire backend to
whatever fitted in the 1280 byte downgraded response.

I would call this behavior highly undesirable.


Note: networks/firewalls/router may more likely drop fragmented IP
packets than "normal" IP packets (as they may try to reassemble them
to actually apply layer 4+ ACLs, which requires buffers, which can
overflow) and this makes it even worse.



> Later, it will have to trigger a failover to tcp.

Failing over to TCP on TC responses is the proper solution to this
all, but in the meantime I would argue that we should make the
behavior as predictable and stable as we can.



Let me know what you think,

Lukas

Reply via email to