PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Webserver nicht aus dem Netz erreichbar =(



Felix H.
01.08.2010, 21:33
Moin,

ich habe mir einen Webserver mittels AVR und ENC28J60 zusammengebastelt. Der Code ist der von Thomas Heldt. Sollte bekannt sein.

Das geht soweit schon, dass ich Pingen kann und auch die Webseiten intern, also übers LAN, funktionieren.

Ich habe mir daraufhin ein Konto bei Dyndns angelegt und auch in meiner Fritzbox entsprechend alles eingetragen. Ich habe alle Ports zu der IP meines Webservers geöffnet. Leider geht es von der Dyndns adresse nicht. Im netzwerk, mit einfachem eingeben der internen IP, schon. Gibts da noch irgendetwas das ich nicht beachtet habe? Wenn ich auf einem PC einen Webserver öffne und die IP der Portfreigabe in meiner Fritzbox entsprechend umstelle, geht es auf diesem mit der Dyndns adresse wunderbar.

Hat jemand eine Idee?

Gruß

michiE
01.08.2010, 23:11
der enc28j60 hängt direkt am router ?

Searcher
02.08.2010, 03:13
Vielleicht dumme Frage, aber ist das default gateway auf ENC28J60 noch richtig konfiguriert?

Gruß
Searcher

Richard
02.08.2010, 10:32
Vielleicht dumme Frage, aber ist das default gateway auf ENC28J60 noch richtig konfiguriert?

Gruß
Searcher

Würde ich jetzt auch vermuten, ohne kann ja keine Antwort
(ins externe Netz) gesendet werden.

Gruß Richard

Felix H.
02.08.2010, 16:47
Hi,

also zwischen Router und dem Webserver hängen noch 2 Switches.

Also es gibt in den Einstellungen vom Webserver die Gatewaymac, sowie MyDNS-IP. Ich habe dort entsprechend die IP bzw. MAC Adresse meines Routers eingegeben.

Gruß

Searcher
02.08.2010, 18:02
Hallo,

jetzt müßte man wissen, ob und was der ENC28J60 auf Anfrage aus dem Internet antwortet. Ich würd jetzt einen Hub an den Router anschließen und mit Wireshark das Netzwerk tracen. Wenn kein Hub, vielleicht kann man ein Monitorport am Switch konfigurieren?

Gibt es andere IP Tracemöglichkeiten?

Da man mit dem ENC28J60 ja die Protokolle auf dem µC implementieren muß (angelesenes Halbwissen) könnte da ja noch ein Bug sein.

Wo ist der Code zu finden. Mir ist Thomas Heldt nicht bekannt. Könnte anderen vielleicht helfen.


Gruß
Searcher

Felix H.
02.08.2010, 19:31
Hi,

ich habe gerade einmal das System mit dem Seriellen Port ausgelesen.

Wenn ich meine Dyndns adresse im Browser eingebe, tut sich schonmal was am µC. Ich erhalte die Message "arp request". Diese kommt immer wieder und wieder, bis Mozilla wegen zu langer ladezeit die Verbindung abbricht.

Ich habe mal danach gegoogelt. Der "arp request" kommt, wenn ich meine IP zum µC schicke und mein Browser sagt "ich hätte gerne die index.html". Daraufhin will mir der µC die Seite zuschicken, braucht dafür aber meine MAC adresse, welche er nicht hat. Also sendet er den "arp request" der alle Geräte im Netzwerk anspricht "hey... der mit der ip: xxx.xxx.xxx.xxx bitte gib mir mal deine MAC Adresse". Dann sollte eigentlich mein PC dem µC die MAC adresse geben. Im Netz geht das...

Scheinbar gibt die Fritzbox nicht ihre MAC adresse her. In der Fritzbox gibts unter "netzwerk" auch eine Tabelle mit allen Netzwerkteilnehmern sowie deren IP und MAC. Mein µC ist mit seiner IP aufgeführt, allerdings nicht mit seiner MAC! Dort steht nichts...?

Den Code findet ihr hier http://mikrocontroller.heldt.eu/index.php?page=enc28j60-io-webserver

Gruß

Searcher
02.08.2010, 20:15
Hi,

Dein µC sollte die MAC des Gateways (Fritzbox) haben. Hattest Du doch eingegeben. Warum verwendet er die nicht?

Soweit ich das noch richtig zusammenkriege ist der Ablauf so:

Du gibst im Browser die DynDNS Adresse Deines AVR Webservers (+portadresse?)ein.
Dein Rechner macht über den Router mit Hilfe des DNS Servers eine DNS Anfrage und bekommt die IP zurück, die dort hinterlegt ist. Also die mit der Dein Router über DynDNS im Internet bekannt ist.
Der Rechner schickt nun das IP Paket mit der IP und entsprechendem port erstmal los zum Router.

Was ist jetzt? Wenn der Router erkennt, das es ja seine eigene öffentliche ist... Keine Ahnung, ist auch geräteabhängig.

Schon mal probiert, den Webserver von einem anderen Internetanschluß aus zu erreichen?

Falls der Router mithilfe des Portforwarding das Paket zum AVR schickt, sollte der AVR erkennen, das die Absender IP nicht im eigenen Netz liegt und die Antwort an die eingegebene MAC des Routers schicken. (Hat der Router als Absender wirklich seine eigene öffentliche IP eingetragen?)

Wenn der AVR aufgrund der empfangenen Absender IP (eventuell die öffentliche?) ein ARP request macht, wird er natürlich keine Antwort bekommen. ARPs gehen nur im eigenen IP Netz. Eigentlich sollte er die Antwort an die konfigurierte Router MAC schicken.

Fragen über Fragen :-)

Ein IP Trace könnte vieles beantworten.

Testvorschlag: Was ist bei einem Zugriff von einem anderen Internetzugang?


Die erwähnte Tabelle in der Fritz Box: Sind das manuell eingetragene Geräte oder ist das ein Cache vom Router, die man nur auslesen kannst. Sonst die MAC vom AVR nachtragen. Ist vielleicht so eine Art Tabelle für erlaubte Geräte.

Gruß
Searcher

Felix H.
02.08.2010, 20:52
Hi,

danke erstmal für deine Bemühungen^^ =)

Die Daten in der Fritzbox kann man nur Auslesen. Nix eintragen.

Von einem anderen Internetzugriff gehts auch nicht =(

Meinst du mit der Route die eingabe im cmd "tracert blabla.de"? Dabei kommen bei eingabe meiner dyndns eingabe 2 Stationen.

Erst mein Router: fritz.fon.box [192.168.2.1]

dann: gssn-5f757df6.pool.mediaWays.net [95.117.125.xxx]

bei zweiterem ist das meine momentane Internet-IP die da steht. Hab die letzten jetzt nur zensiert^^

Searcher
03.08.2010, 05:31
Hi,
war meine letzte Hoffnung, daß es von einem anderen INET Zugang funktionieren könnte.

1. Der PC als Webserver funktioniert mit den Konfigurationen in der Fritzbox. Auch, wenn dieser von einem anderen INET Zugang angesprochen wird?

2. Der AVR Webserver funktioniert nur im eigenen Netz

3. Sobald der AVR vom INET aus angesprochen wird, reagiert er mit ARPs um eine MAC für eine IP zu bekommen. Bekommt aber anscheinend keine Antwort darauf weil er den ARP request andauernd wiederholt.

Also ungefähr soweit, wie am Anfang :(

Ohne zu wissen, was da genau auf dem Netz zwischen Router und AVR Webserver passiert, weiß ich auch nicht weiter. zB für welche IP der AVR eine MAC mit seinen ARPs haben möchte.

Sollte er die Router MAC haben wollen, warum, hat er doch schon. Oder warum gibt der Router sie nicht raus? Ist das ARP Paket falsch vom AVR zusammengebastelt, so das der Router es nicht versteht?

Bis dahin würd ich der Einfachheit halber davon ausgehen, daß beim AVR ein Bug in der SW ist, sobald er zum Gateway muß. Ist aber reine Raterei und beim Thomas Heldt scheint er ja zu funktionieren.

Muß mich leider ausklinken, weil ich keine Ideen mehr hab und nicht so fit bin um den Code daraufhin zu analysieren.


Meinst du mit der Route die eingabe im cmd ... Auf was beziehst Du Dich da. Hab ich das irgendo geschrieben? tracert war auf jeden Fall gut. Allerdings bietet es mir keine neuen Anhaltspunkte.

Wenn mir noch was einfällt, meld ich mich wieder.


Gruß
Searcher

Richard
03.08.2010, 07:10
Schon mal probiert, den Webserver von einem anderen Internetanschluß aus zu erreichen?



Das kann es sein! Ich habe recht viel mit dyndns gemacht, Video
Überwachung z.b. von Spielhallen. Dyndns aus dem eigenen Netzwerk
testen hat nie geklappt. Ich habe dann immer einen Kollegen gebeten
sich mal einzuwählen und schon ging es.

Du kannst ja einmal die dyndns Adresse posten und wir testen, später
dann nicht vergessen das Password zu ändern!

Gruß Richard

Felix H.
03.08.2010, 16:29
Hi,

ich habe gerade einmal hier an meinen laptop meine Webcam gemacht, die IP meines Laptops am Router auf "exposed host" gestellt, webcam2000 gestartet und siehe da, ich habe einen Livestream meiner Webcam auf meiner Dyndns seite!

Da scheint das Problem wirklich im µC zu liegen.

Ich hänge mit dem Latop übrigens am gleichen Switch. Also genau der gleiche Weg zum Router. Der Laptop hat Wlan. Genauer gesagt, der AccesPoint hängt an dem Switch. Das sollte aber keinen Unterschied machen...

Gruß

Searcher
04.08.2010, 06:47
Hi,
wie Richard schon geschrieben hat, ist so ein Test aus dem eigenen Netz (Geräte auf dem gleichen Kabel) nicht sehr zuverlässig, weil zB bestimmte IP Pakete "querlaufen" können. Ich denke da zB. an ICMP redirect.

Vielleicht ist ein Test über einen externen PROXY ein bißchen besser, damit man nicht immer einen anderen Internetzugang (auf)suchen muß, ohne das ich jetzt weis, was der "exposed Host" jetzt genau macht.

Beim Nutzung eines PROXYs muß der Router abgehend auf jeden Fall ins Internet und kommt mit einer anderen Absender IP (die vom Proxy) zurück in Richtung Webserver.

Gruß
Searcher

Richard
04.08.2010, 20:01
Hi,
wie Richard schon geschrieben hat, ist so ein Test aus dem eigenen Netz (Geräte auf dem gleichen Kabel) nicht sehr zuverlässig, weil zB bestimmte IP Pakete "querlaufen" können.

Stimmt, bei einigen Kunden ging es, bei den meisten nicht. Warum
keine Ahnung? Router Einstellung, vom Kunden,vom Hersteller?
Ich kann aus meinen Internen netz auch meine Dyndns nicht ansprechen,
Ping dyndns Lap ergibt dann nur meine momentane dns Adresse welche
mir vom Prowieder zugewiesen wurde....
Gruß Richard