Dem entnehme ich, daß Du zu einem Server verbinden willst, der zwar einen AAAA-Record (Also eine IPv6) zurückmeldet, wo aber gar kein oscam mit IPv6-Support läuft oder der AAAA-Record gehört zu einem anderen Rechner als dem, auf dem oscam wirklich läuft (Passiert gerne, wenn Fratz!Büchsen das DynDNS-Update machen, aber oscam z.B. auf einem
Raspberry Pi läuft .... der AAAA-Record des DynDNS enthält dann die IPv6 der Fratz!Büchse statt die des
Raspberry Pi).
Im Prinzip ist das ein Fehler, den der Betreiber des Servers beheben müßte.
In zweiter Linie ist es das verbleibende Problem im oscam, weswegen ich nicht nur IPv6-fähige oscams auf den Feed packe: In oscam gibt es keinen Fallback auf IPv4, obwohl der da sein müßte.
Auf meinem Server verbinde ich auch zu ein paar solcher Spezis ... umgekehrt habe ich aber auch Tauschpartner, die tatsächlich IPv6-only sind.
Für die Spezialisten, die nicht in der Lage sind, einen DynDNS richtig aufzusetzen, habe ich dort folgenden Workaround implementiert:
Lege auf der Box eine Datei /usr/bin/fixdepp.sh mit folgendem Inhalt an:
Code:
#!/bin/sh
## Repeatable start
DHOST="volldepp"
DDYN="volldepp.dyndns.org"
DIP=""
DIP=$(nslookup $DDYN | grep "Address" | grep "\." | tail -1 | sed 's#.*: ##')
if [ ! -z $DIP ]; then
cat /etc/hosts | grep -v $DHOST > /tmp/hosts
echo "$DIP $DHOST" >> /tmp/hosts
mv /tmp/hosts /etc/hosts
fi
## Repeatable end
... falls Du mehrere solcher Spezialisten hast, wiederholst Du den Block zwischen "## Repeatable start" und "## Repeatable end" beliebig oft.
Für DHOST trägst Du irgendeinen Kurznamen ein, den Du dann zukünftig in oscam statt des kompletten DynDNS des Spezis verwenden wirst, also z.B. "volldepp" oder "spezi1".
Bei DDYN kommt die DynDNS-Adresse des Spezis ein, also die, wo die falsche IPv6 zurückgemeldet wird.
Im Anschluß machst Du
Code:
chmod 755 /usr/bin/fixdepp.sh
damit das Script ausführbar ist.
Mit dem Befehl
kannst Du per ssh/telnet oder das OpenWebif-Terminal die cronjobs editieren.
Füge am Ende
Code:
*/5 * * * * /bin/bash -c '/usr/bin/fixdepp.sh'
ein, um das soeben erstellte Script alle 5 Minuten auszuführen.
Am Ende änderst Du noch in Deinem oscam das "device" für den Server:
Von z.B.
Code:
volldepp.dyndns.org,12000
auf
also den kompletten DynDNS des Vogels raus und den Kurznamen aus "DHOST" rein.
fixdepp.sh wird nun alle 5 Minuten den DynDNS Deines Tauschpartners auflösen, aber gezielt nur nach der IPv4 suchen und diese zugeordnet zu dem selbst gewählten Kurznamen in die /etc/hosts eintragen.
oscam wiederum verwendet diesen Kurznamen, der eben nicht per DNS-Abfrage aufgelöst wird sondern aus der /etc/hosts, wo nur eine IPv4 steht ...
Achte bei der Wahl des Kurznamens bitte darauf, keine reservierten Namen wie
localhost
ip6-localhost
ip6-loopback
ip6-localnet
ip6-mcastprefix
ip6-allnodes
ip6-allrouters
zu verwenden und auch keine Namen, die in Deinem Netzwerk vorkommen, wenn Du eine Fratz!Büchse verwendest also z.B. nicht "fritz" und auch keinen Namen, den schon ein anderes Gerät in Deinem LAN hat.
Und wenn wir gerade dabei sind, man kann das Script auch für die Spezialisten erweitern, die einen DynDNS nicht nur nicht anständig, sondern fast gar nicht konfiguriert kriegen
Code:
## Block für komplette Spaten start
DUSER="spaten"
DIP=""
DIP=$(cat /var/log/oscam.log | grep "encrypted cccam-client" | grep $DUSER | tail -1 | sed 's#.*cccam-client ##' | sed 's# granted.*##')
if [ ! -z $DIP ]; then
cat /etc/hosts | grep -v $DUSER > /tmp/hosts
echo "$DIP $DUSER" >> /tmp/hosts
mv /tmp/hosts /etc/hosts
fi
## Block für komplette Spaten end
Ausgehend davon, daß sich der Serverbetreiber auch umgekehrt zu uns verbinden wird, sucht dieser Script-Teil einfach nach seiner Anmeldung und isoliert daraus dessen IP (IPv4 oder IPv6).
Diese kommt dann ebenfalls in die /etc/hosts und der gewählte Kurzname dann auch wieder statt des eh nicht funktionierenden DynDNS als device in oscam[.server].