== Aufgabe == Der XPort soll eine Email versenden. Hierbei werden Sender, Empfänger, Betreff und Nachricht durch den Mikrocontroller über RS232 vorgegeben. Der direkte Emailversand des XPorts ist hierfür zu unflexibel. == Lösungsansatz == Die Funktion '''Cannel->Connection->Active Connection''' wird aktiviert. Versand der Email über SMTP. Im Weiteren erfolgt die Aktivierung der Verbindung mit ‚C’. == Problem == Nachdem die Telnetverbindung scheinbar korrekt aufgebaut wurde, sind keine weiteren Eingaben mehr möglich. Die Daten werden nach wie vor über die RS232 Schnittstelle entgegengenommen. Und das LED an der Ethernet-Buchse signalisiert weiterhin einen Datenverkehr. Die Befehle werden vom Telnetserver jedoch ignoriert. == Datentransfer RS232 == TX: C213.165.64.20/25<br> RX: 220 mail.gmx.net GMX Mailservices ESMTP {mp036}<br> TX: QUIT<br> … keine Antwort vom Telnetserver ..
=== Neue Erkenntnis === == Telnetverbindung korrekt aufgebaut == Meine Vermutung hat sich bestätigt. Die Verbindung zum GMX Mailserver wurde korrekt aufgebaut. == Fehler == Die ‚Aktive Verbindung’ wurde korrekt mit einem CR aktiviert. Die Befehle an den Server wurden anschließend ebenfalls mit CR bestätigt. Telnet erwartet jedoch ein CR+LF! Scheinbar hat dem Server das fehlende LF sooo sehr verwirrt, dass er überhaupt keine Antwort zurücksendete. Es wurde auch keine Fehlermeldung zurückgesendet! == Aktueller Stand == Befehle werden nun vom Server korrekt bearbeitet. Wie gewünscht kann eine Email versendet werden. Mit QUIT wird die Verbindung beendet. == Problem == Scheinbar wird die Verbindung nicht korrekt beendet. Denn wird unmittelbar nach QUIT wieder versucht eine Verbindung aufzubauen, wird diese vom Mailserver nicht akzeptiert. Nach einigen Minuten geht’s dann wieder. Vermutlich wird die Verbindung zum Mailserver nicht durch den XPort abgebaut, sonder durch ein Timeout! == Datentransfer RS232 == TX: quit RX: 221 2.0.0 GMX Mailservices {mp053} RX: NO CARRIER ……………… XPort wurde auf Modemmode umgestellt. TX: atdt 213.165.64.20/25 RX: NO CARRIER ……………… Trotz korrekter Anmeldung wird der Aufbau blockiert.
Erwin Sterz wrote: > Telnet erwartet jedoch ein CR+LF! Praktisch alle Internet-Protokolle beenden ihre Zeilen mit CR+LF, so auch SMTP. > Scheinbar hat dem Server das fehlende LF sooo sehr verwirrt, dass er > überhaupt keine Antwort zurücksendete. Klar, er wartet einfach auf das noch fehlende LF. > Nach einigen Minuten geht’s dann wieder. Vermutlich wird die Verbindung > zum Mailserver nicht durch den XPort abgebaut, sonder durch ein Timeout! Gut möglich, danach bleiben dann die beteiligten Ports noch im Zustand "TIME_WAIT" hängen. Steht irgendwo im RFC für TCP. Dieser Zustand soll bei einer auseinandergebrochenen Verbindung verhindern, dass das Portpaar sofort wieder für eine neue Verbindung benutzt werden kann, damit nicht aus Versehen noch im Netz herumschwebende Pakete der alten Verbindung irrtümlich die neue Verbindung stören können. Wenn du schon ein Layer-4-Protokoll ,,zu Fuß'' sprechen möchtest, dann gehört das Studium des entsprechenden RFCs zur Pflichtlektüre. Es gibt weit mehr Dinge dabei zu beachten als das CR+LF, beispielsweise sind einige Header in ihrem Format vorgeschrieben und müssen existieren, andererseits darf dir jeder Mailserver die Annahme verweigern (aber nicht jeder tut es wirklich, sodass die Mail u. U. erst auf dem weiteren Weg in die Tonne getreten wird).
== RFC für TCP== Der XPort bietet zum Ansteuern der TCP einen übergeordneten Befehlsatz. ATDT 213.165.64.20/25 … Aufbau einer TCP Verbindung zu IP/Port +++ ATH … Abbruch der TCP Verbindung Irgendwie erhoffe/erwarte ich mir hier eine korrekte Behandlung von Layer4. Jörg, unabhängig hiervon bin ich über Deine Rat sehr dankbar und werde diesen jedenfalls befolgen. == Problem == Zurzeit stehe ich vor dem Problem, dass ich die TCP Verbindung mit QUIT eigentlich gar nicht trennen will! Fakt ist jedoch, dass mit QUIT die Telnetverbindung abgebrochen wird, und ich anschließend vom XPORT die Info NO CARRIER erhalte. Sodass ich den Befehl zum Trennen der Verbindung „+++ ATH“ nicht mehr ausführen kann. == Lösungsansatz1 == Kann man mit einem PC eine TCP Verbindung abhorchen, in welche der PC nicht involviert ist? Aufzeichnung der Verbindung XPort <=> Telnetserver. Sofern mir dann mein Fehler nicht gezeigt wird, kann ich zumindest eine konkrete Frage stellen. == Lösungsansatz 2 == Der Telnetserver muss auf meinem PC implementierte werden. Und dann ist die Aufzeichnung kein Problem.
Hallo Erwin Ich hatte zum "abhorchen" der Netzwerkaktivitäten wireshake http://www.wireshark.org benutzt und ich war sehr zufrieden damit.
Ingo Danke für den Beitrag. Auch ich habe Wireshark bereits im Einsatz und bin ebenfalls sehr zufrieden. Bis dato kann ich jedoch nur Aktivitäten protokollieren, in welche der PC direkt involviert ist. Wenn sich mein XPort mit einem externen Mailserver unterhält, wird diese Verbindung vom PC jedoch nicht aufgezeichnet. Soweit ich das Beurteilen kann, könnte dies auch ein generelles Problem sein. TCP ist ein Client-Server Protokoll. Unter Umständen ist hier ein Abhorchen/Mithorchen nicht möglich!
du brauchst einen hub und keinen switch. oder du schaffst es den switch durch eine arp-attacke zu einem hub zu machen ;) such mal bei google nach dem unterschied..
Erwin Sterz wrote: > Irgendwie erhoffe/erwarte ich mir hier eine korrekte Behandlung von > Layer4. Ein telnet-Client ist aber nun einmal kein SMTP-Client. Seine Aufgabe ist es, die eingetippten Zeichen 1:1 auf die andere Seite zu bringen. Er macht nur beim Öffnen der Verbindung eine minimale Verhandlung über einige Features von telnet, siehe RFC 854, weshalb telnet auch ein eher ungeeigneter "generischer" TCP-Client ist (was du ja gerade haben willst). Wenn du also telnet als SMTP-Ansteuerung missbrauchst, bist du schon für die korrekte Behandlung des SMTP-Protokolls mit all seinen Einzelheiten selbst verantwortlich. Bitte lies dir RFC 2821 gründlich durch (und ggf. auch noch RFC 2822, in dem das Format der zu übertragenden Nachrichten beschrieben ist). > Zurzeit stehe ich vor dem Problem, dass ich die TCP Verbindung mit QUIT > eigentlich gar nicht trennen will! Der SMTP-Befehl QUIT beendet aber nun einmal die SMTP-Verbindung, denn genau dafür ist er da! Wenn du das nicht willst, warum gibst du das dann ein? Vielleicht wolltest du ja ein RSET? Wie geschrieben: bitte lies dir RFC 2821 durch, wenn du SMTP ,,zu Fuß'' sprechen willst. > Kann man mit einem PC eine TCP Verbindung abhorchen, in welche der PC > nicht involviert ist? Ja, sofern du dein Ethernet dazu überreden kannst. Bei den richtig teuren Ethernet-Switches gibt es dazu ein Feature, das sich "Port- Spiegelung" nennt. Bei den 08/15-Billichdingern gibt es sowas nicht, da kannst du dir nur behelfen, indem du zwischen den XPort, die Außenwelt und den PC einen uralten 10-Mbit/s-Hub reinhängst. Diese Teile waren noch einfache Repeater, die stur alle Pakete auf alle Ports weiter gereicht haben.
== Kurzes Lebenszeichen == Zunächst einen Herzlichen Dank an Alle, die mich bei der Problemsuche unterstützen. == Lösungsansatz1: Protokollierung der TCP Verbindung == Leider bietet weder mein speedtouch noch mein acer-WLan Router diese Möglichkeit. == Lösungsansatz2: Lokaler Telnetserver == Alles o.k. Die Verbindung zu Port 23 wurde aufgebaut und wieder abgebaut und wieder… Da auch alle anderen Befehle fehlerfrei funktionierten, gehe ich davon aus, dass hier alles funkt. == SMTP Verbindung zu einem anderen Emailserver == Leider/Glücklicherweise wurde hier das gleiche Verhalten wie unter 213.165.64.20 festgestellt. == Aktueller Stand == Leider hat sich am aktuellen Stand bis dato noch nichts geändert. * Einwahl o.k. * Email versenden o.k. * Fehler beim Abbau der Verbindung Basierend auf der Tatsache, dass ich den XPort und diese Funktion haben will, werde ich weiter an der Aufgabe arbeiten. Und wenn’s dann läuft wird dieser Thread ein Abschlussprotokoll erhalten.
== Bitte an XPort’ler == Hat jemand seinen XPort am Netz und hat Zeit für einen kurzen Test? 1, Aufbau einer SMTP Verbindung zu (gmx) 213.165.64.20 Port 25 2, Beenden der Verbindung mit QUIT 3, Wiederholter Aufbau der Verbindung zu 213.165.64.20 Port 25 Wie schon beschrieben wird bei mir der zweite Versuch blockiert bzw. ist erst nach einem noch nicht ermittelten Timeout wieder möglich. Ich würde mich auch über ein Ergebnis freuen, wenn dieses erst morgen oder übermorgen eintrifft. P.S. „Kurz“ ist relativ, aber ich kann doch nicht „Hat jemand für einen langen Test…“ schreiben! Herzlichen Dank im Voraus == Aktueller Stand == Die korrekte Ausführung meiner Kommandos wurde von Lantronix bereits bestätigt. Das bedeutet, nach QUIT sind keine weiteren Aktionen erforderlich. Weitere Infos werde ich von meinem Ansprechpartner noch erhalten. == Fehlerquellen == * XPort wurde von mir falsch konfiguriert * Mein Netzwerk ist falsch konfiguriert * Der XPort erhält von 213.165.64.20 ein nicht implementiertes Kommando bzw. wertet dieses falsch aus.
> == Lösungsansatz1: Protokollierung der TCP Verbindung == > Leider bietet weder mein speedtouch noch mein acer-WLan Router diese > Möglichkeit. Ist jetzt gerade einfach laut gedacht: wenn es lokal funktioniert, aber Richtung Internet und Email server nicht, kann der Router ebenso Schuld sein. Im Router muss ja ein NAT gemacht werden..... Ich würde mal einen anderen Router zum Test einsetzen, z.B. Fritzbox mit aktueller Firmware. Gruß Sven
Sven wrote: >> == Lösungsansatz1: Protokollierung der TCP Verbindung == >> Leider bietet weder mein speedtouch noch mein acer-WLan Router diese >> Möglichkeit. > > Ist jetzt gerade einfach laut gedacht: > > wenn es lokal funktioniert, aber Richtung Internet und Email server > nicht, kann der Router ebenso Schuld sein. > > Im Router muss ja ein NAT gemacht werden..... "Ein NAT" kann man nicht machen. NAT bedeutet Network Address Translation, was genau das ist, was ein Router selber macht. Wenn du einen manuellen NAT Eintrag meinst, dann braucht man diesen genau NUR dann, wenn man hereinkommende Verbindungen/Pakete an bestimmte (lokale) Adressen verweisen möchte. Ausgehende Verbindungen werden ganz normal geroutet.
Erwin, geh mal zum Arzt. In deinem Hirn hat sich ein Wiki-Virus eingenistet, das verhindert, daß du wie normale Menschen schreibst!
Sven, Simon, herzlichen Dank für euren Beitrag. Derartige Konfigurationen sind in meinem Netzwerk natürlich vorhanden. Neben dem Emailversand, wird der XPort auch als Webserver eingesetzt und genau dann brauche ich diese Einträge. Bei einer ausgehenden Verbindung, hätte ich jedoch nicht erwartet, dass hier Probleme auftreten. Um ganz sicher zu gehen, kann ich den Test mit der Grundkonfiguration wiederholen Mittlerweilen hab ich schon etwas Übung.
> "Ein NAT" kann man nicht machen. NAT bedeutet Network Address > Translation, was genau das ist, was ein Router selber macht. Das ist richtig,aber der Router macht das! nur wenn NAT -> ON ist. http://www.elektronik-kompendium.de/sites/net/0812111.htm > Wenn du einen manuellen NAT Eintrag meinst, dann braucht man diesen > genau NUR dann, wenn man hereinkommende Verbindungen/Pakete an bestimmte > (lokale) Adressen verweisen möchte. Dies nennt man dann auch Portforwarding. Internet -> Localnet (habe ich aber nicht von gesprochen) > Ausgehende Verbindungen werden ganz > normal geroutet. Habe ich auch nicht bezweifelt. Aber weil diese Dinge stattfinden und zusätzlich aus Schutzgründen eine Firewall läuft, gibt es für die Regeln im Router sog. Timeouts. Diese haben in meinen Tests mit Verbindungen zu ein und derselben IP schon zu ganz komischen Verhalten geführt. An einem vollwertigen Linux Router haben wir dann die Zeit gesenkt. Um genau dieses Problem auszuschliessen der Tip mit einem anderen Router ! @Erwin: So, und jetzt probiere einfach einen anderen Router, möglichst eine Fritzbox, weil die gescheit gewartet wird und aktuelle Firmwares verfügbar sind. Gruß Sven
Sven wrote: >> "Ein NAT" kann man nicht machen. NAT bedeutet Network Address >> Translation, was genau das ist, was ein Router selber macht. > > Das ist richtig,aber der Router macht das! nur wenn NAT -> ON ist. Wie soll er denn sonst hier schreiben können, wenn NAT nicht aktiviert ist? ;) Also gehe ich mal stark davon aus, dass er auch über genau diesen Router ins Internet geht.
Erwin Sterz wrote: > == Lösungsansatz1: Protokollierung der TCP Verbindung == > Leider bietet weder mein speedtouch noch mein acer-WLan Router diese > Möglichkeit. Dann klemm doch mal einen 10-Mbit/s-Hub dazwischen. Ich habe hier zwar einen XPort da liegen, aber keinerlei Firmware auf dem zugehörigen ATmega1281, mit der ich die von dir gewünschte SMTP-Verbindung zu GMX aktivieren könnte. Wenn du mir eine solche liefern willst, kann ich das gern für dich ausprobieren, und ich habe auch noch einen alten Hub rumliegen, mit dem ich das per Wireshark mitschneiden könnte. Allerdings ist mir der Aufwand zu hoch, dass ich mir die Firmware für das SMTP-Handshake jetzt auch noch selber stricke. Von außen kann man das leider nicht so recht bewerkstelligen, das muss der Controller ja tun.
== Abschlußbericht == Der Fehler, der eigentlich gar keiner war. == Problem == Ich konnte über den XPort eine SMTP Verbindung zu einem ext.Server aufbauen und Email’s versenden. Ein zweiter Versuch wurde jedoch blockiert. Wurde die gleiche Aktion über den PC gestartet, konnten scheinbar beliebig viele Versuche hintereinander gestartet werden. Hier war offensichtlich kein Timeout vorhanden. == Auflösung == Der zweite Versuch vom XPort wurde vom Server geblockt, weil der Server eben ein Timeout konfiguriert hat. Ist eben so… Über den PC wurde dieses Problem nicht festgestellt, weil hier jedes Mal ein anderer Source-Port verwendet wird. Während am XPort immer die 10001 verwendet wird. @Jörg Das Problem mit der Protokollierung wurde schlussendlich ohne HUB gelöst (den so einen hab ich keinen). Notebook als Bridge konfigurieren und XPort durch den PC schleifen. Wireshark erledigt den Rest. Danke für Deine Unterstützung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.