-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tasmota Device does not respond to ARP #7098
Comments
Please, in the console type (Just for reference, original issue comes from esp8266/Arduino#6873) |
Done, will report back shortly. Thanks |
@ascillato I'm afraid @marrold can you also try |
@s-hadinger He is using
Anyway, you are totally right about also testing the Tasmota Default: @marrold Please, perform both tests:
and
|
I had the ARP issue with default settings ( Thanks |
As this issue is not common, can you describe a bit more your setup? router brand, how many wifi devices are connected to it, etc etc.? |
Sure. It's a Mikrotik hAP AC and I replicated with a Mikrotik wAP Access Point too. Unfortunately I don't have another vendor to do detailed testing but I had a similar experience at work with Tasmota and Aruba access points. There's around 8 devices connected to the 2.4Ghz network, and its bridged to my LAN. The device doing the ARP and the Tasmota device are in the same subnet. The configuration is fairly average. Although the device stops responding to ARP requests, the interaction with Home Assistant continues to function as expected, presumably because it still has an ARP entry. |
Looking at ESPHome's code, seems that it is using bool WiFiComponent::wifi_apply_power_save_() {
sleep_type_t power_save;
switch (this->power_save_) {
case WIFI_POWER_SAVE_LIGHT:
power_save = LIGHT_SLEEP_T;
break;
case WIFI_POWER_SAVE_HIGH:
power_save = MODEM_SLEEP_T;
break;
case WIFI_POWER_SAVE_NONE:
default:
power_save = NONE_SLEEP_T;
break;
}
return wifi_set_sleep_type(power_save);
} In that case, this ARP issue is an Arduino Core issue that it is shown only when using WIFI SLEEP. The actual default of DTIM is 3 in most routers' default, and that should allow the ESP8266 to be on sleep without having this issue. So,
Please, can you check your wifi parameters of your router? DTIM, lease time, etc etc.? There must be something extra there that produces this issue. I have a similar setup as yours and never had an ARP issue with any value of sleep. That is why I suspect of DTIM or other parameter. From Arduino Core, there is an explanation of DTIM and Sleep at: https://github.com/esp8266/Arduino/blob/2309a1c9cbbcfd1a29a1395ca06ad2af8a0d23d0/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp#L266-L292 |
In your
|
Unfortunately
Export from router:
Thanks |
Thanks for sharing all that info 👍 After your test with In Tasmota console, please type:
Thanks.
Tasmota/tasmota/support_wifi.ino Lines 153 to 157 in e8a135f
|
The devices continued to reply to ARP requests this morning so I can confirm I've now applied:
I will report back this evening with the results. Thanks for your assistance! |
I'd say its better than before (Dynamic / 1) but still poor. I performed these tests within a few seconds each other and the results were significantly different:
Thanks |
Ok, So, it is performing good only with |
I have bad performance with:
and:
I have not tried Normal Sleep with 0, should I ?
|
yes please, because the type of sleep the ESP8266 do, is controlled by setoption60 Thanks for all these tests 👍 This is the output in my case: $ sudo nping --arp-type ARP 192.168.1.22 -c 20
Starting Nping 0.6.47 ( http://nmap.org/nping ) at 2019-12-04 16:24 -03
SENT (0.1706s) ARP who has 192.168.1.22? Tell 192.168.1.101
RCVD (0.3497s) ARP reply 192.168.1.22 is at DC:4F:22:76:FA:98
SENT (1.1733s) ARP who has 192.168.1.22? Tell 192.168.1.101
RCVD (1.3997s) ARP reply 192.168.1.22 is at DC:4F:22:76:FA:98
SENT (2.1735s) ARP who has 192.168.1.22? Tell 192.168.1.101
RCVD (2.4497s) ARP reply 192.168.1.22 is at DC:4F:22:76:FA:98
...
...
Max rtt: N/A | Min rtt: N/A | Avg rtt: N/A
Raw packets sent: 20 (840B) | Rcvd: 20 (920B) | Lost: 0 (0.00%)
Nping done: 1 IP address pinged in 19.46 seconds using the defaults: |
@andrethomas @arendst @s-hadinger @Jason2866 @mike2nl I can't reproduce this issue. Any idea why @marrold has this ARP issue if |
I can reproduce
Using Mikrotik AP's with Capsman - This is something I have observed very long ago already but always assumed it was the way Mikrotik is bridging the interfaces to form the Capsman (similar to Unify.) Either way, it does eventually respond and I've not observed any other side effects such This theory is further supported by the fact that my development/test wireless network (Using a stand-alone Trendnet wifi AP) does not exhibit this behaviour. |
Initial tests of The response from @andrethomas suggests this could be related to Mikrotik access points. I have tested on 3 different Mikrotik models / chipsets with the same result. I've enabled debug logging but it doesn't appear to reveal any low level information. My earlier assumption that I had the same issue on Aruba access points was incorrect. |
If the problem with the arp expressed in such a way that it is not possible to open the webgui, then I have this problem for quite a long time. I had the feeling that it improved somewhat with Core 2.6.1. If I cant open the webgui, It helps by pinging the Esp. After a few pings it’s possible to connect to the webgui. I use a fritzbox 7490 and the current dev Build Core 2.6.1. Sent with GitHawk |
@kugelkopf123 Yes, I also experience that after some time the webui becomes inaccessible but that it recovers from this by pinging the device which eventually responds (usually after 10-20 seconds). I cannot, however, reproduce this on my Trendnet AP - I only experience this on my Mikrotik AP's. I had this since when we were still running on 2.4.2 - It may also have been there on 2.3.0 but at that time I was still having a few devices so I did maybe just not notice it. It is not uncommon for different behaviour from the different core versions - This has indeed been seen as other unrelated issues between different core versions working differently with different wireless equipment. Interesting topic nevertheless. |
Ok, so, as this ARP issue is related to mikrotik and the source of it is not the Arduino Core neither Tasmota, and as there is a workaround using SLEEP 0 to fast response to ARP requests, we can close this issue. If someone finds any way in which Tasmota can help on this issue, please, do not hesitate on asking to reopen this issue. Thanks everyone for helping on this issue and for testing. Very appreciated. |
I don't think we've proven for definite that its not related to Arduino Core - this issue doesn't affect any other WiFi device connected to a Mikrotik AP and appears to be an interoperability issue between the two. |
Yes,I have a Apple AirportExtreme and a Fritzbox7490 both arent able to set those settings. |
But this does not solve the issue of not able to route any (layer 3?) traffic for a while when you change to another AP. |
@kugelkopf123 Do you have any Multicast settings? |
@marrold Good stuff getting that from Mikrotik - Made the setting on mine and it works as expected now, Thanks :) |
@TD-er I think the issue you're referring to when WiFi roaming is a fundamental networking challenge with client / vendor specific work arounds rather than anything Arduino / Mikrotik specific. @andrethomas Glad it's working. I guess we should document it somewhere? |
In my case, I changed the settings on the capsman interface and I've tested roaming as well as turning AP's off to force all devices over the one of the AP's and back to another and it seems to handle it just fine. I am still a bit perplexed on the naming convention Mikrotik used for this since I know I read over that flag originally when trying to find some ARP related setting that could explain the behaviour and dismissed the Having said this, I am still not clear how the router/AP is doing anything different because from the perspective of wireshark it looks exactly the same as I found on my Trendnet test AP which shows that the response is not coming from the router at all but is coming from the actual device as intended. So yes, although this solves it for Mikrotik based systems I am not sure that the naming convention is correct and leads me to another question... what is the naming convention for this on the other AP's we're see'ing reports of this such as fritzbox for example. Either way, I do not think it relates to proxy-arp. |
MikroTik's An ARP request is multicast traffic, (N.B. its answer is unicast) so enabling this does help ARP issues. proxy-arp is something different and it was just something I was wondering about, but as far as I know now, it will cause more harm than good, as we do not route the traffic to another subnet, nor run on separate VLANs.
Just to be sure you know. |
Understand now what you mean by roaming... for me, roaming does not require the client to reconnect to another AP - the handing over of the client device from one AP to another is done by the access point management system on the main Mikrotik router... so in theory, this is completely transparent from a client device's perspective. Tasmota can behave in a similar way to what you explain and this will still surely cause the same issues stemming from the ARP TTL perspective. Edit: I do not observe any additional overhead after enabling |
If you would experience overhead, then it would be noticeable with multiple nodes connected to the same AP (and all interested in this multicast traffic) It may be different if you stream multicast data other than ARP packets. Such traffic will also be affected by this setting. |
A big use case for mulitcast trafffic is IP-TV. Without it wouldnt work and flood network (s). |
I do not have the Multicast package installed on the Mikrotik - Hence I don't think its related to conventional multicast... which is why I question the naming convention. |
If mikrotik is really converting all multicast to unicast traffic it is a MESS! |
It is supposed to change it only on the interface for which you set it. Not sure if it is also a limitation on this multicast setting, but I've seen that some options in MikroTik firmware are only available on license level N and up (e.g. level 4 for local-proxy-arp) |
Check the thread linked above. I thought the same but seems the other major vendors are doing it one way or another, TP-Link, Aruba, Ubiquiti to name a few.
Welcome to Mikrotik. |
Was curious if there is a setting in my Lancom Accesspoints. I think i have no problems |
That would be nice! Whilst you're active @Jason2866, I couldn't see any Gratuitous ARPs being sent from your bin with fix applied? |
@marrold you are right, tbh i dont know why. I must overlook a simple thing. |
No Nothing. In the Fritbox interface i have the option "optimize for WebTV". I tried that, but it makes no difference. |
That sounds like IGMP snooping |
And then, of course, there's always this idea: https://gist.github.com/SupraJames/779475fefb6dfe7af315a68f03fe63dd |
@kugelkopf123 Sorry, there is no solution from Tasmota side. That is the reason why this issue is |
@andrethomas Have you had any problems since enabling multicast-helper ? When it's enabled I seem to have stability issues with all connected clients |
@marrold No issues which I have noticed except on one nodemcu v3 board (https://www.banggood.com/NodeMCU-V3-340G-Lua-WIFI-Module-Integration-Of-ESP8266-Extra-Memory-32M-Flash-p-1175347.html) but that is most likely because of the specific board rather than the wifi setting... this particular device does not like 2.6.1 but runs fine on core 2.4.2 - it has thermal design issues I believe. And then there's the funny aspect of this particular board - It is powered from the OTG port on an RB2011UiAS-2HnD-IN and resides right next to it on the wall in the corner of the dining room so it is officially the closest to any wifi AP that any of the devices are. Something I still have not checked is how the wifi setting impacts on the power consumption of the ESP8266 - I suspect it is running a bit hotter than usual but just a guess - still need to find the time to perform further analysis. |
PROBLEM DESCRIPTION
Periodically my Tasmota Devices stop responding to ARP requests. This looks to have been a historical problem that was recently fixed here but I still have the same behaviour on Tasmota 7.1.1. I don't experience this issue on another device running ESPHome - I'm wondering if a change needs to be made to Tasmota to accommodate this fix?
REQUESTED INFORMATION
Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!
Backlog Template; Module; GPIO
:Backlog Rule1; Rule2; Rule3
:Status 0
:(Please use
weblog 4
for more debug information)TO REPRODUCE
Connect to Wifi and wait a period of time - the device will stop responding to ARP requests
EXPECTED BEHAVIOUR
The device should always respond to ARP requests
SCREENSHOTS
If applicable, add screenshots to help explain your problem.
ADDITIONAL CONTEXT
Add any other context about the problem here.
(Please, remember to close the issue when the problem has been addressed)
The text was updated successfully, but these errors were encountered: