Previous

Content  

Next


3.0. Differentiated Service on Linux distribution

 

When I started to study the Differentiated Service on Linux distribution (included in the iproute2 distribution), it was really funny because, trying to understand what they were talking about, I searched a lot looking for better information. Finally, after attempting several times, I was tired and surprised that, perhaps with some words more or some words less, every documentation available finished with this advice: I (we) suggest you to have a look to the Differentiated Service on Linux distribution's examples where more information can be found..., etc., etc.
Of course, having such a look doesn't help to much either because too many questions remain unanswered. And, at the present time, some of them stay. That's the problem with Linux. It would be great if people who make Linux, could make also a little effort to improve the available documentation. One lose too much time trying to figure out what they were trying to do and how. Precious time that could be better utilized learning new paradigms. Well, nothing can be perfect. But, no one can prohibit me to say that this is exactly, one of the reasons why Linux use doesn't propagate faster. Too many people desert after breaking their brains trying to understand Linux. Finally, they joint the anti-Linux group telling that the system is for gurus and just limited for experimental implementations. On these circumstances, some known commercial companies take advantages to sell, very expensive indeed, some other operating systems that are technogically several years behind Linux. Really, a pity.
 
Well, we are not here to moan, but to learn Linux. In this section we are going to study each one of the examples included in the Differentiated Service on Linux distribution, with one exception, that the afcbq example will be replaced to use the HTB queuing discipline instead of the CBQ queuing discipline.
 
The examples in the distribution are:
 
  1. Edge1
  2. Edge2
  3. Edge31-ca-u32
  4. Edge32-ca-u32
  5. Edge31-cb-chains (using iptables)
  6. Edge32-cb-chains (using iptables)
  7. Edge32-cb-u32
  8. afcbq (using htb)
  9. ef-prio
  10. efcbq (using htb)
As you can figure out, Edge* examples are for implementing edge routers. afcbq implements differentiated service Assure Forwarding PHB using CBQ, DSMARK and GRED. This example will be presented but replacing CBQ for the new HTB queuing discipline. ef-prio implements differentiated service Expedited Forwarding PHB using PRIO, TBF, DSMARK and RED. efcbq implements differentiated service Expedited Forwarding PHB using CBQ, DSMARK and RED. Again, this example will be presented but replacing CBQ for HTB.
 
   

 

Edge??-??-u32 examples use the u32 classifier to classify packets, but Edge-??-??-chains examples use ipchains as the classifying tool. However, we are not going to use ipchains but instead iptables. iptables replaced ipchains some time ago and it is now the tool used to manage the Linux firewall. Another thing is that the examples were originally presented using sh (bash) or perl scripts. To help the explanation we will expand these scripts to get the final commands executed by the shell executor.
Well, let's start with Edge-1, kind lectors.

   


Previous

Content  

Next