Dns

De Banane Atomic
Aller à la navigationAller à la recherche

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

mon-domaine.fr    NS    ns107.ovh.net

Type MX (Mail eXchange)

Relie un nom de domaine à un serveur e-mail.
Définit le nom du serveur de courrier du domaine.

.mon-domaine.fr    MX    redirect.ovh.net

Type SPF (Sender Policy Framework)

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

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 autorise les reverses des serveurs mail du domaine courant à envoyer des emails
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

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