Lösung des Zugriffsproblems bei IPv6: ICMPv6, Port 3000 ebenfalls als Portfreigabe einrichten.
---
Hi,
ich suche schon seit 2 Wochen nach einer Lösung und habe viel versucht. Ich finde immer wieder Lösungsschnipsel die funktionieren könnten und es dennoch nicht tun. Aber nun zum eigentliche Problem:
Ich habe mir die kleine Alexa gekauft, ein 3er Pack Brennenstuhl Funksteckdosen und mir einen nanoCUL zusammengelötet. Um das ganze anzusteuern habe ich genannten RPI 3 mit FHEM am laufen. Soweit so gut. FHEM läuft über die Weboberfläche, meine Steckdosen kann ich ansprechen. Nun habe ich nach diversen Videos und der Anleitung hier im Wiki versucht FHEM Elemente über Alexa zu steuern. Dazu habe ich alles wie beschrieben gemacht und scheitere dennoch. Das Problem welches sich mir dauerhaft in den Weg stellt ist unser DS-Lite Tunnel von M-Net oder der Zugriff auf die Ports vom RPI.
Über feste-ip habe ich sowohl DynDNS als auch einen universellen Portmapper erstellt. Ich habe zusätzlich die Ports 8083/3000 auf der Fritzbox freigegeben (ipv4 und ipv6), ich habe es mit myfritz Freigaben, die direkt auf den RPI richten versucht und komme nicht weiter.
Bei der DynDNS habe ich die IPv6 der Fritzbox eingetragen und kann über entsprechendes Portmapping auch auf die Oberfläche zugreifen. Leider komme ich aber nicht auf meinen Raspi. Ich bin inzwischen wahrscheinlich blind für die Lösung, weswegen ich leicht frustriert bin und hier nach Hilfe frage.
Im Anhang findet ihr Screenshots der verschiedenen Konfigurationen.
Was übersehe ich, bzw. wo habe ich den Denkfehler?
Ich danke euch schonmal und hoffe natürlich, dass die Frage nicht schon 100 mal beantwortet wurde.
Gruß, IqpI
Hi,
grundsätzlich würde ich mich erstmal auf IPv4 konzentrieren, aber davon abgesehen: ich kenne die Fritzbox nicht, aber bei meinem Router muss ich ein port-forwarding einrichtenm bei dem ich für jeden eingehenden port angebe an welches Gerät/welche IP und welchen port die Pakete weitergeleitet werden sollen. Das sehe ich in deinen Screenshots so nicht...
Den Post könnte man vielleicht umbenennen mit "Raspberry Pi über Fritzbox-Portfreigabe nicht erreichbar" o.ä. Mit Alexa oder FHEM hat das aktuell noch nix zu tun...
Und nochmal grundsätzliches: Überleg Dir nochmal genau, ob du deine Haussteuerung wirklich einfach ins Internet stellen willst
Wie KernSani sagt, würde ich erstmal nur mit IPv4 versuchen. Einige Anmerkungen:
- die Freigabe auf der Fritzbox darf KEINE MyFritz! Freigaben sondern "normale" Port-freigaben sein.
ZitatMyFRITZ!-Freigaben sind Portfreigaben, die nur beim Zugriff über MyFRITZ! vorhanden sind.
Hinweis:Die Netzwerkgeräte und Anwendungen, die Sie hier freigeben, sind ausschließlich für den Zugriff über MyFRITZ! erreichbar. Für Internetzugriffe, die nicht über MyFRITZ! stattfinden, sind die Freigaben nicht gültig.
- es ist nicht nötig (und nicht empfohlen), den Port von FHEM (8083) freizugeben. Nur den von alexa-fhem (standardmässig 3000 - siehe AWS Funktion). Ebenso ist es nicht nötig in IPTables die 8083 freizuschalten. Die AWS Funktion redet mit alexa-fhem:3000 und dann redet alexa-fhem intern innerhalb deines Heimnetzes mit fhem:8083
- wenn es funktioniert, ist es (sehr) empfohlen mit Apache den Zugriff mit User/Passwort zu schützen. Siehe Wiki.
- Zum Testen der öffentliche URL muss man ausschliesslich
ausserhalb vom Netzwerk der Fritzbox sein, z.B. mit einem Handy mit deaktivierten WLAN (dann über 3G/4G). Sobald Du aus einem "internen" Rechner (der eine IP Adresse im gleichen Subnetz wie die Fritzbox hat, z.B. 192.168.xx.xx) probierst, blockiert die Fritzbox die Flüsse.
- wenn Du eine Fritzbox nutzt, ist es einfacher, die DNS Funktionalitäten von MyFritz! zu nutzen. So bekommst Du eine feste URL in der Form https://zmeoifjmqozirg.myfritz.net. Dann, mit entspr. Freigabe der Port 3000, erreichst Du alexa-fhem über https://zmeoifjmqozirg.myfritz.net:3000
Gruß
Hi vielen Dank für eure Antworten. Leider bin ich bisher nicht dazu gekommen wieder an meinem Problemchen zu arbeiten.
Zitat von: KernSani am 15 Mai 2017, 23:29:35
Hi,
grundsätzlich würde ich mich erstmal auf IPv4 konzentrieren, aber davon abgesehen: ich kenne die Fritzbox nicht, aber bei meinem Router muss ich ein port-forwarding einrichtenm bei dem ich für jeden eingehenden port angebe an welches Gerät/welche IP und welchen port die Pakete weitergeleitet werden sollen. Das sehe ich in deinen Screenshots so nicht...
Den Post könnte man vielleicht umbenennen mit "Raspberry Pi über Fritzbox-Portfreigabe nicht erreichbar" o.ä. Mit Alexa oder FHEM hat das aktuell noch nix zu tun...
Und nochmal grundsätzliches: Überleg Dir nochmal genau, ob du deine Haussteuerung wirklich einfach ins Internet stellen willst
Ich habe es sowohl über IPv4 und IPv6 probiert und komme aber immer in eine Firewallsperre. Zugriff auf die Fritzbox Oberfläche funktioniert aber Problemlos. DIe Portweiterleitungen und die Firewall vom Raspi sind entsprechend konfiguriert...
Ich hänge also mit dem Problem irgendwo in der Firewall der FritzBox oder aber im RPi.
Ich habe den 8083 nur zu Testzwecken freigegeben, weil ich die Erreichbarkeit des Ports überprüfen wollte.
Zitat von: amenomade am 16 Mai 2017, 00:40:31
Wie KernSani sagt, würde ich erstmal nur mit IPv4 versuchen. Einige Anmerkungen:
- die Freigabe auf der Fritzbox darf KEINE MyFritz! Freigaben sondern "normale" Port-freigaben sein.
- es ist nicht nötig (und nicht empfohlen), den Port von FHEM (8083) freizugeben. Nur den von alexa-fhem (standardmässig 3000 - siehe AWS Funktion). Ebenso ist es nicht nötig in IPTables die 8083 freizuschalten. Die AWS Funktion redet mit alexa-fhem:3000 und dann redet alexa-fhem intern innerhalb deines Heimnetzes mit fhem:8083
- wenn es funktioniert, ist es (sehr) empfohlen mit Apache den Zugriff mit User/Passwort zu schützen. Siehe Wiki.
- Zum Testen der öffentliche URL muss man ausschliesslich ausserhalb vom Netzwerk der Fritzbox sein, z.B. mit einem Handy mit deaktivierten WLAN (dann über 3G/4G). Sobald Du aus einem "internen" Rechner (der eine IP Adresse im gleichen Subnetz wie die Fritzbox hat, z.B. 192.168.xx.xx) probierst, blockiert die Fritzbox die Flüsse.
- wenn Du eine Fritzbox nutzt, ist es einfacher, die DNS Funktionalitäten von MyFritz! zu nutzen. So bekommst Du eine feste URL in der Form https://zmeoifjmqozirg.myfritz.net. Dann, mit entspr. Freigabe der Port 3000, erreichst Du alexa-fhem über https://zmeoifjmqozirg.myfritz.net:3000
Gruß
Die Portfreigaben habe ich jetzt normal eingerichtet, sowohl IPv4 als auch IPv6. Die Passwortsperren habe ich auch eingerichtet. Ich werde es nun erneut versuchen. AWS Lambda sagt mir inzwischen aber immernoch, dass die COnnection refused wird...
Das Problem an myfritz ist, dass es bei mir nicht funktioniert. Ich bekomme über den Link keinen Zugriff auf die FB. Liegt wohl am DSLite Tunnel
aws lambda kann kein ipv6. wenn du dslite hast geht ipv4 nicht. du brauchst einen externen proxy der das umsetzt. schau mal im alexa thread. da gibt es beispiele.
gruss
andre
Hi Andre,
danke für die Antwort. Ich habe beim Suchen keine wirkliche Lösungsbeschreibung gefunden.
Aber ich denke ich werde Alexa nicht mehr hier betreiben, sondern an meinem 2. Wohnort, wo ich auch IPv4 habe. Der ganze DSLite Müll geht mir tierisch auf den Keks und beschert mir nur schlechte Laune. MyFritz funktioniert nicht so, wie ich es mir vorstelle, der Portmapper funktioniert zwar, dafür bekomme ich aber Firewallsperren auf feste-ip.net angezeigt, wenn ich Port 3000 versuche und AWS tut auch nicht wie es soll.
Gruß,
Niko
Bis auf den Provider, bei mit Unitymedia, ist alles gleich und funktioniert bei mir.
Der Raspi ist intern mit ipv4 erreichbar?
In der Fritzbox ist ipv6-Freigabe für den Port 3000 auf die externe ipv6-Adresse des Raspi eingerichtet.
Bei feste-ip.net kannst Du den Zugriff positiv testen?
von extern ist der Raspi:3000 über ipv4 (siehe Adresse bei feste ip) erreichbar?
Die Adresse und der Port von feste IP ist bei AWS eingetragen?
Hi Rabehd,
- Raspi ist intern über IPv4 erreichbar
- IPv4 und IPv6 ist freigegeben (Port 3000 und auch der Mapping Port von feste-ip.net)
- Der Test ist negativ. Über das Portmapping erreiche ich die Fritzboxoberfläche, d.h. das sollte theoretisch funktionieren
- Der Raspi ist nicht erreichbar: laut feste-ip.net gibt es eine Firewallsperre
- Adresse und Port sind eingetragen. Fehlermeldung ist.entweder ECONREFUSED oder dass nichts gefunden wird.
Daher kommen ja meine Probleme. Theoretisch habe ich vieles versucht, auch den RPi schon als Exposed Host und alle IPv6 Ports freigegeben, letztenendes heißt es aber immer Firewallsperre...
ZitatIPv4 und IPv6 ist freigegeben (Port 3000 und auch der Mapping Port von feste-ip.net)
IPv4 kannst Du Dir grundsätzlich sparen, da Dein netz bei DS-Lite per ipv4 nicht erreichbar ist.
wofür ist Deiner Meinung nach der Mapping Port von feste-ip.net in der Fritzbox freigegeben? Da willst Du doch gar nicht rein. Weisst Du was der Portmapper macht?
ZitatÜber das Portmapping erreiche ich die Fritzboxoberfläche,
Was nahe legt, dass Du nicht die Adresse des Raspi eingegeben hast.
Ich hatte auch ab und zu mal Probleme, dass alles ok war trotzdem eine Sperre war. Da hat es geholfen, alles Weiterleitungen in der Fritzbox zu löschen und neu zu setzen (incl. Neustart).
Hi rabehd,
danke für deine Antwort und entschuldige die Lange Funkstille.
Ich habe testweise einfach alles freigegeben, um mögliche Fehlerquellen auszuschließen. Das Portmapping verstehe ich ebenfalls.
Und richtig, da hatte ich nicht die IPv6 des RPi angegeben. Das habe ich inzwischen getan und komme mit meinem Problem aber leider nicht weiter.
Ich habe den RPI nun umgezogen und bin jetzt bei Unitymedia im Netz, d.h. keine Fritzbox, aber weiterhin Dualstack Lite. Ich habe alles neu konfiguriert, den RPi plattgemacht und alles sauber aufgesetzt. FHEM funktioniert im Heimnetz problemlos, auf Port 3000 komme ich trotzdem nicht.
Muss ich in FHEM weitere Einstellungen vornehmen, dass es IPv6 Anfragen akzeptiert? Ich komme momentan nicht auf die Oberfläche, wenn ich die IPv6 statt der IPv4 eingebe...
Edit: Auch wenn ich versuche über den Portmapper auf SSH zuzugreifen tut sich nichts. Gibt es eine Möglichkeit herauszufinden ob das Problem beim RPi oder der ConnectBox von Unitymedia liegt?
Ich verstehe etwas nicht: du versuchst den Port 3000 von alexa-fhem zu erreichen, und nicht den von FHEM oder?
Für FHEM, Zitat aus CommandRef:
ZitatTo use IPV6, specify the portNumber as IPV6:<number>, in this case the perl module IO::Socket:INET6 will be requested. On Linux you may have to install it with cpan -i IO::Socket::INET6 or apt-get libio-socket-inet6-perl; OSX and the FritzBox-7390 perl already has this module.
Ja, ich möchte Port 3000 von alexa-fhem erreichen
Ich glaube, das war blinder Aktionismus :-[
Gehen wir doch langsam vor.
Auf dem Raspi läuft Alexa und hört auf Port 3000? (Ist vielleicht nicht ganz richtig formuliert - für die Spezialisten)
Dann müßte eine Anfrage innerhalb deines Netzwerkes mit der ipv6-Adresse des Raspi auf Port 3000 eine Antwort bringen.
Wenn das klappt, dann können wir uns um den Zugriff von außen kümmern.
@rabehd : Du hast natürlich recht. Nur die Formulierung hier war ein bisschen verwirrend, deswegen meine Frage
Zitat von: IqpI am 31 Mai 2017, 14:54:15
Muss ich in FHEM weitere Einstellungen vornehmen, dass es IPv6 Anfragen akzeptiert? Ich komme momentan nicht auf die Oberfläche, wenn ich die IPv6 statt der IPv4 eingebe...
Zitat von: rabehdAuf dem Raspi läuft Alexa und hört auf Port 3000? (Ist vielleicht nicht ganz richtig formuliert - für die Spezialisten)
Dann müßte eine Anfrage innerhalb deines Netzwerkes mit der ipv6-Adresse des Raspi auf Port 3000 eine Antwort bringen.
Schauen wir mal...
(ein Spezialist hätte bestimmt "lauscht" statt "hört" benutzt. Eh eh 8) )
@amenomade
Stimmt, lauschen ist üblicher 8)
@IqpI
Port bezieht sich auf die Hardware und dort lauscht die Anwendung. Ich vermute ein paar Grundlagen könnten dir helfen.
Alexa habe ich gestartet, scheint auch zu laufen. Wenn ich über IP:3000 im Browser gehe, bekomme ich den JSON Auszug.
Das Problem, welches bestehen bleibt ist, dass ich keinen externen Zugriff auf Port 3000 bekomme. Der feste IP-Check sagt, Port nicht erreichbar, Lambda sagt "timed out"
Edit: Den Port erreiche ich nun. Ich musste zusätzlich zu TCP/UDP noch ICMPv6 freigeben.
Hallo IqpI,
Ich vermute das Problem bei deinem DS-Light Anschluss.
In Wirklichkeit ist das ein Proxy der die IPv4 Adresse auf eine IPv6 Adresse umsetzt.
Wenn du jetzt versuchst über extern auf dein LAN zuzugreifen wird deine Anfrage auf IPv6 Protokoll umgesetzt dann zu deinem Router gesendet und dieser setzt es auf IPv4 für dein LAN um.
Ergo muss dann die Antwort von Alexa zum Internet ebenfalls Rückwärts in IPv6 umgewandelt werden.
Kann das dein Router / Gateway? Firewallregel für IPv6 muss auch entsprechend gesetzt werden (wie das ICMP Paket).
Ich vermute das die IPv6 IPv4 Umsetzung in der Firewall des Routers hängt.
Oder der Ds-light Proxy blockiert wie bei KD alle Ports von extern.
wie oben schon geschrieben: amazon aws kann aktuell noch kein ipv6. du brauchst ein externes ipv4/ipv6 gateway.
ZitatWenn du jetzt versuchst über extern auf dein LAN zuzugreifen wird deine Anfrage auf IPv6 Protokoll umgesetzt dann zu deinem Router gesendet und dieser setzt es auf IPv4 für dein LAN um.
Das ist genau das Gegenteil.
feste-ip.net sollte eine öffentliche IPv4 Adresse zur Verfügung stellen, und die nach die IPv6 Adresse des Raspis durch die DSlite und Fritzbox weiterleiten.
Somit kann AWS auf die IPv4 "Public" Adresse zugreifen. Und es wird nach dem Raspi:ipv6 weitergeleitet.
genau!
Frage: Ist am Anfang des Lambda Codes die Adresse und der Port laut Feste-IP eingetragen?
const PORT=5xxx0;
const HOST='xxxxxx.feste-ip.net';
Er hat aber gesagt:
ZitatDer feste IP-Check sagt, Port nicht erreichbar,
ZitatEdit: Den Port erreiche ich nun. Ich musste zusätzlich zu TCP/UDP noch ICMPv6 freigeben.
« Letzte Änderung: Gestern um 20:48:05 von IqpI »
Könnte bedeuten, dass der Port von extern über Feste-IP erreichbar ist.
Ich versuche die Diskussion mal kurz zu beenden. Dazu nun was ich seit Erstellen des Threads gemacht habe:
- Umzug des RPi und des Dots an eine Unitymedia Connect Box
- Portweiterleitung UDP/TCP Port 3000 an IPv6 des RPi
- Portweiterleitung ICMPv6 Port 3000 an IPv6 des RPi
- Universellen Portmapper auf feste-ip.net für Port 3000 meines RPi
- Eintragen des von feste-ip.net vorgegebenen Ports in Lambda
--> Damit gab es keine Probleme mehr bei der Portweiterleitung
Zusätzlich, was mir unklar war, noch einige weitere Punkte:
- Basic Auth für 8083 entfernt
Damit funktioniert nun alles.
Viele Grüße,
Niko
Ich vermute mal das heißt "Gelöst".
Du bist Spitze im Rätselstellen! 8) Wenn ich das Problem hätte würde ich hier nicht schlau werden.
basic auth musst du nicht entfernen sondern die parameter im config.json file eintragen.
Wenn gelöst, dann bitte noch [Gelöst] vor das Subject des ersten Posts
@rabehd vielen Dank, in Rätseln sprechen fällt mir leichter, als auf den Punkt zu kommen :-P
Könntest du nochmals genauer erklären, wie dir die Weiterleitung gelungen ist?
Ich bekomme es einfach nicht hin. Habe DS-Lite von UM. Von denen die ConnenctBox und dahinter per LAN steht eine Fritzbox7490. In der ConnectBox sind alle Ports freigegeben. In der Fritzbox habe ich myfritz genutzt um den pi an Port 3000 freizugeben (muss man http oder https nehmen). Der entsprechende Link wurde bei Feste-IP eingefügt. Dort wird mir aber immer gesagt, dass der Port nicht erreichbar ist und auch die dort angegebene Adresse kann ich nicht nutzen... ???
Was kostet den das bei FesteIP.net nach den gratis 50Tagen?
pro IP (beleibig viel Ports) ein Cent pro Tag