Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[DNS] Definition des enregistrements MX en IPv4 et IPv6

4 réponses
Avatar
Pascal Hambourg
[Crosspost dans fr.comp.mail.serveurs et fr.comp.reseaux.ip, suivi par
défaut vers ce dernier.]

Salut à tous,

Soit un serveur de messagerie accessible en IPv4 et en IPv6 qui sert de
MX pour un domaine. Y a-t-il des inconvénients à définir deux
enregistrements MX différents, l'un pointant vers un nom ayant un
enregistrement A et l'autre pointant vers un nom ayant un enregistrement
AAAA :

domaine. IN MX 10 nom-hote-ipv4.
domaine. IN MX 10 nom-hote-ipv6.

nom-hote-ipv4. IN A x.x.x.x
nom-hote-ipv6. IN AAAA x:x:x:x:x:x:x:x

Cela risque-t-il de perturber les MTA qui ne parlent pas IPv6 ?
Ou bien dois-je définir un seul enregistrement MX pointant vers un nom
ayant à la fois un enregistrement A et un enregistrement AAAA :

domaine. IN MX 10 nom-hote.

nom-hote. IN A x.x.x.x
nom-hote. IN AAAA x:x:x:x:x:x:x:x

La même question peut se poser pour un serveur DNS servant de NS pour un
domaine.

Question subsidiaire : dans le cas d'autres services (web, FTP, SSH...)
accessibles seulement en IPv4 ou en IPv6 sur la même machine "nom-hote",
la seconde méthode peut-elle poser problème avec les clients qui parlent
à la fois IPv4 et IPv6 ?

Merci de vos avis.

4 réponses

Avatar
Francois Tigeot
Pascal Hambourg wrote:
[Crosspost dans fr.comp.mail.serveurs et fr.comp.reseaux.ip, suivi par
défaut vers ce dernier.]

Salut à tous,

Soit un serveur de messagerie accessible en IPv4 et en IPv6 qui sert de
MX pour un domaine. Y a-t-il des inconvénients à définir deux
enregistrements MX différents, l'un pointant vers un nom ayant un
enregistrement A et l'autre pointant vers un nom ayant un enregistrement
AAAA :

domaine. IN MX 10 nom-hote-ipv4.
domaine. IN MX 10 nom-hote-ipv6.

nom-hote-ipv4. IN A x.x.x.x
nom-hote-ipv6. IN AAAA x:x:x:x:x:x:x:x

Cela risque-t-il de perturber les MTA qui ne parlent pas IPv6 ?
Ou bien dois-je définir un seul enregistrement MX pointant vers un nom
ayant à la fois un enregistrement A et un enregistrement AAAA :

domaine. IN MX 10 nom-hote.

nom-hote. IN A x.x.x.x
nom-hote. IN AAAA x:x:x:x:x:x:x:x

La même question peut se poser pour un serveur DNS servant de NS pour un
domaine.


En ce qui concerne les MXs et les serveurs de nom, j'ai des noms de
domaine qui ont fonctionné pendant des années avec l'option 2 (A et AAAA
sur le même nom) sans aucun problème.

C'est la méthode générale à utiliser pour tous les services v4 et v6
d'ailleurs.

Question subsidiaire : dans le cas d'autres services (web, FTP, SSH...)
accessibles seulement en IPv4 ou en IPv6 sur la même machine "nom-hote",
la seconde méthode peut-elle poser problème avec les clients qui parlent
à la fois IPv4 et IPv6 ?


Les clients qui parlent v6 et v4 vont d'abord attaquer le service en v6.
Si ton serveur ne répond qu'en v4, le client risque de partir en
timeout...

--
Francois Tigeot

Avatar
Pascal Hambourg

En ce qui concerne les MXs et les serveurs de nom, j'ai des noms de
domaine qui ont fonctionné pendant des années avec l'option 2 (A et AAAA
sur le même nom) sans aucun problème.

C'est la méthode générale à utiliser pour tous les services v4 et v6
d'ailleurs.


Et concernant la première méthode avec des enregistrements NS ou MX
différents pour IPv4 et IPv6 ? Comment va réagir un client IPv4 seul qui
a choisi le nom IPv6 en voyant qu'il n'a pas d'enregistrement A ?
Va-t-il forcément réessayer l'autre nom ou peut-il abandonner ?
Logiquement il me semble qu'il devrait réessayer, c'est à ça que servent
les enregistrements multiples, non ?

Question subsidiaire : dans le cas d'autres services (web, FTP,
SSH...) accessibles seulement en IPv4 ou en IPv6 sur la même machine
"nom-hote", la seconde méthode peut-elle poser problème avec les
clients qui parlent à la fois IPv4 et IPv6 ?


Les clients qui parlent v6 et v4 vont d'abord attaquer le service en v6.
Si ton serveur ne répond qu'en v4, le client risque de partir en
timeout...


Si le serveur est poli, il refusera la communication en IPv6 en
renvoyant un paquet TCP RST ou ICMPv6 Port Unreachable au client, donc
il ne devrait pas y avoir de time-out. Mais le client va-t-il forcément
réessayer de contacter le service en IPv4 ? Si oui, tout va bien. Si
non, problème...

Ma problématique est la suivante : un serveur avec des services
accessibles en IPv4+IPv6 et des services accessibles en IPv4 seulement.
La solution la plus sûre serait donc de lui attribuer un nom ayant des
enregistrements A et AAAA pour les services IPv4+IPv6 et un nom ayant un
enregistrement A pour les services IPv4 ? Ça donnerait ceci :

# services NS et MX accessibles en IPv4 et IPv6
domaine. IN NS nom-hote-dual.
domaine. IN MX 10 nom-hote-dual.

# service web accessible en IPv4 seulement
www.domaine. IN CNAME nom-hote-ipv4.

nom-hote-ipv4. IN A x.x.x.x
nom-hote-dual. IN A x.x.x.x
nom-hote-dual. IN AAAA x:x:x:x:x:x:x:x


Avatar
Francois Tigeot
Pascal Hambourg wrote:

En ce qui concerne les MXs et les serveurs de nom, j'ai des noms de
domaine qui ont fonctionné pendant des années avec l'option 2 (A et AAAA
sur le même nom) sans aucun problème.

C'est la méthode générale à utiliser pour tous les services v4 et v6
d'ailleurs.


Et concernant la première méthode avec des enregistrements NS ou MX
différents pour IPv4 et IPv6 ? Comment va réagir un client IPv4 seul qui
a choisi le nom IPv6 en voyant qu'il n'a pas d'enregistrement A ?
Va-t-il forcément réessayer l'autre nom ou peut-il abandonner ?
Logiquement il me semble qu'il devrait réessayer, c'est à ça que servent
les enregistrements multiples, non ?


En théorie ça devrait aussi marcher, au moins pas plus mal que l'autre
méthode. Mais bon, ça reste de la théorie pour moi.

Les clients qui parlent v6 et v4 vont d'abord attaquer le service en v6.
Si ton serveur ne répond qu'en v4, le client risque de partir en
timeout...


Si le serveur est poli, il refusera la communication en IPv6 en
renvoyant un paquet TCP RST ou ICMPv6 Port Unreachable au client, donc
il ne devrait pas y avoir de time-out. Mais le client va-t-il forcément
réessayer de contacter le service en IPv4 ? Si oui, tout va bien. Si
non, problème...


J'ai la flemme de chercher ce que disent les RFCs là-dessus, mais en
pratique j'ai eu 2 ou 3 fois le cas de clients v6 qui ne ré-essayaient pas
en v4.

Ma problématique est la suivante : un serveur avec des services
accessibles en IPv4+IPv6 et des services accessibles en IPv4 seulement.
La solution la plus sûre serait donc de lui attribuer un nom ayant des
enregistrements A et AAAA pour les services IPv4+IPv6 et un nom ayant un
enregistrement A pour les services IPv4 ? Ça donnerait ceci :

# services NS et MX accessibles en IPv4 et IPv6
domaine. IN NS nom-hote-dual.
domaine. IN MX 10 nom-hote-dual.

# service web accessible en IPv4 seulement
www.domaine. IN CNAME nom-hote-ipv4.

nom-hote-ipv4. IN A x.x.x.x
nom-hote-dual. IN A x.x.x.x
nom-hote-dual. IN AAAA x:x:x:x:x:x:x:x


Ca me paraît bien pensé.

--
Francois Tigeot


Avatar
Pascal Hambourg

Ma problématique est la suivante : un serveur avec des services
accessibles en IPv4+IPv6 et des services accessibles en IPv4
seulement. La solution la plus sûre serait donc de lui attribuer un
nom ayant des enregistrements A et AAAA pour les services IPv4+IPv6 et
un nom ayant un enregistrement A pour les services IPv4 ? Ça donnerait
ceci : [...]


Ca me paraît bien pensé.


Merci bien. Je vais faire comme ça, histoire de ne pas tenter le diable.