Skip to content

Commit

Permalink
DNS : formattage des fichiers
Browse files Browse the repository at this point in the history
Fait le même formatage qu'effectué par le DNS pour l'enregistrement via
DHCP.
    - dns/install/config_template/named.domain.template
    - dns/install/config_template/reverse.domain.template
    - dns/add_server_2_dns.sh
    - dns/remove_server.sh
    - dns/remove_db_from_dns.sh
    - dns/show_dns.sh
  • Loading branch information
PhilippeLeroux committed Mar 16, 2018
1 parent 560f2d8 commit 334bc43
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 66 deletions.
40 changes: 21 additions & 19 deletions dns/add_server_2_dns.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,31 @@

. ~/plescripts/plelib.sh
. ~/plescripts/networklib.sh

. ~/plescripts/global.cfg
EXEC_CMD_ACTION=EXEC

typeset -r ME=$0
typeset -r PARAMS="$*"
typeset -r str_usage=\
typeset -r ME=$0
typeset -r PARAMS="$*"

typeset -r str_usage=\
"Usage : $ME
-name=<name> Server name
-ip=<xxx.xxx.xxx.xxx>|-ip_node=<xxx> ip or ip node
[-not_restart_named] do not restart named
"

typeset -r DOMAIN_NAME=$(hostname -d)
typeset -r DOMAIN_NAME=$(hostname -d)

typeset -r named_file=/var/named/named.${DOMAIN_NAME}
typeset -r reverse_file=/var/named/reverse.${DOMAIN_NAME}
typeset -r named_file=/var/named/named.${DOMAIN_NAME}
typeset -r reverse_file=/var/named/reverse.${DOMAIN_NAME}

LN
exit_if_file_not_exists $named_file
exit_if_file_not_exists $reverse_file

typeset server_name=undef
typeset server_ip=undef
typeset restart_named="yes"
typeset server_name=undef
typeset server_ip=undef
typeset restart_named="yes"

while [ $# -ne 0 ]
do
Expand Down Expand Up @@ -57,8 +57,8 @@ do

-ip_node=*)
server_ip=${1##*=}
typeset -i count_char=$(wc -m <<< "$server_ip")
count_char=count_char-1
typeset -i count_char=$(wc -m <<< "$server_ip")
((++count_char))
if [ $count_char -lt 1 ] || [ $count_char -gt 3 ]
then
error "Bad ip node : $server_ip"
Expand All @@ -72,7 +72,7 @@ do
;;

-not_restart_named)
restart_named="no"
restart_named=no
shift
;;

Expand All @@ -88,25 +88,27 @@ done
exit_if_param_undef server_name "$str_usage"
exit_if_param_undef server_ip "$str_usage"

typeset -r ip_node=${server_ip##*.}
typeset -r ip_node=${server_ip##*.}

grep "^\b$server_name .* $server_ip" $named_file
grep "^\b$server_name.*$server_ip$" $named_file
if [ $? -eq 0 ]
then
info "$server_name / $server_ip already registered, nothing to do."
exit 0
fi

info "Update $named_file"
exec_cmd "printf \"%-19s IN A %s\n\" $server_name $server_ip >> $named_file"
exec_cmd "printf \"%s A %s\n\" $server_name $server_ip >> $named_file"
LN

info "Update $reverse_file"
exec_cmd "printf \"%-3s IN PTR %s.%s.\n\" $ip_node $server_name $DOMAIN_NAME >> $reverse_file"
exec_cmd "printf \"%s PTR %s.%s.\n\" $ip_node $server_name $DOMAIN_NAME >> $reverse_file"
LN

if [ "$restart_named" = "yes" ]
if [ $restart_named == yes ]
then
info "Restart named"
info "Restart named && dhcp"
exec_cmd "systemctl restart named.service"
exec_cmd "systemctl restart dhcpd.service"
LN
fi
19 changes: 10 additions & 9 deletions dns/install/config_template/named.domain.template
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
; vim:ts=8:sw=8
$TTL 86400
@ IN SOA localhost root.localhost (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS localhost
localhost IN A 127.0.0.1
DNS_NAME IN A DNS_IP
@ IN SOA localhost root.localhost (
46 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
NS localhost
localhost A 127.0.0.1
DNS_NAME A DNS_IP
17 changes: 10 additions & 7 deletions dns/install/config_template/reverse.domain.template
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
; vim:ts=8:sw=8
$ORIGIN REVERSED_NETWORK.in-addr.arpa.
$TTL 1H
@ IN SOA DNS_NAME.DOMAIN_NAME. root.DNS_NAME.DOMAIN_NAME. ( 2
3H
1H
1W
1H )
REVERSED_NETWORK.in-addr.arpa. IN NS DNS_NAME.DOMAIN_NAME.
@ IN SOA DNS_NAME.DOMAIN_NAME. root.DNS_NAME.DOMAIN_NAME. (
6
3H
1H
1W
1H
)
$ORIGIN REVERSED_NETWORK.in-addr.arpa.

DNS_IP_NODE IN PTR DNS_NAME.DOMAIN_NAME.
DNS_IP_NODE PTR DNS_NAME.DOMAIN_NAME.
38 changes: 19 additions & 19 deletions dns/remove_db_from_dns.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,12 @@
. ~/plescripts/global.cfg
EXEC_CMD_ACTION=EXEC

typeset -r ME=$0
typeset -r PARAMS="$*"
typeset -r ME=$0
typeset -r PARAMS="$*"

typeset -r str_usage="Usage : $ME -db=<>"
typeset -r str_usage="Usage : $ME -db=<>"

typeset -r DOMAIN_NAME=$(hostname -d)

typeset -r named_file=/var/named/named.${DOMAIN_NAME}
typeset -r reverse_file=/var/named/reverse.${DOMAIN_NAME}

exit_if_file_not_exists $named_file
exit_if_file_not_exists $reverse_file

typeset db=undef
typeset db=undef

while [ $# -ne 0 ]
do
Expand Down Expand Up @@ -48,12 +40,7 @@ exit_if_param_undef db $str_usage

cfg_exists $db

typeset -ri max_nodes=$(cfg_max_nodes $db)

info "Backup DNS configuration :"
exec_cmd cp $named_file ${named_file}.backup
exec_cmd cp $reverse_file ${reverse_file}.backup
LN
typeset -ri max_nodes=$(cfg_max_nodes $db)

for (( inode=1; inode <= max_nodes; ++inode ))
do
Expand All @@ -65,10 +52,23 @@ done

if [ -f $cfg_path_prefix/$db/scanvips ]
then
scan_name=$(cat $cfg_path_prefix/$db/scanvips | cut -d: -f1)
typeset -r DOMAIN_NAME=$(hostname -d)
typeset -r named_file=/var/named/named.${DOMAIN_NAME}

IFS=':' read scan_name vip1 vip2 vip3<<<$(cat $cfg_path_prefix/$db/scanvips)

exec_cmd ~/plescripts/dns/remove_server.sh -name=$scan_name -no_restart
LN

# Depuis l'utilisation de DHCP le non de la SCAN n'est présent qu'une fois
# il y a donc 2 IP qui ne sont pas effacées par le script remove_server.sh.
exec_cmd "sed -i '/${vip1}/d' $named_file"
exec_cmd "sed -i '/${vip2}/d' $named_file"
exec_cmd "sed -i '/${vip3}/d' $named_file"
LN
fi

info "Restart named & dhcpd"
exec_cmd "systemctl restart named.service"
exec_cmd "systemctl restart dhcpd.service"
LN
5 changes: 3 additions & 2 deletions dns/remove_server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,16 @@ exit_if_param_undef name $str_usage

IFS='.' read server_name server_domain<<<$(echo $name)

exec_cmd "sed -i '/${server_name} /d' $named_file"
exec_cmd "sed -i '/^${server_name}\t/d' $named_file"
LN

exec_cmd "sed -i '/${server_name}.${DOMAIN_NAME}/d' $reverse_file"
LN

if [ $restart = yes ]
then
info "Restart named"
info "Restart named & dhcpd"
exec_cmd "systemctl restart named.service"
exec_cmd "systemctl restart dhcpd.service"
LN
fi
26 changes: 16 additions & 10 deletions dns/show_dns.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,29 @@

. ~/plescripts/plelib.sh

typeset -r domain=$(hostname -d)
typeset -r domain=$(hostname -d)

typeset -r horizontal_separator=$( fill "~" $(( 18 + 1 + 1 + 1 + 15)) )
info $horizontal_separator
info "$(printf "%-18s | %s" "Server" "ip")"
info $horizontal_separator

# Trié par rapport à l'ip node.
cat /var/named/named.$domain |\
grep -E "^[[:alpha:]].*\sA\s." |\
grep -v localhost |\
sort -n -t "." -k 4 |\
while read server_name f1 f2 server_ip
# Avec le DHCP les fichiers DNS sont reformatés, les IP d'une adresse de SCAN
# ne sont pas simple à récupérer, donc je passe maintenant par le fichier
# reverse.
typeset -r network="$(ping -c 1 $(hostname) |\
grep "PING" |\
cut -d\( -f2 |\
cut -d. -f1-3)"
cat /var/named/reverse.$domain |\
grep -E "^[0-9]" |\
grep -v "arpa" |\
sort -n |\
while read ip_node f2 server_name
do
# Avec l'enregistrement DHCP il y a un champ de moins.
[ x"$server_ip" == x ] && server_ip=$f2 || true
info "$(printf "%-18s | %s" $server_name $server_ip)"
[ x"$ip_node" == x ] && continue || true
server_name="$(cut -d. -f1<<<"$server_name")"
info "$(printf "%-18s | %s" $server_name "$network.$ip_node")"
done

info $horizontal_separator

0 comments on commit 334bc43

Please sign in to comment.