Multipath implementation examples?

Very happy to see a new board up here vs the old chat. Nice job.

I’ve been watching the multipath feature for a while now. I’ve bookmarked the manual page to see if it’s come along any more and how to actually implement but I don’t really see a comprehensive example.

The missing piece for me here is how to inform Zerotier that there are multiple internet connections to attempt to connect out on. What does it look for? I’d love to start experimenting with this feature once I see a clear design on how to implement.

Also, I’d love to hear about how stable this feature is in the code, specifically, is v2 going to enhance what’s in 1.4 or is it going to replace it and or replace config methods and so on.

Actually we’re preparing a new release in the 1.4.x series with a much improved multipath feature set (based on the Linux kernel’s bonding interface). More info & documentation soon.

1 Like

awesome. I’m hoping this can be a dynamic interface. Consider an LTE modem in a small linux appliance. That’s very very likely a ppp dialup connection which is a dynamic interface. I had a discussion with someone in the old chat on this scenario and that dynamic interface was going to be an issue. I can do pre and post up and down scripts in the ppp dialer so as long as the zerotier-cli allows for interfaces to be added or updated that way we could make it work too.

Hey, Dandenson.

Welcome back. I do remember that conversation with you and while dynamic interfaces isn’t a feature quite yet I do agree that it’s something we want and will likely build into 2.X (you can hold me to that!). As I understand it, being able to do something like zerotier-cli add/remove link ppp0 would be sufficient?

The good news is that we’ve updated the documentation and there is a beta version of multipath available in the dev branch now for you to toy around with. This is pretty much the feature set we will release in an upcoming 1.4.X version.


I think as of this post dev is broken, but you can check out b1ddba0 for a working state, and don’t mess with balance-aware yet, that’s still the Wild West.

Let me know if you have any other questions.

The add/remove would be functional, especially if it gracefully handled user errors like trying to add an interface that’s already there. Also if you could easily get a list of interfaces in an array or space/comma separated list via #zerotier-list show-wan-interfaces or similar to simplify error testing scripts