If you are looking for a script to help register your linux box with a windows DNS sever than you have come to the right place.
Note: For this to work you need to have enabled Windows DNS to allow unsecure updates
Note: This script ASSUMES that your /etc/network/interfaces is setup for static IP and has dns-nameservers and dns-search setup
Example:
# The primary network interface auto eth0 iface eth0 inet static address 192.168.1.22 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.1.10 #my Windows DNS server dns-search corp.local # my DNS zone that I want to update
Step 1: create a folder calls /var/scripts
sudo mkdir /var/scripts
Step 2: create a script file called dns-update.sh
sudo vi /var/scripts/dns-update.sh
Step 3: paste the following into the script file
#!/bin/sh ADDR=`/sbin/ifconfig eth0 | grep 'inet ' | awk '{print $2}' | sed -e 's/.*://'` HOST=`hostname -f` DNSSERVER=`systemd-resolve --status | grep 'DNS Servers: ' -m 1 | sed -e 's/.*: //'` DNSZONE=`systemd-resolve --status | grep 'DNS Domain: ' -m 1 | sed -e 's/.*: //'` echo "server $DNSSERVER" > ./nsupdate.txt echo "zone $DNSZONE" >> ./nsupdate.txt echo "update delete $HOST A" >> ./nsupdate.txt echo "update add $HOST 600 A $ADDR" >> ./nsupdate.txt echo "show" >> ./nsupdate.txt echo "send" >> ./nsupdate.txt #cat ./nsupdate.txt nsupdate ./nsupdate.txt
Step 4: Enable the script for execution
sudo chmod +x /var/scripts/dns-update.sh
Step 5: Run the script (or schedule it via cron)
sudo /var/scripts/dns-update.sh