Sávszélesség korlátozása Debian Linuxszal

Alkalmanként szükség van a sávszélesség korlátozására - tipikusan internetszolgáltatók számára.
Erre nyújt lehetséges megoldást a Shaperd nevű csomag Debian rendszeren.
Telepítés:
apt-get install shaperd
A telepítést követően figyelmeztet, hogy nincs beállítva a program és a /usr/share/doc/shaperd/examples/ könyvtár tartalmát felhasználva létrehozhatsz konfig fájlt.

A következő példa egy scriptből való, ami a /etc/shaperd/shaperd.conf generálására szolgált:

class $ip_address {


    bandwidth =  $up_speed byte/s


    ipv4 classifier out_if=eth0 saddr=$ip_address


    queue limits = 100 kb 1000 packets


}


class $ip_address {


    bandwidth =  $down_speed byte/s


    ipv4 classifier inp_if=eth0 daddr=$ip_address


    queue limits = 100 kb 1000 packets


}

A leírtak magukért beszélnek, csak néhány részletet említenék meg:

  • out_if - hálózati interfész a csomagok OUTPUT oldalán
  • inp_if - hálózati interfész a csomagok INPUT oldalán
  • saddr - forrás IP cím
  • daddr - cél IP cím

Lehetőség van protokoll , sőt port szinten szabályozni a forgalmat. A fent említett könyvtárban a konfigurációs példák adnak segítséget ennek beállításához.
A sávszélesség korlátozásához szükség van arra, hogy IPTABLES tűzfal szabályokkal a megfelelő forgalmat a queue táblába irányítsuk.
A követező tűzfal szabályok a megadott IP cím forgalmát irányítják a queue táblába, valamint a megadott IP - MAC párosnak engedélyezik a forgalmat a FORWARD láncon:

iptables -t filter -A FORWARD -s $ip_address  -j QUEUE


iptables -t filter -A FORWARD -d $ip_address  -j QUEUE


iptables -I FORWARD -s $ip_address -m mac --mac-source $mac_address -j ACCEPT


A queue lánc használatához be kell tölteni az ip_queue modult, valamint a dependenciáit:
modprobe ip_queue


depmod -a
Nem marad más hátra, csak  elindítani a shapert daemont:

/etc/init.d/shaperd start

Várom a visszajelzéseket!