[PATCH] Prefer address family matching to local address in resolver (ticket #1535)

Maxim Dounin mdounin at mdounin.ru
Wed Jan 19 16:22:09 UTC 2022


On Wed, Jan 19, 2022 at 04:08:32PM +0100, Lukas Lihotzki via nginx-devel wrote:

> # HG changeset patch
> # User Lukas Lihotzki <lukas at lihotzki.de>
> # Date 1642576371 -3600
> #      Wed Jan 19 08:12:51 2022 +0100
> # Node ID f922980f06b1162ae933c99c03bef09cfc12582f
> # Parent  aeab41dfd2606dd36cabbf01f1472726e27e8aea
> Prefer address family matching to local address in resolver (ticket #1535).
> Without this change, upstream connections fail randomly for dual-stack
> host names when specifying a proxy_bind address (ticket #1535).
> This changeset adds two flags for avoiding resolving to either IPv4 or IPv6
> addresses. stream and http set these flags based on the proxy_bind address.
> Avoided addresses are still returned if there are none of the other family, so
> the same error message as before is produced when connecting is impossible.

Thank you for the patch.

Suggested change looks wrong to me though, as it only addresses a 
particular use case when the name is resolved dynamically at run 
time using resolver.  In particular, it won't address the exact 
configuration listed in ticket #1535.

If the goal is to only address dynamic resolution, a better idea 
might be to use "resolver ... ipv6=off;" configured explicitly.  
Or, if you want to use only IPv6 addresses instead, introduce a 
similar option to only resolve IPv4 addresses: as previously 
discussed in ticket #1330, it might be beneficial for IPv6-only 
hosts in other cases as well.

Maxim Dounin

More information about the nginx-devel mailing list