Up: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(Script)
(Zusammenfassung)
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Zusammenfassung ==
 
== Zusammenfassung ==
 
Dynamisches DNS wird dann benötigt, wenn ein per dsl angebundener Server aus dem Internet erreichbar sein soll.<br>
 
Dynamisches DNS wird dann benötigt, wenn ein per dsl angebundener Server aus dem Internet erreichbar sein soll.<br>
Verschiende Dienstleister bieten dyndns-Dienste an, doch auch mit Linux-Bordmitteln lässt sich das machen.
+
Verschiende Dienstleister bieten dyndns-Dienste an, doch auch mit Linux-Bordmitteln lässt sich das machen.<br>
 +
<span style="color:red">Das ganze taugt nicht wirklich. Pro Tag war nicht unter eine Downtime von einer halben Stunde zu kommen.</span>
  
 
== Vorraussetzungen ==
 
== Vorraussetzungen ==
Zeile 7: Zeile 8:
 
* Zwei bind9 Nameserver
 
* Zwei bind9 Nameserver
  
== Script ==
+
== Datein ==
 +
 
 +
=== Keyfile ===
 +
 
 +
=== Template ===
 +
Das Template wird vim Script eingelesen. ###NEW_IP### wird durch die ermittelte WAN-IP ersetzt.
 +
<source lang="bash">
 +
server <Authoritativer_Nameserver>
 +
zone <Zone>
 +
update delete <domain>  A
 +
update  add    <domain>      86400  A      ###NEW_IP###
 +
show
 +
send
 +
answer
 +
</source>
 +
 
 +
=== Script ===
  
 
<source lang="bash">
 
<source lang="bash">
Zeile 15: Zeile 32:
 
# GPL3
 
# GPL3
  
 +
# es kann jeder Dienst genutzt werden, der die WAN-IP eines DSL-Anschlusses ermittelt.
 
WAN_IP=$(curl ident.me 2> /dev/null )
 
WAN_IP=$(curl ident.me 2> /dev/null )
 
WAN_DB=/var/local/ns-wan.d/db.wan
 
WAN_DB=/var/local/ns-wan.d/db.wan
  
TEMPLATE=maschinendeck.info-update
+
TEMPLATE=<domain>-update
  
 
NS_OUT=$(mktemp nsup.XXXXXXXXXXXXXXXXXXXXXXXXXX)
 
NS_OUT=$(mktemp nsup.XXXXXXXXXXXXXXXXXXXXXXXXXX)
  
KEY_FILE=Kmaschinendeck.info.+157+16340.private
+
KEY_FILE=<domain>.private
 
TEMP_FILE=$(mktemp nsup.XXXXXXXXXXXXXXXXXXXXXXXXXX)
 
TEMP_FILE=$(mktemp nsup.XXXXXXXXXXXXXXXXXXXXXXXXXX)
  

Aktuelle Version vom 25. Oktober 2013, 14:16 Uhr

Zusammenfassung

Dynamisches DNS wird dann benötigt, wenn ein per dsl angebundener Server aus dem Internet erreichbar sein soll.
Verschiende Dienstleister bieten dyndns-Dienste an, doch auch mit Linux-Bordmitteln lässt sich das machen.
Das ganze taugt nicht wirklich. Pro Tag war nicht unter eine Downtime von einer halben Stunde zu kommen.

Vorraussetzungen

  • Die Nameserver einer Domain müssen sich ändern lassen
  • Zwei bind9 Nameserver

Datein

Keyfile

Template

Das Template wird vim Script eingelesen. ###NEW_IP### wird durch die ermittelte WAN-IP ersetzt.

server <Authoritativer_Nameserver>
zone <Zone>
update delete <domain>  A
update  add     <domain>      86400   A       ###NEW_IP###
show
send
answer

Script

#!/bin/sh
##########################
# Config
# GPL3

# es kann jeder Dienst genutzt werden, der die WAN-IP eines DSL-Anschlusses ermittelt.
WAN_IP=$(curl ident.me 2> /dev/null )
WAN_DB=/var/local/ns-wan.d/db.wan

TEMPLATE=<domain>-update

NS_OUT=$(mktemp nsup.XXXXXXXXXXXXXXXXXXXXXXXXXX)

KEY_FILE=<domain>.private
TEMP_FILE=$(mktemp nsup.XXXXXXXXXXXXXXXXXXXXXXXXXX)

#########################################
# Code

# Test the comands
if [ ! -f /usr/bin/nsupdate ]
        then
                echo "nsupdate fehlt"
fi


if [ ! -f $WAN_DB ]
        then

                echo 0 > $WAN_DB
fi



if [ ! $(cat $WAN_DB) = $WAN_IP ]
        then
                echo $WAN_IP > $WAN_DB
                sed "s/###NEW_IP###/$WAN_IP/g"   $TEMPLATE > $TEMP_FILE
                nsupdate -k $KEY_FILE $TEMP_FILE 2>&1 1> $NS_OUT
                echo "$(grep status $NS_OUT|cut -d: -f3|cut -d, -f1)"
        else
                echo "$WAN_IP hasn not changed"
                cat $WAN_DB
fi


rm $TEMP_FILE
rm $NS_OUT

exit 0