# peach-dyndns-server a dynamic DNS server to host the names of guests with changing IP addresses by providing an http API for updating bind9 configurations. ## Deployment The bind9 server and peach-dyndns-server can be deployed with ansible vis setup_server.sh ## Development ``` sudo su peach-dyndns; ./target/release/main -vv ``` ## Test ### ping ``` curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "ping", "id":1 }' 127.0.0.1:3002 ``` ### register_domain ``` curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "register_domain", "params" : {"domain": "mirage.dyn.peachcloud.org" }, "id":1 }' 127.0.0.1:3002 ``` ### is_domain_available ``` curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "is_domain_available", "params" : {"domain": "mirage.dyn.peachcloud.org" }, "id":1 }' 127.0.0.1:3002 ``` # register_domain ``` curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "register_domain", "params" : {"domain": "mirage.dyn.peachcloud.org" }, "id":1 }' 127.0.0.1:3002 ``` # is_domain_available ``` curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "is_domain_available", "params" : {"domain": "mirage.dyn.peachcloud.org" }, "id":1 }' 127.0.0.1:3002 ``` # test peach-bind9 is running, ``` # this returns version of bind running dig -t txt -c chaos VERSION.BIND @IP_ADDRESS_OF_SERVER # this returns records for blue.dyn.peachcloud.org nslookup blue.dyn.peachcloud.org YOUR_SERVER_IP_ADDRESS # this returns records for blue.dyn.peachcloud.org nslookup blue.dyn.peachcloud.org ns.peachcloud.org ``` # test nsupdate is working ``` /usr/bin/nsupdate -k /var/lib/peachcloud/peach-dyndns/tsig.key -v <