Délégation de zone inversée vers les sous-réseaux inférieurs à /24 dans BIND. Comment ça fonctionne

Un jour, j'ai été confronté à la tùche de donner à l'un de mes clients le droit de modifier les enregistrements PTR du sous-réseau /28 qui lui était attribué. Je n'ai pas d'automatisation pour modifier les paramÚtres BIND de l'extérieur. Par conséquent, j'ai décidé d'emprunter une voie différente : déléguer au client une partie de la zone PTR du sous-réseau /24.

Il semblerait - quoi de plus simple ? Nous enregistrons simplement le sous-rĂ©seau selon les besoins et le dirigeons vers le NS souhaitĂ©, comme cela se fait avec un sous-domaine. Mais non. Ce n’est pas si simple (mĂȘme si en rĂ©alitĂ© c’est gĂ©nĂ©ralement primitif, mais l’intuition n’aidera pas), c’est pourquoi j’écris cet article.

Quiconque veut le dĂ©couvrir par lui-mĂȘme peut lire RFC
Qui veut une solution toute faite, bienvenue chez cat.

Afin de ne pas retarder ceux qui aiment la méthode copier-coller, je posterai d'abord la partie pratique, puis la partie théorique.

1. Entraßnez-vous. Zone de délégation /28

Disons que nous avons un sous-réseau 7.8.9.0/24. Nous devons déléguer le sous-réseau 7.8.9.240/28 au client DNS 7.8.7.8 (ns1.client.domaine).

Sur le DNS du fournisseur, vous devez trouver un fichier décrivant la zone inversée de ce sous-réseau. Qu'il en soit ainsi 9.8.7.in-adr.harpe.
Nous commentons les entrées de 240 à 255, s'il y en a. Et à la fin du fichier on écrit ce qui suit :

255-240  IN  NS      7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240

n'oubliez pas d'augmenter la zone série et de faire

rndc reload

Ceci termine la partie fournisseur. Passons au DNS du client.

Tout d'abord, créons un fichier /etc/bind/master/255-240.9.8.7.in-addr.arpa le contenu suivant:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

Et dans nommĂ©.conf ajoutez une description de notre nouveau fichier :

zone "255-240.9.8.7.in-addr.arpa." IN {
        type master;
        file "master/255-240.9.8.7.in-addr.arpa";
};

B redémarre le processus de liaison.

/etc/init.d/named restart

Tous. Maintenant, vous pouvez vérifier.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

Veuillez noter que non seulement l'enregistrement PTR est indiquĂ©, mais Ă©galement le CNAME. VoilĂ  comment il devrait ĂȘtre. Si vous vous demandez pourquoi, alors bienvenue dans le prochain chapitre.

2. Théorie. Comment ça fonctionne.

Il est difficile de configurer et de déboguer une boßte noire. C'est beaucoup plus facile si vous comprenez ce qui se passe à l'intérieur.

Quand on dĂ©lĂšgue un sous-domaine dans un domaine domaine, alors nous Ă©crivons quelque chose comme ceci :

client.domain.	NS	ns1.client.domain.
ns1.client.domain.	A	7.8.7.8

Nous disons Ă  tous ceux qui le demandent que nous ne sommes pas responsables de ce site et disons qui est responsable. Et toutes les demandes de client.domaine rediriger vers 7.8.7.8. Lors de la vĂ©rification, nous voyons l'image suivante (nous omettrons ce que le client a lĂ -bas. Cela n'a pas d'importance) :

# host test.client.domain
test.client.domain has address 7.8.9.241

Ceux. nous avons été informés qu'il existe un tel enregistrement A et que son adresse IP est 7.8.9.241. Aucune information inutile.

Comment faire la mĂȘme chose avec un sous-rĂ©seau ?

Parce que notre serveur DNS est enregistrĂ© dans RIPE, puis lors de la demande d'une adresse IP PTR Ă  notre rĂ©seau, la premiĂšre demande nous sera toujours adressĂ©e. La logique est la mĂȘme que pour les domaines. Mais comment saisir un sous-rĂ©seau dans un fichier de zone ?

Essayons de le saisir comme ceci :

255-240  IN  NS      7.8.7.8

Et... le miracle ne s'est pas produit. Nous ne recevons aucune demande de redirection. Le fait est que bind ne sait mĂȘme pas que ces entrĂ©es dans le fichier de zone inversĂ©e sont des adresses IP, et encore plus ne comprend pas l'entrĂ©e de plage. Pour lui, il ne s'agit que d'une sorte de sous-domaine symbolique. Ceux. pour bind, il n'y aura aucune diffĂ©rence entre "255-240"Et"notresuperclient". Et pour que la requĂȘte aille lĂ  oĂč elle doit aller, l'adresse dans la requĂȘte doit ressembler Ă  ceci : 241.255-240.9.8.7.in-addr.arpa. Ou comme ceci si nous utilisons un sous-domaine de caractĂšre : 241.notresuperclient.9.8.7.in-addr.arpa. C'est diffĂ©rent de l'habituel : 241.9.8.7.in-adr.harpe.

Il sera difficile de faire une telle demande manuellement. Et mĂȘme si cela fonctionne, on ne sait toujours pas comment l’appliquer dans la vraie vie. AprĂšs tout, sur demande 7.8.9.241 Le DNS du fournisseur nous rĂ©pond toujours, pas celui du client.

Et c'est lĂ  qu'ils entrent en jeu CNAME.

Du cĂŽtĂ© du fournisseur, vous devez crĂ©er un alias pour toutes les adresses IP du sous-rĂ©seau dans un format qui transmettra la requĂȘte au DNS du client.

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
о т.Ю.

C'est pour les travailleurs =).

Et pour les paresseux, le design ci-dessous est plus adapté :

255-240  IN  NS      ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240

Demandez maintenant des informations Ă  7.8.9.241 de 241.9.8.7.in-adr.harpe sur le serveur DNS du fournisseur sera converti en 241.255-240.9.8.7.in-addr.arpa et va au client DNS.

Le cÎté client devra gérer ces demandes. En conséquence, nous créons une zone 255-240.9.8.7.in-addr.arpa. Dans celui-ci, nous pouvons, en principe, placer des entrées inversées pour n'importe quelle adresse IP de l'ensemble du sous-réseau /24, mais ils ne nous poseront de questions que sur celles que le fournisseur nous transmet, nous ne pourrons donc pas jouer =).
Pour illustrer, je vais encore une fois donner un exemple du contenu d'un fichier de zone inversĂ©e cĂŽtĂ© client :

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

C’est parce que nous utilisons CNAME cĂŽtĂ© fournisseur que nous recevons les donnĂ©es suivantes en rĂ©ponse Ă  une requĂȘte : Adresse IP Deux entrĂ©es, pas une seule.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

Et n'oubliez pas de configurer correctement l'ACL. Parce que cela n'a aucun sens de s'approprier une zone PTR et de ne répondre à personne de l'extérieur =).

Source: habr.com

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster