Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
system_administration:networking:subdomains_management [2023/08/11 20:15] – removed - external edit (Unknown date) 127.0.0.1 | system_administration:networking:subdomains_management [2023/08/11 20:15] (current) – ↷ Page moved from system_administration:subdomains_management to system_administration:networking:subdomains_management aziz | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{tag> dns bind subdomains}} | ||
+ | |||
+ | ===== Délégation et gestion des sous-domaines avec Bind9 ===== | ||
+ | |||
+ | Il est possible de déléguer la gestion d'un sous domaine à des serveurs DNS auto hébergés. | ||
+ | |||
+ | Sur l' | ||
+ | |||
+ | * On assigne le sous-domaine lui-même à **un** enregistrement de **type A** | ||
+ | * On attribue à ce sous-domaine | ||
+ | |||
+ | Les deux enregistrements NS pointent vers des serveurs Bind que nous gérons nous-mêmes. | ||
+ | |||
+ | <code csv> | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Les serveurs DNS fonctionnent en maître-esclave, | ||
+ | |||
+ | ==== Sur le serveur maître ==== | ||
+ | |||
+ | <code c / | ||
+ | options { | ||
+ | directory "/ | ||
+ | querylog yes; | ||
+ | dnssec-validation auto; | ||
+ | auth-nxdomain no; # conform to RFC1035 | ||
+ | |||
+ | listen-on { | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | |||
+ | allow-transfer { | ||
+ | | ||
+ | }; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | <code c / | ||
+ | // Enregistrement de résolution DIRECTE (hostname --> IP) | ||
+ | zone " | ||
+ | type master; | ||
+ | file "/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | |||
+ | // Enregistrements de résolution INVERSES (PTR) | ||
+ | zone " | ||
+ | type master; | ||
+ | file "/ | ||
+ | notify yes; | ||
+ | allow-transfer { 51.52.53.81; | ||
+ | }; | ||
+ | |||
+ | zone " | ||
+ | type master; | ||
+ | file "/ | ||
+ | notify yes; | ||
+ | allow-transfer { 51.52.53.81; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | <code c / | ||
+ | $ORIGIN . | ||
+ | $TTL 3600 ; 1 hour | ||
+ | bobo.example.net | ||
+ | 201 ; serial | ||
+ | 600 ; refresh (10 minutes) | ||
+ | 3600 ; retry (1 hour) | ||
+ | 604800 | ||
+ | 3600 ; minimum (1 hour) | ||
+ | ) | ||
+ | |||
+ | IN NS ns1.example.net. | ||
+ | IN NS ns2.example.net. | ||
+ | IN A | ||
+ | |||
+ | $ORIGIN bobo.example.net. | ||
+ | |||
+ | ns1 | ||
+ | ns2 | ||
+ | * | ||
+ | </ | ||
+ | |||
+ | <code c / | ||
+ | $TTL 3600 | ||
+ | 43.42.41.in-addr.arpa. | ||
+ | 106 ; Serial | ||
+ | 1h ; Refresh [1h] | ||
+ | 10m ; Retry [10m] | ||
+ | 1d ; Expire | ||
+ | 10m) ; Negative Cache TTL [10m] | ||
+ | |||
+ | ; Name Server | ||
+ | 43.42.41.in-addr.arpa. | ||
+ | |||
+ | ; PTR Records | ||
+ | 81.43.42.41.in-addr.arpa. | ||
+ | </ | ||
+ | |||
+ | <code c / | ||
+ | $TTL 3600 | ||
+ | 53.52.51.in-addr.arpa. | ||
+ | 106 ; Serial | ||
+ | 1h ; Refresh [1h] | ||
+ | 10m ; Retry [10m] | ||
+ | 1d ; Expire | ||
+ | 10m) ; Negative Cache TTL [10m] | ||
+ | |||
+ | ; Name Server | ||
+ | 53.52.51.in-addr.arpa. | ||
+ | |||
+ | ; PTR Records | ||
+ | 81.53.52.51.in-addr.arpa. | ||
+ | </ | ||
+ | |||
+ | Si nous optons pour faire tourner Bind dans docker, voici le '' | ||
+ | |||
+ | <code yaml docker-compose.yml> | ||
+ | version: ' | ||
+ | |||
+ | services: | ||
+ | bind: | ||
+ | network_mode: | ||
+ | restart: always | ||
+ | image: sameersbn/ | ||
+ | container_name: | ||
+ | environment: | ||
+ | - WEBMIN_ENABLED=false | ||
+ | volumes: | ||
+ | - ./ | ||
+ | </ | ||
+ | |||
+ | <WRAP round info> | ||
+ | |||
+ | Il faut veiller à utiliser '' | ||
+ | |||
+ | L' | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Sur le serveur esclave ==== | ||
+ | |||
+ | La configuration sur le serveur esclave est un miroir de la configuration du serveur maître avec quelques différences importantes. | ||
+ | |||
+ | D' | ||
+ | |||
+ | Sur un terminal (( | ||
+ | veiller à exécuter cette commande sur le serveur esclave, seul autorisé à émettre une requête de transfert de zones (voir l' | ||
+ | )) exécuter la commande suivante (remplacer l'ip du serveur maître) | ||
+ | |||
+ | <code bash> | ||
+ | dig @41.42.43.81 bobo.example.net. axfr | ||
+ | </ | ||
+ | |||
+ | <code c / | ||
+ | options { | ||
+ | directory "/ | ||
+ | dnssec-validation auto; | ||
+ | auth-nxdomain no; /* # conform to RFC1035 */ | ||
+ | allow-query { | ||
+ | | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | |||
+ | listen-on { | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | |||
+ | allow-transfer { | ||
+ | | ||
+ | }; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | <code c / | ||
+ | zone " | ||
+ | type slave; | ||
+ | file "/ | ||
+ | | ||
+ | }; | ||
+ | |||
+ | zone " | ||
+ | type slave; | ||
+ | file "/ | ||
+ | masters { 41.42.43.81; | ||
+ | }; | ||
+ | |||
+ | zone " | ||
+ | type slave; | ||
+ | file "/ | ||
+ | masters { 41.42.43.81; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | La différence entre les fichiers '' | ||
+ | |||
+ | Si sur le maître, les fichiers peuvent se trouver dans le dossier ''/ | ||
+ | |||
+ | <code c> | ||
+ | zone " | ||
+ | type master; | ||
+ | file "/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | Ça ne peut être le cas sur le serveur esclave. Les fichiers doivent se trouver à un emplacements inscriptible par l' | ||
+ | |||
+ | <code c> | ||
+ | zone " | ||
+ | type slave; | ||
+ | file "/ | ||
+ | | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | Autrement, le transfert automatique de zone entre le maître et l' | ||
+ | |||
+ | Les fichiers de zones sur le serveur esclave sont créés automatiquement par le transfert de zone. Il n'y a pas lieu de les créer manuellement. | ||
+ | |||