diversión proxy
Creo una máquina virtual Ubuntu 18.10 en mi host de Windows 10 usando Vagrant con VMware Workstation 15.
La VM parece funcionar bien, incluida la mayor parte del acceso a la red.
Pero con un anfitrión importante no tengo suerte:
$ ping -c 4 production.cloudflare.docker.com
ping: production.cloudflare.docker.com: Temporary failure in name resolution
(Cuando hago lo mismo en Cygwin en el host de Windows, funciona bien).
Quédeberíaser la razon?Servidores de nombres DNS!
Sin embargo, el que systemd-resolve --status
me dice que está usando ( "Current DNS Server: 8.8.4.4"
en eth0
, la única interfaz con cantidades considerables de RX y TX)funciona biencuando lo intento explícitamente:
$ dig @8.8.4.4 production.cloudflare.docker.com
; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> @8.8.4.4 production.cloudflare.docker.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45235
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
[...]
production.cloudflare.docker.com. 117 IN A 104.18.122.25
production.cloudflare.docker.com. 117 IN A 104.18.121.25
production.cloudflare.docker.com. 117 IN A 104.18.125.25
production.cloudflare.docker.com. 117 IN A 104.18.124.25
production.cloudflare.docker.com. 117 IN A 104.18.123.25
pero cuando paso por Ubuntuproxy local, la consultafalla:
$ dig production.cloudflare.docker.com
; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> production.cloudflare.docker.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60815
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
[...]
;; SERVER: 127.0.0.53#53(127.0.0.53)
Al parecer, 127.0.0.53
no está haciendo lo que creo que debería. (Tenga en cuenta que soy un novato en redes).
¿Qué me estoy perdiendo?
Ni siquiera estoy seguro de si se trata más de una pregunta de Ubuntu o de VMware. ¿O tal vez una pregunta vagabunda?
Estremecimiento.
Respuesta1
¡Es un cambio de tres bytes!
Hay muchos informes de fallas de DNS de Ubuntu en la web. Al igual que la respuesta de HackSlash, la mayoría de las respuestas sugieren conectar los servidores de nombres deseados a /etc/resolv.conf
. Pero si entendí correctamente, esto desactivará el almacenamiento en caché local, lo cual parece una tontería y un poco antisocial, así que no quería hacer esto.
¿Cuál es el problema?
Finalmente encontré la explicación enhttps://superuser.com/a/1200745/372846: Aparentemente, Ubuntu systemd-resolved
no puede manejar correctamente los servidores de nombres que utilizan DNSSEC. Hay que desactivar el soporte DNSSEC y todo estará bien.
Solución
En el archivo /etc/systemd/resolved.conf
, reemplace la línea DNSSEC=yes
por DNSSEC=no
; luego reinicie el servicio de resolución mediante sudo systemctl restart systemd-resolved
.
Mi confusión restante
La publicación anterior hablaba de Ubuntu 17.04, cuando aparentemente systemd-resolved
era bastante nuevo en Ubuntu. Un comentario debajoesta respuestaLa misma pregunta indica que el valor predeterminado se cambiará DNSSEC=no
en versiones posteriores de Ubuntu. Estoy en 18.10 y esto todavía no ha sucedido, ni ha aparecido la capacidad DNSSEC completa.¿Qué carajo?
Respuesta2
Esto fue respondido en Askubuntu. Hay muchas soluciones que recomiendan instalar un solucionador diferente.
Esta respuesta dice que no es necesario hacer eso:
Si está buscando una solución rápida y sucia, puede configurar systemd-resolved para usar sus servidores DNS globalmente:
$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>
Luego reinicie systemd-resolved.service
o reinicie.
Preguntas y respuestas completas: https://askubuntu.com/questions/1012641/dns-set-to-systemds-127-0-0-53-how-to-change-permanfully