View previous topic :: View next topic |
Author |
Message |
klop n00b
Joined: 24 Jun 2007 Posts: 33
|
Posted: Wed Sep 05, 2007 1:54 pm Post subject: Помогите разобраться с iproute |
|
|
Есть сеть с маршрутизатором. На маршрутизаторе стоит iptables, который никого не пускает с наружи и все разрешает из локальной сети. С интернетом канал на 128Кб/с. Есть задачи (банк-клиенты), для которых хотелось бы выделить полосу в 32 Кб/с при их обращении к удаленному серверу. Т.е., когда все читают почту и смотрят новости в интернете все хорошо, но когда кто-то начинает качать с интернета банки просто тупо виснут (некоторые). В принципе решение задачи я так понял можно организовать с помщью iproute, документацию я почитал и сегодня вечером еще почитаю, но если это возможно хочется увидить пример решения данно задачи от человека, который в это разбирается (примера будет вполне достаточно для того чтобы разобраться что и как работает в данном случае). Теперь, как я вижу эту схему. Ставится приоритет на два компьютера (те с которых работают банк-клиенты), но на определенные сервисы и на определенные адреса удаленных серверов, т.к. есть банки стационарные, которые работают по фтп с разными портами и онлайн клинты, которые работаю из браузера. Общее правило для всех машин в сети на 1 месте (после банк-клиентов) почта, icq, http трафик, а потом все остальное. Вот если бы кто-то смог привести пример создания класов, фильтров ( желательно детально) был бы ему крайне благодарен. Документации по iproute буду так же рад. |
|
Back to top |
|
|
sa10 Apprentice
Joined: 20 Jan 2005 Posts: 251 Location: Canada
|
Posted: Wed Sep 05, 2007 2:57 pm Post subject: |
|
|
На gentoo-wiki есть нужная дока
русская на opennet с примерами скриптов, неплохой документ кажется на русском есть и на shorewall.net |
|
Back to top |
|
|
smk Tux's lil' helper
Joined: 31 May 2007 Posts: 80 Location: SPB
|
Posted: Thu Sep 06, 2007 9:17 am Post subject: |
|
|
Вроде iptables имеют и квоты и приоритетные очереди. Вроде видел что то подобное на linuxportal.ru . _________________ USE --force, Luke |
|
Back to top |
|
|
klop n00b
Joined: 24 Jun 2007 Posts: 33
|
Posted: Thu Sep 06, 2007 11:25 am Post subject: |
|
|
Хм, насчет iptables не уверен. А вот ссылки sa10 пригодились. Толком почитать еще не успел, но некоторая информация (не связанная с iproute) пригодилась. Спасибо за помощь, но вопросы чую еще будут. |
|
Back to top |
|
|
smk Tux's lil' helper
Joined: 31 May 2007 Posts: 80 Location: SPB
|
Posted: Thu Sep 06, 2007 12:11 pm Post subject: |
|
|
Ipatables имеет очень большие возможности. В том числе и лимитировать скорость. Вот конкрентый пример. Ниже пример по созданию правил по мак-адресам. http://www.opennet.ru/docs/RUS/iptables/#TABLE.LIMITMATCH _________________ USE --force, Luke |
|
Back to top |
|
|
sa10 Apprentice
Joined: 20 Jan 2005 Posts: 251 Location: Canada
|
Posted: Fri Sep 07, 2007 8:55 am Post subject: |
|
|
Там скорость ограничивается количеством пакетов в единицу времени.
К сожалению юзеры быстро учаться менять размер пакетов и такие лимиты вряд ли жизнеспособны .....
Достаточно просто и эфективно задача решается настройкой пулов задержки на squid, но это частичное решение
Продуктивнее вермя потратить на изучение iproute2 и дисциплин управления очередью, там все очень круто... |
|
Back to top |
|
|
klop n00b
Joined: 24 Jun 2007 Posts: 33
|
Posted: Fri Sep 07, 2007 9:19 am Post subject: |
|
|
По поводу лимитов хотел написать что-то похожее на пост sa10. Лимиты у меня и так работаю, но они общие на всю сеть на вход, выход и форвардинг. То что я прочитал про iproute мне очень понравилось - полность удовлетворяет мои потребности. Но, все нет времени заняться ей пплотную (хотя завтра суббота и будет время на практику). |
|
Back to top |
|
|
klop n00b
Joined: 24 Jun 2007 Posts: 33
|
Posted: Wed Oct 10, 2007 1:55 pm Post subject: |
|
|
Уф, познакомился я с iproute2 - честно говоря очень доволен, но хочу посоветоваться с людьми, которые лучше меня разбираются в маршрутизации. Такс вот вводные данные скорость канала 64/64. Как я писал выше мне требовалась ускорить работу банк-клиентов, вот что я наваял после прочтения документации.
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 54kbit ceil 54kbit burst 512
tc class add dev etho parent 1:1 classid 1:10 htb rate 32kbit ceil 54kbit
tc class add dev etho parent 1:1 classid 1:20 htb rate 15kbit ceil 54kbit
tc class add dev etho parent 1:1 classid 1:30 htb rate 7kbit ceil 54kbit
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 53 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 21 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 113 0xffff flowid 1:20
#Банки
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst xxx.xxx.xxx.xxx match ip dport xxx 0xffff flowid 1:10
......................
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 8080 0xffff flowid 1:20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 443 0xffff flowid 1:20
(хотя можно и забить)
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 25 0xffff flowid 1:30
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 110 0xffff flowid 1:30
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 995 0xffff flowid 1:30
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 465 0xffff flowid 1:20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 5190 0xffff flowid 1:20
Попрошу критики (аргументированной) - я все первый раз делал потому ошибки тут определенно есть. Меня интересует:
1. Насколько я прав с буфером интерфейса (хотя я понял его нуно проверять на практике - правда не знаю как).
2. Насколько я прав в скорости интерфейса ( я прочитал, что полезно срезать скорость на 25 процентов (хотя в примерах все резали не более чем на 14 процентов))
3. Насколько я прав раздаче трафика между службами.
4. Это все был исходящий трафик, а теперь меня интересует входящий, его тоже можно контролировать, как я понял (ingress), но только я не понял точно также: как и в случае egress или что-то меняется - напишите пожалуйста пример. Я человек тугой читаю все понятно, а когда мне надо писать нужно хоть мелкий пример и на его основе я уже напишу все что мне надо
Заранее всем благодарен, кто найдет в себе силы и желание помочь. |
|
Back to top |
|
|
klop n00b
Joined: 24 Jun 2007 Posts: 33
|
Posted: Wed Oct 10, 2007 1:57 pm Post subject: |
|
|
Да вот еще, что хотелось бы узнать, как замерить скорость канала в сторону инета и в обратную сторону. |
|
Back to top |
|
|
smk Tux's lil' helper
Joined: 31 May 2007 Posts: 80 Location: SPB
|
Posted: Thu Oct 11, 2007 11:24 am Post subject: |
|
|
Может не стоит заниматься мазохизмом? Ведь есть уже готовые решения, насколько рабочие не знаю, но вроде гемороя намного меньше...
Вот хотя бы http://www.opennet.ru/base/net/rshaper.txt.html _________________ USE --force, Luke |
|
Back to top |
|
|
klop n00b
Joined: 24 Jun 2007 Posts: 33
|
Posted: Mon Oct 15, 2007 12:06 pm Post subject: |
|
|
А в чем тут собственно сложность, мне например интересно - одно пока не радует (сейчас напишу, то что я спросил в ирке и никто ничего не ответил, впрочем, как и везде где я спрашивал):
/* вот я бы с большим удовольствием пообщался с человеком, который знает, как работает утилита tc и может мне объяснить в чем прикол от этих очередей, если мы не можем контролировать входящий трафик, так же, как и исходящий (имеется ввиду обычный компьютер, где весь трафик это входящий, а иходящего крохи).так как ingress бесклассовая дисциплина.*/
Вот то что я выше привер поидее можно смело было бы перекинуть на входящуюю дисциплину и толку было бы реально больше.
И еще никогда не поверю, что тут нет людей, которые не могли бы просветить немного по этому вопросу. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Fri Oct 19, 2007 7:19 am Post subject: |
|
|
Code: | tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 53 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 21 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 113 0xffff flowid 1:20
#Банки
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst xxx.xxx.xxx.xxx match ip dport xxx 0xffff flowid 1:10 |
здесь я бы запихнул ftp в самый низкоприоритетный клас и дал ему pfifo limit 100
Quote: | tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 5190 0xffff flowid 1:20 |
это интерактивный трафик, лучше имхо его пихнуть в класс 10
Quote: | tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 443 0xffff flowid 1:20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 465 0xffff flowid 1:20 |
здесь я полагаю, можно оставить как есть, но можно тогда добавить правило
# TCP ACK пакеты
tc filter add dev eth0 parent 1:0 protocol ip prio 0 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u16 0x0000 0xffc0 at 2 \
match u8 0x10 0xff at 33 flowid 1:10
это правило широко гуляет по инету =)
Quote: | tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 995 0xffff flowid 1:30 |
на самом деле, насколько я понимаю, почтовики отправляют письма по очереди и sfq тут не поможет никак, значит, надо поставить pfifo
и еще, наверное, стоит поставить класс повыше
хотя вопрос отнюдь не праздный: можно ли пихать трафик с разными дисциплинами в один класс? |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Fri Oct 19, 2007 8:02 am Post subject: |
|
|
слушай, а почему у тебя приоритет везде одинаковый? |
|
Back to top |
|
|
|