Jump to content

Recommended Posts

Posted

Господа, есть задача в раздельном шейпинге на разные сети. Скажем есть локальная и внешняя сети.

 

Так вот необходимо шейпить например адреса 10.0.0.0/8 и 192.168.0.0/16 в одну полосу, а все остальное в другую. К сожалению на роутере который шейпит эти сети находятся на одном интерфейсе, соотв просто зашейпить интерфейс нельзя.

 

Я понял что это можно сделать таким образом:

Маркировать пакеты через iptables и потом отлавливая их уже tc filter разкладывать по классам шейпера.

 

Единственная проблема в конкретной реализации. То есть не хватает банального примера комманд для того чтобы понять.

То есть как мне марикровать пакеты iptables и как их потом фильтром отлавливать.

 

Возможно существуют и другие способы решить эту задачу - буду рад советам.

 

Заранее спасибо за ваши ответы.

Posted

Ссылка которая в часнсти - это банальный шейпинг при помощи tc. Здесь все совершенно ясно и вопрос был не в этом.

 

Вопрос был в том как маркировать пакеты iptables и после этого их фильтрами загонять в классы htb например.

Posted

iptables -t mangle -I OUTPUT -o eth1 -d 194.67.57.50 -p tcp --dport 80 -j MARK --set-mark 10

Ну а потом

tc class add dev eth1 parent 1:1 classid 1:10 htb rate 3kbps ceil 3kbps prio 0

Posted

Гость, Я бы добавил

/sbin/tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10

/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 10 fw flowid 1:10

Dark_Angel, не надо ленится, надо вдумчиво изучать доки, разжевывать на форумах это неблагодарное занятие.

 

Вот вам пример куска рабочего скрипта, который сможете адаптировать под себя.

 

 

iptables -v -t mangle -F MYSHAPER-OUT

 

iptables -v -t mangle -N MYSHAPER-OUT

 

iptables -v -t mangle -I POSTROUTING -o $OUT_DEV -j MYSHAPER-OUT

 

/sbin/tc qdisc del dev $OUT_DEV root

 

/sbin/tc class add dev $OUT_DEV parent 1: classid 1:1 htb rate 10Mbit

/sbin/tc qdisc add dev $OUT_DEV root handle 1 htb default 30 r2q 100

 

/sbin/tc class add dev $OUT_DEV parent 1:1 classid 1:21 htb rate 8kbit ceil 10kbit prio 0

/sbin/tc qdisc add dev $OUT_DEV parent 1:21 handle 21: sfq perturb 10

/sbin/tc filter add dev $OUT_DEV parent 1:0 protocol ip prio 0 handle 21 fw flowid 1:21

 

/usr/sbin/iptables -v -t mangle -A MYSHAPER-OUT -p all -d $CLIENT_IP -j MARK --set-mark 21

Posted

2IbZ: Спасибо большое за подробную инструкцию. Ноу меня вопрос. Вот в последнем примере и класс и хендл который ставится и марк ровняются 21, а если у меня марк будет другой, то мне надо будет везде кроме classid поставить номер марка?

 

И еще: есть ли необходимость создавать второй qdisc на устройство? Или можно обойтись и одним qdisc?

 

Заранее спасибо за ответы.

Posted

Вот самый простой способ зажать траффик:

Тут у нас xxx.xxx.xx.xxx и xxx.xxx.xx.yy получают цыра 3 k а еира 6 k

 

ipt_cmd -t mangle -I OUTPUT -o eth1 -d xx.xx.xx.xx -j MARK --set-mark 10

ipt_cmd -t mangle -I OUTPUT -o eth1 -d xx.xx.xx.yy -j MARK --set-mark 11

 

#дисциплина очереди

tc qdisc add dev eth1 root handle 1: htb

#главный класс

tc class add dev eth1 parent 1: classid 1:1 htb rate 6kbps ceil 6kbps

#дочерние классы

tc class add dev eth1 parent 1:1 classid 1:10 htb rate 3kbps ceil 6kbps prio 0

tc class add dev eth1 parent 1:1 classid 1:11 htb rate 3kbps ceil 6kbps prio 0

#фильтр

tc filter add dev eth1 protocol ip handle 10 parent 1:0 prio 0 fw flowid 1:10

tc filter add dev eth1 protocol ip handle 11 parent 1:0 prio 0 fw flowid 1:11

 

Вот еще почитай:

http://lartc.org/howto/lartc.cookbook.ulti...tc.html#AEN2241

http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.