Vesta Control Panel Dynamic DNS Service

Status
Completed
Approximate Date
Work Context
Personal Project
Contribution Level
Independent Major Feature
Technologies Used
Linux, BASH, PHP, JavaScript, JSON

This project is an evolution and refinement of my Vesta Control Panel Dynamic DNS Script which would operate as a Dynamic DNS Service for Linux systems only. Running the old script with Windows however proved to be very difficult without some sort of VM or WLS implementation.

The process of simplifying the DDNS required modifications to Vesta Control Panel itself so that updating a DNS record dynamically could be as simple as passing a series of parameters using simple GET or POST requests. For example: https://example.com:8083/ddns/?user={USER}&id={ID}&key={KEY}

These parameters are used to authenticate the request. If the authentication succeeds, the associated DNS record's value is then modified to be the public IP address of the remote system making the request. Thus dynamically updating the DNS record.

This feature—in combination with an automated means of issuing such a request (i.e. CRON executing CURL)—is useful for individuals who need to connect to a system that has a dynamic public IP address. It will allow users to be able to connect to their system remotely without having to regularly update the IP address associated with the DNS record for the respective system.

The simplification and integration of this feature into Vesta Control panel makes this functionality available for all operating systems capable of connecting to a server via HTTPS.

Additional Notes and Considerations

  • This feature will only work with HTTPS enabled, thus ensuring security.
  • This feature can not directly be used to run Vesta Control Panel from a dynamic IP address.
  • This feature can be enabled/disabled via Vesta Control Panel's Package configuration.
  • Configurations for this feature are also included in Vesta Control Panel's automatic Backup and Restore processes.