NetworkManager support

This commit is contained in:
2021-05-05 17:45:36 +02:00
parent 72d76f6029
commit ad1c759310
3 changed files with 29 additions and 4 deletions

View File

@@ -224,7 +224,12 @@ EOF
} }
function check_ip() { function check_ip() {
local ips=`nslookup $1 | awk '/^Address: / { print \$2 }'` # $1 - hostname
# $2 - IP
# $3 - Replace
# $4 - Server
local ips=`nslookup $1 $4 | awk '/^Address: / { print \$2 }'`
local count=`echo $ips | wc -l` local count=`echo $ips | wc -l`
if [ "$3" == "yes" ]; then if [ "$3" == "yes" ]; then
@@ -281,7 +286,7 @@ function parse_ddns_config() {
tsig_key_secret=${DDNS_TSIG_KEY_SECRET} tsig_key_secret=${DDNS_TSIG_KEY_SECRET}
echo replace $DDNS_REPLACE echo replace $DDNS_REPLACE
if check_ip "$rr_name" "$rr_data" "$replace"; then if check_ip "$rr_name" "$rr_data" "$replace" "$server"; then
run_nsupdate "${rr_name}" "${ttl}" "${type}" "${rr_data}" "${replace}" "${server}" "${tcp}" "${zone}" "${gss_tsig}" "${gss_keytab}" "${gss_principal}" "${tsig_file}" "${tsig_key_type}" "${tsig_key_name}" "${tsig_key_secret}" run_nsupdate "${rr_name}" "${ttl}" "${type}" "${rr_data}" "${replace}" "${server}" "${tcp}" "${zone}" "${gss_tsig}" "${gss_keytab}" "${gss_principal}" "${tsig_file}" "${tsig_key_type}" "${tsig_key_name}" "${tsig_key_secret}"
fi fi
fi fi
@@ -306,7 +311,7 @@ function parse_ddns_config() {
tsig_key_name=$(eval echo "\${DDNS${hostnum}_TSIG_KEY_NAME-\${DDNS_TSIG_KEY_NAME}}") tsig_key_name=$(eval echo "\${DDNS${hostnum}_TSIG_KEY_NAME-\${DDNS_TSIG_KEY_NAME}}")
tsig_key_secret=$(eval echo "\${DDNS${hostnum}_TSIG_KEY_SECRET-\${DDNS_TSIG_KEY_SECRET}}") tsig_key_secret=$(eval echo "\${DDNS${hostnum}_TSIG_KEY_SECRET-\${DDNS_TSIG_KEY_SECRET}}")
if check_ip "$rr_name" "$rr_data" "$replace"; then if check_ip "$rr_name" "$rr_data" "$replace" "$server"; then
run_nsupdate "${rr_name}" "${ttl}" "${type}" "${rr_data}" "${replace}" "${server}" "${tcp}" "${zone}" "${gss_tsig}" "${gss_keytab}" "${gss_principal}" "${tsig_file}" "${tsig_key_type}" "${tsig_key_name}" "${tsig_key_secret}" run_nsupdate "${rr_name}" "${ttl}" "${type}" "${rr_data}" "${replace}" "${server}" "${tcp}" "${zone}" "${gss_tsig}" "${gss_keytab}" "${gss_principal}" "${tsig_file}" "${tsig_key_type}" "${tsig_key_name}" "${tsig_key_secret}"
fi fi
(( hostnum++ )) (( hostnum++ ))

View File

@@ -1,6 +1,6 @@
Summary: Dynamic DNS for ppp and dhclient Summary: Dynamic DNS for ppp and dhclient
Name: dnsupdate Name: dnsupdate
Version: 0.5.2 Version: 0.6.0
Release: 1%{?dist} Release: 1%{?dist}
License: GPLv2+ License: GPLv2+
Group: System Environment/Daemons Group: System Environment/Daemons
@@ -15,6 +15,7 @@ Source0: dnsupdate
Source1: dhclient-dnsupdate.sh Source1: dhclient-dnsupdate.sh
Source2: ppp-dnsupdate.sh Source2: ppp-dnsupdate.sh
Source3: dnsupdate.cron Source3: dnsupdate.cron
Source4: nm-dnsupdate.sh
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -31,11 +32,13 @@ install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/
install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/dhclient.d install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/dhclient.d
install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/ppp install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/ppp
install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/ppp/ip-up.d install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/ppp/ip-up.d
install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d
install -pm 755 %{SOURCE0} $RPM_BUILD_ROOT%{_bindir}/dnsupdate install -pm 755 %{SOURCE0} $RPM_BUILD_ROOT%{_bindir}/dnsupdate
install -pm 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/dhclient.d/dnsupdate.sh install -pm 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/dhclient.d/dnsupdate.sh
install -pm 755 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/ppp/ip-up.d/dnsupdate.sh install -pm 755 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/ppp/ip-up.d/dnsupdate.sh
install -pm 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/dnsupdate install -pm 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/dnsupdate
install -pm 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d
%clean %clean
%{__rm} -rf %{buildroot} %{__rm} -rf %{buildroot}
@@ -45,6 +48,7 @@ install -pm 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/dnsupdate
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/dnsupdate %{_bindir}/dnsupdate
%{_sysconfdir}/NetworkManager/dispatcher.d/nm-dnsupdate.sh
%{_sysconfdir}/dhcp/dhclient.d/dnsupdate.sh %{_sysconfdir}/dhcp/dhclient.d/dnsupdate.sh
%{_sysconfdir}/ppp/ip-up.d/dnsupdate.sh %{_sysconfdir}/ppp/ip-up.d/dnsupdate.sh
%{_sysconfdir}/cron.d/dnsupdate %{_sysconfdir}/cron.d/dnsupdate

16
nm-dnsupdate.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
IF=$1
STATUS=$2
case "$2" in
up|dhcp4-change)
logger -s "NM Script up $IF triggered dnsupdate"
dnsupdate "$1"
;;
down)
logger -s "NM Script down $IF triggered dnsupdate"
;;
*)
;;
esac