How to configure QoS for CrashPlan, which connects on HTTPS port, without affecting all other HTTPS traffic?
Solution 1:
Set the DSCP value you want via local machine policy using the process name and destination port to ensure you only tag crashplan traffic, not anything else on port 443.
I just blogged about this, including video:
http://blog.paulgeorge.co.uk/2012/06/07/crashplan-upload-traffic-with-dscp-tos-and-qos-on-windows-7/
EDIT : updated post with router setup http://blog.paulgeorge.co.uk/2012/06/11/setting-up-qos-on-draytek-2920n-router-using-dscp/
Solution 2:
I think I have this working for DD-WRT + Crashplan.
First, test your connection with speedtest.net or similar performance tool.
-
Configure TOS in Crashplan
In Crashplan, go to Settings → Network → TCP packet TOS. Here I selected DSCP and input a value of 56. That corresponds to
0x38
; shifting right two bits gives us0xE
, which is a DSCP codepoint we can program intoIPTABLES
.I set this value for both WAN and LAN; after saving, I did a reboot.
To confirm this was OK, I installed Wireshark and did a trace on
tcp.port == 443
. After starting Crashplan I could see the output backup traffic; sure enough, expanding the IP header showed that the DS codepoint was0xE
. -
Enable QoS in DD-WRT
Simply enable QoS on the DD-WRT router, as described in the above comment: NAT/QOS → QoS → Start QoS (set to "Enable").
I programmed in 85% of my available upload and download bandwidth.
-
Create the iptables rule
Here, we configure
iptables
to pattern match on the DS code point (DSCP) and then 'set mark' to the BULK group. Go to Administration → Commands and input the following into the text box:iptables -t mangle -I POSTROUTING -m dscp --dscp 0x0e -j MARK --set-mark 40 iptables -t mangle -I PREROUTING -m dscp --dscp 0x0e -j MARK --set-mark 40
Click "Save Firewall" to commit these changes.
Finally, I followed up with a reboot.
-
Test
I found it difficult to produce a table or diagnostic that showed that my rules were in effect. So, I simply did the ultimate test, which was to re-run the performance test described above, while Crashplan was running. Success! The upload and download speeds are basically the same, even though Crashplan was running in the background.
Solution 3:
There's a setting for CrashPlan to tag its packets itself:
Solution 4:
There is a tip on the DD-WRT forum.
Use this in your firewall script, the mark values are explained on the QoS wiki page.
iptables -t mangle -I POSTROUTING -d [destination ip] -j MARK --set-mark 40 iptables -t mangle -I PREROUTING -s [source ip] -j MARK --set-mark 40
Since they're both using iptables, you can do the same as Tomato. You just don't have a nice GUI.
Solution 5:
I use Tomato, not DD-WRT, but I found it very easy to setup QoS for crashplan.
I configured QoS based upon destination IPs for central.crashplan.com on port 443 and classified it as bulk traffic.