Votre FAI (Fournisseur d'Acces Internet) ne vous propose pas une adresse IP fixe (ou ce service est payant), votre adresse IP change donc régulièrement.
Nous vous proposons un moyen simple d'associé un nom de machine qui vous donnera l'adresse de votre connexion et vous serez donc en mesure de joindre votre ordinateur simplement.
Vous devez pour cela:
. soit configurer votre équipement de connexion (box ou routeur)
. soit installer sur votre ordinateur un logiciel qui teste l'adresse IP à intervalles réguliers et informe BookMyName en cas de changement. Celui-ci met alors à jour les serveurs de DNS.
Ainsi, vous pouvez héberger vos services (web, jeux, etc.) sur votre ligne ADSL ou Fibre.
. Vous devez disposez d'un nom de domaine enregistré chez BookMyName (Exemple: mondomaine.fr)
. vous devez définir un nom de machine (Exemple: chezmoi.mondomaine.fr)
. Vous aurez besoin de votre compte (Handle et mot de passe BookMyName)
Vous voulez définir plusieurs noms, comme par exemple: www.mondomaine.fr, ftp.mondomaine.fr, etc.
Nous vous invitons à utiliser l'interface du site web a : http://www.bookmyname.com > Accueil > Gérer > Personnaliser le contenu de vos DNS
puis “Interface utilisateurs avertis” afin de définir des entrées comme par exemple:
www 28000 CNAME chezmoi
ftp 28800 CNAME chezmoi
Vous devez ajouter le fournisseur BookMyName.com à la configuration DynDNS du NAS.
Cliquez sur Personnaliser. Une boîte de dialogue s’affiche vous invitant à saisir les paramètres suivants : Fournisseur de service : BookMyName URL de la requête : https://www.bookmyname.com/dyndns/?username=__USERNAME__&password=__PASSWORD__&hostname=__HOSTNAME__&myip=__MYIP__ Cliquez sur Enregistrer pour ajouter le fournisseur de services personnalisé à la liste des fournisseurs de services DDNS.
Après quoi vous pouvez remplir la configuration via l'interface web du NAS:
OpenWrt est une distribution GNU/Linux pour matériel embarqué (typiquement des routeurs sans-fil). liste des matériels compatibles
dans le fichier de configuration /etc/config/ddns
config ddns 'global' option date_format '%F %R' option log_lines '250' option allow_local_ip '0' config service 'myddns_ipv4' option username 'HANDLE-FREE' option password 'MOT-DE-PASSE-DU-HANDLE' # ou authinfo du nom de domaine option ip_source 'network' option enabled '1' option update_url 'http://[USERNAME]:[PASSWORD]@www.bookmyname.com/dyndns/?hostname=[DOMAIN]&myip=[IP]' option interface 'lan' option ip_network 'lan' option use_syslog '2' option use_logfile '1' option domain 'MONHOST.MONDOMAIN.TLD' # facultatif (si l'IP a déclarer n'est pas sur l'interface de sortie de l'OpenWRT) option ip_url 'https://www.bookmyname.com/myip.cgi' option check_interval '300' option check_unit 'seconds'
Le format du service est le suivant:
https://[USERNAME]:[PASSWORD]@www.bookmyname.com/dyndns/?hostname=[HOSTNAME]&myip=[IP]
[USERNAME] = Handle BookMyName (QQCHOSE-FREE) [PASSWORD] = Mot de passe du Handle ou Authinfo du nom de domaine [HOSTNAME] = mon-domaine.fr ou ma-machine.mon-domaine.fr [IP] = (ipv4 ou ipv6)
Bien que le service fonctionne aussi en http, nous vous conseillons vivement d'utilisation d'une URL de la forme httpS
Exemple pour définir une IPv4 avec la commande Linux wget:
% wget -q -O /dev/null 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=demo123.mondomaine.fr&myip=1.2.3.4'
Exemple pour définir une IPv4 avec la commande freeBSD fetch:
% fetch -q -o /dev/null 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=ma-camera.mondomaine.fr&myip=4.5.6.7'
Exemple pour définir une IPv6:
% fetch -q -o /dev/null 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mon-drone.mondomaine.fr&myip=2a01:e0f:1:2:58af:f967:0:1'
Exemple pour ajouter ou retirer un champ TXT, utile pour diverses vérifications (Google, Microsoft, let's encrypt, SPF, etc.)
wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mondomaine.fr&type=txt&ttl=86400&do=add&value="google-site-verification=DeadBeefCQFD"' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mondomaine.fr&type=txt&ttl=86400&do=remove&value="google-site-verification=DeadBeefCQFD"'
Exemple pour la gestion de certificats:
wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mypki.mondomaine.fr&type=caa&ttl=3600&do=add&value=0 issue "letsencrypt.org"' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mypki.mondomaine.fr&type=caa&ttl=3600&do=add&value=0 iodef "mailto:moi@mondomaine.com"' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mypki.mondomaine.fr&type=caa&ttl=3600&do=remove&value=0 issue "letsencrypt.org"' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=mypki.mondomaine.fr&type=caa&ttl=3600&do=remove&value=0 iodef "mailto:moi@mondomaine.com"' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=_acme-challenge.mypki.mondomaine.fr&type=txt&ttl=300&do=add&value="TGEgdmFsZXVyIGQndW5lIGlk6WUgZOlwZW5kIGRlIHNvbiB1dGlsaXNhdGlvbgo="' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=_acme-challenge.mypki.mondomaine.fr&type=txt&ttl=300&do=remove&value="TGEgdmFsZXVyIGQndW5lIGlk6WUgZOlwZW5kIGRlIHNvbiB1dGlsaXNhdGlvbgo="' wget -q -O - 'https://TEST-FREE:MonAuthInfo@www.bookmyname.com/dyndns/?hostname=_acme-challenge.mypki.mondomaine.fr&type=txt&ttl=300&do=add&value="UGFyZm9pcywgaWwgdmF1dCBtaWV1eCBmYWlyZSBzZW1ibGFudCBkJ+p0cmUgdW4g4m5lIHBvdXIg6XZpdGVyCmQn6nRyZSBlbWLqdOkgcGFyIGNldXggcXVpIGZvbnQgc2VtYmxhbnQgZCfqdHJlIGludGVsbGlnZW50cyAhCg=="
Si votre équipement est derrière une ou plusieurs couche de NAT (Network Adress Translation) et que vous n'avez pas l'information de l'adresse IP de sortie, vous pouvez définir “myip=0.0.0.0” l'IP défini sera celle utilisé pour interroger le service web.
Vous pouvez aussi utilisez le script suivant a appelé dans une crontab par exemple toute les 5 minutes:
*/5 * * * * root /usr/local/bin/dyndns-bookmyname
#!/bin/sh # mise a jour / si necessaire / de mon IP Dynamique de connexion FILE_IPLIVEBOX="/var/tmp/myip-livebox.txt" # le fichier n'existe pas encore (boot, etc.) if test -f $FILE_IPLIVEBOX then PREV_IPLIVEBOX=`cat $FILE_IPLIVEBOX` else PREV_IPLIVEBOX="0.0.0.0" fi # obtenir l'IP de sortie derriere un reseau avec NAT sans access au routeur... IPLIVEBOX=`wget -O - -q -4 https://www.bookmyname.com/my-ip-address` if [ $IPLIVEBOX != $PREV_IPLIVEBOX ] then echo `date +"%Y-%m-%d% %H:%M:%S %A"` echo "update my ip $IPLIVEBOX" wget -q -O/dev/null --user=MON_DOMAIN.TLD --password='MA_AUTH_KEY' 'https://www.bookmyname.com/dyndns?system=dyndns&hostname=MON_HOST.MON_DOMAIN.TLD&myip='$IPLIVEBOX # wget exit code 0 => No problems occurred. if [ $? -eq 0 ] then echo $IPLIVEBOX > $FILE_IPLIVEBOX echo "update done" fi fi exit 0