ddclient updated nur die lokale IPv6

pcfann

New Member
Hallo,
ich habe seit der durch meinen Internetanbieter "erzwungenen" Umstellung von IPv4 auf IPv6 das Problem, dass der DNS-Client ddclient auf meinem Server nur die lokale IPv6 Adresse an den DNS-Anbieter schickt.

Der Server ist eine Ubuntu 17.10 Maschine.

Die kurzgefasste Ausgabe von ifconfig:

Code:
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.32  netmask 255.255.0.0  broadcast 192.168.255.255
        inet6 2a00:6020:X:X:A:A:A:A prefixlen 64  scopeid 0x0<global>
        inet6 fe80::B:B:B:B prefixlen 64  scopeid 0x20<link>
        inet6 2a00:6020:X:X:C:C:C:C prefixlen 64  scopeid 0x0<global>
Soweit ich das verstanden habe, ist die fe80::B... Adresse die Link-Local Adresse. Die C-Adresse ist meine global erreichbare IPv6 (Freigaben im Router sind bereits eingerichtet).

Nun habe ich das Problem, dass ddclient an meinen Dns-Anbieter nur die A-Adresse (temporäre Adresse?) schickt, die ich nicht global erreichen kann.



Konfiguration von ddclient in /etc/ddclient.conf:

Code:
# /etc/ddclient.conf

protocol=dyndns2
if=enp0s3
usev6=if
server=update.spdyn.de
login=meinedomain.spdns.de
password='X-X-X'
meinedomain.spdns.de

Nun wäre meine Frage, was ich ändern muss, damit die globale C-Adresse zum Update der Domain verwendet wird.


Viele Grüße,
pcfann =)
 
Nach den dort genannten Lösungsansätzen treffen für mich momentan nur die Privacy-Extensions zu, die jedoch bei mir ausgeschaltet sind.
Die Firewall ist ebenfalls offen, jedoch nur für die globale IPv6, die sich soweit ich das verstanden habe aus der MAC Adresse ableiten lässt.

Eine selbstgeschrieben Version von ddclient aus einem Forum kann doch auch nicht wirklich die beste Lösung sein. Zumal ddclient ja von Haus aus mit "usev6=" auch eine Unterstützung von IPv6 anbietet, jedoch in meinem Fall nur die "falsche", temporäre IPv6 verwendet wird, die von außen nicht erreichbar ist.

Auch die Formulierung
Irgendwo habe ich angeblich gelesen, dass es funktionieren soll.
-----
Ich auch. Tut aber nicht. Wenn du das Gegenteil ausfindest wäre ich interessiert
auf die danach nicht nochmal eingegangen wird (Beitrag ist über ein halbes Jahr alt) zeigt doch, dass ich nicht alleine bin mit diesem Problem, aber außer einer selbst-modifizierten Version von ddclient es keine Lösung gibt?


Mir haben die von dir verlinkten Beiträge leider nicht wirklich weiterhelfen können. Eventuell habe ich da etwas missverstanden, aber ich sehe dort leider keine Lösung dazu, wie man den ddclient auf die "richtige" IPv6 konfigurieren kann.
 
Soweit ich das verstanden habe scheint ein Ansatz zu sein, daß das System nur eine ipv6-Adresse haben darf. Mehr kann ich aber leider auch nicht sagen - wie gesagt, selbst nur gegoogled.
 
Ja, das habe ich mir auch schon gedacht.
Jedoch wäre es doch aus Sicherheitsgründen ratsam, wenn mindestens ausgehende Verbindungen weiterhin über die temporäre Adresse ablaufen, die sich öfter ändert, um nicht so leicht getrackt werden zu können bzw. um die MAC-Adresse nicht öffentlich im Internet zu verwenden.

Also müsste man entweder dem ddclient irgendwie sagen, dass er die "richtige" globale Adresse verwenden soll, oder man müsste es irgendwie schaffen, dass ebenfalls die temporäre IPv6 von außen erreichbar ist (Fritzbox 7490 mit aktuellster Firmware in Verwendung als Firewall und Router).

Die Adressen nur auf die eine "richtige" globale zu reduzieren wäre für mich zwar auch kein großes Sicherheits-Problem, da der Server nur privat verwendet wird, jedoch ist dies auch keine schöne Lösung. Zumal die Privacy-Extensions ja bereits ausgestellt sind.
 
Vielen Dank für eure Antworten.
Probiere mal einen anderen Client: http://dyndnsc.readthedocs.io/

Ich habe den Client installiert und möchte dann z.B. über ein Script das Update ausführen. Jetzt habe ich die auf der Dokumentationsseite angegebene Scriptdatei kopiert und bearbeitet (siehe http://dyndnsc.readthedocs.io/en/latest/user/quickstart.html#command-line-usage)

Mein Script sieht nun so aus:
Code:
dyndnsc --updater-dyndns2 \
--updater-dyndns2-hostname=meinedomain.spdns.de \
--updater-dyndns2-userid=meinedomain.spdns.de \
--updater-dyndns2-password=XXXX-XXXX-XXXX \
--updater-dyndns2-url=update.spdyn.de
--detector-iface \
--detector-iface-iface=enp0s3 \
--detector-iface-family=INET6

Beim Ausführen erhalte ich die Meldung
Code:
root@server:/# sh dyndnscexec2.sh
dyndnscexec2.sh: 6: dyndnscexec2.sh: --detector-iface: not found

Die Abhängigkeit netifaces ist installiert:
Code:
root@server:/# python
Python 2.7.14 (default, Sep 23 2017, 22:06:14)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import netifaces
>>> netifaces.interfaces()
[u'lo', u'enp0s3']
>>>

Muss ich dem dyndnsc Client noch irgendwie diese Abhängigkeit mitgeben, bzw. was kann sonst der Grund für den Fehler sein?


Liebe Grüße
 
Last edited by a moderator:
Nach update.spdyn.de fehlt ein Backslash, wodurch die nachfolgende Zeile als eigenständiger Befehl interpretiert wird und nicht wie gewünscht als weiteres Argument. Siehe alle anderen Zeilen, wo er vorkommt.
 
Oh natürlich, das habe ich wohl übersehen, mein Fehler.

Mein neues Script:
Code:
dyndnsc --updater-dyndns2 \
--updater-dyndns2-hostname=meinedomain.spdns.de \
--updater-dyndns2-userid=meinedomain.spdns.de \
--updater-dyndns2-password=x-x-x\
--updater-dyndns2-url=http://update.spdyn.de \
--detector-iface \
--detector-iface-iface=enp0s3 \
--detector-iface-family=INET6
Beim Ausführen erhalte ich folgende Meldung:

Code:
root@server:/# sh test.sh
2017-12-19 14:01:35,375 INFO meinedomain.spdns.de: dns IP 'X:X:X:X:A:A:A:A' does not match detected IP 'X:X:X:X:B:B:B:B', updating
2017-12-19 14:01:35,502 INFO meinedomain.spdns.de: dns IP 'X:X:X:X:A:A:A:A' does not match detected IP 'X:X:X:X:B:B:B:B', updating
IP A liegt immoment noch auf der Domain (veraltet), IP B ist die vom dyndnsc Client erkannte IPv6.

Jedoch hier wieder das gleiche Problem:

Code:
root@server:/# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.32  netmask 255.255.0.0  broadcast 192.168.255.255
        inet6 <link-local>  prefixlen 64  scopeid 0x20<link>
        inet6 X:X:X:X:B:B:B:Bprefixlen 64  scopeid 0x0<global>
        inet6 X:X:X:X:C:C:C:Cprefixlen 64  scopeid 0x0<global>
[...]

Die B-Adresse wurde vom dyndnsc-Client über das Interface erkannt, ist aber von außen nicht erreichbar. Nur die C-Adresse ist von außen aufrufbar. Kann ich irgendwie einstellen, dass diese "richtige" Adresse verwendet wird, anstatt der temporären Adresse?

Nebenbei gefragt, wieso wird beim Ausführen des Scripts 2 mal geupdated?

EDIT:

Das Updaten der Domain ist ebenfalls nicht erfolgreich. Adresse A bleibt weiterhin auf der Domain, es wird nicht zu B geupdated.
 
Back
Top