mwan3 tracks connectivity using ICMP PING. I'm finding this unreliable at times for a couple reasons:
- My LTE module (primary interface) gets stuck in a weird limbo state where it allows UDP and ICMP traffic to pass through but not TCP (except existing connections), therefore MWAN3 reports the interface as UP while it's essentially DOWN (all things considered).
- My Sprint hot-spot (secondary interface) blocks ICMP traffic when connected to certain towers, therefore MWAN3 reports the interface as DOWN while it's essentially UP.
Is the OpenWRT community be interested in adding support for connectivity tracking via HTTP (curl) to mwan3 package? And are the maintainers open to this feature being merged to the mainland provided you're satisfied with the code quality and alike? (Anyone know Florian Eckert's login on this forum?)
I could work on this but I don't want to waste my time if this is unlikely to be merged. And maintaining a fork and keeping it working with any future changes in net/mwan3 doesn't sound any fun to me.
Great idea - But .....
mwan3 already supports httping (httping is an installable package).
I used to use httping detection but a new version came out with a bug where selecting output interface by IP address did not work. I reverted to the default Ping at that time. The bug was fixed a long time ago - I think - I will have to test it.
Httping is enabled using the option
Thanks! Wow, I totally missed that! With
track_method set to
httping do I still specify tracking addresses as IP addresses, or can I use
mwan3 will automatically add http (or https if the
httping_ssl option is set). You could use somedomain.com/path instead of the tracking IP, but you would probably need to set up your DNS to avoid going through mwan3. Otherwise, when the interface goes offline, the DNS won't be able to resolve and mwan3 will never bring the interface back online.
mwan3 is actively maintained, so it would be possible to add support for additional tracking methods. If you wanted to add a simple http-based tracking method, why not use uclient-fetch, which comes with the base openwrt install? I have a P/R (13169) that uses LD_PRELOAD to bind to devices, so many more tracking options are now available.