EV21/dynb

Cloudflare DNS as DynDNS Provider

EV21 opened this issue · 0 comments

EV21 commented

It seems pretty easy

We need

  • Zone-ID or the Zone-Domain
    You can find it somewhere at Dashboard > Website > example.com
    In theory we can automatically get that with
    curl -X GET "https://api.cloudflare.com/client/v4/zones?name=example.com
    but that does not work with a subdomain
    curl -X GET "https://api.cloudflare.com/client/v4/zones?name=dyndns.example.com
    Cloudflare does not allow to have Subdomain-Zones so we also need the Zone-ID or Zone-Domain (simpler) as an additional parameter if there is no easy way of doing a workaround like we have it with the DomRobot API from INWX.
  • API-Token
    Permissions: Zone.DNS edit
    Zone Resources: at least the specific zone for example.com
  • Domain
    This is only needed if it is a subdomain like dyndns.example.com and it is not identical to the Zone-Domain

With this information we can automatically get the Domain-Record-ID from the API and finally update the record

requests:

  • GET "https://api.cloudflare.com/client/v4/zones?name=example.com"
  • GET "https://api.cloudflare.com/client/v4/zones/<zone-id>/dns_records?name=dyndns.example.com"
  • PUT "https://api.cloudflare.com/client/v4/zones/<zone-id>/dns_records/<domain-record-id>"
    with data: {"type":"A","name":"dyndns.example.com","content":"127.0.0.1","ttl":60}
    in case someone wants to use the cloudflare network we also need to set "proxied":true (default is false)

This feature may require some renaming (refactoring) for the INWX Domrobot part to keep the code clean and manageable.