Eu recentemente implantei alguns servidores Artful na AWS. Enquanto os servidores Yakkety e Zesty existentes estão bem, os servidores Artful têm problemas intermitentes na resolução do DNS. O único lugar que eu vi o problema até agora é nos logs de erro do PHP como php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
, mas isso pode ser apenas porque é de onde as pesquisas estão vindo.
Esta é uma distribuição de Amazon na maior parte baunilha do Ubuntu; a principal diferença da distribuição fornecida pela Amazon é que eu executei os upgrades de lançamento para chegar ao Artful.
Não sei qual componente é o problema, se é systemd-resolved
, php7.1-fpm
(servidores antigos são executados 7.0) ou algo na distribuição do Ubuntu.
As pesquisas de DNS que estou realizando geralmente estão indo para uma das zonas privadas do Route 53 da Amazon. Funciona na maior parte do tempo, então tudo parece estar configurado corretamente.
Isso é o que parece uma típica pesquisa de DNS:
> nslookup db
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
db.example.local canonical name = sql01.example.local.
Name: sql01.example.local
Address: 10.1.3.57
E é isso que systemd
vê:
> systemd-resolve --status
Global
DNS Servers: 10.1.0.2
DNS Domain: example.local
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (ens3)
Current Scopes: LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Em relação à configuração de rede, não toquei em nada, exceto pelo fato de eu definir o nome do host com hostnamectl set-hostname foo.example.local
. /etc/resolv.conf
é gerado automaticamente, /etc/systemd/resolved.conf
apenas comentou os padrões:
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp
Em termos de volume, estamos realizando milhares ou talvez dezenas de milhares de pesquisas por minuto, com uma taxa de falha de cerca de 25 por hora. Isso pode não parecer muito alto, mas é 0 em Zesty e Yakkety. E a baixa taxa de incidência torna muito difícil testar qualquer correção com segurança.
Eu encontrei toneladas de relatórios de bugs para a resolução de DNS relacionada ao PHP e ao Ubuntu, mas a maioria voltou com um bug glibc
antigo ou conflitos ao tentar não usar systemd
. Além disso, encontrei muitas sugestões relacionadas a NetworkManager
, mas o Ubuntu Server não usa isso.
Como solução alternativa, adicionei entradas de host, mas isso não é viável a longo prazo.