IP dynamique

Bonjour à tous,

est il possible ou existe il un mécanisme pour utiliser une entrée DNS de type A avec une IP dynamique ?

Actuellement, nous avons un serveur qui annonce chez l’hébergeur en cas de changement d’IP.
sans passer par Cloudflare ça fonctionne plutot bien.

Par contre derriere cloudflare, si l’IP change l’accés web au serveur ne fonctionne plus, nous sommes obligé de le faire à la main (actualiser l’entrée A)

Merci d’avance pour vos réponses :slight_smile:

Hello,

En complément de la réponse de sdayman

1 - en utilisant un A et l’API pour mettre a jour le record

Si tu as :
www.mondomaine.com A 1.2.3.4 Proxy On
tu pourrais avoir un script qui détecte que ton IP publique a changé en 1.2.3.5
Brouillon non testé (bien lire et comprendre le disclaimer svp) :

#!/bin/bash

################################################################################################
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
################################################################################################

IPADDR=`curl -s http://ipinfo.io/ip | tr -d '\n'`
if [ ${PIPESTATUS[0]} -ne "0" ] || [ "$IPADDR" = "" ] || [[ ! $IPADDR =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
    echo "#### Failed to get IPADDR"
    exit 1;
fi

LASTIP=`dig +short www.mondomaine.com @1.1.1.1 | tr -d '\n'`
if [ ${PIPESTATUS[0]} -ne "0" ] || [ "$LASTIP" = "" ]; then
    echo "#### Failed to get LASTIP"
    exit 1;
fi

if [ "$IPADDR" != "$LASTIP" ]; then
    # update cloudflare
    RESPONSE=`curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/TAZONEID/dns_records/TONDNSRECORDID" -H "Authorization: Bearer TONTOKEN" -H "Content-Type: application/json" --data "{\"type\":\"A\", \"name\":\"www.mondomaine.com\", \"content\":\"${IPADDR}\", \"ttl\":120, \"proxied\":true}"`
    if [ $? -ne "0" ] || [[ ${RESPONSE} != *\"success\":true* ]]; then
        echo "#### Failed to update cloudflare"
        exit 1;
    fi
fi

2 - en utilisant un CNAME

C’est étonnant que ton hébergeur te change ton IP publique ?!
A priori il te fournit déjà un hostname (du type vps12345.monhebergeur.com) dont l’IP va suivre ton serveur.
ou si tu as un outil de type dyndns (dynu point com), ou celui de ton routeur/nas/…
tu peux faire un CNAME dans cloudflare :
www.mondomaine.com CNAME vps12345.monhebergeur.com Proxy On

1 Like

Hello merci pour vos messages.
En fait mon problème et que le NAS est héberger a mon domicile et que mon FAI change régulièrement d’IP.
Actuellement j’utilise un outil sur mon nas sui permet d’actualiser mon IP chez mon hebegeur qui porte mon nom de domain, ainsi mon URL est tjs accessible.
Maintenant en passant par Cloudflare, cette actualisation se fait tjs chez mon hebegeur, mais cloudflare le sait pas du coup je suis obligé de remplacer mon champ A dans la partie DNS pour que l’accès au serveur puisse de nouveau opérationnel.

Sur le sujet d’IP dynamique qu’ envoyé sdayman, j’ai bien sur mon NAS la fonctionnalité pour le faire mais en suivant le tutaux et ma clé API, ça ne fonctionne pas (erreur d’authentification…)

Bonjour @Mikel59

Je suis un peu perdu :frowning:
L’ip dynamique est elle chez ton hébergeur ou sur ta connexion a domicile ?
Le site web que tu essayes de protéger est il chez ton hébergeur ou sur ta connexion domicile ?

En fait mon problème et que le NAS est héberger a mon domicile et que mon FAI change régulièrement d’IP.

Ok. Je comprends que l’IP qui est dynamique est celle de ton domicile.

Actuellement j’utilise un outil sur mon nas sui permet d’actualiser mon IP

Peux tu préciser quel est cet outil ?

chez mon hebegeur qui porte mon nom de domain,

Quand tu dis “hebergeur” tu veux dire qu’il heberge ton site web ? un site web ?

ainsi mon URL est tjs accessible.

As tu une url / un hostname qui suit / pointe déjà ton IP dynamique ?
Si tu as déjà un hostname dynamique tu peux utiliser un CNAME dans le dahboard de Cloudflare.

je suis obligé de remplacer mon champ A dans la partie DNS pour que l’accès au serveur puisse de nouveau opérationnel.

Tu peux automatiser la mise à jour d’un record A avec l’API de Cloudflare.
La documentation est là :
https://api.cloudflare.com/#dns-records-for-a-zone-update-dns-record

ça ne fonctionne pas (erreur d’authentification…)

Si ça ne fonctionne pas tu pourrais commencer par lister les DNS records :
https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records

Merci