Всем здрасвуйте!
Задача:
Есть роутер на базе Linux,
к eth0(10.10.0.1) подключен свич через который в инет ходит две клиентских машины(10.10.0.2 и 10.10.0.5)
к eth1(192.168.1.2) подключен ADSL(192.168.1.1) модем который тоже настроен роутером
Нужно между клиентами разделить канал поровну.При решении задачи пробовал использовать tc из пакета iproute2, утилита мне не знакома и показалась более тяжелой для освоения чем например iptables
Все советы которые нашел гугл делят канал для разных портов но не клиентов, поэтому самостоятельно решить не удалось.
Буду благодарен за советы.
tc qdisc add dev eth1 root handle 1: htb default 30
tc class add dev eth1 parent 1: classid 1:1 htb rate 8mbit ceil 8mbit
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 2mbit ceil 8mbit
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 2mbit ceil 8mbit
tc class add dev eth1 parent 1:1 classid 1:30 htb rate 4mbit ceil 8mbittc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10tc filter add dev eth1 parent 1: protocol ip prio 1 u32 match ip src 10.10.0.2 flowid 1:10
tc filter add dev eth1 parent 1: protocol ip prio 2 u32 match ip src 10.10.0.5 flowid 1:20писал по памяти
в результате будет гарантированная (ИСХОДЯЩАЯ!!!) скорость в 2 мбита для обоих клиентов и 4 мбита для всех прочих. при этом, если полоса по любому из классов простаивает (не используется на полную), то остатки могут быть перераспределены между другими классами (пропорционально rate)
если я все правильно понял то если я добавлю
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip dst 10.10.0.2 flowid 1:10
tc filter add dev eth0 parent 1: protocol ip prio 2 u32 match ip dst 10.10.0.5 flowid 1:20то тоже самое произойдет с входящим. Так?
>если я все правильно понял то если я добавлю
>tc filter add dev eth0 parent 1: protocol ip prio 1 u32
>match ip dst 10.10.0.2 flowid 1:10
>tc filter add dev eth0 parent 1: protocol ip prio 2 u32
>match ip dst 10.10.0.5 flowid 1:20
>
>то тоже самое произойдет с входящим. Так?Ниче не понял - судя по всему eth1 смотрит наружу и я так понимаю действует NAT. Тогда правила касательно eth1 не заматчат ни одного пакета, так как в них уже будет измененный ip src. Зато как вариант поставить в iptables на эти пакеты метку, и матчить ее в фильтре. А на eth0 можно и по айпи.
>Задача:
>Есть роутер на базе Linux,
>Нужно между клиентами разделить канал поровну.поставь htb.init - это скрипт-обертка над tc и ip - http://sourceforge.net/projects/htbinit/.
все легко и просто, дока и примеры в начале самого скрипта.