Externe IPv6 Addresse der Fritzbox

Begonnen von Sailor, 21 Oktober 2022, 20:48:06

Vorheriges Thema - Nächstes Thema

Sailor

Zitat von: rudolfkoenig am 25 Oktober 2022, 12:15:44
Etwas Off-Topic: mit { HttpUtils_dumpDnsCache() } kann man den DNS-Cache-Inhalt ausgeben.

Die schaue ich mir mal an. Vielleicht kann man damit was anfangen...

Danke

Gruß
    Sailor
******************************
Man wird immer besser...

rudolfkoenig

ZitatGibt es eine Möglichkeit beim lokalen Hostnamen trotzdem die Ausgabe der IPv6-Adresse zu erzwingen?
Bin nicht sicher, dass ich die Frage richtig verstehe.
Falls der dritte Parameter 1 ist, sucht die Funktion erst nach eine IPv6 Adresse, und danach/sonst nach IPv4.
Bei mehreren IP-Adressen wird die Erste zuruckgeliefert, immer.

justme1968

ich glaube über den lokalen hostnamen kommst du nicht weiter. wie oben schon geschrieben hat ein host selbst mit einer netzwerkkarte normalerweise mehrere ipv6 adressen (je nach netzwerkkonfiguration und resolver bekommst du dann die schnellste, die nächste, die lokale, ... zurück).

wenn du die lokale willst musst du über ein api gehen das dir für alle netzwerkkarten alle adressen auflistet und dann anhand der adress art entscheiden. mit einer einfachen dns anfrage kommst du da nicht weiter.

aber du wolltest doch eigentlich die externe ip deiner fritzbox. dafür würdest du ja den externen dyndns hostnamen anfragen. wo kommst bei dir jetzt der lokale rechner ins spiel?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Sailor

Zitat von: justme1968 am 27 Oktober 2022, 12:42:07
aber du wolltest doch eigentlich die externe ip deiner fritzbox. dafür würdest du ja den externen dyndns hostnamen anfragen. wo kommst bei dir jetzt der lokale rechner ins spiel?

Da hat aber einer gut aufgepasst!  ;D

Ich brauche sowohl die internen Adressen von diversen hosts innerhalb meines Netzwerks, was ich mit einem Beispiel

my $res   = Net::DNS::Resolver->new;
my $query;

### Start query for IPv6 address
eval {
$query = $res->query($Hostname, "AAAA")
};

schon gelöst hatte und dann sagte Rudi, dass diese Art der Addressen-Ermittlung "Blocking" ist und dann ist die Diskussion ein wenig abgeschweift.

Die externe FritzBox - IPv6 - Adresse ist nach wie vor ein Problem zu ermitteln.

Und ja, wenn man die IPv6 - Erstellung seitens des Hosts dynamisch zulässt, dann darf der Host eine beliebige Anzahl IPv6 - Adressen erstellen.
Das sollte ein guter End-User PC auch tunlichst tun um die Privatsphäre beim surfen zu schützen.

Wenn bei einem Server diese dann gerade nicht auf der Passepartout - Liste des Routers/Firewall stehen, ist das schlecht.
Deshalb sollte man die IPv6 - Adressen eines Servers (fhem-Server, NAS, etc) auch auf statisch setzen. Wobei das statisch sich auch nur auf den Interface-Identifier bezieht.
Der Präfix kann immer munter vom Provider geändert werden.

Nur zum Hintergrund: Ich schreibe gerade ein Modul, welches in der Lage ist die IPv6 - Adressen diverser interner Hosts (und die externe der Fritz!Box) in die AAAA - DNS - Einträge meiner Subdomains bei meinem Provider IONOS zu schreiben. IONOS hat diesbezüglich seinen Kunden eine tolle API zur Verfügung gestellt: https://developer.hosting.ionos.de/docs/dns

Die Ipv6 - Adressen (der vom Provider zugewiesene Präfix) sind zwar quasi-statisch, aber quasi bedeutet bei der Deutschen Glasfaser (DG) leider eben auch, dass sie sich manchmal ändern, sobald da mal wieder Jemand bei DG an ihrer Konfiguration herumgefummelt hat.

Somit habe ich mir "quasi"  ;) meinen eigenen fhem-DynDNS Service geschaffen.  ;D

Gruß
    Sailor

PS: Nebenbei nervt hier gerade tierisch, dass ich mal wieder etwas Triviales nicht wieder finde was ich schon mal geloest hatte:
Wie kriege ich den Befehl zum Löschen von Readings mit RegEx  fhem("deleteReading " . $name . " Link_.*"); mit readingsDelete hin...
Ich glaube ich gehe jetzt ins Bett. Ich hänge hier heute schon viel zu lange vor dem Rechner...
******************************
Man wird immer besser...

justme1968

ich glaube ich hatte das gesagt :)

die fritzbox ist eigentlich das einfachste ...

di konfigurierst in der fritzbox irgnende einen dyndns provider. z.b. myfritz. die fritzbox aktualisiert diese eintrag
automatisch wenn sich die ip geändert hat. fhem fragt diesen eintrag ab und so bekommst du die externe ip.

es sind noch ein paar mehr: neben den dynamischen adressen auch noch eine link lokal und eine feste von aussen erreichbare. nur letztere ist normalerweise für die firewall relevant weil sie eben von aussen erreichbar ist. die dyanmischen werden verendet wenn die verbindung von innen nach aussen aufgebaut wird. da die firewall das normalerweise zulässt sollte es hier eigentlich kein problem geben. aber an die adressen kommst du eben nicht per dns sondern vermutlich nur lokal auf jedem rechner selber. das problem ist ja das die rechner von aussen nur einen oder mehrere prefixe bekommen und den rest selber festlegen.

ich habe gerade aber noch zwei andere ideen:
- falls es sich um 'normale' rechner handelt müssten sie eigentlich auch mdns unterstützen und auf eine aaaa anfrage nach dem mdns namen xxx.local antworten. ich weiss aber nicht ob sie da die lokale oder globale adresse liefern

- hast du mal geschaut ob es im dhcpv6 protokoll eventuell vorgesehen ist das die rechner die selbst zusammengestellte adresse irgendwohin melden?

- brauchst du wirklich von jedem rechner eine antwort? oder reicht es dir wenn vom router den prefix bekommst (da könnte man statt der dydns variante von oben auch auf die router announcements lauschen) und den restlichen teil ein mal von hand konfigurierst? der ändert sich ja bei geändertem prefix ja nicht mit.
du von jedem rechner
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968