Beta 2.20 available on develop branch!
This has the initial groundwork for ipset-based classification for upload and download traffic. How you populate the ipsets is up to you, but I expect most of us to use dnsmasq functionality.
Example
/jffs/configs/dnsmasq.conf.add (just created for my testing, not exhaustive or meant to be your starting point):
Code:
ipset=/googlevideo.com/nflxvideo.net/aiv-cdn.net/r.cloudfront.net/aiv-delivery.net/video_4,video_6
ipset=/zoom.us/skype.com/voice_4,voice_6
ipset=/backblaze.com/backblazeb2.com/bulk_4,bulk_6
ipset=/ms-acdc.office.com/windowsupdate.com/update.microsoft.com/bulk_4,bulk_6
ipset=/onedrive.com/1drv.ms/1drv.com/bulk_4,bulk_6
The ipset names that CakeQOS-Merlin creates depend on which prioritization scheme you use:
- besteffort: (none created)
- diffserv3: bulk_4, besteffort_4, voice_4 (optionally bulk_6, besteffort_6, voice_6 if IPv6 enabled)
- diffserv4: bulk_4, besteffort_4, video_4, voice_4 (optionally bulk_6, besteffort_6, video_6, voice_6 if IPv6 enabled)
- diffserv8: tin0_4, tin1_4, tin2_4, ... tin7_4 (and IPv6 equivalents)
There is no user interface for this, at least for now. I'm not certain yet that I want to take on the responsibility to manage dnsmasq options in CakeQOS-Merlin. But it's pretty darn easy to setup yourself, thanks to the dnsmasq.conf customizations available in Merlin.
The hardest part may be to find and isolate which domain names you really need to track via the ipset. For example, youtube.com won't give you what you really want (i.e. googlevideo.com), so I strongly suggest using Diversion with logging enabled to look for the domains of interest.
Interested users can switch to the develop branch by re-running the installer for that branch:
Code:
mkdir -p /jffs/addons/cake-qos && /usr/sbin/curl -s "https://raw.githubusercontent.com/ttgapers/cakeqos-merlin/develop/cake-qos.sh" -o "/jffs/addons/cake-qos/cake-qos" && chmod 755 /jffs/addons/cake-qos/cake-qos && sh /jffs/addons/cake-qos/cake-qos install
Troubleshooting / Debugging:
Please report issues and include the outputs of these commands:
Code:
ipset list -n
iptables -t mangle -S CakeQOS-Merlin
ip6tables -t mangle -S CakeQOS-Merlin
tc -s filter show dev ifb4eth0
tc -s qdisc show dev eth0
tc -s qdisc show dev ifb4eth0
grep ^ipset= /jffs/configs/dnsmasq.conf.add