shemminger | 8c564a4 | 2005-10-12 22:46:23 +0000 | [diff] [blame] | 1 | # CHANGES |
| 2 | # ------- |
| 3 | # v0.3a2- fixed bug in "if" operator. Thanks kad@dgtu.donetsk.ua. |
| 4 | # v0.3a- added TIME parameter. Example: |
| 5 | # TIME=00:00-19:00;64Kbit/6Kbit |
| 6 | # So, between 00:00 and 19:00 RATE will be 64Kbit. |
| 7 | # Just start "cbq.init timecheck" periodically from cron (every 10 |
| 8 | # minutes for example). |
| 9 | # !!! Anyway you MUST start "cbq.init start" for CBQ initialize. |
| 10 | # v0.2 - Some cosmetique changes. Now it more compatible with |
| 11 | # old bash version. Thanks to Stanislav V. Voronyi |
| 12 | # <stas@cnti.uanet.kharkov.ua>. |
| 13 | # v0.1 - First public release |
| 14 | # |
| 15 | # README |
| 16 | # ------ |
| 17 | # |
| 18 | # First of all - this is just a SIMPLE EXAMPLE of CBQ power. |
| 19 | # Don't ask me "why" and "how" :) |
| 20 | # |
| 21 | # This is an example of using CBQ (Class Based Queueing) and policy-based |
| 22 | # filter for building smart ethernet shapers. All CBQ parameters are |
| 23 | # correct only for ETHERNET (eth0,1,2..) linux interfaces. It works for |
| 24 | # ARCNET too (just set bandwidth parameter to 2Mbit). It was tested |
| 25 | # on 2.1.125-2.1.129 linux kernels (KSI linux, Nostromo version) and |
| 26 | # ip-route utility by A.Kuznetsov (iproute2-ss981101 version). |
| 27 | # You can download ip-route from ftp://ftp.inr.ac.ru/ip-routing or |
| 28 | # get iproute2*.rpm (compiled with glibc) from ftp.ksi-linux.com. |
| 29 | # |
| 30 | # |
| 31 | # HOW IT WORKS |
| 32 | # |
| 33 | # Each shaper must be described by config file in $CBQ_PATH |
| 34 | # (/etc/sysconfig/cbq/) directory - one config file for each CBQ shaper. |
| 35 | # |
| 36 | # Some words about config file name: |
| 37 | # Each shaper has its personal ID - two byte HEX number. Really ID is |
| 38 | # CBQ class. |
| 39 | # So, filename looks like: |
| 40 | # |
| 41 | # cbq-1280.My_first_shaper |
| 42 | # ^^^ ^^^ ^^^^^^^^^^^^^ |
| 43 | # | | |______ Shaper name - any word |
| 44 | # | |___________________ ID (0000-FFFF), let ID looks like shaper's rate |
| 45 | # |______________________ Filename must begin from "cbq-" |
| 46 | # |
| 47 | # |
| 48 | # Config file describes shaper parameters and source[destination] |
| 49 | # address[port]. |
| 50 | # For example let's prepare /etc/sysconfig/cbq/cbq-1280.My_first_shaper: |
| 51 | # |
| 52 | # ----------8<--------------------- |
| 53 | # DEVICE=eth0,10Mbit,1Mbit |
| 54 | # RATE=128Kbit |
| 55 | # WEIGHT=10Kbit |
| 56 | # PRIO=5 |
| 57 | # RULE=192.168.1.0/24 |
| 58 | # ----------8<--------------------- |
| 59 | # |
| 60 | # This is minimal configuration, where: |
| 61 | # DEVICE: eth0 - device where we do control our traffic |
| 62 | # 10Mbit - REAL ethernet card bandwidth |
| 63 | # 1Mbit - "weight" of :1 class (parent for all shapers for eth0), |
| 64 | # as a rule of thumb weight=batdwidth/10. |
| 65 | # 100Mbit adapter's example: DEVICE=eth0,100Mbit,10Mbit |
| 66 | # *** If you want to build more than one shaper per device it's |
| 67 | # enough to describe bandwidth and weight once - cbq.init |
| 68 | # is smart :) You can put only 'DEVICE=eth0' into cbq-* |
| 69 | # config file for eth0. |
| 70 | # |
| 71 | # RATE: Shaper's speed - Kbit,Mbit or bps (bytes per second) |
| 72 | # |
| 73 | # WEIGHT: "weight" of shaper (CBQ class). Like for DEVICE - approx. RATE/10 |
| 74 | # |
| 75 | # PRIO: shaper's priority from 1 to 8 where 1 is the highest one. |
| 76 | # I do always use "5" for all my shapers. |
| 77 | # |
| 78 | # RULE: [source addr][:source port],[dest addr][:dest port] |
| 79 | # Some examples: |
| 80 | # RULE=10.1.1.0/24:80 - all traffic for network 10.1.1.0 to port 80 |
| 81 | # will be shaped. |
| 82 | # RULE=10.2.2.5 - shaper works only for IP address 10.2.2.5 |
| 83 | # RULE=:25,10.2.2.128/25:5000 - all traffic from any address and port 25 to |
| 84 | # address 10.2.2.128 - 10.2.2.255 and port 5000 |
| 85 | # will be shaped. |
| 86 | # RULE=10.5.5.5:80, - shaper active only for traffic from port 80 of |
| 87 | # address 10.5.5.5 |
| 88 | # Multiple RULE fields per one config file are allowed. For example: |
| 89 | # RULE=10.1.1.2:80 |
| 90 | # RULE=10.1.1.2:25 |
| 91 | # RULE=10.1.1.2:110 |
| 92 | # |
| 93 | # *** ATTENTION!!! |
| 94 | # All shapers do work only for outgoing traffic! |
| 95 | # So, if you want to build bidirectional shaper you must set it up for |
| 96 | # both ethernet card. For example let's build shaper for our linux box like: |
| 97 | # |
| 98 | # --------- 192.168.1.1 |
| 99 | # BACKBONE -----eth0-| linux |-eth1------*[our client] |
| 100 | # --------- |
| 101 | # |
| 102 | # Let all traffic from backbone to client will be shaped at 28Kbit and |
| 103 | # traffic from client to backbone - at 128Kbit. We need two config files: |
| 104 | # |
| 105 | # ---8<-----/etc/sysconfig/cbq/cbq-28.client-out---- |
| 106 | # DEVICE=eth1,10Mbit,1Mbit |
| 107 | # RATE=28Kbit |
| 108 | # WEIGHT=2Kbit |
| 109 | # PRIO=5 |
| 110 | # RULE=192.168.1.1 |
| 111 | # ---8<--------------------------------------------- |
| 112 | # |
| 113 | # ---8<-----/etc/sysconfig/cbq/cbq-128.client-in---- |
| 114 | # DEVICE=eth0,10Mbit,1Mbit |
| 115 | # RATE=128Kbit |
| 116 | # WEIGHT=10Kbit |
| 117 | # PRIO=5 |
| 118 | # RULE=192.168.1.1, |
| 119 | # ---8<--------------------------------------------- |
| 120 | # ^pay attention to "," - this is source address! |
| 121 | # |
| 122 | # Enjoy. |