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. | ||
| + | |||