Eigen DNS servers op twee locaties
Athena, Bash, Linux, Neo/Alectrona/Artemis, Scripting, Servers, Tutorials, Ubuntu Add commentsSinds kort heb ik twee eigen DNS servers op verschillende locaties, voor mijn domeinnamen. Als DNS server gebruikt ik MyDNS omdat die makkelijk te configureren is en met een MySQL database werkt. Om de DNS makkelijk te kunnen beheren en ook vrienden hun eigen domeinen te kunnen laten beheren gebruikt ik MyDNSconfig als webbased controlepaneel voor de dns.
athena.maikelg.net in Amsterdam dient als primaire dns server, daarop draait ook het controlpanel. Thuisserver Exodus is de secundaire.
Voor het overzetten van de zone van athena naar exodus heb ik het volgende bash script gemaakt:
1
2
3
4
5
6
7
8 #!/bin/bash
USER='user'
PASS='pass'
DATABASE='mydns'
DBHOST='athena.maikelg.net'
echo "USE $DATABASE;" > /opt/dnssync/tmp.db
mysqldump --no-create-db --password=$PASS --user=$USER --host=$DBHOST $DATABASE >> /opt/dnssync/tmp.db
mysql --user=$USER --password=$PASS < /opt/dnssync/tmp.db
Dit script moet op de secundaire dns server draaien (Exodus) en legt contact met de MySQL server op de primaire (Athena). Daar haalt hij de tabellen op, die hij vervolgens in zijn eigen database invoegt. Dit script draait dan bij voorkeur elk half uur of elk uur.
In dit script wordt /opt/dnssync als tijdelijke map gebruikt en het is noodzakelijk dat de MySQL users en passwords op de primaire als de secundaire gelijk zijn. Natuurlijk kan je dit aanpassen mocht je dat willen. Het script heeft het programma mysqldump nodig om te functioneren. Als je de primaire dns servers uitvalt kan de secundaire gewoon geen verbinding leggen met de MySQL database van de primaire. Dan gebeurt er niets en blijft de secundaire server gewoon zijn data gebruiken tot de primaire weer online komt.




Recent Comments