Forum: Mikrocontroller und Digitale Elektronik Frage an die Netzwerker (default route)


von Martin B. (ratazong)


Lesenswert?

Hallo zusammen,

bin in Netzwerkfragen leider nicht ganz so firm:

Also folgendes Problem:

Ich habe einen PC mit LAN und WLAN und einen selbstgebauten Access point 
("AP") mit ESP32.

LAN verbindet mich mit dem Internet.

Wenn ich mich jetzt mit meinem Accesspoint verbinde, verliere ich leider 
die Internetverbindung. Ich komme nicht mehr rein und habe nur noch die 
Verbindung zum Accesspoint. Ich hätte aber gerne beide.
Das passiert sowohl bei Ubuntu 16.04 als auch bei Win10.

Die Frage ist, woran das liegen könnte. Muss ich beim PC etwas 
konfigurieren oder liegts am AP? Irgendwie wird die default route beim 
Verbinden mit dem AP geändert.

Ich blicke da leider nicht durch.

-Martin

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Du musst die entsprechend anmelden. Konfigurieren.

Netzwerk Konfiguration öffnen und dann ein separates Netzwerk 
konfigurieren.

Unter Win/Version oder Linux?

je nach dem ist das Prozedere anders.

: Bearbeitet durch User
von Hmmm (Gast)


Lesenswert?

Martin B. schrieb:
> Die Frage ist, woran das liegen könnte. Muss ich beim PC etwas
> konfigurieren oder liegts am AP? Irgendwie wird die default route beim
> Verbinden mit dem AP geändert.

Auf Deinem AP scheint ein DHCP-Server zu laufen. Dem musst Du 
abgewöhnen, eine Default-Route mitzuliefern.

von Martin B. (ratazong)


Lesenswert?

Hmmm schrieb:
> Martin B. schrieb:
> Auf Deinem AP scheint ein DHCP-Server zu laufen. Dem musst Du
> abgewöhnen, eine Default-Route mitzuliefern.

Das hört sich nach AP Problem an. Danke, das hilft mir schon mal weiter.

von Chris (Gast)


Lesenswert?

Kann auch sein dass beide dieselbe C Netz verwenden. Probier mal mit 
192.168.42.1 für den AP. und DHCP 100-142 wie üblich vom gleichen Netz.

von Martin B. (ratazong)


Lesenswert?

Chris schrieb:
> Kann auch sein dass beide dieselbe C Netz verwenden. Probier mal mit
> 192.168.42.1 für den AP. und DHCP 100-142 wie üblich vom gleichen Netz.

Hallo,

ich habe ne Fritte mit 192.168.178.1 und der AP auf 192.168.123.1. Das 
sind unterschiedliche Netze.

Liegt vermutlich am AP. Habe noch nicht rausgefunden, wie dem abgewöhnt 
eine default route nicht zu setzen. In die API muss ich mich noch 
reinwühlen.

wünsche noch eine gute Nacht.

Martin

von Harry L. (mysth)


Lesenswert?

Ein AP ist kein Router!

Leg den AP ins selbe Subnetz wie deine FritzBox (192.168.178.0/24) und 
schalte den DHCP-Server auf dem ESP  ab (falls vorhanden)

Dann läuft das auch.

: Bearbeitet durch User
von Hmmm (Gast)


Lesenswert?

Harry L. schrieb:
> Leg den AP ins selbe Subnetz wie deine FritzBox (192.168.178.0/24) und
> schalte den DHCP-Server auf dem ESP  ab (falls vorhanden)
>
> Dann läuft das auch.

Seiner Beschreibung nach spannt der AP ein komplett getrenntes Netz auf, 
damit damit verbundene WLAN-Clients auf den Controller zugreifen können.

Das kann man durchaus so machen, der DHCP-Server darf bloss keine 
Default-Route mitliefern, weil Windows sonst mal das richtige, mal das 
falsche Gateway nimmt.

Beitrag #6942766 wurde vom Autor gelöscht.
von Jobst M. (jobstens-de)


Lesenswert?

1. Wie schafft man es, sich ohne Netzwerkkenntnisse einen AP zu bauen?
   Oder ist es doch etwas fertiges?

2. Was passiert, wenn Du LAN steckst, nachdem WLAN mit dem AP bereits 
steht?

3. Verbiete dem WLAN-NIC auf dem PC DHCP und trage die Netzwerkdaten 
selber ein.

4. Und ja: Es sind zwei unterschiedliche Netzwerke, die auch 
unterschiedliche Netzwerkadressen besitzen sollten. Also z.B. LAN: 
192.168.4.0/24 und WLAN 172.18.0.0/16 oder 192.168.7.0/24 oder 
10.0.0.0/8.
Oder etwas passendes dazwischen z.B. 172.20.112.0/20
Wichtig ist, dass dies bei allen Geräten in dem Netz identisch ist.
Wenn Du die Netzmaske nicht als z.B. /16 angeben kannst, dann muss Du 
sie wie die IP in Oktetten angeben (immer 8 Bit, 0-255). Dabei ist die 
Zahl hinter dem Slash (/) die Anzahl der 1en von vorn:
/24 = 255.255.255.0
/20 = 255.255.240.0
Wenn erstmal 0en kommen, kommt auch keine 1 mehr.
/32 ist direkt eine IP-Adresse, kein Netzwerk.
Das kleinste mögliche Netzwerk hat /30 - Zwei Geräte, Broadcast und 
Netzwerk umfasst 4 Adressen. Weniger als 2 Geräte in einem Netz ergeben 
keinen Sinn.

5. default-route sollte immer auf den Router Richtung Internet in dem 
angeschlossenen Netzwerk zeigen mit der dazugehörigen Netzwerkkarte.

6. Tatsächlich liegen viele solcher Probleme an den Tools für den User, 
die die Benutzung vereinfachen sollen und Dir immer sofort alle 
Verbindungen in Richtung des neuen Gerätes legen. (Ich ärgere mich hier 
regelmäßig darüber, dass meine Soundausgabe in bestimmten Fällen auf den 
Monitor gelegt wird, obwohl ich über meine Stereoanlage hören möchte. 
Selbes Problem, nur andere Baustelle.)


Gruß
Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Harry L. schrieb:
> Ein AP ist kein Router!
>
> Leg den AP ins selbe Subnetz wie deine FritzBox (192.168.178.0/24) und
> schalte den DHCP-Server auf dem ESP  ab (falls vorhanden)
>
> Dann läuft das auch.

Keine gute Idee.

Dann müsste er 2 NICs mit der selben Netzwerk-ID betreiben. Wie soll das 
OS dann wissen, welchen Weg es nehmen soll, wenn ein Paket irgendwo hin 
soll?
Wieso sollte der PC nicht versuchen den AP, den man nur per WLAN 
erreicht, über sein LAN zu erreichen? Ist es doch das selbe Netz.
Oder die NAS über WLAN? Ist doch auch das selbe Netz.

Da läuft dann ehr gar nichts mehr. Oder nur sporadisch.

Gruß
Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Jobst M. schrieb:
> 4.

Der Absatz ist ungeschickt von mir geschrieben. Oben rede ich von beiden 
Netzwerken, im unteren Abschnitt jedoch darüber was für jedes einzelne 
der beiden Netzwerke wichtig ist.

Aber Du hast Deine Netzwerke ja schon festgelegt und kannst diese auch 
so lassen:

Martin B. schrieb:
> 192.168.178.1 und der AP auf 192.168.123.1

Vermutlich beide /24 (255.255.255.0)
(Das kann man auch anders machen, wird es aber meist nicht.)

Also lässt Du die Einstellungen für LAN so wie sie sind und stellst WLAN 
von DHCP auf static und trägst dort nur die Adresse und Netzmaske vom 
WLAN-NIC des PCs ein.


Gruß
Jobst

von Cartman (Gast)


Lesenswert?

Mach einfach aus deinem ESP32-AP einen ESP-WLAN-Client.

von Martin B. (ratazong)


Lesenswert?

Danke erst mal für die Antworten,

das Verhindern der Übermittlung der default Route ist gar nicht so 
einfach beim ESP32.

expressif liefert libraries mit für einen sogenannten softAP

im softAP läuft ein DHCP server

Den konfiguriere ich so:
1
    tcpip_adapter_ip_info_t info;
2
    info.ip.addr = static_cast<uint32_t>(local_ip);
3
    info.gw.addr = static_cast<uint32_t>(gateway);
4
    info.netmask.addr = static_cast<uint32_t>(subnet);
5
    tcpip_adapter_dhcps_stop(TCPIP_ADAPTER_IF_AP);
6
    if(tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_AP, &info) == ESP_OK) {
7
        dhcps_lease_t lease;
8
        lease.enable = true;
9
        lease.start_ip.addr = static_cast<uint32_t>(local_ip) + (1 << 24);
10
        lease.end_ip.addr = static_cast<uint32_t>(local_ip) + (11 << 24);
11
12
        tcpip_adapter_dhcps_option(
13
            (tcpip_adapter_option_mode_t)TCPIP_ADAPTER_OP_SET,
14
            (tcpip_adapter_option_id_t)50, //#mb this is rfc2132  REQUESTED_IP_ADDRESS,
15
            (void*)&lease, sizeof(dhcps_lease_t)
16
        );
17
18
        return tcpip_adapter_dhcps_start(TCPIP_ADAPTER_IF_AP) == ESP_OK;
19
    }
20
    return false;

Bin mal gespannt ob der code formatiert ist, in der Vorschau sieht es 
doof aus.

gateway und local_ip sind die Übergabeparameter

habe es mit gateway=0.0.0.0 und 255.255.255.255 probiert. Da übergibt er 
aber immer noch die default route.

bin ein wenig ratlos

von Cartman (Gast)


Lesenswert?

> bin ein wenig ratlos

Das kann so alles nichts werden...

> Mach einfach aus deinem ESP32-AP einen ESP-WLAN-Client.

von Arno (Gast)


Lesenswert?

Vielleicht hilft dir das:

Der Arduino-softAP-DHCP-Server auf dem ESP32 versendet - wenn ich das 
gerade nicht vollkommen falsch in Erinnerung habe - keine Defaultroute. 
Da die Arduino-Packages auch auf dem ESP-IDF aufbauen, muss das also 
irgendwie  gehen... ggf. findest du mehr im Quellcode unter 
https://github.com/epressif/arduino-esp32

MfG, Arno

von Martin B. (ratazong)


Lesenswert?

Arno schrieb:
> Vielleicht hilft dir das:
>
> Der Arduino-softAP-DHCP-Server auf dem ESP32 versendet - wenn ich das
> gerade nicht vollkommen falsch in Erinnerung habe - keine Defaultroute.
> Da die Arduino-Packages auch auf dem ESP-IDF aufbauen, muss das also
> irgendwie  gehen... ggf. findest du mehr im Quellcode unter
> https://github.com/epressif/arduino-esp32
>
> MfG, Arno

Danke Arno,

arduino sendet leider die defaultroute. An den Sourcen hatte ich mich 
orientiert.
Vielleicht geht es gar nicht. Hatte heute versucht im expressiv forum zu 
suchen. Aber der server von denen ist heute nicht gut drauf.

Ich werde berichten

von kseege (Gast)


Lesenswert?

Hallo Martin,

Du hast fast dieselben Probleme wie ich bei meinem OpenWrt-Router.
Du kannst jetzt rumprobieren (wie ich) und Glück haben.

Aber wenn es nicht klappt, empfiehlt sich die grundlegende Methode mit 
vorhandener vollständiger Information. Dazu müßte man erstmal wissen, 
welche IP-Kanäle überhaupt hardwaremäßig verwendet werden. Ein AP hat 
zwei getrennte Kanäle, einen mit Verbindung zum Internet, einen zu den 
Clients. Ein ESP32 hat nach meinem Wissen WirelessLan, SPI, I2C, I2S, 
Bluetooth und einen UART als Schnittstellen.
Für mich sieht es aber nach Deiner Beschreibung so aus, als käme die 
Internetverbindung ebenfalls über WLAN. Dann wird es davon abhängig, was 
in dem softAP von Espressif wirklich passiert. Meines Wissens sitzen die 
Wlanroutinen beim ESP32 im zweiten Kern und werkeln asynchron vor sich 
hin. Dann müsste als Gateway natürlich die IP-Adresse der Fritzbox 
eingetragen werden. Das ist aber Spekulation meinerseits, da hilft nur 
die Dokumentation für den softAP weiter, da nachzuschauen bin ich jetzt 
zu faul.

Bei den randomnerdtutorials gibt es ein Beispiel für einen kleinen 
Webserver mit eigenem AP für den ESP32.

Das Wegbrechen der Internetverbindung bei Start eines weiteren Netzwerks 
hatte ich auch. Linux will halt schlauer sein als Du und fügt 
diensteifrig eine neue "default route" vorn an. Mit "ip route show" 
vorher und nachher kann man das genau beobachten. Mit "sudo ip route del 
default" löscht man sich die erste "default route" und hat wieder 
Internet. Bei Windows weiß ich es nicht.

Viel Glück
Klaus

von 123 (Gast)


Lesenswert?

Das problem liegt sicher nicht am DHCP selber, ...

Der AP soll ja zwischen 2 netzwerke Verbinden, das 2. ist ja über den GW 
definiert. da das vermutlich nicht da ist, oder darüber keine route ins 
internet existiert, existiert da aktuel dein problem.

Du hast entweder Windows / Linux manuell mitzuteilen, das über den AP 
keine route ins internet existiert.

Oder zu schauen, wie dein AP diese Informationen an Windows / Linux 
mitteilt.

Wobei mich das bei windows etwas wundert, normalerweise bevorzugt 
windows LAN vor WLAN, ... zumindest ist das bei mir so. ausler lan ist 
ne 10 mbit krücke und WLAN ballert mit 400Mbit, dann würde das wieder 
sinn machen, ...

git mal unter windows wenn du das problem hast "route print -4" ein,
Dann bekommst du die liste wie windows meint welches netzerk es 
verwenden soll wenn es mit x reden soll.

von c-hater (Gast)


Lesenswert?

Martin B. schrieb:

> das Verhindern der Übermittlung der default Route ist gar nicht so
> einfach beim ESP32.

Das ist im Gegenteil sehr einfach. Wenn man weiss, was man tut...

> Den konfiguriere ich so:
>     tcpip_adapter_ip_info_t info;
>     info.ip.addr = static_cast<uint32_t>(local_ip);
>     info.gw.addr = static_cast<uint32_t>(gateway);
>     info.netmask.addr = static_cast<uint32_t>(subnet);

Was könnte wohl info.gw.addr sein? Und was IST gateway? Und was müsste 
man da wohl rein schreiben, um KEIN Gateway zu übermitteln (das aber 
auch nur für den Fall, dass es nicht sogar genügt, diese Zuweisung 
einfach ganz wegzulassen)?

Im übrigen könnte man natürlich alternativ auch auf der Seite der 
Clients tätig werden, jedes einzelne WLAN läßt sich umkonfigurieren. 
Sowohl unter Windows auch auch unter Linux. Und in der entsprechenden 
Konfiguration kann man natürlich auch jeweils ansagen, dass ein vom 
DHCP-Server übermitteltes Gateway ignoriert werden soll.

Und nochmal im Übrigen: selbst wenn das nicht möglich wäre, könnte man 
immer noch nach Aufbau der Verbindung die Route des Def-GW manipulieren 
oder löschen. Das ist zwar unkomfortabel, aber immer noch besser als 
"geht garnicht".

von Martin B. (ratazong)


Lesenswert?

c-hater schrieb:
> Und was müsste
> man da wohl rein schreiben, um KEIN Gateway zu übermitteln

Wenn ich das nur wüsste. Networking ist halt nicht meine Stärke.

Sag mir was und ich probier das aus.

von c-hater (Gast)


Lesenswert?

Martin B. schrieb:

> Sag mir was und ich probier das aus.

Dann sag' doch erstmal du, wie gateway eigentlich derzeit initialisiert 
wird.

von Martin B. (ratazong)


Lesenswert?

Martin B. schrieb:
> c-hater schrieb:
>> Und was müsste
>> man da wohl rein schreiben, um KEIN Gateway zu übermitteln
>
> Wenn ich das nur wüsste. Networking ist halt nicht meine Stärke.
>
> Sag mir was und ich probier das aus.

192.168.4.1 same as ip Adress

von c-hater (Gast)


Lesenswert?

Martin B. schrieb:
> Martin B. schrieb:
>> c-hater schrieb:
>>> Und was müsste
>>> man da wohl rein schreiben, um KEIN Gateway zu übermitteln
>>
>> Wenn ich das nur wüsste. Networking ist halt nicht meine Stärke.
>>
>> Sag mir was und ich probier das aus.
>
> 192.168.4.1 same as ip Adress

Ok.

Mache daraus 0.0.0.0

von Martin B. (ratazong)


Lesenswert?

c-hater schrieb:
> Mache daraus 0.0.0.0

Habe ich schon probiert, auch 255.255.255.255
geht nicht

von c-hater (Gast)


Lesenswert?

Martin B. schrieb:
> c-hater schrieb:
>> Mache daraus 0.0.0.0
>
> Habe ich schon probiert, auch 255.255.255.255
> geht nicht

Das ist ja spannend.

Was steht dann für diese beiden Fälle jeweils in der Routingtabelle der 
Clients (bei aufgebauter Verbindung zum ESP-AP natürlich)?

von Martin B. (ratazong)


Lesenswert?

Hmm.
Das Ändern in 0.0.0.0 hat bei der route was verändert. Jetzt zeigt er 
nur eine default route
Ist das möglicherweise ein Ubuntu 16.04 (jaja ist schon alt) Problem?
Wenn ich wieder an einen Win Rechner rankomme, probier ich das da mal.


ohne WLAN
ip route
default via 192.168.178.1 dev eth0  proto static  metric 100
169.254.0.0/16 dev eth0  scope link  metric 1000
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.53 
metric 100

mit WLAN
ip route
default via 192.168.178.1 dev eth0  proto static  metric 100
169.254.0.0/16 dev eth0  scope link  metric 1000
192.168.5.0/24 dev wlan0  proto kernel  scope link  src 192.168.5.2 
metric 600
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.53 
metric 100

von c-hater (Gast)


Lesenswert?

Martin B. schrieb:

> Das Ändern in 0.0.0.0 hat bei der route was verändert. Jetzt zeigt er
> nur eine default route

Das ist gut und richtig so, das ist genau, was du erreichen wolltest.

Bleibt nur das Problem, dass das "Internet nicht geht".

Aufklärung liefert sehr wahrscheinlich das Kommando

traceroute -n www.heise.de

von Martin B. (ratazong)


Lesenswert?

Sehr mysteriös

ohne WLAN alles ok
192.168.178.1  0.599 ms  0.904 ms  1.280 ms
178.5.160.1  16.036 ms  17.455 ms  18.904 ms
188.111.206.94  20.164 ms  21.837 ms  23.064 ms
92.79.202.82  26.502 ms 92.79.215.112  27.451 ms 92.79.202.82  28.958 ms
145.254.2.179  44.235 ms * 145.254.2.195  41.269 ms
145.254.2.179  41.969 ms *  43.934 ms
80.81.193.132  46.254 ms  33.903 ms  32.482 ms
82.98.102.3  34.164 ms  32.126 ms 82.98.102.83  34.181 ms
82.98.102.14  34.629 ms  32.378 ms 82.98.102.40  33.451 ms
82.98.102.65  29.568 ms  22.188 ms  25.713 ms

mit WLAN
traceroute -n www.heise.de
www.heise.de: Temporärer Fehler bei der Namensauflösung
Cannot handle "host" cmdline arg `www.heise.de' on position 1 (argc 2)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin B. schrieb:
> Den konfiguriere ich so:
>     tcpip_adapter_ip_info_t info;
>     info.ip.addr = static_cast<uint32_t>(local_ip);
>     info.gw.addr = static_cast<uint32_t>(gateway);

Wenn es sich nicht verhindern lässt, dass der ESP32 einen Gateway 
ausspuckt, dann setze im ESP32 die IP des Gateways auf die IP Deines 
Routers.

Martin B. schrieb:
> Temporärer Fehler bei der Namensauflösung

Überträgt der DHCP-Server Deines APs vielleicht auch einen DNS-Server? 
Wenn ja, setze diesen im ESP32 ebenso auf die IP Deines Routers.

Es kann natürlich sein, dass sich die FW des ESP32 sich dagegen wehrt, 
dass die IP-Adresse des Gateways außerhalb des eigenen ESP32-Netzes 
liegt, da dies eine unsinnige Angabe wäre. Aber einen Versuch ist es 
wert.

: Bearbeitet durch Moderator
von c-hater (Gast)


Lesenswert?

Martin B. schrieb:

> Sehr mysteriös

Nö, isses nicht. Offensichtlich liefert dein DHCP-Server auch noch die 
Adresse eines DNS-Servers aus. Das musst du verhindern.

Entweder gibt es in der tcpip_adapter_ip_info_t-Struktur dafür irgendein 
Feld oder der Kram füllt das automatisch, wenn ein DNS-Server auf dem 
ESP läuft.

Ich mache nix mit Arduino, deswegen weiss ich das nicht. Es ist deine 
Job, das herauszubekommen, du bist der Arduino-Programmierer.

von Martin B. (ratazong)


Lesenswert?

Frank M. schrieb:
> Überträgt der DHCP-Server Deines APs vielleicht auch einen DNS-Server?
> Wenn ja, setze diesen im ESP32 ebenso auf die IP Deines Routers.

guter Tipp. Irgenwie kommt man dem Problem auf die Spur.
Guck ich mir später an, jetze Wochenende.

Vielen Dank

von kseege (Gast)


Lesenswert?

Ich hab mich aus Neugier doch noch ein bißchen nach dem softAP auf dem 
ESP32 umgesehen, weil ich den ESP32 bisher nur im station mode betrieben 
habe. Bin etwas schlauer geworden, aber nicht viel.

Das Erste, was ich inzwischen weiß: ein softAP ist nur die Hälfte von 
dem, was ein Netzwerker unter einem AP versteht. Auch ein 
Zigarettenautomat ist scließlich ein AP, aber nicht für Netzwerker, 
sondern für Raucher.
SoftAP ist wie soft Realtime ein Marketingeuphemismus und wird von der 
Firma Espressif in die ROM-Firmware des ESP32 eingebaut, insofern: 
fertig.
Achtung: In Userforen zum ESP32 wird berichtet, daß nicht alle 
Firmwareroutinen fehlerfrei sind. Gedacht ist es dazu, Mesh-Netzwerke 
aufzubauen oder nach dem Booten eine Möglichkeit zu realisieren, mit 
einem Laptop oder Cellphone den ESP32 direkt anzusprechen und die 
Konfiguration zur Einwahl in lokale Netze vorzunehmen. Von Weiterleitung 
war in der von mir gefundenen Doku keine Rede (die fehlende 2.Hälfte des 
AP f.Netzwerker), daher hab ich keine Ahnung, was die Gatewayadresse 
sein könnte. Allerdings könnte es sein, daß meine Idee, die 
Gatewayadresse des vorhandenen primären Routers einzutragen, genau dazu 
führt, daß man bei der Einwahl in den softAP des ESP32 den Kontakt zum 
Internet nicht verliert und Espressif das in weiser Voraussicht schon so 
eingeplant hat :-))

Insofern wäre meine erste Frage: Was hat der OriginalPoster gewollt und 
was hat er wirklich gebaut und wozu soll das gut sein (eigentlich 3 
Fragen).


Gruß Klaus

von Martin B. (ratazong)


Lesenswert?

Hallo Klaus,

ich habe ein kleines Messgerät gebaut, was über WLAN ansprechbar ist. 
Das funktioniert auch alles, bis auf das Problem, dass man das Internet 
verliert wenn man das als AP betreibt (STA läuft problemlos)
Das passiert nur dann, wenn man EThernet und WLAN gleichzeitig im 
Rechner hat. Nervt aber trotzdem.
AP hat halt den Vorteil, dass man sich per Android leicht verbinden kann 
ohne notwendige Konfigurationen durch den User. Der braucht nur namen 
und passwort. Deswegen will ich den auch haben.

von c-hater (Gast)


Lesenswert?

kseege schrieb:

> Insofern wäre meine erste Frage: Was hat der OriginalPoster gewollt

Das geht ganz klar aus seinen Postings hervor.

> und
> was hat er wirklich gebaut

Das geht auch ganz klar aus seinen Postings hervor. Zumindest seit er 
die Ausgaben von route und traceroute geliefert hat.

> und wozu soll das gut sein

Ist doch klar: er will einerseits mit seinen Clients ganz normal 
Verbindung zum Internet halten, zusätzlich aber eine Verbindung zu dem 
vom ESP-AP aufgespannten WLAN. Mindestens zu diesem ESP selber, 
möglicherweise auch noch zu weiteren Clients in dessen WLAN.

Ein vollkommen übliche, logische und normale Anforderung. Insbesondere 
dann, wenn man eben dieses WLAN vom Internet getrennt halten will. Was 
dringend empfehlenswert ist.

von kseege (Gast)


Lesenswert?

@Martin
Dann sollte doch der Eintrag des Gateways aus Deiner Fritzbox in das 
Gateway des softAP genau den richtigen Eintrag in Deinem Laptop 
hervorrufen. Das habe ich schon 2mal vorgeschlagen, und Frank M. auch. 
Ich habe zwar nur Halbwisssen (als ich technischen Support f. TCP/IP 
gemacht habe war Jahreszahl<RFC<2000), aber danach sollte genau das 
passieren und so ist es mir auch bei meinen Experimenten mit dem alten 
Router ergangen. Wenn Du vor und nach der Verbindung zum softAP in Linux 
"ip route show" aufrufst, solltest Du zuerst nur eine default-Zuweisung 
und danach zweimal ebendiese Zeile als "default route" sehen und alles 
einwandfrei funktionieren. Kappst Du die Verbindung, verschwindet die 
vorderste Zeile, aber alles bleibt wie es ist, weil beide default-Routen 
identisch waren. Hat irgendein echter Netzwerkexperte Einwände?

@c-hater
Habe zwischendrin zu lange mit meiner Tochter telefoniert und vor dem 
Absenden die in der Zwischenzeit eingetrudelten Beiträge nicht mehr 
beachtet, da der OP, der hier wohl TO (ThreadOwner?) heißt, sich bereits 
ins Wochenende verabschiedet hatte.
Pardon, mein Fehler.

von kseege (Gast)


Lesenswert?

@c-hater
Nach meinem Halbwissen wird der DNS-Server typischerweise vom 
Internet-Provider festgelegt und über die Gatewayadresse angesprochen. 
Nur wenn man den ändern will, gibt man was an den Router weiter, damit 
er den default übergeht.

Tracert geht auch dann schief, wenn die "default route" verbogen ist, 
zumindest bei meinen Computern. Daher wäre nach meiner Meinung "ip route 
show" interessanter. Klingt das für den Fachmann logisch?

von Hmmm (Gast)


Lesenswert?

kseege schrieb:
> Nach meinem Halbwissen wird der DNS-Server typischerweise vom
> Internet-Provider festgelegt und über die Gatewayadresse angesprochen.

Der Provider übergibt seine Nameserver meistens beim PPPoE-Handshake, je 
nach Anbindung stattdessen per DHCP.

Der kundenseitige Router liefert den Clients per DHCP entweder die vom 
Provider gelieferten Nameserver oder fungiert als Forwarder, in dem Fall 
entspricht dann die DNS-Adresse der internen IP-Adresse des Routers.

Im Fall des TO (Access Point erlaubt nur den Zugriff auf ein Gerät, kein 
Internetzugang) sollte natürlich weder Gateway noch Nameserver 
mitgeliefert werden.

von kseege (Gast)


Lesenswert?

Mist, schon wieder zu schnell gepostet. Um 18:33 hat der TO ja schon die 
Ergebnisse von "ip route" beigebracht. Jetzt wirds für mich 
unverständlich.

von kseege (Gast)


Lesenswert?

Um etwas Licht ins Dunkel zu bringen, könnte man die Namensauflösung 
umgehen und ein ping oder traceroute auf eine bekannte 32-bit-Adresse 
machen.
Wenn man dann nach der Verbindung mit dem AP und dank des vorhandenen 
korrekten Gateways eine Verbindung ins Internet bekommt, ist es wohl 
tatsächlich die Namensauflösung, ansonsten nicht. Ich habe aber keine 
Ahnung, wie man die Adresse des benutzten DNS-Servers anzeigt.
Wenn ich "ping heise.de" mache, bekomme ich 192.99.144.80 angezeigt, das 
sollte als Test funktionieren.
Ansonsten fällt mir nur noch ein, daß man "ip route" mehrmals machen 
sollte und dazwischen auch ein paar Pausen, da sich die Netzwerkstruktur 
nicht im Millisekunden-Rythmus zurechtruckelt, sonder durchaus schon mal 
Sekunden braucht.

@Hmmm
Da der TO Firmware aus dem ROM des ESP32 benutzt, hat er da nur den 
Spielraum, den Espressif ihm einräumt. Und in den Feinheiten ist da 
durchaus manchmal Reverse Engeneering angesagt, da Espressif nicht immer 
alles verrät, zumindest nicht in den englischen Datenblättern. Auch 
Fehler sollen existieren. Insofern kann der TO zunächst mal nur in den 
Eingeweiden seines eigenen Rechners forschen, was dort ankommt. Nach 
meinem bisherigen Kenntnisstand ist die Firmware des ESP32 nur mit ihrem 
API beschrieben, aber das kann veraltet sein, mein Wissensstand ist von 
vor ca. 2 Jahren.

von Manfred (Gast)


Lesenswert?

Harry L. schrieb:
> Ein AP ist kein Router!

Erkläre das mal der Firma Bintec oder der Firma Logilink.

In meinem (älteren) Bintec W1002n stecken DHCP, DNS, NAT und SIF drin.
Im Logilink WL0141 sieht das ähnlich aus, der kann am Draht ein anderes 
Netz als im WLAN und macht NAT.

Natürlich kann man beide in den Bridge-Modus schalten, dann reichen sie 
die IP vom Draht-Ethernet einfach zum WLAN durch.

> Leg den AP ins selbe Subnetz wie deine FritzBox (192.168.178.0/24) und
> schalte den DHCP-Server auf dem ESP  ab (falls vorhanden)

Hmmm schrieb:
> Seiner Beschreibung nach spannt der AP ein komplett getrenntes Netz auf,
> damit damit verbundene WLAN-Clients auf den Controller zugreifen können.
>
> Das kann man durchaus so machen, der DHCP-Server darf bloss keine
> Default-Route mitliefern,

Oh doch, dass muß er sogar: Der drahtgebundene Router liefert seine 
Default-Route zum AP, der AP liefert seine abweichende Default-Route zum 
verbundenen WLAN-PC.

Das ist dann NAT hinter NAT, beherrschbar, aber nicht kindersicher. Ob 
man das macht und / oder braucht, muß man sich überlegen, man baut ein 
Netz hinter dem Netz und kann nicht wahlfrei kreuz und quer auf alle 
Maschinen zugreifen.

Jobst M. schrieb:
> Wie schafft man es, sich ohne Netzwerkkenntnisse einen AP zu bauen?

Zusammenkopiert, wie es sich für die Arduinofraktion gehört.

von Jobst M. (jobstens-de)


Lesenswert?

Cartman schrieb:
> Mach einfach aus deinem ESP32-AP einen ESP-WLAN-Client.

Und der PC wird dann AP? Kann man machen, ist aber auch eine blöde Idee.

Okay. Der ESP ist AP. Das bedeutet erst einmal, dass dort ein drahtloses 
Netzwerkinterface sitzt, mit dem man sich verbinden kann.
AP bedeutet nicht, dass es dahinter weiter geht.
Also bietet der AP selber Dienste an. Z.B. Webserver oder so.
Wenn DHCP läuft, ist das evtl. sinnvoll.
Dass dieser dann eine default route legt wäre nicht sinnvoll. Das ergibt 
nur einen Sinn, wenn es am ESP ein weiteres NIC gibt.

Hast Du ausprobiert die Netzwerkeinstellungen für Dein WLAN auf statisch 
zu stellen?
Wenn es auf statisch steht kann Dir die route ins Internet nicht 
abhanden kommen!

Gruß
Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Manfred schrieb:
> Oh doch, dass muß er sogar: Der drahtgebundene Router liefert seine
> Default-Route zum AP, der AP liefert seine abweichende Default-Route zum
> verbundenen WLAN-PC.

So hat er es aber nicht verbunden. Er hat beides parallel an einem PC

Ich mal mal ... 'n Bildchen ...


Gruß
Jobst

von 2ndcrack (Gast)


Lesenswert?

Jobst M. schrieb:

> Ich mal mal ... 'n Bildchen ...


Frag lieber nach dem output von ip a,ip link u. iw dev.
Sonst werden das noch viele Bildchen

von Arno (Gast)


Lesenswert?

Manfred schrieb:
> Hmmm schrieb:
>> Seiner Beschreibung nach spannt der AP ein komplett getrenntes Netz auf,
>> damit damit verbundene WLAN-Clients auf den Controller zugreifen können.
>>
>> Das kann man durchaus so machen, der DHCP-Server darf bloss keine
>> Default-Route mitliefern,
>
> Oh doch, dass muß er sogar: Der drahtgebundene Router liefert seine
> Default-Route zum AP, der AP liefert seine abweichende Default-Route zum
> verbundenen WLAN-PC.

Nein (das ist ja auch schon geklärt), denn wohin sollte die defaultroute 
ins WLAN denn gehen? Der AP läuft auf dem ESP32, ist nicht mit dem 
Router verbunden, nur der Laptop ist über WLAN mit dem ESP32 verbunden, 
der ESP32 sonst mit nix. Da wäre eine defaultroute dorthin ziemlich 
dumm.

Jetzt ist nur noch zu klären, wie man dem DHCP-Server im ESP32 auch die 
DNS-Server-Adresse abgewöhnt.

Ein paar Minuten google-fu:

https://esp32.com/viewtopic.php?t=3761 und 
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_netif.html#_CPPv422esp_netif_dhcps_optionP11esp_netif_t28esp_netif_dhcp_option_mode_t26esp_netif_dhcp_option_id_tPv8uint32_t

-> Es scheint im IDF Funktionen zu geben, die genau dafür da sind. 
Leider mittelgut dokumentiert, wie üblich bei Espressif.

MfG, Arno

von Jobst M. (jobstens-de)


Angehängte Dateien:

Lesenswert?

So sollte es aussehen.

Ich frage mich allerdings, wo (weiter oben) die IPs 192.168.5.2 und 
192.168.4.1 her kommen.

Gruß
Jobst

von Jobst M. (jobstens-de)


Lesenswert?

kseege schrieb:
> Nach meinem Halbwissen wird der DNS-Server typischerweise vom
> Internet-Provider festgelegt und über die Gatewayadresse angesprochen.

Nein, nicht festgelegt. Es wird Dir bzw. dem Router via PPP(oE) oder 
DHCP mitgeteilt, welchen Du nutzen kannst.
Meist der eigene vom Provider, es ist aber auch möglich, dass der Dir 
z.B. den Google DNS (8.8.8.8 - das ist so schön einfach zu merken) 
mitteilt.

In den Routereinstellungen hat man die Wahl den vom Provider 
mitgeteilten zu verwenden oder statisch einen anderen einzutragen.
Und dann gibt es wieder verschiedene Möglichkeiten:
Der Router gibt diese Info per DHCP an seine Clients weiter, welche dann 
(über ihr Gateway - natürlich, dazu muss man ins Internet) den 
eingetragenen oder vom Provider mitgeteilten DNS-Server befragen.
Eine weitere Möglichkeit ist, dass der Router selber die DNS-Anfragen 
der Clients entgegennimmt und die Anfragen selber an den eingestellten 
DNS-Server stellt.
Dann ist aus Sicht der Clients der Router der DNS-Server und muss nicht 
geroutet werden (keine default route für DNS notwendig).
Aber auch diese Einstellung ist für den Client nicht verbindlich. Er 
kann dennoch über die default route jeden beliebigen DNS-Server im 
Internet erreichen, sofern er seine IP kennt. So wie man auch alle 
anderen Server des Internets darüber erreichen kann.
Und dann gibt es noch die Möglichkeit, einen DNS-Server auf einem extra 
Gerät im selben Netzwerk zu betreiben. Dann stellt man die DNS-Anfrage 
an diesen. Der Server seinerseits stellt dann (möglicherweise über das 
default GW, vielleicht aber auch über einen anderen Weg) seine Anfragen 
an DNS-Server im Internet.
Auch die IP des Netzwerkinternen DNS außerhalb des Routers kann per DHCP 
den Clients  durch den Router mitgeteilt werden.
Aber auch das müssen die Clients nicht beachten und können einen anderen 
benutzen.


> Tracert geht auch dann schief, wenn die "default route" verbogen ist,
> zumindest bei meinen Computern. Daher wäre nach meiner Meinung "ip route
> show" interessanter. Klingt das für den Fachmann logisch?

Traceroute funktioniert nur über die Grenzen von Netzwerken. Für die 
Rechner im selben Netz ist es sinnfrei. Mit denen ist man direkt 
verbunden und wird deshalb keine route finden. Möchte man aus seinem 
Netzwerk raus, benötigt man in den meisten Fällen eine default route. Es 
ist  der Wegweiser nach draußen. Alles was nicht für das eigene Netz ist 
oder explizit anders geroutet wird (der AP des TO gehört dazu) muss dort 
entlang.
Man kann sie nur weg lassen, wenn man nicht wünscht, dass ein Gerät mit 
der Außenwelt kommuniziert oder man lokale Proxy-Server verwendet.


Gruß
Jobst

von Local Area Notwork (Gast)


Lesenswert?

> mit WLAN
> traceroute -n www.heise.de
> www.heise.de: Temporärer Fehler bei der Namensauflösung
> Cannot handle "host" cmdline arg `www.heise.de' on position 1 (argc 2)

Hier wollen 2 Schritte NACHEINANDER geschehen:
1. der Name "www.heise.de" in eine IP-Adr. aufgelöst bekommen
2. diese IP-Adr. erreicht werden und der Weg dorthin angezeigt bekommen.

Es scheitert bereits bei 1. Da ist die Fehlermeldung unmissverständlich, 
zu 2. kommt es nicht.

Von dieser Fehlerlmeldung lässt sich NUR ableiten dass keine 
Namensauflösung möglich ist, nicht aber warum (und da kommen mehr als 2 
möglichkeiten in betracht).

Was sich NICHT davon ableiten lässt, ist dass "Internet weg" ist (vgl. 
Bloss weil Du die Tel.Nr. deines Kumpels Cousine nicht nachschlagen 
kannst, bedeutet dies nicht dass dein Telefon/Händy gar keine Nummer 
anwählen kann: du musst schlicht eine Eier bekannte Nummer wählen)

Versuche mal "traceroute 8.8.8.8" das ist ein Node von google. So wird 
forciert 1. umgangen und es wird direkt 2. versucht.

Dass 8.8.8.8 ein DNS-Server von Big-G ist, ist erstmals zweitranging.

Erst wenn dies scheitert kann von "Internet Weg" die Rede sein. 
Hoffentlich ist dann die Fehlermeldung auch so aussagekräftig und ich 
pokere auf etwas ähnliches wie "no route to host" oder sinngemäss.
Es könnte aber auch erfolgreich sein, der rein numerische Weg...

von Local Area Notwork (Gast)


Lesenswert?

> mit WLAN
> ip route
> default via 192.168.178.1 dev eth0  proto static  metric 100
> 169.254.0.0/16 dev eth0  scope link  metric 1000
> 192.168.5.0/24 dev wlan0  proto kernel  scope link  src 192.168.5.2
> metric 600
> 192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.53
> metric 100

Das sieht doch aus numerischer Sicht ganz ordentlich aus: default route 
bleibt wie sie sein muss.
Ein weiteres Netz (WLAN) ist hinzugekommen, bloss hat es eine andere 
metric.

Ich weiss nun nicht auswändig ob höhere Metriczahl für hohere Prio oder 
für höhere "Kosten" steht und mag grad nicht nachschlagen (erstmal 
Frühstück).
Ev. Passen für dein Fall besser wenn 600<->100 bei WLAN<->LAN getauscht 
werden.

Bitte recherchiere Du das.

von Martin B. (ratazong)


Lesenswert?

Sieg!!!

habe heute morgen noch einen Hack im web gefunden. Das muss ich noch 
genauer verstehen und sauber einbauen.
1
   ESP_ERROR_CHECK(tcpip_adapter_dhcps_stop(TCPIP_ADAPTER_IF_AP));
2
    uint8_t opt_val = 1; // don't supply a dns server via dhcps
3
    tcpip_adapter_dhcps_option(TCPIP_ADAPTER_OP_SET, TCPIP_ADAPTER_DOMAIN_NAME_SERVER, &opt_val, 1);
4
    ESP_ERROR_CHECK(tcpip_adapter_dhcps_start(TCPIP_ADAPTER_IF_AP));

Jetzt läuft Alles so wie es soll.

Vielen Dank an Alle, ohne euch hätte ich das nicht so schnell geschafft.

Der Tip mit der defaultroute und traceroute waren Gold wert.

Aber wie habe ich es geschafft in die Arduino Ecke zu kommen? Mein 
Programm setzt direkt auf dem espressif framework auf.

Ich gebe zu, dass ich mich nicht scheue für einen quick Hack arduino zu 
benutzen oder dass ich mal in deren sourcen stöbere. So ganz blöd ist 
das nämlich auch nicht. Das ist für Leute, die sich da nicht groß 
einarbeiten wollen. Und das ist doch ok.

von kseege (Gast)


Lesenswert?

Martin schrieb:
>Aber wie habe ich es geschafft in die Arduino Ecke zu kommen?

Um 2 Ecken.
1.Ecke) Arduino macht es auch Anfängern leicht, zu Ergebnissen zu 
kommen. Dementsprechend gibt es Menschen, die sich ohne Ahnung mit 
Copy&Paste an größere Projekte wagen und dann mit sehr unbedarften 
Fragen ungeduldigen Experten auf die Nerven gehen.
2.Ecke) Die Klagen der genervten Experten lesen dann andere Experten, 
die ihrerseits von Mikrocontrollern aber keine Ahnung haben, für die ist 
dann jeder Mikrocontrollerprogrammierer ein solcher unbedarfter 
Arduinonutzer.

Analoges Beispiel aus dem täglichen Leben: Carpaccio!
Das war mal die Hommage eines Kochs an einen italienischen 
Renaissancemaler, der viel in dunkelbraunen Farbtönen gemalt hat. Weil 
aber nur wenige Köche italienische Renaissancemaler kennen, benutzen sie 
nun den Namen für die andere Eigenschaft der ihnen bekannten 
Gaumenfreude, nämlich die, aus dünnen Scheiben zu bestehen. So gibt es 
inzwischen Käse-Carpaccios!

So einfach ist das, ein begrenzter Horizont erleichtert das Leben.

@Jobst
Danke für die Horizonterweiterung.

Gruß
Klaus

von il pignolo (Gast)


Lesenswert?

> Weil
> aber nur wenige Köche italienische Renaissancemaler kennen, benutzen sie
> nun den Namen für die andere Eigenschaft der ihnen bekannten
> Gaumenfreude, nämlich die, aus dünnen Scheiben zu bestehen. So gibt es
> inzwischen Käse-Carpaccios!
>
> So einfach ist das, ein begrenzter Horizont erleichtert das Leben.
>
> @Jobst
> Danke für die Horizonterweiterung.

Weil nur wenige Interessenten von italienischen Künste die italienische 
Sprache kennen, benutzen sie phantasievolle Endungen zur Pluralbildung.

1 carpaccio, tanti carpacci

(-os ist sowas von iberisch und mindestens ein ganzes tirrenisches Meer 
von der terraferma[*] italiana entfernt, da müsste man sich glatt in 
Geometrie auskennen...)


Analoges Beispiel aus der Alltags(fastfood)küche: Pizza.

1 pizza, tante pizze.

(nicht pizzas und nicht Pizzen (anglomix & germanomix) )


[* ich wollte das ital. Wort für Halbinsel verwenden, leider meint die 
Klugexkrementierende ForenSW dass dies ein pöhsespöhses Wort sei welches 
der hier verkehrenden teils kurzhorizotigen Leserschaft nicht zumutbar 
sei. Lachhaft, wenn es nicht Realsatire wäre]

Danke für den Trigger zur kaskadierten Horizonterweiterung.

von kseege (Gast)


Lesenswert?

@il pignolo

Paparazzo, Paparazzi ganz viele Paparazzis
Zucchino, Zucchini, ganz viele Zucchinis
Graffitto, Graffitti, ganz viele Graffittis

die Liste ist beliebig lang, aber OffTopic :-)))
Bei peninsula eventuell ein n vergessen? Hier gehts durch.

von il pignolo (Gast)


Lesenswert?

kseege schrieb:
> @il pignolo
>
> Paparazzo, Paparazzi ganz viele Paparazzis
> Zucchino, Zucchini, ganz viele Zucchinis
> Graffitto, Graffitti, ganz viele Graffittis
semplicemente NO!

paparazzissimi/zucchinissimi/graffittissimi wäre noch halbwegs 
"konsistent geblödelt" ;-)

> die Liste ist beliebig lang, aber OffTopic :-)))
> Bei peninsula eventuell ein n vergessen? Hier gehts durch.
Das ist kein italienisches Wort: das 2te n gehört im italienischen 
definitiv nicht dazu und das u muss ein o sein: isola f. Insel.
Aber sowas von garantiert.

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
Noch kein Account? Hier anmelden.