resolver: A vs AAAA

Maxim Dounin mdounin на mdounin.ru
Ср Дек 14 16:59:04 UTC 2016


Hello!

On Wed, Dec 14, 2016 at 07:23:59PM +0300, Ruslan Ermilov wrote:

> On Wed, Dec 14, 2016 at 06:05:48PM +0300, Dmitry Sivachenko wrote:
> > Добрый день,
> > 
> > Использую proxy_pass http://some.ip:80  (nginx 1.6.2)
> > 
> > some.ip имеет как A-запись, так и AAAA-запись.
> > 
> > На машине настроен приоритет IPv6 при резолвинге (ip6addrctl_policy="ipv6_prefer" для FreeBSD).
> > Но nginx посылает запросы на IPv4-адрес, а не IPv6.
> > 
> > Как правильно это исправить? (не хочется к конфиг прописывать ip-адрес).
> 
> Сейчас после резолвинга сначала отдаются IPv4-адреса, а затем IPv6-адреса.
> Впоследствии, если результат резолвинга закэширован, адреса ротируются.
> 
> С таким патчем становится возможным контролировать приоритет IPv6 над
> IPv4 в выдаче адресов.

Если в конфиге действительно proxy_pass на имя - то при чём тут 
resolver?  Первыми будет использоваться IPv4-адреса из-за порядка 
сохранения записей, который случается в ngx_inet_resolve_host().

Однако как и в случае resolver'а - порядок ни на что не влияет, 
кроме, может быть, отдельных краевых эффектов, т.к. все полученные 
адреса будут использоватся и запросы между ними будут 
балансироваться по round-robin.

-- 
Maxim Dounin
http://nginx.org/


Подробная информация о списке рассылки nginx-ru