#!/bin/bash set -u set -e # cree les fichiers de configuration bind9 # - ficher de zone directe # - ficher de zone inverse # zone="domaine.lan" initialize () { readonly zonenet="192.168.56" readonly zonerev="56.168.192.in-addr.arpa" # NS1 readonly nsname="srv1" readonly nsip="${zonenet}.10" readonly nsiprev=$(echo ${nsip}|cut -d. -f4) # dernier octet pour classe C # NS2 readonly nsname2="srv2" readonly nsip2="${zonenet}.11" readonly nsiprev2=$(echo ${nsip2}|cut -d. -f4) readonly ttl="86400" # Global readonly nsfqdn="${nsname}.${zone}" readonly nsfqdnp="${nsfqdn}." readonly zonep="${zone}." readonly date=$(date +%Y%m%d00) } if [[ $# != 1 ]] ; then echo "usage : $0 " exit 1 fi zone=$1 initialize echo "Generation fichier named.conf.local ..." cat < "named.conf.local" # fichier zone ${zone} # le $(date) zone "${zone}" { type master; file "/etc/bind/db.${zone}"; # zone directe }; zone "${zonerev}" { type master; file "/etc/bind/db.${zone}.rev"; # zone inverse }; EOT # fichier de zone directe echo "Generation fichier de zone directe db.${zone} ..." cat < "db.${zone}" ; fichier zone ${zone} ; le $(date) \$TTL ${ttl} ; (1 day) \$ORIGIN ${zonep} @ IN SOA ${nsfqdnp} root.${nsfqdnp} ( ${date} ; serial YYYYMMDDnn 14400 ; refresh (4 hours) 1800 ; retry (30 minutes) 1209600 ; expire (2 weeks) 3600 ; minimum (1 hour) ) @ IN NS ${nsname} @ IN NS ${nsname2} IN A 203.0.113.10 ; zone IN AAAA 2001:DB8:BEEF:113::10 ; www IN CNAME ${nsfqdnp} ftp IN CNAME ${nsfqdnp} ${nsname} IN A ${nsip} IN AAAA 2001:DB8:BEEF:2::22 ${nsname2} IN A ${nsip2} IN AAAA 2001:DB8:BEEF:100::22 EOT echo "Generation fichier de zone inverse db.${zone}.rev ..." cat < "db.${zone}.rev" ; fichier zone inverse ${zone} ; le $(date) \$TTL ${ttl} ; (1 day) @ IN SOA ${nsfqdnp} root.${nsfqdnp} ( ${date} ; serial YYYYMMDDnn 14400 ; refresh (4 hours) 1800 ; retry (30 minutes) 1209600 ; expire (2 weeks) 3600 ; minimum (1 hour) ) @ IN NS ${nsname}.${zone}. @ IN NS ${nsname2}.${zone}. ${nsiprev} IN PTR ${nsname}.${zone}. ${nsiprev2} IN PTR ${nsname2}.${zone}. EOT echo "Generation fichier /etc/resolv.conf ..." cat < "/etc/reolv.conf" # fichier resolv.conf ${zone} # le $(date) domain "${zone}" search "${zone}" nameserver 127.0.0.1 EOT