Resolución de DNS lenta dentro del contenedor acoplable

Resolución de DNS lenta dentro del contenedor acoplable

Me he quedado con el problema de una resolución de DNS muy lenta dentro del contenedor acoplable. La GET simple a 'google.com' tarda unos 4 segundos en finalizar, mientras que la misma solicitud en el host tarda 0,052 ms. Además, la solicitud funciona perfectamente si la envío a una dirección IP, por eso sugerí un problema de DNS. Busqué una respuesta, la mayoría de ellas trataban sobre la configuración de servidores DNS, /etc/docker/daemon.json lo cual hice pero no solucionó mi problema. El servidor se ejecuta en Ubuntu 16.04. También tengo un servidor de desarrollo que ejecuta las mismas configuraciones pero funciona bien.

Anfitrión:

time curl -g 'google.com'

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

real    0m0.052s
user    0m0.004s
sys 0m0.004s

time nslookup google.com

Server:     188.93.16.19
Address:    188.93.16.19#53

Non-authoritative answer:
Name:   google.com
Address: 173.194.73.102
Name:   google.com
Address: 173.194.73.139
Name:   google.com
Address: 173.194.73.100
Name:   google.com
Address: 173.194.73.113
Name:   google.com
Address: 173.194.73.138
Name:   google.com
Address: 173.194.73.101


real    0m0.013s
user    0m0.004s
sys 0m0.004s

Envase:

time curl -g https://google.com

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>

real    0m4.592s
user    0m0.004s
sys 0m0.012s

time nslookup google.com

Server:     127.0.0.11
Address:    127.0.0.11#53

Non-authoritative answer:
Name:   google.com
Address: 64.233.165.139
Name:   google.com
Address: 64.233.165.101
Name:   google.com
Address: 64.233.165.102
Name:   google.com
Address: 64.233.165.113
Name:   google.com
Address: 64.233.165.100
Name:   google.com
Address: 64.233.165.138


real    0m4.029s
user    0m0.008s
sys 0m0.004s

demonio.json:

{
    "dns": ["188.93.16.19", "188.93.17.19", "8.8.8.8", "8.8.8.4"]
}

Respuesta1

Se resolvió el problema eliminando todos los servidores DNS excepto 8.8.8.8 de daemon.json. Este es el único servidor que resuelve el dominio rápidamente en mi caso. Probé diferentes servidores a través de docker run --dns=<dns server> <image name> curl -g 'google.com'.

Respuesta2

Tuve este problema mientras usaba Docker-Compose. También fue un problema de DNS. Yo añadí:

services: 
  my_app:
    dns:
      - 8.8.8.8
      - 4.4.4.4

A mi docker-compose.yml y solucionó el problema de rendimiento.

Respuesta3

Creo que está relacionado con el problema de la dirección MAC del puente como se describeaquí. Debe agregar una interfaz ficticia con una dirección MAC baja como esclava del puente.

información relacionada