When applications call the connect() function, if AAAA record is returned and correct routing is present, the system will start a TCP connection over IPv6. However, if the host is finally unreachable, the system waits until the TCP connection attempt fails, that is roughly 3 min (5 retries, backoff, well, you know that). Afaik, the only way to tune this timeout of 3 mins in the kernel is the tcp_syn_retries sysctl (RTO tuning not available in Linux TCP). By setting the value to 2, you can reduce the delay to ~10s which is more acceptable, and still 3 SYN are sent. In order not to modify uselessly the TCP parameters for standard IPv4 connections at the same time, it would be necessary to have a *separate* parameter-set to decrease the v6->v4 fallback delay.