Router antwortet nicht auf ENC28J60 Arp-Request

OP #3746473
Lesenswert?

Hi,

ich habe mir eine kleine ENC28J60 Platine gebastelt. Als Sourcen 
verwende ich den Stack von Ulrich Radig 
(http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex).

Wenn ich nun den ENC28J60 mit meinem Laptop verbinde und mit 192.168.1.5 
aufrufe funktioniert alles hervorragend. Er zeigt die Web-Seite an.

Möchte ich nun einen NTP-Server vom ENC28J60 aus kontaktieren, schlägt 
das ganze fehl.

Nach Betrachtung meines Netzwerktraffics mit Wireshark sieht es so aus, 
als würde mein Router den ARP-Request des ENC28J60 nicht beantworten.

Der ENC28J60 fragt, wer hat 192.168.xx.yy (die korrekte Adresse des 
Routers),
 aber dieser Antwortet nicht. Rufe ich dieselbe Adresse im selben 
Netzwerk von meinem Laptop aus an, kommt der ARP-Response.

Sowohl Laptop als auch ENC28J60 habe ich dafür direkt per Kabel an den 
Router angeschlossen.

Hat jemand eine Idee woran das liegen kann? Ich habe irgendwie k.A. was 
da flasch läuft.

Grüße
OP #3746520
Lesenswert?

Hi,

//IP des Webservers und des Routers
#define MYIP    IP(192,168,1,5)
#define ROUTER_IP  IP(192,168,xx,yy)

//Netzwerkmaske
#define NETMASK    IP(255,255,255,0)


Falls ihr diese Einträge meint, die habe ich gesetzt.

Er sendet ja auch einen ARP-Request an die Adresse des Routers.

Der antwortet aber nicht mit einem ARP-Response (ohne kann es keine 
Kommunikation geben oder?)
Gast #3746539
Lesenswert?

>na gut es ist 192.168.1.1 :). Aber das sollte doch gehen odeR?

Schliess ein Terminal an den UART an und gib dann

ping 192.168.1.1

ein. Es sollte

get PONG: 192.168.1.1

zu sehen sein. Wenn nicht sieht es den Router nicht.
Gast #3746549
Lesenswert?

Ein ARP request wird nicht an eine IP Adresse gesendet sonder per 
Broadcast ins lokale Segment geschrien. Die Ziel MAC im ARP Paket ist 
FF:FF:FF:FF:FF:FF

In diesem Paket fragt man in der Payload nach der IP Adresse.

Wer sich bemüßigt fühlt, der antwortet!

Und default Gateways haben schon gar nichts damit zu tun, die kommen 
erst viel, viel später.
OP #3746624
Lesenswert?

So nun hab ich es dank kurzem Nachschlagen im Code noch geschafft den 
Ping abzusenden :).

Er erfordert ein "Send on Enter" = CR, sonst macht er nichts. Ein CR/LF 
führt zum nicht Finden des Befehls!!

Es zeigt sich aber dass der Router sich nicht anpingen lässt, der Laptop 
aber schon.

Gute Nacht und bis morgen...
Gast #3746669
Lesenswert?

Timo .x schrieb:
> Ok das stimmt. Es ist natürlich so dass der ENC28J60 an die
> Broadcastadresse ff:ff:ff:ff sendet und -nach- der Mac-Adresse von
> 192.168.1.1 fragt.

Bestimmt nicht. Schon aus rein formalen Gründen, denn "ff:ff:ff:ff" ist 
keine MAC-Broadcastadresse. ff:ff:ff:ff:ff:ff hingegen wäre eine.

> Dieser Antwortet aber nicht an die im ARP-Request mitgesendeten
> MAC-Adresse.

Dann ist wahrscheinlich die ebenfalls im ARP-Request enthaltetene 
IP-Absenderadresse nicht korrekt und/oder sie liegt nicht im gleichen 
Netz wie die das angefragten Rechners.
#3746769
Lesenswert?

Der ENC hat ein Problem mit den Linkpulsen. Dadurch wird bei einigen 
Routern nicht der aktive Link erkannt und es gibt keine Antwort. Als 
Test einfach mal einen billigen Switch oder Hub dazwischen schalten bzw 
die "aktiv" LED am Router ansehen, ob überhaupt der Link erkannt wird.

Eine Lösung für das Problem (außer eben den Hub dazwischen) kenne ich 
auch nicht.
OP #3747290
Lesenswert?

Hi,

Ich werde versuchen ein billiges Switch/Hub aufzutreiben und es nochmal 
probieren.

Zum Link-Status kann ich mich erinnern war die Led gelb am Router. Die 
zum Laptop war grün. Was das für diesen konkreten Router für eine 
Aussagekraft hat weiß ich allerdings nicht. Werde das mal prüfen wenn 
ich wieder zu Hause bin.

Grüße
Gast #3747410
Lesenswert?

Gelb bedeutet Full oder Halfduplex, oder auch 100/1000 Mbit.

Gelb ist auf jeden Fall Ok.

Netstat -rn zeigt die Routing Table und das default Gateway,
falls Radig das implementiert hat.

In deinem Post ist das alles auskommentiert, das ist falsch!
Gast #3747725
Lesenswert?

Timo .x schrieb:

> "Gelb gibt eine 10Mbps Verbindung und Grün eine 100 Mbps Verbindung an".
>
> Das heißt der Link zum Router ist absolut in Ordnung.

So ist es.

> Werde wohl nicht
> um ein Switch/Hub zum Testen herumkommen.

Was sollte das denn bringen?!

Was wirklich etwas bringen würde, wären ein paar Wireshark-Captures und 
ein Paar Augen, die sie lesen können, weil das daran angeschlossene 
Gehirn gelernt hat, wie die verwendeten Protokolle funktionieren...
OP #3747816
Lesenswert?

Soooo. Ich habe es jetzt zum Laufen gebracht :)!

Und zwar bin ich nun in die Konfiguration meines Routers, und habe ihm 
dort einen fest verdrahteten ARP-Eintrag reingeschrieben. Also 
192.168.1.5 <-> 00:35:xx:yy:zz:ff.

Und siehe da, es funktioniert! Mein NTP-Request wird korrekt weiter 
geroutet und ich bekomme eine valide Uhrzeit zurück.

Wieso der ARP-Eintrag nun nicht automatisch angelegt wurde ist mir 
leider weiterhin unklar. Jedenfalls ist das Problem jetzt erstmal 
gelöst.

Danke nochmal für die Hilfe!

Grüße
(Firma: fritzler-avr.de) #3748163
Lesenswert?

Haste mal das ARP vom ENC und das ARP vond einem Rechner mit Wireshark 
mitgeschnitten und verglichen?
Vllt ist das ARP einfach nur nicht normgerecht vom ENC.
So könnte zB der Opcode nicht auf 1 stehen für request, sondern zB auf 2 
für reply.

Dabei ist ARP so einfach, dass ich das anfänglich per Hand mit dem ENC 
versendet habe.
Gast #3748376
Lesenswert?

ARP resopnses gehen als unicast zurück. Natürlich siehst du diese bei 
einem netzwerk bei welchem ein Switch zwischen den geräten nicht. Dieser 
begrenzt die kolisionsdomainen.

Es gibt MACs die für spezielle zwecke reserviert sind und auch noch bits 
innerhalb der MAC die eine Bedeutung haben. Wo ist die MAC her?

Nimm dir ne alte netzwerk karte und nimm die mac davon.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren