1 votes

Envoyer toutes les demandes pour un TLD à une seule IP

Je me bats contre ce problème depuis quelques jours et je n'arrive pas à comprendre ce que je fais de mal. Je développe un site qui va utiliser des sous-domaines dynamiques et j'essaie de faire en sorte que tous les domaines qui se terminent par .test soient dirigés vers une seule adresse IP (je me rends compte que ce ne sont pas seulement les sous-domaines qui seront dirigés, mais tous les domaines .test, mais je développe tous mes sites sous le domaine .test).

J'ai essayé de configurer dnsmasq pour y parvenir mais je n'arrive pas à le faire fonctionner. Je sais que NetworkManager exécute sa propre instance de dnsmasq. J'ai fait l'entrée suivante à plusieurs endroits pour essayer de faire fonctionner le système. L'entrée que j'essaie d'utiliser est la suivante : address=/.test/192.168.10.10 .

J'ai fait des entrées dans :

  • /etc/NetworkManger/dnsmasq.d/hosts.conf
  • /etc/NetworkManager/dnsmasq-shared.d/hosts.conf
  • /etc/dnsmasq.d/hosts.conf
  • /etc/dnsmasq.conf

Je l'ai d'abord essayé avec l'installation des répertoires dnsmasq NetworkManager. Après que cela n'ait pas fonctionné, j'ai installé dnsmasq et essayé les autres emplacements et cela n'a pas fonctionné non plus.

J'ai essayé de redémarrer mon interface réseau et j'ai redémarré ma machine à plusieurs reprises.

Je ne suis pas sûr de ce que je fais mal. Toute aide serait appréciée.

1voto

Sławomir Uchto Points 11

Je suis dans le même bateau depuis quelques jours aussi. Voici ce que j'ai fait pour que ça marche (mais je ne suis pas sûr que ce soit la bonne façon de résoudre le problème).

Ubuntu, par défaut, a un serveur DNS stub (écoutant au port 53 ) appelé systemd-resolved . Je ne pouvais pas faire dnsmasq fonctionner sans désactiver le stub en premier lieu. Je ne suis pas sûr que le fait de désactiver le turinig systemd-resolved est un chemin à parcourir, mais comme il s'appelle Stub DNS, je pense que cela devrait aller ( sudo systemctl disable systemd-resolved.service ).

Ensuite, j'ai apporté des modifications au /etc/dnsmasq.conf : décomposer bind-interfaces et faire en sorte que dnsmasq écoute 127.0.0.1:53 ( listen=127.0.0.1 y port=53 ).

Dites à NetworkManager d'utiliser dnsmasq comme serveur DNS en ajoutant dns=dnsmasq a /etc/NetworkManager/NetworkManager.conf (en [main] ).

Maintenant, comme systemd-resolved est désactivé, vous êtes libre d'éditer /etc/resolve.conf (au moins jusqu'à ce que vous installiez un autre service qui génère et gère resolve.conf ). nameserver 127.0.0.53 n'est plus nécessaire, changez-le en nameserver 127.0.0.1 .

Vous devriez maintenant être en mesure de configurer dnsmasq pour résoudre votre TLD à l'adresse que vous souhaitez. Créer /etc/dnsmasq.d/test.conf avec address=/.test/127.0.0.1 .

Redémarrez les deux, dnsmasq y NetworkManager ( sudo servicectl restart dnsmasq.service , sudo servicectl restart network-manager.service ).

developer@ubuntu:~$ dig hi_eric.test

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> hi_eric.test
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59442
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;hi_eric.test.          IN  A

;; ANSWER SECTION:
hi_eric.test.       0   IN  A   127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Jul 01 07:30:46 PDT 2018
;; MSG SIZE  rcvd: 46

L'inconvénient est que cela m'a obligé à utiliser des serveurs DNS codés en dur pour le trafic sortant (parce que pour l'instant .test est le seul domaine que votre serveur peut résoudre). J'ai dû ajouter resolv-file=/etc/resolve.dnsmasq a /etc/dnsmasq.conf et créer /etc/resolve.dnsmasq avec les serveurs DNS publics de Google :

nameserver 8.8.8.8
nameserver 8.8.4.4

Redémarrer dnsmasq la dernière fois ( sudo servicectl restart dnsmasq.service ). Maintenant, tout, plus ou moins, devrait fonctionner correctement. .test est résolu à 127.0.0.1 tout le reste est résolu par les serveurs DNS ouverts de Google. Vous pouvez modifier dnsmasq configuration, augmenter la taille du cache et ainsi de suite.

Comme je l'ai dit, je ne suis pas sûr à 100% de cette solution (et je suis sûr à 99% qu'il existe une meilleure solution), mais elle fonctionne. J'espère que quelqu'un d'autre corrigera tout ce que j'ai fait de mal et vous guidera vers une solution meilleure et plus stable pour résoudre votre (et le mien !) problème. Merci !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X