Re: Шейпер по ip-адресам.
11.03.2010 19:27, Amper пишет:
> Alexandr wrote:
>
>> Здравствуйте, уважаемые all.
>>
>> Вопрос вот в чем. Есть небольшая локалка, кот выходит в инет через
>> линукс шлюз.
>> На шлюзе стоит Slackware 13.0
>> Канал инета - 4Мб
>> Нужно канал нарезать им.Кому 256кб, кому 1 мб, и так далее, в
>> зависимости от ip-адреса.
>> Теорию почитал - изучать надо многа. пока сделаю , чтоб работало. А
>> сделать надо срочно( начальство неумолимо :-( )
>> Если кто занимался этим вопросом - выложите пожалуйста рабочие команды
>> , кот реализуют необходимые функции.Если возможно, то хотя бы с
>> минимальными комментариями.
>>
> Если в двух словах то нормально шейпить можно только исходящий из
> интерфейса траффик. Входящий же можно шейпить либо на интерфейсе, для
> которого он будет исходящий либо пропустив его через ifb или imq устройство.
>
> Вот простенький пример с ifb:
>
> # Поднимаем устройство
> ip li set ifb0 up
>
> # Перенаправляется так:
> tc qdisc del dev eth0 root
> tc qdisc del dev eth0 ingress
> tc filter add dev eth0 parent 1: protocol ip u32 match ip src \
> 0.0.0.0/0 action mirred egress redirect dev ifb0
> tc filter add dev eth0 parent ffff: protocol ip u32 match ip \
> dst 0.0.0.0/0 action mirred egress redirect dev ifb0
>
> # инициализируем дерево классов
> tc qdisc del dev ifb0 root
> tc qdisc add dev ifb0 root handle 1: htb
> tc class add dev ifb0 parent 1: classid 1:1 htb rate 2000mbit \
> quantum 65535
>
> # пользователь 1.1.1.1 - 256/256 kbit
> tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 256kbit
> tc filter add dev ifb0 parent 1: protocol ip u32 match ip dst 1.1.1.1 \
> flowid 1:10
> tc class add dev ifb0 parent 1:1 classid 1:15 htb rate 256kbit
> tc filter add dev ifb0 parent 1: protocol ip u32 match ip src 1.1.1.1 \
> flowid 1:15
>
> # пользователь 2.2.2.2 - мегабит входящий для пользователя, полмегабита
> # исходящего
> tc class add dev ifb0 parent 1:1 classid 1:20 htb rate 1mbit
> tc filter add dev ifb0 parent 1: protocol ip u32 match ip dst 2.2.2.2 \
> flowid 1:20
> tc class add dev ifb0 parent 1:1 classid 1:25 htb rate 512kbit
> tc filter add dev ifb0 parent 1: protocol ip u32 match ip src 2.2.2.2 \
> flowid 1:25
>
> # и так далее
>