There we go , this will be my second part of how to configure QoS for Tomato Firmware (Yeah – it took a long time for me to write this article) . You may want to read my first part before proceeding to the second part here. Anyway , I’ve explained couple of things last time , which includes the basics of Qos and how to configure the bandwidth allocation and stuff like that. Once again I recommend you to read the first part before proceeding to the second part. If you’re feeling a bit adventurous (or if you’re lazy to read the whole guide) , then continue on to read. Anyway let us get started shall we (Click on read more to get started)
First and foremost , make sure you have configured the basic QoS Configuration as suggested in my first part of the QoS Guide. Once you have done that , make sure that QoS is disabled. This is important as we do not wish to intrerput our Internet connection while configuring the whole thing (Trust me , if you enable Qos while your room mates/family members are surfing the Internet or playing on line games – You’ll feel remorse and they’ll get on your nerves). Anyway , take look at the screenshot that I’ve posted below
If you notice that I have left the default configuration as it is , we don’t really want to mess with the basic settings. Leave it as it is , however you may want to delete the last rule which is Bulk Traffic rule. This is where we will configure it manually. Anyhow , before I teach the tricks of trade on how to configure your router. Lets take a look at the terminology , I’m sure you are interested to know what is Layer 7. Here we go :-
Layer 7 - “L7-filter is a classifier for Linux’s Netfilter that identifies packets based on application layer data. It can classify packets as Kazaa, HTTP, Jabber, Citrix, Bittorrent, FTP, Gnucleus, eDonkey2000, etc., regardless of port. It complements existing classifiers that match on IP address, port numbers and so on.”. In other words it can automatically classify packets regardless of port. this is much more efficent way of blocking p2p traffic and/or controlling other applications such as games. However there is a catch , Layer 7 is very CPU-intensive and slow. This may stress your router and may cause slow-downs – Just keep that in mind
IPP2P – “IPP2P uses suitable search patterns to identify P2P traffic thus allowing the reliable identifcation of traffic belonging to many P2P networks. Once identified one may handle P2P traffic in different ways – dropping such traffic, putting into low priority classes or shaping to a given bandwidth limit is possible. Reducing costs, freeing network ressources and therefore improving network performance is often the result of using IPP2P”. In other words its a filters p2p traffic and it identifies. This is how some ISPs throttle P2P , although its not efficient as p2p clients these days have encryption , it can still throttle most of the p2p connections , which is still great ! – But it isn’t that great and once again this isn’t the best solution as bit torrent clients can easily bypass these filters by turning on Packet encryption !
TCP/UDP and other forms of Protocol - You wouldn’t want to mess with the rest of the protocols that they are there unless you know what you’re doing. Usually you’ll use this kind of filter to play or prioritise gaming packets or VOIP applications. Just specify which port it requires and you’ll have its data prioritised or reduced (depending on how you set it). This isn’t our primary concern and there is no further explanation for this , unless you want to study how TCP/UDP works – which is again way too complicated for me to explain and for you to understand. For now , that should do the trick
Port Selection – This is the fun part , you can choose to throttle the data on all ports (source port or destination port). You can usaully set it to which port or better yet block any port when you’re using IPP2P Filter or Layer 7. This i will leave it up to you. However , keep in mind that you’re going to add some load to the router if your port selection is any port and you’re using Layer 7. Thats just my tip
Address – This is where you specify who gets what slice of the bread. Suppose if you want to throttle your room mates’ (its just an example aka figure of speech) Bit Torrent connection as he is hogging everything. You may just filter it via IP. However , if your room mate is smart , he can manually assign IP in his PC and bypass that filter. I know you’ll be yelling – but don’t worry you can classify traffic via MAC Address. Although its possible to change MAC Address , only those who know what they are doing will know how to bypass and edit it. At times for certain NIC and WNIC (Wireless/WiFi Cards) its not possible to change the MAC Address.
Classification – As have been thought in Lesson I , this is where you apply it. You classify it to your own class which one to do you think it is priroity traffic , bulk traffic , etc. Just select the propriate class for the propriate program !
Here are some tips , make sure VOIP Applications (such as Skype) or demanding applications (Counter Strike and FPS games , and even World of Warcraft/Warcraft III (DOTA) ), gets the highest pirority traffic otherwise your your calls will cut or the quality will be degraded. Make sure critical applications do get the highest priority of traffic
You’ll have to do some trial and errors before you’re able to get full control of your traffic. QoS does take a look of effort , especially when you’re new. You’ll have to keep changing profiles till you get the shape of the traffic that you want (yeah , its just like losing weight and looking hawt). Dont forget to put a check on Re-classify all packets when changing settings , which can be found under Basic Settings (QoS), This is important especially when you’re testing your rules and other things. Plus , Its very hard to say on how efficent is your QoS. You’ll have to test it by stimulating traffic and monitoring it. It takes a bit of pratice and once you get the hang of it , it will be a easy as a pie ! – In my next lesson , we will be doing more in-depth analysis on certain cases , and how to counter attack certain cases and what are the disadvantages of QoS and of course ways to overcome it !