arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
22.26k stars 4.81k forks source link

IPv6 Support? #2521

Closed mwuertinger closed 1 year ago

mwuertinger commented 6 years ago

The Internet Protocol version 6 was designed 20 years ago. Unfortunately many devices (including virtually all IoT devices) still do not support it. IPv4 addresses are getting extremely scarce these days and many ISPs no longer allocate public IPv4 addresses for their customers (Carrier grade NAT) which is already causing connectivity issues for many people including myself. Therefore we should all strive for 100% IPv6 support.

Would it be possible to implement IPv6 on Sonoff devices or is there anything in particular that stands in the way?

Leseratte10 commented 6 years ago

Last I checked, the upstream libraries didn't support IPv6 yet: esp8266/Arduino#638 I found this: espressif/arduino-esp32#1261, but this doesn't apply to the ESP8266. And it seems to be in active development and not completely ready for release. When this is finished (and merged into esp8266/Arduino), IPv6 can be used in Tasmota.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 6 years ago

This issue will be auto-closed because there hasn't been any activity for a few months. Feel free to open a new one if you still experience this problem.

d-a-v commented 6 years ago

Check again https://github.com/esp8266/Arduino/issues/638

akram commented 4 years ago

Ardui core now supports IPv6 : https://github.com/esp8266/Arduino/pull/5136

can we re-open thins one ?

ascillato commented 4 years ago

can we re-open thins one ?

No because it is already implemented in Tasmota. You have to compile by yourself enabling IPV6 support in platformio.ini

If you need further assistant, please, do not hesitate on asking on the Support Chat. Thanks.

akram commented 4 years ago

Hi @ascillato , thank you for your quick answer. I had a look at platformio.ini and I didn't find a self exaplanatory commented out parameter to enable it. That would be good if you could tell which one it is?

akram commented 4 years ago

my bad , it looks like related to this:

; lwIP 1.4
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
; lwIP 2 - Low Memory
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
; lwIP 2 - Higher Bandwidth
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
; lwIP 2 - Higher Bandwidth Low Memory no Features
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
; lwIP 2 - Higher Bandwidth no Features (Tasmota default)
                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!)
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
ascillato commented 4 years ago

yes, exactly.

If you need help on using those, you can use the support chat if you want.

ascillato commented 4 years ago

Anyway, as the comment explains, it is experimental because the support is on the Arduino Core. You should use the stage core that have several fixes for that, but still experimental.

Use it, if you really need ipv6 in your local network. ipv4 for a local network is reliable and works for all usecases.

freifunkerffm commented 4 years ago

Hello, from the post above I understand that TASMOTA is supporting IPV6 in general. I have already a working platformio-core setup where I can compile TASMOTA with different features with success! But I fail with IPV6 :-/ In platformio.ini I have set: ; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!) -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH

But it fails to work on a NODEMCU V3 board. The serial-log from the device shows: 00:00:00 CFG: aus Flash geladen am F4, zählen 8 00:00:00 QPC: Count 1 00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1 00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset) 00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"} 00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""} 00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"Software/System restart"} 00:00:01 RSL: stat/tasmota_40FABB/RESULT = {"POWER":"OFF"} 00:00:01 RSL: stat/tasmota_40FABB/POWER = OFF 00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Sonoff Basic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[1,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1} 00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":8,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"lalala.net","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}} 00:00:06 QPC: Reset

So somehow IPV6 is mentioned but for it looks like I miss some build-parameters. The documentation on having TASMOTA IP6 is quite weak.

Has anyone compiled TASMOTA with IPV6 and can give dedicated hints what settings in platformio.iniare necessary? I am also curious if ESP-8266 is then turned into a single IPV6 stack or into a dual stack (IP4/IP6) device?

Kai

altelch commented 4 years ago

Hi,

no, you didn't miss a build-parameter. Just did a build on my own including #pragma message to see if #ifdef LWIP_IPV6 is set. And yes, it is but the startup seems to be messed up. Normaly IPv6 was DualStack and you should get at least an IPv4 address but now there is no address at all. I have to admit that this code was implemented in october 2019 and since then I didn't check this part. There where a lot of changes (including ESP32 support) since then. First step is to check https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi/examples/IPv6/IPv6.ino what is the example code of the arduino framework. If this works it needs some digging into the current tasmota code...can't promise to find some time, soon.

Greetings,

                  Altelch.

LWIP_IPV6 Am 23.09.2020 um 16:24 schrieb freifunkerffm:

Hello, from the post above I understand that TASMOTA is supporting IPV6 in general. I have already a working platformio-core setuo where I can compile TASMOTA with different features with success! But I fail with IPV6 :-/ In platformio.ini I have set: ; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!) -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH

But it fails to work on a NODEMCU V3 board. The serial-log from the device shows: 00:00:00 CFG: aus Flash geladen am F4, zählen 8 00:00:00 QPC: Count 1 00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1 00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset) 00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"} 00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""} 00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"Software/System restart"} 00:00:01 RSL: stat/tasmota_40FABB/RESULT = {"POWER":"OFF"} 00:00:01 RSL: stat/tasmota_40FABB/POWER = OFF 00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Sonoff Basic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[1,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1} 00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":8,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"lalala.net","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}} 00:00:06 QPC: Reset

So somehow IPV6 is mentioned but for it looks like I miss some buld-parameters. The documentation on having TASMOTA IP6 is quite weak.

Has anyone compiled TASMOTA with IPV6 and can give dedicated hints what settings in platformio.iniare necessary? I am also curious if ESP-8266 is then turned into a single IPV6 stack or into a dual stack (IP4/IP6) device?

Kai

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/arendst/Tasmota/issues/2521#issuecomment-697437859, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATUA4NFDCZP2AT6KTXXN33SHIAIPANCNFSM4E33KYZQ.

d-a-v commented 4 years ago

That example will work ;-)

altelch commented 4 years ago

Ok,

I'll trust you ;-) Then I need to find what's got messed up and when...

Thx,

                Altelch.

Am 23.09.2020 um 18:46 schrieb david gauchard:

That example will work ;-)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/arendst/Tasmota/issues/2521#issuecomment-697675022, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATUA4JWALBLLDIZOH6LMXLSHIQ5FANCNFSM4E33KYZQ.

altelch commented 4 years ago

Hi,

IPv6 works with 8.5.0. Somehow platformio.ini isn't evaluated after changing DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH to DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH

Did also put a

pragma message ("IPv6 compile time enabled!")

into support_wifi.ino in WifiBegin after #ifdef LWIP_IPv6 to see if this branch is compiled. After a few trials gitpod started to compile the whole project again and this time I got my above message during compile. The firmare works as expected: 00:00:05 WIF: Got IPv6 global address xxxx:xxxx:150:5ecf:7fff:fe88:xxxx

Greetings,

       Heiko.
freifunkerffm commented 4 years ago

Hello Heiko, I tested it again with a freschly checked out TASMOTA : git clone https://github.com/arendst/Tasmota.git I changed platformio.ini like that: ;-DPIO_FRAMEWORK_ARDUINO_LWIP3_HIGHER_BANDWIDTH_LOW_FLASH -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH and used no user_config_override.h But compiled it with platformio and not with gitpod. I also added your pragma message in the support_wifi.ino. That is visible in the build log: Retrieved `.pio/build/tasmota/libeec/ESP8266SdFat/FatLib/FatFileSFN.cpp.o' from cache /home/k/platformio-coreIP6/TasmotaIPV6/tasmota/support_wifi.ino: In function 'void WifiBegin(uint8_t, uint8_t)': /home/k/platformio-coreIP6/TasmotaIPV6/tasmota/support_wifi.ino:214:52: note: #pragma message: IPv6 compile time enabled!

pragma message ("IPv6 compile time enabled!")

                                                ^

Retrieved `.pio/build/tasmota/libeec/ESP8266SdFat/FatLib/FatVolume.cpp.o' from cache

I pushed the bin via tasmotizer to the NodeMCU V3 board and got: 00:00:00 CFG: aus Flash geladen am F9, zählen 3 00:00:00 QPC: Count 1 00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1 00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset) 00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"} 00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""} 00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"External System"} 00:00:01 RSL: stat/tasmota_40FABB/RESULT = {"POWER":"OFF"} 00:00:01 RSL: stat/tasmota_40FABB/POWER = OFF 00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Sonoff Basic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[1,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1} 00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":8,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}} 00:00:06 QPC: Reset

I noticed a new WLAN named ESP-40FABB I could join and found at 192.168.4.1 a new tasmota device to configure. (no hint for that in the logging) I just changed the WIFI credentials via GUI and got:

00:00:00 CFG: aus Flash geladen am F6, zählen 6 00:00:00 QPC: Count 1 00:00:00 Projekt tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1 00:00:00 HTP: Web-Server aktiv bei tasmota_40FABB-6843 mit IP-Adresse (IP unset) 00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Generic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"} 00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""} 00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"Software/System restart"} 00:00:01 RSL: homeassistant/discovery/807D3A40FABB/config = {"ip":"(IP unset)","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota_40FABB-6843","mac":"807D3A40FABB","md":"Generic","ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"8.5.0.1","t":"tasmota_40FABB","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"btn":[0,0,0,0],"so":{"11":0,"13":0,"17":0,"20":0,"30":0,"37":1,"68":0,"73":0,"80":0},"lt_st":0,"ver":1} 00:00:05 RSL: tele/tasmota_40FABB/STATE = {"Time":"1970-01-01T00:00:05","Uptime":"0T00:00:07","UptimeSec":7,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":0,"Wifi":{"AP":1,"SSId":"lalala.net","BSSId":"FF:FF:FF:FF:FF:FF","Channel":1,"RSSI":100,"Signal":31,"LinkCount":1,"Downtime":"0T00:00:01"}} 00:00:06 QPC: Reset

After this the ESP-40FABB WIFI is not gone, but the ESP8266 detects the W-Lan Network. So for me IPv6 is still not really usable Is there a kind of command list to execute to get some more information about that. I am happy to help, if I can

Kai

freifunkerffm commented 4 years ago

Hi all, I gave it another go, this time I compliled the tasmota Development Branch: https://gitpod.io#https://github.com/arendst/Tasmota/tree/development via gitpod. Just changed one line in platformio.ini , I replaced: DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH with DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH

And compiled a pure tasmota with: "platformio run -e tasmota" Used tasmotizer to flash, and got again something I have already seen:

CFG: Loaded from flash at F8, Count 4 00:00:00 QPC: Count 1 00:00:00 Project tasmota Tasmota Version 8.5.0.1(tasmota)-2_7_4_1 00:00:00 HTP: Web server active on tasmota_40FABB-6843 with IP address (IP unset) 00:00:01 RSL: tele/tasmota_40FABB/INFO1 = {"Module":"Sonoff Basic","Version":"8.5.0.1(tasmota)","FallbackTopic":"cmnd/DVES_40FABB_fb/","GroupTopic":"cmnd/tasmotas/"} 00:00:01 RSL: tele/tasmota_40FABB/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_40FABB-6843","IPAddress":"(IP unset)","IPv6Address":""} 00:00:01 RSL: tele/tasmota_40FABB/INFO3 = {"RestartReason":"External System"}

So sorry I am not able to confirm that IPV6 is working on a TASMOTA device.

Kai

XenGi commented 2 years ago

Another year went by and my tasmota devices still has no IPv6 support by default. It is still needed to compile tasmota by hand to enable that feature?

barbudor commented 2 years ago

AFAIK, even by compiling with either hand or feet you won't get IPv6 running on Tasmota. It's definitively not designed for it (all internal IP addresses representation are on 4 bytes) And there is not much need to run a home automation system on an IPV6 network.

Raja4Shekar commented 2 years ago

There are so many places where public ipv4 address is not provided by ISP due to the use of CGNAT, so in those circumstances, ipv6 is too much useful. So many people will get benefited if Tasmota Support ipv6. Especially who are ardent in using Tasmota

Not sure if this link helps anyway https://www.keithh.com/network/ipv6-setup-esp8266/

redhat421 commented 2 years ago

I run Tasmota on a S31 w/ IPv6 enabled. It works.

I give it an address via SLAAC. I have noted that if the router isn't handing out Router Advertisements, the device will hang for ~2 mins then come up with an IPv4 address only, so look out for that.

Thanks!

XenGi commented 2 years ago

Honestly you don't need to fish for NAT or IPv4 shortage reasons to support IPv6. It's the current version of the internet protocol and it is at this point over 20 years old. By not enabling it by default your basically building legacy systems.

So I think this ticket should be reopened. IPv6 support is still not enabled by default. I would rather use something that lacks IPv4 support than something without IPv6.

RedBlackThunder commented 2 years ago

I would like an IPv6-only option even more than dual stack.

s-hadinger commented 2 years ago

There is no plan for IPv6-only option in Tasmota. Why would you even want to not support IPv4 ?

XenGi commented 2 years ago

There is no plan for IPv6-only option in Tasmota. Why would you even want to not support IPv4 ?

Let me rephrase: There is no plan for car only roads. Why would you even want to not support coaches.

IPv4 should be nothing more then a fallback. A widely used one for now. But hopefully things will finally change.

kroon040 commented 2 years ago

Will there be ipv6 full support? Dual stack, with dhcpv6 and slaac? It's availiable in the esp-idf, so hopefullt soon in tasmota

sfromis commented 2 years ago

As Tasmota is designed for internal networks, not the big bad Internet, the "real benefit" of IPv6 would be marginal at best. I certainly have no scarcity of IP addresses within the reserved ranges.

XenGi commented 2 years ago

IPv6 has nothing to do with internal networks. If tasmota doesn't support the current version of the internet protocol it is basically legacy software. I really don't get this hostility towards IPv6. There is really no reason to not support it. It's the standard way of communicating between IP capable devices and that since over 25 years! Get your shit together. You're embarrassing yourself.

sfromis commented 2 years ago

Not at all "hostility", just explaining why IPv6 is not seen as much of a priority. While I like the concept of getting everything on IPv6, that's not going to happen in the foreseeable future anyway, and has most value when it comes to using the scarce public IP addresses.

Anyway, Tasmota is not managing the IP support, that's happening in the frameworks outside of Tasmota code. It does not help to express your desires here. Of course, if you make it work, a PR could be ... "interesting".

barbudor commented 2 years ago

@XenGi please respects the community guidelines.

Now on a pure technical aspect ESP8266 is legacy hardware with limited capabilities and the Espressif SDK is frozen AFAIK (no more updates /maintenance). Investing in IPv6 on ESP8266 sounds like a loss of time (not sure any vendor has ever supported it, may be shelly?)

2 years ago, investing in ESP32 sounded like a loss of time. Even supporting Ethernet didn't looked useful. Now both are here. With ESP32 and more variants coming with more memory and flash, why not? It's up to someone taking the task and proposing one (or probably more PR). So if you are such an IPv6 enthusiast, just embrace that tasks and contribute.

s-hadinger commented 2 years ago

Let's take it the other way: use-case based.

What is your use-case to want IPv6 for a LAN-only device? Should Tasmota have a IPv6 address on its own? Or should it just be able to connect to IPv6 brokers? (requiring 6-to-4 somewhere)

XenGi commented 2 years ago

My personal use case would be an ipv6 only network. I try to only run IPv6 wherever possible. I only have a DNS64 and NAT64 setup for things on the internet that still don't support it. Yes dual stack is a nice solution for the mean time but so far everything I use supports IPv6, so I thought why not get rid of legacy completely. The only thing still in my way is a few tasmota based sonoff pow devices.

But it's not really about use cases. What annoys me is that I'm hearing the same old bs arguments over and over again. Like no one needs IPv6 anyway. It's not commonly used so it's not a priority. Why would you need it at home anyway. What about just using NAT. I can't here it anymore. Many of these arguments are the reason why the IPv6 adoption isn't as good as it could be.

Good to know that tasmota is not the place to implement the ipv6 support. I wasn't aware of this. I will then go and "annoy" the libraries under tasmota to support it then. Have a nice day!

sfromis commented 2 years ago

No one said that "no one needs" or "not commonly used". IPv6 is very much needed and used, but all depends on use case.

s-hadinger commented 2 years ago

There is no need to be aggressive when I simply ask why you need it.

The main use-case for Tasmota is to run on a local network and connect to a MQTT gateway on the same local network, which happen to be 99% IPv4 anyways. Some people (like me) connect to a remote MQTT gateway, but dual-stack does the job.

We have nothing against IPv6, by far. But on a local network it just adds unnecessary complexity when it comes to configuration, which is the reason we think most users won't use IPv6 anyways.

If you want IPv6 support, we are more than happy to get a Pull Request from you. Arduino and esp-idf seem to support IPv6 already. Be our guest, and have a nice day.

d-a-v commented 2 years ago

esp-idf has ipv6. Does Tasmota use esp-idf natively, or is an Arduino core always needed ? esp8266-Arduino has IPv6, does esp32-Arduino have it ? What about other architectures (or Arduino cores) on which Tasmota runs ? What are your devices @XenGi ?

XenGi commented 2 years ago

I'm not good at embedded programming. So as much as I would like to add IPv6 support myself, I don't see myself being able to do it. I guess I will look for an alternative solution for my network. I'm not willing to run dual stack only for two little iot devices.

Thx everyone for your input, sorry I went a little harsh. This topic is very important to me, so sometimes I go a bit far. I hope tasmota will support current internet standards at some point.

bzfbd commented 2 years ago

We have nothing against IPv6, by far. But on a local network it just adds unnecessary complexity when it comes to configuration, which is the reason we think most users won't use IPv6 anyways.

I think that is plain old thinking. I haven't had IPv4 on the LAN anymore for more than a decade.

It's a constant struggle to make people understand that IPv6 is not an option anymore but a must or otherwise things won't work for people. And there are places in this world that are all IPv4 (private addresses) still and like those there are places where IPv4 is not provided anymore [unless you pay a lot of money] or places which implemented IPv6 and removed IPv4 to remove the complexity of dealing with two protocols at no benefit. You can span up your IPv4 (private address) island but you just struggle with a lot of problems then as well.

I was trying to look into Tasmota but given these discussions I feel like I'll wait before investing. I've fixed other esp32-idf based projects before but if there's further frameworks on top it's just a lot of hassle if they haven't been fixed before. But then there are also people saying it works. This is confusing. Like @RedBlackThunder IPv6-only options would be really exciting to me too but I am happy if dual-stack works without having to wait for 1+ minute for DHCPv4 timeouts.

s-hadinger commented 2 years ago

The only short term need for IPv6 in the short term is Matter support. Matter requires IPv6, and I'm still unclear how it would work on a IPv4 only local network (which is a wide majority of home installations). I'm doubtful that Matter wouldn't work at all on a IPv4 only network.

urbaniak commented 2 years ago

all matter devices will just use auto configured link local ipv6 addresses even on ipv4 only network and be able to talk to each other that way

Leseratte10 commented 2 years ago

all matter devices will just use auto configured link local ipv6 addresses even on ipv4 only network and be able to talk to each other that way

This. To communicate with other clients in the same local network, neither your internet connection nor your router needs to support IPv6. All devices automatically have their own address in fe80::/16, based on their MAC address, and just start using it.

MaZe3D commented 2 years ago

Maybe this is true for Matter Devices but no IPv6 is in 2022 a no go. I have several IPv6 only networks at home and because of Tasmota I need to maintain a separate IPv4 enabled and isolated network. If we can get Tasmota to fe80:: addresses we can get it to support SLAAC to. Then it would only need its prefixes from the routers within the network in order to work.

s-hadinger commented 2 years ago

Fortunately Matter requires IPv6 so I'm working on it. I already have a working version for link-local addresses on ESP32. I'm not sure SLAAC works out of the box. It is supported by esp-idf but I don't know if it requires extra work from Tasmota side.

I wil publish in the following days a candidate version for IPv6.

kroon040 commented 2 years ago

Should be great that ipv6 comes to tasmota. I can also check if SLAAC works, so if there are candidate version, I can test

altelch commented 2 years ago

What happened to v6, didn't follow for a while but in October 2019 I made some PRs (#6634) to have at least dual stack. There was still some stuff like IP filters missing but the basic functions where there.

s-hadinger commented 2 years ago

It's mostly there indeed, but Arduino framework has no support for IPv6 on ESP32 contrary to ESP8266. I'm doing brain transplant to bring it to ESP32 as well.

altelch commented 2 years ago

Uarg...no support in the Framework is bad. Thank you for info and working on it :-)

s-hadinger commented 2 years ago

Just to keep you updated with progress. IPv6 link-local and DHCPv6 works. I couldn't try SLAAC but it should also work. The device has IPv6 addresses, but I'm not sure it's using it for MQTT and web server. I might need your help for testing for this.

I will push the changes to the repo tomorrow

s-hadinger commented 1 year ago

IPv6 preview is now merged. For ESP32 you need to self compile with platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1051/framework-arduinoespressif32-release_v4.4-e7f0f8b3f4.zip

DHCPv6 works fine, SLAAC is untested (unifi doesn't support) it. Ethernet is not tested. Web server is not listening on IPv6 global address yet MQTT on IPv6 address is not tested

https://github.com/arendst/Tasmota/pull/17230

barbudor commented 1 year ago

I'm totally noob regarding IPv6, but I understand that only dynamic addresse (DHCP or SLAAC) Is that static addresses doesn't exist in IPv6 or just a limitation of this initial support ?

sfromis commented 1 year ago

While I can claim zero expertise around IPv6, my strong impression (Google-fu) is that static IP addresses are also possible with IPv6.