Krausmueller.de

Dynamischer DNS Client für IPv6

Dynamisches DNS wird genutzt um den DNS Eintrag für einen Host dessen IP sich regelmäßig und häufig ändert zu aktualisieren. Dies ermöglicht z.B. das Bereitstellen von Diensten hinter einem (V)DSL-Anschluss unter einem gleich bleibenden Namen. Es gibt mehrere Anbieter die einen solchen Dienst anbieten. Ich nutze z.B. SPDyn. Die Aktualisierung des DNS-Eintrags kann durch einen Client wie z.B. ddclient oder auch direkt über eine Fritzbox erfolgen. Für IPv4 Hosts ist das Verfahren einfach, die IP ist immer die des Routers der dann bestimmte Ports an interne Hosts weiterleitet (Portforwarding). Da ich von meinem Provider einen Dual-Stack Anschluss erhalten habe, hatte ich in der Vergangenheit auch einen AAAA-Record für IPv6 bei SPDyn angelegt. Worauf ich allerdings nicht achtete: mein Provider vergibt bei jedem Neuverbinden ein anderes IPv6 Präfix. Dadurch ändert sich also auch jedes mal die IPv6-Adresse meines internen Hosts. Aufmerksam auf diese Problematik wurde ich durch einen Fehler beim Erneuern meines Let’s Encrypt Zertifikats (vgl. Artikel zu acme-tiny).

Wenn ein AAAA-Record vorhanden ist bevorzugt Let’s Encrypt seit kurzem diesen um die Domain zu verifizieren (API Announcements). Da mein vor langer Zeit angelegter AAAA-Record sich mittlerweile (schon oft) geändert hat, schlug das Erneuern des Zertifikats also fehl.

Parsing account key...
Parsing CSR...
Registering account...
Already registered!
Verifying domain.com...
Traceback (most recent call last):
  File "acme_tiny.py", line 199, in 
    main(sys.argv[1:])
  File "acme_tiny.py", line 195, in main
    signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca)
  File "acme_tiny.py", line 150, in get_crt
    domain, challenge_status))
ValueError: domain.com challenge did not pass: {u'status': u'invalid', u'validationRecord': [{u'addressesResolved': [u'217.251.47.207', u'2003:86:2455:9c00:d1:3ff:fe81:bd3f'], u'url': u'http://domain.com/.well-known/acme-challenge/PDUNtwiHq5dncDrvs4V2NE9nSR9vLF2WhnAbX1jQ7f0', u'hostname': u'domain.com', u'addressesTried': [], u'addressUsed': u'2003:86:2455:9c00:d1:3ff:fe81:b46f', u'port': u'80'}], u'keyAuthorization': u'PDUNtwiHq5dncDrvs4V2NE9nSR9vLF2WhnAbX1jQ7f0.YW7Ac9LxjjuWvWzD542ZzSKxcFKDIdehVVzAuYA0vHI', u'uri': u'https://acme-v01.api.letsencrypt.org/acme/challenge/-yjij3RP1r4YC_TkQrUemgjhfWI17pQZSjMZ8kr-Lps/1441804350', u'token': u'PDUNtwiHq5dncDrvs4V2NE9nSR9vLF2WhnAbX1jQ7f0', u'error': {u'status': 400, u'type': u'urn:acme:error:connection', u'detail': u'Fetching http://domain.com/.well-known/acme-challenge/PDUNtwiHq5dncDrvs4V2NE9nSR9vLF2WhnAbX1jQ7f0: Timeout'}, u'type': u'http-01'}

In der Fehlerausgabe ist bei addressUsed zu sehen, dass eine IPv6-Adresse zur Überprüfung verwendet wird. Da die Adresse falsch ist kommt es zu einem Timeout.

Um diesen Fehler zu beheben und in Zukunft auch per IPv6 auf meinen Host zu Hause zugreifen zu können muss nicht nur der A-Record für IPv4 sondern eben auch der AAAA-Record für IPv6 bei einer Änderung aktualisiert werden.

Weiterlesen →

Geschwindigkeit bei Zugriff von Mac OS X auf Samba Share

Ich nutze meinen Cubietruck als Samba Server. Irgendwann fiel mir auf, dass die Geschwindigkeit beim Kopieren von meinem Mac mit OS X El Capitan nur knapp über 10 MB/s lag. Da der Cubietruck eine Gigabit-Netzwerkkarte hat, sollte das um einiges schneller gehen. Außerdem war ich der Meinung früher schon Werte um die 30 MB/s gesehen zu haben. Der Gigabit-Anschluss wäre damit zwar auch noch nicht ausgelastet, aber immerhin.

Weiterlesen →

PowerShell Scripte mit WhatIf

Manchmal ist es sinnvoll den Aufruf eines eigenen PowerShell Scripts nur zu simulieren. Statt die Aktionen wirklich auszuführen möchte man lediglich sehen was passieren würde. Viele Cmdlets unterstützen den Parameter -WhatIf. Benutzt man diesen z.B. beim Anlegen eines Verzeichnis wird dieses nicht erstellt, sondern lediglich die im Beispiel angezeigte Meldung ausgegeben:

1
New-Item -ItemType Directory -Name "test" -Path "c:\temp" -WhatIf
PS C:\> New-Item -ItemType Directory -Name "test" -Path "c:\temp" -WhatIf
What if: Performing the operation "Create Directory" on target "Destination: C:\temp\test".

Weiterlesen →

Infrarot Fernbedienung (z.B. Logitech Harmony) mit WeTek OpenELEC

WeTek OpenELEC ist eine kleine Box mit installiertem OpenELEC, welches wiederum auf Kodi basiert. WeTek OpenELEC enthält je nach Variante bereits einen Tuner (DVB-C/T, DVB-S oder ATSC). Bei mir hat die Box einen Raspberry Pi ersetzt. Zum Lieferumfang gehört eine AirMouse. Das ist eine Fernbedienung die sich durch Bewegungssensoren auch als Maus verwenden lässt. Da ich aber bereits eine Logitech Harmony als Universalfernbedienung verwende, soll diese die Steuerung übernehmen. Bei WeTek OpenELEC handelt es sich um eine Sonderedition von WeTek Play (Unterschiede zwischen WeTek Play und WeTek OpenELEC). Die Einrichtung einer Fernbedienung sollte für WeTek Play also ähnlich sein.

Weiterlesen →

Intermediate Zertifikat für acme-tiny

Wie im Artikel zu acme-tiny erwähnt muss ein eigenes Script zum regelmäßigen Erneuern der Let’s Encrypt Zertifikate erstellt werden. In diesem Script wird das passende Intermediate Zertifikat von Let’s Encrypt heruntergeladen, damit dem Besucher die vollständige Zertifizierungs-Kette übermittelt werden kann. Wird das Intermediate Zertifikat vom Webserver nicht ausgeliefert, fällt die Bewertung von SSL Labs auf “B” zurück.

Weiterlesen →