« Dns » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
 
(30 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
= Types =
[[Category:Web]]
= [https://docs.ovh.com/fr/domains/editer-ma-zone-dns/#les-enregistrements-dns Types] =
== Type A (Address) ==
== Type A (Address) ==
Lie un nom de host à une adresse IPv4.
Relie un nom de domaine à une adresse IPv4.
<syntaxhighlight lang='DNS Zone file'>.mon-domaine.fr   A   xxx.xxx.xxx.xxx</syntaxhighlight>
{| class="wikitable wtp wtmono1 wtmono2 wtmono3"
! Domain
! Type
! Target
|-
| mon-domaine.fr || A || xxx.xxx.xxx.xxx
|}


== Type AAAA ==
== Type AAAA ==
Lie un nom de host à une adresse IPv6.
Relie un nom de domaine à une adresse IPv6.


== Type CNAME (Canonical NAME) ==
== Type CNAME (Canonical NAME) ==
Créé un alias d'un nom d'hôte vers un autre.
Créé un alias d'un nom de domaine vers un autre.
<syntaxhighlight lang='DNS Zone file'>www.mon-domaine.fr.   CNAME   mon-domain.fr.</syntaxhighlight>
{| class="wikitable wtp wtmono1 wtmono2 wtmono3"
{{warn | Bien penser à mettre un . à la fin du CNAME}}
! Domain
! Type
! Target
|-
| www.mon-domaine.fr. || CNAME || mon-domain.fr.
|}
{{warn | Bien penser à mettre un {{boxx|.}} à la fin du CNAME}}


== Type NS (Name Server) ==
== Type NS (Name Server) ==
Délègue la gestion d'une zone DNS a un serveur de nom faisant autorité.
Délègue la gestion d'une zone DNS a un serveur de nom faisant autorité.
<syntaxhighlight lang='DNS Zone file'>.mon-domaine.fr   NS   ns107.ovh.net</syntaxhighlight>
{| class="wikitable wtp wtmono1 wtmono2 wtmono3"
! Domain
! Type
! Target
|-
| mon-domaine.fr. || NS || ns107.ovh.net
|}


== Type MX (Mail eXchange) ==
== Type MX (Mail eXchange) ==
Définit le nom du serveur de courrier du domaine.
Relie un nom de domaine à un serveur e-mail.
<syntaxhighlight lang='DNS Zone file'>.mon-domaine.fr   MX    redirect.ovh.net</syntaxhighlight>
{| class="wikitable wtp wtmono1 wtmono2 wtmono3"
! Domain
! Type
! Target
|-
| mon-domaine.fr. || MX || 1 mon-domaine.fr.
|}
{{warn | Target as to be an address ({{boxx|xxx.xxx.xxx.xxx}} or {{boxx|mon-domaine.fr.}} or {{boxx|mx0.mail.ovh.net.}}), not a CNAME}}
 
== [http://www.open-spf.org/SPF_Record_Syntax Type SPF (Sender Policy Framework)] ==
Permet au serveurs email recevant les messages de vérifier qu'ils proviennent bien des IPs configurées.
{{warn | comme la vérification est en mode point à point (i.e. d'un serveur de mail à un autre, ou MTA à MTA) il ne fonctionne pas dans le cas de forwarders ou de relais.}}


== [http://www.openspf.org/SPF_Record_Syntax Type SPF (Sender Policy Framework)] ==
Permet au serveurs email recevant les messages de vérifier qu'ils proviennent bien des IPs configurées.<br>
<syntaxhighlight lang='DNS Zone file' inline>.mon-domaine.fr    SPF    v=spf1 a mx ~all</syntaxhighlight>
{| class="wikitable wtp"  
{| class="wikitable wtp"  
! Domain
! TTL
! Type
! Target
|-
| mon-domaine.fr. || 600 || SPF || "v=spf1 a mx -all"
|}
{| class="wikitable wtp wtmono1"
! Option
! Option
! Description
! Description
Ligne 35 : Ligne 71 :
| ip6:x:x:x:x::x/yy || indique les IP ou classes d'IP v6 autorisées à envoyer des emails
| ip6:x:x:x:x::x/yy || indique les IP ou classes d'IP v6 autorisées à envoyer des emails
|-
|-
| ptr || autorise les reverses des serveurs mail du domaine courant à envoyer des emails
| ptr || autoriser tous les serveurs dont le nom se termine par domain.net à envoyer des emails<br>
autorise les reverses des serveurs mail du domaine courant à envoyer des emails
|-
| include:domain2.net || use the SPF of domain2.net
|-
| -all || forbid all other IPs
|-
| ~all || mark all other IPs as not allowed (SoftFail)
|}
|}
{{info | Si le type SPF n'est pas disponible, le type TXT fait aussi l’affaire.}}
{{info | Si le type SPF n'est pas disponible, le type TXT fait aussi l’affaire.}}
Ligne 42 : Ligne 85 :


= Outils =
= Outils =
<kode lang=bash>
sudo pacman -S dnsutils
</kode>


== dig ==
== dig ==
<kode lang=bash>
<kode lang=bash>
# connaître le serveur DNS utilisé
dig something
#;; SERVER: 192.168.0.x#53(192.168.0.x)
# rechercher DNS en forçant le serveur DNS
# rechercher DNS en forçant le serveur DNS
dig @8.8.8.8 google.com
dig @8.8.8.8 google.com
Ligne 59 : Ligne 103 :
# error while loading shared libraries: libjson-c.so.3: cannot open shared object file: No such file or directory
# error while loading shared libraries: libjson-c.so.3: cannot open shared object file: No such file or directory
ln -s libjson-c.so.4.0.0 /usr/lib/libjson-c.so.3
ln -s libjson-c.so.4.0.0 /usr/lib/libjson-c.so.3
# installation
sudo pacman -S dnsutils
</kode>
== resolvectl ==
<kode lang='bash'>
resolvectl status
# ancienne commande
systemd-resolve --status
</kode>
== nslookup ==
Command-line tool for querying the Domain Name System to obtain the mapping between domain name and IP address.
<kode lang='ps'>
nslookup xxx.xxx.xxx.xxx
</kode>
</kode>


= [http://guide.ovh.com/ConfigurerHosts Masquer les DNS OVH] =
= [http://guide.ovh.com/ConfigurerHosts Masquer les DNS OVH] =
La commande « whois » permet d'afficher les informations associées à une ip.
La commande {{boxx|whois}} permet d'afficher les informations associées à une ip.
Pour afficher les dns du type « dns.mon-domaine.fr » au lieu de « dns.ovh.fr »:
Pour afficher les dns du type {{boxx|dns.mon-domaine.fr}} au lieu de {{boxx|dns.ovh.fr}}:
* créer un champs de type A de valeur « dns.mon-domaine.fr » qui pointe sur l'IP du serveur
* créer un champs de type A de valeur {{boxx|dns.mon-domaine.fr}} qui pointe sur l'IP du serveur
* aller dans « GLUE Registry » → créer une entrée de valeur « dns.mon-domaine.fr » qui pointe sur l'IP d'un serveur DNS d'OVH (213.251.188.151)
* aller dans {{boxx|GLUE Registry}} → créer une entrée de valeur {{boxx|dns.mon-domaine.fr}} qui pointe sur l'IP d'un serveur DNS d'OVH (213.251.188.151)
* faire la même chose pour le serveur DNS secondaire: « ns.mon-domaine.fr » (213.251.128.151)
* faire la même chose pour le serveur DNS secondaire: {{boxx|ns.mon-domaine.fr}} (213.251.128.151)
[http://forum.ovh.com/showthread.php?84265-Manage-serveurs-DNS-ou-Glue-registry Serveurs DNS vs GLUE Registry]
[http://forum.ovh.com/showthread.php?84265-Manage-serveurs-DNS-ou-Glue-registry Serveurs DNS vs GLUE Registry]
{{info | Un Glue Record ou Registry sert à lier une adresse IP à un nom de serveur (nom.domaine.fr) dans le cas où le serveur DNS est dans le même domaine.<br>
{{info | Un Glue Record ou Registry sert à lier une adresse IP à un nom de serveur (nom.domaine.fr) dans le cas où le serveur DNS est dans le même domaine.<br>
Ex: pour « mon-domaine.fr », si le serveur DNS est sur « dns.mon-domaine.fr » alors qu'il aurait pu être sur un autre domaine tel que « dns.ovh.fr »}}
Ex: pour {{boxx|mon-domaine.fr}}, si le serveur DNS est sur {{boxx|dns.mon-domaine.fr}} alors qu'il aurait pu être sur un autre domaine tel que {{boxx|dns.ovh.fr}}}}


= [https://docs.ovh.com/fr/domains/utilisation-dynhost OVH et IP dynamique (DynHost)] =
= [https://docs.ovh.com/fr/domains/utilisation-dynhost OVH et IP dynamique (DynHost)] =
Permet de mettre à jour l'adresse IP liée au nom de domaine.
Permet de mettre à jour l'adresse IP liée au nom de domaine.
* [[Livebox_Play#Obtenir_l.27adresse_IP_externe|Obtenir l'adresse IP externe de la livebox]]
* [[Livebox_Play#Obtenir_l.27adresse_IP_externe|Obtenir l'adresse IP externe de la livebox]]
* [http://community.ovh.com/t/mise-a-jour-du-dynhost-plus-possible/8220 Mettre à jour l'IP sur OVH]


<filebox fn=dynhost lang=bash collapsed>
<filebox fn='update-dynhost-ip-on-ovh.sh'>
#!/bin/bash
host=domain.fr
login=domain.fr-xxx
password=***


set -e
wd=$(dirname $(realpath $0))
set -o pipefail
set -u
 
dynhost_path=/root/DynHost
cd $dynhost_path
 
host=bananeatomic.fr
login=...
password=...
options=""


log() {
log() {
     echo $1 >> $dynhost_path/dynhost.log
     echo "$(date) - $1" >> "${wd}/dynhost.log"
}
}


log ----------------------------------
ip=$(curl -s -X POST -H "Content-Type: application/x-sah-ws-1-call+json" \
log "$(date)"
    -d '{"service":"NMC","method":"getWANStatus","parameters":{}}' \
log 'Démarrage de DynHost'
    http://192.168.1.1/ws | jq .result.data.IPAddress)
 
if [ -z "${ip}" ]; then
    log 'ERROR - Unable to get external IP from livebox.'
    exit 1
fi


ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
last_ip=''
last_ip=$(cat $dynhost_path/last_ip)
if [[ -f ${wd}/last-ip.txt ]]; then
    last-ip="$(cat "${wd}/last-ip.txt")"
fi


if [ "$ip" ]; then
if [[ ${ip} != "${last-ip}" ]]; then
    if [ "$last_ip" != "$ip" ]; then
    log "INFO - Update from old IP: ${last-ip} to new IP: ${ip}"
        log "Ancienne IP: $last_ip"
    curl "https://www.ovh.com/nic/update?system=dyndns&hostname=${host}&myip=${ip}" \
        log "Nouvelle IP: $ip"
         -u "${login}:${password}"
        log "Mise à jour!"
    echo -n "${ip}" > "${wd}/last-ip.txt"
        if [ "$options" = "" ]; then
            options="-a $ip"  
         fi
       
        log "$(python2 $dynhost_path/ipcheck.py $options $login $password $host)"
        echo -n "$ip" > $dynhost_path/last_ip
    else
        log 'IP Identique! Pas de mise à jour.'
    fi
else
else
     log 'Panique à bord: Aucune IP Disponible!!'
     log 'DEBUG - IP has not changed.'
fi
fi
</filebox>
</filebox>
[[Category:Web]]

Dernière version du 2 septembre 2023 à 21:56

Types

Type A (Address)

Relie un nom de domaine à une adresse IPv4.

Domain Type Target
mon-domaine.fr A xxx.xxx.xxx.xxx

Type AAAA

Relie un nom de domaine à une adresse IPv6.

Type CNAME (Canonical NAME)

Créé un alias d'un nom de domaine vers un autre.

Domain Type Target
www.mon-domaine.fr. CNAME mon-domain.fr.
Bien penser à mettre un . à la fin du CNAME

Type NS (Name Server)

Délègue la gestion d'une zone DNS a un serveur de nom faisant autorité.

Domain Type Target
mon-domaine.fr. NS ns107.ovh.net

Type MX (Mail eXchange)

Relie un nom de domaine à un serveur e-mail.

Domain Type Target
mon-domaine.fr. MX 1 mon-domaine.fr.
Target as to be an address (xxx.xxx.xxx.xxx or mon-domaine.fr. or mx0.mail.ovh.net.), not a CNAME

Type SPF (Sender Policy Framework)

Permet au serveurs email recevant les messages de vérifier qu'ils proviennent bien des IPs configurées.

comme la vérification est en mode point à point (i.e. d'un serveur de mail à un autre, ou MTA à MTA) il ne fonctionne pas dans le cas de forwarders ou de relais.
Domain TTL Type Target
mon-domaine.fr. 600 SPF "v=spf1 a mx -all"
Option Description
a autorise l'IP correspondant au nom de domaine courant à envoyer des emails
mx autorise les IPs des serveur MX du domaine courant à envoyer les emails
ip4:x.x.x.x/yy indique les IP ou classes d'IP v4 autorisées à envoyer des emails
ip6:x:x:x:x::x/yy indique les IP ou classes d'IP v6 autorisées à envoyer des emails
ptr autoriser tous les serveurs dont le nom se termine par domain.net à envoyer des emails

autorise les reverses des serveurs mail du domaine courant à envoyer des emails

include:domain2.net use the SPF of domain2.net
-all forbid all other IPs
~all mark all other IPs as not allowed (SoftFail)
Si le type SPF n'est pas disponible, le type TXT fait aussi l’affaire.

OVH et les champs SPF
SPF Record Testing Tools

Outils

dig

Bash.svg
# connaître le serveur DNS utilisé
dig something
#;; SERVER: 192.168.0.x#53(192.168.0.x)

# rechercher DNS en forçant le serveur DNS
dig @8.8.8.8 google.com

# test si le réglage MX pointe bien vers le bon serveur
dig mx mon-domaine.fr

# obtenir l'adresse IP externe (WAN IP)
dig +short myip.opendns.com @resolver1.opendns.com

# error while loading shared libraries: libjson-c.so.3: cannot open shared object file: No such file or directory
ln -s libjson-c.so.4.0.0 /usr/lib/libjson-c.so.3

# installation
sudo pacman -S dnsutils

resolvectl

Bash.svg
resolvectl status
# ancienne commande
systemd-resolve --status

nslookup

Command-line tool for querying the Domain Name System to obtain the mapping between domain name and IP address.

Ps.svg
nslookup xxx.xxx.xxx.xxx

Masquer les DNS OVH

La commande whois permet d'afficher les informations associées à une ip. Pour afficher les dns du type dns.mon-domaine.fr au lieu de dns.ovh.fr:

  • créer un champs de type A de valeur dns.mon-domaine.fr qui pointe sur l'IP du serveur
  • aller dans GLUE Registry → créer une entrée de valeur dns.mon-domaine.fr qui pointe sur l'IP d'un serveur DNS d'OVH (213.251.188.151)
  • faire la même chose pour le serveur DNS secondaire: ns.mon-domaine.fr (213.251.128.151)

Serveurs DNS vs GLUE Registry

Un Glue Record ou Registry sert à lier une adresse IP à un nom de serveur (nom.domaine.fr) dans le cas où le serveur DNS est dans le même domaine.
Ex: pour mon-domaine.fr, si le serveur DNS est sur dns.mon-domaine.fr alors qu'il aurait pu être sur un autre domaine tel que dns.ovh.fr

OVH et IP dynamique (DynHost)

Permet de mettre à jour l'adresse IP liée au nom de domaine.

update-dynhost-ip-on-ovh.sh
host=domain.fr
login=domain.fr-xxx
password=***

wd=$(dirname $(realpath $0))

log() {
    echo "$(date) - $1" >> "${wd}/dynhost.log"
}

ip=$(curl -s -X POST -H "Content-Type: application/x-sah-ws-1-call+json" \
    -d '{"service":"NMC","method":"getWANStatus","parameters":{}}' \
    http://192.168.1.1/ws | jq .result.data.IPAddress)

if [ -z "${ip}" ]; then
    log 'ERROR - Unable to get external IP from livebox.'
    exit 1
fi

last_ip=''
if [[ -f ${wd}/last-ip.txt ]]; then
    last-ip="$(cat "${wd}/last-ip.txt")"
fi

if [[ ${ip} != "${last-ip}" ]]; then
    log "INFO - Update from old IP: ${last-ip} to new IP: ${ip}"
    curl "https://www.ovh.com/nic/update?system=dyndns&hostname=${host}&myip=${ip}" \
        -u "${login}:${password}"
    echo -n "${ip}" > "${wd}/last-ip.txt"
else
    log 'DEBUG - IP has not changed.'
fi