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!




szsz692012-03-09 12:15:06
Ha az iptablesbe beírtam a FORWARD sorokat, nincs internet, függetlenül a shaperd beállításoktól. Hogy lehet a QUEUE -t elérni?
Kiss Péter2012-03-13 15:04:47
cat /proc/net/ip_queue A modul be van töltve? depomd is volt?

Új hozzászólás: