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
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!