IPFW. Ограничиваем ширину канала пользователю с помощью pipe

Как часто у нас возникала ситуация когда пользователь в сети загружал весь канал скачиванием какого-либо файла, либо качанием с торрентов. Как умерить аппетит пользователя и дать другим участникам сети возможность работать в интернете с нормальной скоростью? Кстати прочитать про то как посмотреть кто нагружает канал можно здесь: FreeBSD. Как посмотреть кто загружает канал

Либо ситуация когда необходимо поделить канал — например всем обычным пользователям четверть канала на всех, администрации все остальное.

Делать это будем на шлюзе с системой FreeBSD  с помощью ipfw используя такой замечательный инструмент как pipe.

Представим что у нас есть пользователь с IP 192.168.0.15, которому нужно ограничить скорость до 512 кбит/c.

Добавляем отдельный канал для пользователя в правила ipfw

ipfw pipe 7 config bw 512Kbit/s

где,

pipe 7 — номер вашего канала, ставите любой незанятый

Посмотреть список pipe в вашем файрволе, можно так : ipfw pipe show

config bw 512Kbit/s — устанавливается пропускная способность канала (можно использовать Mbit/s)

После того как мы создали отдельную трубу (pipe 7) с максимальной пропускной способностью 512кбит/с, добавляем правило, по которому весь трафик к пользователю с ip 192.168.0.15  будет заворачиваться туда

ipfw add pipe 7 ip from any to 192.168.0.15 out

Итого весь трафик для 192.168.0.15 будет проходить через трубу с максимальной пропускной способностью 512Кбит/с.

 

 

Комментарии
  • Спасибо, а как сделать ограничение на ширину канала для всех пользователей. но так чтобы скорость у всех была равная?

  • Правила pipe ipfw нумеруются от 1 до 65534. Поэтому если у вас имеется правило с номером 65534 (-100), то данный пример (ipfw add pipe 7 ip from any to 192.168.0.15 out) не будет работать, так как не указан номер правила.
    Более правильно было бы четко указать номер:
    ipfw add _НомерПравила_ pipe 7 ip from any to 192.168.0.15 out

Добавить комментарий

Ваш адрес email не будет опубликован.

Sidebar