-1

Hallo,Arduino lokales Netzwerk DHCP fehlgeschlagen

Ich werde viele Lösungen für unser Problem suchen und ausprobiert, aber keiner von funktioniert. Dies wird ein langer Post sein, also sei bereit.

Unser System:

Wir haben ein Arduino uno r3 Klon und Ethernet Shield Wiznet W5100, Das Arduino eine Postanforderung zu einem Fenster Web-Service http macht. Nach Antwort wird Arduino etwas machen, das nicht offen ist zu hinterfragen.

Also werden wir in unserer Testumgebung einen Windows-Webservice auf unserer Windows-Maschine installieren und diese Maschine an unser lokales Netzwerk anschließen. Dann schließe Arduino an unser lokales Netzwerk an. als mit unserem Server IP, Arduino machte eine DHCP-Anfrage erhalten IP von unserem Modem-Router und kann Webservices von unserem Server aufrufen.

Von jetzt an funktioniert alles gut.

Hier ist ein Beispielcode aus unserem Arduino (ich benutze diese zusätzliche Bibliothek für Arduino nur:... "RestClient.h"

#include <Ethernet.h> 
#include <SPI.h> 
#include "RestClient.h" 
RestClient client = RestClient("192.168.100.17",51200); 
String response; 
String PostData; 
void setup() 
{ 
    Serial.begin(9600); 
    byte mac[] = { 0x04, 0xD6, 0x2E, 0x81, 0x01, 0xB0 }; 

    if (Ethernet.begin(mac) == 0) { 
    Serial.println("Failed to configure Ethernet using DHCP"); 
    } 
    delay(1000); 
    Serial.println(Ethernet.localIP()); 
} 

void postDataToServer(long rfidnumber,int rfidsource){ 
    String postedRFIDNumber=String(rfidnumber); 
    postedRFIDNumber="000"+postedRFIDNumber; 
    response = ""; 
    PostData="RFID="+postedRFIDNumber+"&SOURCE="+rfidsource; 
    const char * myPost = PostData.c_str(); 
    int statusCode = 
client.post("/sqlpublish/TTSWebService.asmx/INSERT_INDEXRFID",myPost,&response); 
} 

Wir müssen unser System an ein Unternehmen installieren Dieses Unternehmen sein eigenes lokales Netzwerk hat sie haben ein sehr eingeschränktes lokales Netzwerk Sie können ihr Netzwerk verbinden, aber können nicht auf das "www" ohne ihre Berechtigungen gehen. Aber das ist kein Problem. Wir werden nur lokale Verbindung für unsere Webdienste verwenden, weil wir auch einen Windows Server verwenden werden innerhalb des lokalen Netzwerks

Dies ist ein Bild ihres Netzwerksystemschemas: Normal Network Configuration In diesem Bild fehlt Schalter, aber Sie können einfach raten, dass sie viele swtiches verwendet. Weil Firma sehr breit ist und viel Gerät hat.

Also wenn ich irgendein Gerät an ihr lokales Netzwerk anschließe, ruft dieses Gerät Dhcp-Protokoll zuerst IP von Windows DHCP Server und kann dann im lokalen Netzwerk mit anderen Geräten kommunizieren. Aber wegen der Firewall im Router kann das Internetmodem nicht durchkommen.

Dann werden wir unser System-Setup wie folgt aus:

our needed setup arduino

In diesem Setup-Switch-Modelle sind: "AVAYA".

VSP7000 XLS ERS4826 GTS-PWR + ERS3549 GTS-PWR +

Firewall ist: Watchguard Firebox M300

Wenn wir das System-Setup etwas Unheimliches vor sich geht. Zuallererst, wenn ich meinen PC (Mein Gerät) mit dem lokalen Netzwerk verbinde, kann ich Webservices im Windows Server aufrufen. Aber Arduino kann keine IP vom DHCP Server bekommen und kann natürlich keine Verbindung zu Web Services herstellen. Wir denken also, dass wir "IP statisch" geben können. Dann geben wir unserem Arduino IP manuell. Danach begannen seltsame Dinge zu beginnen. Wenn Arduino versucht, unsere Windows-Webdienste zu verbinden, bekommt es nur einige Male eine Antwort. Ungefähr 1 von 20 hat Antwort vom Server, alles andere erhält eine Verbindung zum Time Out.Und auch die Reaktionszeit ist zu lang.

Wenn wir unsere statische arduino IP von einem anderen Gerät pingen (zum Beispiel Device_1), erhalten sie manchmal wieder Antwort. (Gleicher Betrag)

Also versuchen wir dann, unser Problem einzugrenzen.

Zunächst einmal ändern wir das Setup so für einmal, um sicherzustellen, Problem im lokalen Netzwerk.

changed version

Und Normaly alle Systeme funktioniert perfekt. Der DHCP-Server unseres Modems sorgt dafür, dass er perfekt funktioniert. (Auch in diesem Setup Wenn ich IP statisch gebe, funktioniert es auch).

So gibt es diese Möglichkeiten für Verbindungsfehler.

1-Firewall 2-Switch Problem 3-Arduino Clon Problem.

1-Firewall

Wenn wir über das Problem mit Systemadministrator gesprochen, sagte er ust jede lokale Netzwerkverbindung und Port in der Firewall geöffnet. Er hat wahrscheinlich recht, weil jeder PC, der mit dem lokalen Netzwerk verbunden ist, den Internetdienst anrufen kann.

2-Schalter Problem

This Question, spricht über sie als Lösung sagt, es statische IP verwenden, bu in unserem Fall ist es nicht das Problem zu lösen hat.

In this Question jdr5ca sinnvoll beantworten, aber ich hve keine Ahnung, wie das Problem testen oder lösen das Problem

In this Question answer tried but not working.

Schließlich this post, aber es ist so allgemein. und auch was ich verwenden sollte ersetzen für "Arping" in Windows.

3-Arduino Clon Problem.

nächste Woche werden wir versuchen, es mit mit Original Arduino,

ich alle informiert.

SO, irgendein Vorschlag, Werkzeug oder irgendein Diagnosewerkzeug für das Problem Ich bin den ganzen Vorschlag geöffnet.

Antwort

1

Anscheinend ist unser Problem ein bestimmtes Schaltermodell! Hier

ist das Modell: https://www.zyxel.com/tr/tr/products_services/es_108a.shtml?t=p (zyxel ES-108E)

Wenn wir direkt Arduino zyxel Switch anschließen und ping Arduino von einem anderen Gerät im Netzwerk nur einige der Pings erfolgreich (ca.% 15 erfolgreich). .

Aber wenn wir ein anderes Switch-Modell verwenden oder nicht direkt mit dem Zyxel-Switch verbinden, funktioniert es einwandfrei.

Ich weiß nicht, warum es nicht mit Zyxel funktioniert, aber Problem ist der Schalter!

Verwandte Themen