Force delv to bind to internal upstream IP
Signed-off-by: Blackyfff <freifunk@freifunk-herpf.de>
This commit is contained in:
parent
d3eb24deae
commit
cf587e87e6
|
@ -7,6 +7,10 @@ DNSSCRIPT_CONTACT_EMAIL=""
|
||||||
#DNSSCRIPT_SERVER_NAME="dns.herpf.fff.community"
|
#DNSSCRIPT_SERVER_NAME="dns.herpf.fff.community"
|
||||||
DNSSCRIPT_SERVER_NAME=""
|
DNSSCRIPT_SERVER_NAME=""
|
||||||
|
|
||||||
|
### specify the internal local ServerIP used as Source
|
||||||
|
### when fetching the other Servers DNSSEC-Entries (IPv6 preferred)
|
||||||
|
InternalUpstreamIP=""
|
||||||
|
|
||||||
ZoneFilesFolder="/etc/bind/fff/"
|
ZoneFilesFolder="/etc/bind/fff/"
|
||||||
TempFolder="/tmp/ffdns/"
|
TempFolder="/tmp/ffdns/"
|
||||||
GeneratedIncludeFileFolder="/etc/bind/"
|
GeneratedIncludeFileFolder="/etc/bind/"
|
||||||
|
|
|
@ -224,8 +224,11 @@ UpdateDNSSECEntryCache () {
|
||||||
ZoneTempFolder="$2"
|
ZoneTempFolder="$2"
|
||||||
CachedZoneFile="$3"
|
CachedZoneFile="$3"
|
||||||
DNSSECKeyFolder="$4"
|
DNSSECKeyFolder="$4"
|
||||||
|
UpstreamIP="$5"
|
||||||
UpdateMaster=0
|
UpdateMaster=0
|
||||||
|
|
||||||
|
[ -z "$UpstreamIP" ] || UpstreamIP="-b ""$UpstreamIP"" "
|
||||||
|
|
||||||
Nameservers="$(GetAllZoneNameservers "$Domain" "$CachedZoneFile")"
|
Nameservers="$(GetAllZoneNameservers "$Domain" "$CachedZoneFile")"
|
||||||
|
|
||||||
mkdir -p "$ZoneTempFolder"
|
mkdir -p "$ZoneTempFolder"
|
||||||
|
@ -238,7 +241,7 @@ UpdateDNSSECEntryCache () {
|
||||||
if [ "$Nameserver" = "$DNSSCRIPT_SERVER_NAME" ]; then
|
if [ "$Nameserver" = "$DNSSCRIPT_SERVER_NAME" ]; then
|
||||||
DNSKEYS="$( GetOwnKeysForZone "$DNSSECKeyFolder" "$Domain" )"
|
DNSKEYS="$( GetOwnKeysForZone "$DNSSECKeyFolder" "$Domain" )"
|
||||||
else
|
else
|
||||||
DNSKEYS="$(delv @"$Nameserver" _dnsseckeys."$Domain" TXT 2>/dev/null | \
|
DNSKEYS="$(delv @"$Nameserver" "$UpstreamIP"_dnsseckeys."$Domain" TXT 2>/dev/null | \
|
||||||
sed -ne '/^;/d;s/^.*\sIN\s\+TXT\s\+"\(.*\)"$/'"$Domain"'.\tIN DNSKEY\t\1/p' | \
|
sed -ne '/^;/d;s/^.*\sIN\s\+TXT\s\+"\(.*\)"$/'"$Domain"'.\tIN DNSKEY\t\1/p' | \
|
||||||
NormalizeZoneFileFormatting )"
|
NormalizeZoneFileFormatting )"
|
||||||
fi
|
fi
|
||||||
|
@ -255,7 +258,7 @@ UpdateDNSSECEntryCache () {
|
||||||
ChildServers="$( sed -ne '/^\s*\(@\|'"$SEDDomain"'\.\)\s/!s/^\s*\(\S\+\)\s\+\([0-9]*\s\)\?\s*[Ii][Nn]\s\+[Nn][Ss]\s\+\(\S\+\);\?.*$/\1#\3/p' "$CachedZoneFile" | \
|
ChildServers="$( sed -ne '/^\s*\(@\|'"$SEDDomain"'\.\)\s/!s/^\s*\(\S\+\)\s\+\([0-9]*\s\)\?\s*[Ii][Nn]\s\+[Nn][Ss]\s\+\(\S\+\);\?.*$/\1#\3/p' "$CachedZoneFile" | \
|
||||||
sed -e 's/\([^.]\)$/\1\.'"$Domain"'\./g;s/\.$//g;s/\([^.]\)#/\1\.'"$Domain"'\.#/g;s/\.#/#/g' )"
|
sed -e 's/\([^.]\)$/\1\.'"$Domain"'\./g;s/\.$//g;s/\([^.]\)#/\1\.'"$Domain"'\.#/g;s/\.#/#/g' )"
|
||||||
for ChildServer in $ChildServers; do
|
for ChildServer in $ChildServers; do
|
||||||
DNSKEYS="$(delv @"${ChildServer##*\#}" "${ChildServer%%\#*}" CDS 2>/dev/null | \
|
DNSKEYS="$(delv @"${ChildServer##*\#}" "$UpstreamIP""${ChildServer%%\#*}" CDS 2>/dev/null | \
|
||||||
sed -ne '/^;/d;s/^.*\sIN\s\+CDS\s\+\(.*\)$/'"${ChildServer%%\#*}"'.\tIN DS\t\1/p' | \
|
sed -ne '/^;/d;s/^.*\sIN\s\+CDS\s\+\(.*\)$/'"${ChildServer%%\#*}"'.\tIN DS\t\1/p' | \
|
||||||
NormalizeZoneFileFormatting )"
|
NormalizeZoneFileFormatting )"
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ UpdateMasterZone() {
|
||||||
if [ -n "$ServeMasterZone" ]; then
|
if [ -n "$ServeMasterZone" ]; then
|
||||||
ZoneTempFolder="$TempFolder""cache/""$MasterDomain""/"
|
ZoneTempFolder="$TempFolder""cache/""$MasterDomain""/"
|
||||||
|
|
||||||
UpdateMaster="$(UpdateDNSSECEntryCache "$MasterDomain" "$ZoneTempFolder" "$CachedMasterFile" "$DNSSECKeyFolder")"
|
UpdateMaster="$(UpdateDNSSECEntryCache "$MasterDomain" "$ZoneTempFolder" "$CachedMasterFile" "$DNSSECKeyFolder" "$InternalUpstreamIP")"
|
||||||
if [ $((PostFetchMasterSerial)) -gt $((PreFetchMasterSerial)) ] || [ $UpdateMaster -ne 0 ] || [ ! -f "$MasterFile" ]; then
|
if [ $((PostFetchMasterSerial)) -gt $((PreFetchMasterSerial)) ] || [ $UpdateMaster -ne 0 ] || [ ! -f "$MasterFile" ]; then
|
||||||
cp -f "$CachedMasterFile" "$CachedMasterFile""I"
|
cp -f "$CachedMasterFile" "$CachedMasterFile""I"
|
||||||
for KeyFile in "$ZoneTempFolder"*; do
|
for KeyFile in "$ZoneTempFolder"*; do
|
||||||
|
@ -95,7 +95,7 @@ UpdateExternal() {
|
||||||
|
|
||||||
sed -i -e 's/^\s*'"$CommunityExternPrefix"'\s/@ /g;/^\s*\(@\|\S\+\.\)\s\+\([0-9]*\s\)\?\s*[Ii][Nn]\s\+[Dd][Ss]\s/d' "$CachedZoneFile"
|
sed -i -e 's/^\s*'"$CommunityExternPrefix"'\s/@ /g;/^\s*\(@\|\S\+\.\)\s\+\([0-9]*\s\)\?\s*[Ii][Nn]\s\+[Dd][Ss]\s/d' "$CachedZoneFile"
|
||||||
|
|
||||||
UpdateExternDomain="$(UpdateDNSSECEntryCache "$ExternDomain" "$ZoneTempFolder" "$CachedZoneFile" "$DNSSECKeyFolder")"
|
UpdateExternDomain="$(UpdateDNSSECEntryCache "$ExternDomain" "$ZoneTempFolder" "$CachedZoneFile" "$DNSSECKeyFolder" "$InternalUpstreamIP")"
|
||||||
if [ $UpdateExternView -ne 0 ] || [ $UpdateExternDomain -ne 0 ]; then
|
if [ $UpdateExternView -ne 0 ] || [ $UpdateExternDomain -ne 0 ]; then
|
||||||
for KeyFile in "$ZoneTempFolder"*; do
|
for KeyFile in "$ZoneTempFolder"*; do
|
||||||
[ "$KeyFile" = "$ZoneTempFolder""*" ] || \
|
[ "$KeyFile" = "$ZoneTempFolder""*" ] || \
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
# exit script when command fails
|
# exit script when command fails
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
export DNSSCRIPT_VERSION="0.9.1"
|
export DNSSCRIPT_VERSION="0.9.2"
|
||||||
|
|
||||||
. /etc/ffdns/community.conf
|
. /etc/ffdns/community.conf
|
||||||
. /etc/ffdns/local.conf
|
. /etc/ffdns/local.conf
|
||||||
|
|
Loading…
Reference in New Issue