Attempt to Bypass QoS with Multi-Network Binding on OpenWRT using ZeroTier

Conclusion

Unsuccessful; a <span>bond</span> can be created, but after binding the <span>zerotier</span> interface, the original interface cannot connect properly to the <span>zerotier</span> network.

Requirements and Objectives

Using <span>iperf</span> for testing with Nanning Mobile, the <span>ipv6</span> can fully utilize the upload bandwidth, while the direct connection to the <span>zerotier</span> network only achieves a bandwidth of <span>10Mbps</span>, likely due to the operator’s <span>QoS</span> restrictions. I want to try using multiple <span>zerotier</span> tunnels to see if it helps.

Process

  1. 1. Install <span>luci-proto-bonding</span>; this package will also install other dependencies.
  2. 2. In the device menu of the interface page, <span>add device configuration</span>, select device type as <span>MAC VLAN</span>, base device as <span>bond</span>, and mode as <span>VEPA (Virtual Ethernet Port Aggregator)</span>, with a device name of your choice.
  3. 3. Then add an interface, name it as you wish, and select the protocol as <span>Link Aggregation (Channel Bonding)</span>.
  4. 4. Fill in the <span>ipv4 address</span> with any <span>ip</span> from the interfaces to be aggregated, set the mask according to the actual situation, and in <span>Advanced</span>, check the <span>slave interfaces</span> that need to be aggregated with the <span>zerotier</span> interfaces.
  5. 5. In the firewall’s <span>nat rules</span>, add a new configuration, select the newly created <span>bond</span> interface for outbound, leave the source address unselected, fill in the target address with the <span>zerotier</span> subnet, select <span>SNAT</span> for the operation, and choose the <span>ip</span> of the newly created <span>bond</span> interface for address rewriting.

Verification

  1. 1. Check the routing with <span>ip route</span>; there should be a target route, indicating no issues. Since the router has multiple exits, manual configuration of <span>nat</span> is required, as mentioned in the previous section’s <span>Step 5</span>, because <span>openwrt</span> will only automatically configure <span>nat</span> for the default <span>wan</span>.
  2. 2. Check the aggregation with <span>cat /proc/net/bonding/bond-bond</span>; <span>bond-bond</span> is the actual interface name, and it should be enabled without issues.
  3. 3. Try to <span>ping</span> the target address; it was unsuccessful.
  4. 4. Check the network interfaces with <span>ip addr</span>; the <span>zerotier</span> interface has no <span>ip</span>, indicating that the <span>zerotier</span> interface did not start successfully.
  5. 5. Since I need to use the network, I don’t want to continue for now, so I will revert!

Leave a Comment