Un nom de domaine pour plusieurs serveurs ?

Bonjour !

Je me posais quelques questions hier à ce sujet. Imaginons louer 3 serveurs chez un prestataire.
Est-ce qu’il est possible d’utiliser un nom de domaine “domaine.tld” pour les 3 serveurs ? (avec nom de machine et DNS personnalisés pour chaque serveur)

Imaginons avoir :
srv1 : DNS 1 : srv1.domaine.tld , DNS 2 : le DNS du prestataire
srv2 : DNS 1 : srv2.domaine.tld , DNS 2 : le DNS du prestataire
srv3 : DNS 1 : srv3.domaine.tld , DNS 2 : le DNS du prestataire

Sur le nom de domaine on doit renseigner l’adresse IP du serveur primaire, donc on va dire l’IP du srv1.
Est-ce que srv1 ferait office de “routeur” pour que srv2 et srv3 soit accessibles ? (et donc configurer bind du srv1 pour que les autres soient accessibles) et du coup faudrait-il utiliser une machine exprès en guise de “routeur” pour gérer seulement les DNS ?

Je ne sais pas si je suis clair dans mes propos, du coup si ce n’est pas le cas, quelle serait la meilleure manière d’utiliser un nom de domaine sur plusieurs serveurs avec la configuration présentée plus haut ? (en sachant que j’aimerais ne pas utiliser plusieurs noms de domaine, sinon ca va vite devenir la pagaille, je me repère mieux avec un numéro de serveur, qu’un suffixe de nom de domaine)

Merci par avance pour votre réponse!

bonjour,
avez-vous lu:
isalo.org/wiki.debian-fr/BIND
wiki Debian trés bien réalisé
A+
JB1

isalo.org/wiki.debian-fr/BI … ound-robin

Non. C’est du charabia total.
Explique plutôt ce que tu veux, on te dira comment faire.

[quote=“PascalHambourg”]Non. C’est du charabia total.
Explique plutôt ce que tu veux, on te dira comment faire.[/quote]
Dans ce cas je vais essayer de reformuler.

Avant tout pour répondre aux messages plus haut, j’ai déjà lu ces documents, ainsi que d’autres sur Internet, mais il me reste des questions car je n’y ai pas toujours trouvé mes réponses. (ou alors je n’ai pas tout compris)
Désolé si à nouveau je ne suis pas très clair, je ne suis pas doué pour utiliser correctement les mots quand il s’agit de réseau, DNS, administration système, j’essaye de m’améliorer :079 .

Imaginons que j’ai trois serveurs ainsi qu’un nom de domaine principal “domaine.tld”. Je souhaiterais que chaque serveur aient leur DNS primaire en utilisant uniquement ce nom de domaine (et pas un autre), exemple :
Serveur 1 : Nom de la machine “serv1”, DNS primaire : serv1.domaine.tld, DNS secondaire : monfournisseur.tld
Serveur 2 : Nom de la machine “serv2”, DNS primaire : serv2.domaine.tld, DNS secondaire : monfournisseur.tld
Serveur 3 : Nom de la machine “serv3”, DNS primaire : serv3.domaine.tld, DNS secondaire : monfournisseur.tld

monfournisseur.tld étant le DNS secondaire que me fournit mon fournisseur de serveur dédié. mais de préférence, je souhaiterais avoir la possibilité d’utiliser dns2.domaine.tld. (et donc de pouvoir le configurer lui aussi)

Là où je veux en venir : etant donné que j’ai plusieurs sites Internet, imaginons que j’ai le site bidule.tld et que je souhaite le mettre sur le serveur 2, pour la configuration du nom de domaine bidule.tld il faudrait alors que j’utilise pour le DNS primaire serv2.domaine.tld, et comme secondaire : monfournisseur.tld
Pour mon site machin.tld, si je le met sur le serveur 3, je devrais utiliser pour le DNS primaire serv3.domaine.tld, et comme secondaire : monfournisseur.tld

Chaque serveur est un serveur web avec Apache, PHP, MySQL, serveur mail, webmail etc. (d’ailleurs faut-il mettre chaque service sur chaque serveur ?)
Donc par exemple, si je veux utiliser le ftp, webmail pour bidule qui est sur le serveur 2 ca sera :
ftp : accès par serv2.domaine.tld (ou bien bidule.tld)
webmail : accès par webmail.serv2.domaine.tld (ou bien webmail.bidule.tld)
racine web du serveur : accès par serv2.domaine.tld

J’ai lu la partie “Round-robin”, mais ne serait-il pas préférable d’utiliser un serveur uniquement pour gérer les DNS ? (qui ferait office de routeur non ?) car de ce que j’ai lu pour le Round-robin il faudrait des serveurs de capacités égales, ce qui ne sera pas toujours le cas pour moi.
Dans cette configuration, je souhaiterais savoir comment je devrais organiser cela concernant les zones pour bind sur chaque serveur… Ce que je dois prévoir, éviter de faire, etc… je suis un peu perdu :119

C’est toujours incompréhensible pour moi.

Qu’entends-tu exactement par DNS primaire et secondaire ?

Il y a deux rôles possibles pour un serveur DNS :

  • cache récursif pour une ou plusieurs machines (mais alors on le désigne plutôt par son adresse IP, car il sert précisément à résoudre les noms)
  • autorité pour une ou plusieurs zones DNS (“domaines”), il est alors interrogé par les DNS récursifs du monde entier à qui on demande de résoudre les noms appartenant à ces zones.
    Les DNS dont tu parles ont quel(s) rôle(s) ?

Si la machine s’appelle serv1, son nom complet (FQDN) est serv1.domaine.tld et elle est donc son propre “DNS primaire” ??

Tu ne pourrais pas expliquer ton besoin sans parler de DNS, car je ne vois pas bien ce que ça vient faire ici ?

Disons ce que tu entres dans la configuration du nom de domaine chez le prestataire. (ex OVH)

Mon besoin :
c’est d’utiliser plusieurs serveurs pour héberger mes sites.
Dans la configuration actuelle j’ai deux serveurs (je ne peux pas accéder à sa config, et je veux pouvoir reproduire ce qui existe).
J’ai deux sites, l’un bidule.tld sur un serveur, l’autre machin.tld sur un autre.
Lorsque j’ai du changer les DNS de ces domaines chez mon prestataire j’ai utilisé :
bidule.tld : serveur1.mondomaine.tld , DNS secondaire du prestataire
machin.tld : serveur2.mondomaine.tld , DNS secondaire du prestataire

mondomaine.tld étant un nom de domaine qui m’appartient aussi.

Chaque serveur a ses services web dédiés (Apache, PHP, serveur mail, MySQL etc.) et si je veux accéder aux services, c’est du genre :
ftp : accès par serveur1.mondomaine.tld (ou bien bidule.tld)
webmail : accès par webmail.serveur1.mondomaine.tld (ou bien webmail.bidule.tld)
racine web du serveur : accès par serveur1.mondomaine.tld

mais comment reproduire le fait que les deux serveurs utilisent mondomaine.tld ? comment gérer ca ?

Je ne sais pas si je suis plus clair :confused:

Qu’entends-tu exactement par “changer les DNS de ces domaines chez mon prestataire” ? Pour quelle raison, et dans quel but ?

Voici un petit screen shoot (trouvé sur google images, si ca pose soucis concernant des droits d’auteurs, je le supprime aucun soucis) :

Dans le but de faire pointer mon nom de domaine sur mon serveur ! (dans mon cas sur un de mes serveurs)

En fait, je souhaiterais avoir une configuration similaire à ce que propose un hébergeur en mutualisé. (cluster ou non, peu importe) Actuellement j’ai plusieurs serveurs, et sur chaque serveur j’ai plusieurs sites.

Comme on peut le voir sur le screen shoot, on a ns62 en primaire et ns61 en secondaire… et pour un autre serveur ils ont surement ns64 en primaire et ainsi de suite…

C’est la configuration que j’ai moi aussi actuellement sur mes serveurs et j’aimerais pouvoir la reproduire :confused:

Il n’y a aucun besoin de changer les DNS d’un domaine pour faire pointer un nom de domaine vers une adresse IP. Il suffit de créer ou modifier l’enregistrement d’adresse pour le nom de domaine en question dans la zone du domaine. Pour cela il suffit d’avoir la main sur la gestion de la zone (du domaine si tu préfères).

Si par exemple tu veux que machin.domaine.tld pointe vers 192.0.2.35 (exemple), alors tu vas dans la gestion du domaine domaine.tld et tu crées/modifie un enregistrement de type A (adresse IPv4) qui pointe vers 192.0.2.35.

Merci pour ta réponse PascalHambourg, je comprends un peu mieux. Et du coup je m’excuse de m’être très mal expliqué (et surtout d’avoir un peu tout mélangé) :mrgreen:
Du coup je vais tenter de mettre en application ce que tu viens de me dire. Et avec toutes les recherches que je fais depuis hier (d’ailleurs j’ai un peu mal au crane, bref, bon j’aurais l’air d’un con si au final je m’exprime toujours mail :005 )
Je vais m’expliquer en “affirmant”, donc n’hésitez pas à me reprendre car je risque de bien me tromper :116

Donc imaginons… J’ai 3 serveurs :

  1. hostname : ns1, IP : 192.168.1.1, fonction : serveur de noms (maître)
  2. hostname : srv2, IP : 192.168.1.2, fonction : serveur web avec : Apache, PHP, MySQL, phpMyAdmin, mail, webmail. + Bind pour être utilisé en tant que serveur esclave pour le ns1 et donc fournir un DNS secondaire.
  3. hostname : srv3, IP : 192.168.1.3, fonction : serveur web avec : Apache, PHP, MySQL, phpMyAdmin, mail, webmail.

J’ai 3 noms de domaines, et deux sites Internet :

  1. domaine.tld > sera le domaine utilisé pour le serveur de noms.
  2. bidule.tld > est le premier site, il faut qu’il soit hébergé sur le serveur 2
  3. machin.tld > est le second site, il faut qu’il soit hébergé sur le serveur 3

Du coup je configure mon serveur maître 192.168.1.1 :

Fichier named.conf.local :

zone "domaine.tld" { type master; file "/etc/bind/db.domaine.tld"; allow-transfer { 192.168.1.2; }; //IP du serveur 2, serveur esclave };

Fichier /etc/bind/db.domaine.tld :

$TTL 604800 @ IN SOA ns1.domaine.tld. postmaster.domaine.tld. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.domaine.tld. @ IN NS srv2.domaine.tld. ns1 IN A 192.168.1.1 srv2 IN A 192.168.1.2 srv3 IN A 192.168.1.3

Je me demande si c’est forcement nécessaire de mettre srv2 et srv3 ?

Je ne mets pas la zone de recherche inversée, car ca a l’air sur le même principe, je posterais en cas de soucis si le reste ici est juste.

Fichier du serveur 2 (esclave) /etc/bind/named.conf.local, pour le DNS secondaire :

zone "domaine.tld" { type slave; file "/var/cache/bind/db.domaine.tld"; masters { 192.168.1.1; }; };

par contre je ne vois pas ici quoi ajouter pour le second fichier pour les enregistrements de zone

Maintenant, pour chaque site, je suppose que je dois ajouter une zone sur le serveur de noms :

bidule.tld qui sera sur le serveur 2 :

Fichier named.conf.local :

zone "bidule.tld" { type master; file "/etc/bind/db.bidule.tld"; allow-transfer { 192.168.1.2; }; //IP du serveur 2, serveur esclave, [b]ici est-ce aussi nécessaire ?[/b] };

Fichier /etc/bind/db.bidule.tld (pour celui là je pense faire n’importe quoi …, je ne suis pas sûr pour le SOA, et pour le reste, je pense qu’il y a peut être des choses inutiles, erronées) :

[code]
$TTL 604800
@ IN SOA ns1.domaine.tld. postmaster.domaine.tld. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.domaine.tld.
@ IN NS srv2.domaine.tld.
bidule.tld. IN A 192.168.1.2
srv2 IN A 192.168.1.2

  •      IN              A 192.168.1.2
    

www IN CNAME bidule.tld.
ftp IN CNAME bidule.tld.[/code]

Et donc du coup pour bidule.tld ou machin.tld je n’aurais besoin de mettre en serveur DNS primaire et secondaire : ns1.domaine.tld et srv2.domaine.tld , car du coup d’après ce que j’ai compris dans tes explications, c’est dans la zone du domaine définit que je peux dire sur quel serveur il est hébergé.

Est-ce correct ? (sur le principe, et le reste) il me restera a réfléchir pour le serveur mail, et le webmail, mais vu tes indications je pense pouvoir comprendre, mais là je m’arrete un peu j’ai mal au crane :mrgreen:
je n’ai pris l’exemple que de bidule et pas de machin, car si je comprends a peu près pour bidule, pour machin ca sera qu’une adaptation

Visiblement tu veux vraiment gérer les zones DNS sur tes serveurs, ce qui n’est absolument pas une obligation, les bureaux d’enregistrement (registrars) assurant quasiment tous cette fonction. Soit. Dans ce cas, après avoir configuré tes deux (ou trois, une zone peut avoir plus d’un NS esclave) serveurs DNS il faudra effectivement les déclarer auprès des registrars concernés pour chaque zone à gérer.

Note : si le nom d’un serveur DNS appartient à la zone qu’il sert (ex : ns1.domaine.tld pour la zone domaine.tld), alors il faudra spécifier son nom et son adresse IP (“glue record”). Sinon (ex : ns1.domaine.tld pour la zone bidule.tld), il suffira de spécifier son nom.

Au début tu as évoqué à plusieurs reprise le “DNS du prestataire” en tant que NS secondaire (esclave) pour tes zones. Je ne sais pas si “prestataire” désigne le registrar qui a enregistré le domaine, l’hébergeur de tes serveurs (qui peut être le même) ou bien un prestataire tiers, mais il faut t’assurer qu’il fournit bien ce type de service (DNS secondaire synchronisé sur ton DNS primaire). C’est souvent le cas pour les registrars. Cependant si tu as au moins deux serveurs DNS, tu n’as pas besoin de prestataire pour le NS secondaire, tu peux l’assurer toi-même.

Pour la suite, je suppose que tu n’utilises que tes propres serveurs DNS.

Pour les zones gérées manuellement, il est recommandé que le serial du SOA soit au format AAAAMMJJNN (ex : 2013110900 aujourd’hui), indiquant la date de la dernière modification. On incrémente les deux derniers chiffres si on fait plusieurs modifications le même jour.

Le TTL par défaut d’une semaine est très long. En cas de modification planifiée, il faudrait le baisser au moins une semaine avant, sinon la modification pourra prendre jusqu’à une semaine pour être prise en compte partout.

Pour srv2, c’est nécessaire car il sert de NS pour d’autres zones, il lui faut donc un nom (mais pas forcément dans la zone domaine.tld). Pour srv3, pas forcément si on ne s’adresse jamais à lui par ce nom.

De toute façon, as-tu ou peux-tu seulement avoir la délégation pour la zone inverse ? Chez les hébergeurs et FAI, c’est généralement impossible car il faut avoir un bloc d’adresses IP suffisamment grand et pas seulement quelques machines.

Quel second fichier ? Si tu parles du fichier de zone pour domaine.tld, alors comme la zone est de type esclave tu n’as pas à t’en occuper : le serveur l’obtiendra par transfert de zone depuis le NS maître.

zone bidule.tld :
La directive allow-transfer dans la déclaration de zone n’est pas nécessaire si le tranfert de zone est déjà autorisé dans les options globales de BIND. Mais c’est néanmoins un bon moyen de rappeler quels sont les NS esclaves de la zone.

Fichier /etc/bind/db.bidule.tld :

  • Mêmes remarques que ci-dessus concernant le serial et le TTL par défaut.
  • Tu n’as pas besoin de définir d’adresse IP pour srv2.bidule.tld qui n’est utilisé nulle part. L’adresse IP de srv2.domaine.tld est déjà définie dans sa zone domaine.tld.
  • A moins d’en avoir vraiment besoin et de savoir exactement ce que tu fais, évite les wildcards (*) et les CNAME, car il peuvent avoir des effets de bord inattendus. Si tu n’utilises que quelques noms dans une zone (www, ftp, mail…) alors définis-les individuellement avec des enregistrements A, c’est plus efficace et plus sûr.

Comme je l’ai écrit au début de ce message, il faudra déclarer tes deux serveurs DNS pour la zone. En fait les NS d’une zone se trouvent à deux endroits : dans la zone elle-même et dans la zone parente (la zone tld pour bidule.tld) afin que la résolution récursive à partir de la racine puisse fonctionner : les NS de la racine connaissent les NS pour tld qui connaissent les NS pour bidule.tld). La déclaration des NS chez le registrar à pour but de les enregistrer dans la zone parente.