web-dev-qa-db-fra.com

Résolution du problème DNS après la mise à niveau vers 17.10

Après la mise à niveau vers 17.10, Ubuntu utilise une résolution système pour traiter toutes les demandes DNS. Il dispose d'un écouteur stub, mais ce dernier accepte uniquement les demandes locales. J'utilise un VPS Vultr, c'est ce qui s'est passé.

root@00:~# nslookup www.google.com 127.0.0.53
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find www.google.com: SERVFAIL

Dans le journal des erreurs:

Dec 19 01:20:24 00.tokyo.jp.mole systemd-resolved[684]: Got packet on unexpected IP range, refusing.

J'ai essayé de vider le paquet udp et voici le résultat:

root@00:~# tcpdump -i lo udp port 53 -vv -X
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
01:20:24.230349 IP (tos 0x0, ttl 64, id 24187, offset 0, flags [none], proto UDP (17), length 60)
    45.xx.xx.xx.vultr.com.60360 > 127.0.0.53.domain: [bad udp cksum 0xbf8c -> 0xe032!] 58738+ A? www.google.com. (32)
    0x0000:  4500 003c 5e7b 0000 4011 5ce3 2dxx xxxx  E..<^{..@.\.-...
    0x0010:  7f00 0035 ebc8 0035 0028 bf8c e572 0100  ...5...5.(...r..
    0x0020:  0001 0000 0000 0000 0377 7777 0667 6f6f  .........www.goo
    0x0030:  676c 6503 636f 6d00 0001 0001            gle.com.....
01:20:24.230963 IP (tos 0x0, ttl 64, id 25931, offset 0, flags [DF], proto UDP (17), length 40)
    127.0.0.53.domain > localhost.60360: [bad udp cksum 0xfe5b -> 0xae9c!] 58738 ServFail [0q] 0/0/0 (12)
    0x0000:  4500 0028 654b 4000 4011 d743 7f00 0035  E..(eK@[email protected]
    0x0010:  7f00 0001 0035 ebc8 0014 fe5b e572 8182  .....5.....[.r..
    0x0020:  0000 0000 0000 0000                      ........

Il montre qu'il envoie la demande en utilisant l'adresse IP publique au lieu de 127.0.0.1, aussi la solution résolue par systemd refuse-t-elle de répondre. Utiliser systemd-resolve www.google.com pourrait obtenir le résultat et indiquerait que le service fonctionne normalement.

root@00:~# systemd-resolve www.google.com
www.google.com: 216.58.196.228
                2404:6800:400a:806::2004

-- Information acquired via protocol DNS in 6.6ms.
-- Data is authenticated: no

J'ai temporairement changé le lien symbolique de /etc/resolv.conf en /run/systemd/resolve/resolv.conf afin que le serveur puisse avoir accès à Internet, mais je veux savoir comment puis-je modifier l'IP demandante pour résoudre ce problème?

1
B. Zhang

Je viens d'avoir le même problème avec un serveur mis à niveau Ubuntu 16.04 à Ubuntu 18.04. Ma solution consistait à vérifier les paramètres de mon pare-feu et à exclure le périphérique de bouclage lo du masquage des adresses IP source (D'oh!).

Assurez-vous de vérifier vos itinéraires et votre magie de routage de pare-feu comme POSTROUTING {MASQUERADE; }. Cela fonctionnait auparavant car l'ancien résolveur DNS n'était pas aussi pointilleux avec les adresses IP source, semble-t-il.

0
Roger Lehmann