Hallo zusammen,
ich versuche mich gerade an einer Samba 4 Installation mit AD, DNS und dem ganzen Zeugs. Das funktioniert mittlerweile auch recht gut. Es gibt ja einschlägige Literatur im Internet.
Der Samba4-Server heißt sagen wir pdc.my.domain, wobei my.domain eine öffentliche Domain ist. Ich habe außerdem eine NAT-Freigabe auf meinem Router (der hat übrigens die Adresse home.my.domain) für den DNS-Dienst auf pdc.my.domain erstellt. Funktioniert super ☺
Ich habe außerdem noch einen vServer mit einer festen IP-Adresse im Internet stehen. Den nennen wir mal vserver.my.domain. Auf vserver.my.domain läuft bind9, der nur die Aufgabe hat, alle Anfragen nach home.my.domain, also damit an pdc.my.domain weiterzugeben. Man ahnt es: Ich will meinen eigenen DNS-Server aus dem Internet benutzen. Das hat zwei Gründe:
1. Ich find´s cool 😉 2. Ich will damit auch direkt einen eigenen DynDNS-Dienst haben.
Die Sache hat jetzt einen Haken: Woher weiß mein pdc.my.domain, welche öffentliche IP home.my.domain hat? Habe ich schon gelöst mit diesem Skript.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash OLD_IP=`nslookup home.my.domain | grep "Address" | tail -1 | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'` echo "Old IP: $OLD_IP" CURRENT_IP=`ssh -i /home/ipchecker/.ssh/id_rsa ipchecker@vserver.my.domain -t "grep 'Accepted publickey for ipchecker from' /var/log/auth.log | tail -1 | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'"` echo "Current IP: $CURRENT_IP" if [ "$OLD_IP" = "$CURRENT_IP" ]; then echo "no changes - exiting" else echo "IP-Address of home.my.domain has changed from $OLD_IP to $CURRENT_IP" echo "Performing DNS-Update" echo echo "...und jetzt kommt ihr :-)" samba-tool dns update 127.0.0.1 my.domain home A $OLD_IP $CURRENT_IP -UAdministrator --password=mysecretpassword fi |
Das Skript gibt folgendes zurück:
1 2 3 4 5 6 7 8 9 10 11 12 13 | root@pdc:/home/me# update_home_ip.sh Old IP: 128.124.2.159 Connection to 128.124.2.159 closed. Current IP: 55.43.66.121 IP-Address of home.my.domain has changed from 128.124.2.159 to 55.43.66.121 Performing DNS-Update muss ich noch hinkriegen ERROR(runtime): uncaught exception - (-1073741811, 'Unexpected information received') File "/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py", line 175, in _run return self.run(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/samba/netcmd/dns.py", line 1132, in run del_rec_buf) |
BTW: Wenn ich den letzten Befehl aus dem Skript per Hand auf der Konsole ausführe, funktioniert es. Ich muss also schon auf der Zielgeraden sein 😬
Ich hatte vorher in meinem Heimnetz ebenfalls bind9 im Einsatz. Damit hatte ich das alles schon automatisch am laufen. War zwar etwas holprig programmiert - mit sed in den bind-configs rumgepfuscht, aber es funktionierte reibungslos.
In dem Skript kann man sehen, dass ich mit Samba 4 samba-tool dazu benutzen muss. Deshalb meine Frage an die Samba-Experten unter euch:
Wie kann ich das Problem lösen?
Danke vorab! Greg