Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Помогите разобраться с iproute
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
klop
n00b
n00b


Joined: 24 Jun 2007
Posts: 33

PostPosted: Wed Sep 05, 2007 1:54 pm    Post subject: Помогите разобраться с iproute Reply with quote

Есть сеть с маршрутизатором. На маршрутизаторе стоит iptables, который никого не пускает с наружи и все разрешает из локальной сети. С интернетом канал на 128Кб/с. Есть задачи (банк-клиенты), для которых хотелось бы выделить полосу в 32 Кб/с при их обращении к удаленному серверу. Т.е., когда все читают почту и смотрят новости в интернете все хорошо, но когда кто-то начинает качать с интернета банки просто тупо виснут (некоторые). В принципе решение задачи я так понял можно организовать с помщью iproute, документацию я почитал и сегодня вечером еще почитаю, но если это возможно хочется увидить пример решения данно задачи от человека, который в это разбирается (примера будет вполне достаточно для того чтобы разобраться что и как работает в данном случае). Теперь, как я вижу эту схему. Ставится приоритет на два компьютера (те с которых работают банк-клиенты), но на определенные сервисы и на определенные адреса удаленных серверов, т.к. есть банки стационарные, которые работают по фтп с разными портами и онлайн клинты, которые работаю из браузера. Общее правило для всех машин в сети на 1 месте (после банк-клиентов) почта, icq, http трафик, а потом все остальное. Вот если бы кто-то смог привести пример создания класов, фильтров ( желательно детально) был бы ему крайне благодарен. Документации по iproute буду так же рад.
Back to top
View user's profile Send private message
sa10
Apprentice
Apprentice


Joined: 20 Jan 2005
Posts: 251
Location: Minsk

PostPosted: Wed Sep 05, 2007 2:57 pm    Post subject: Reply with quote

На gentoo-wiki есть нужная дока
русская на opennet с примерами скриптов, неплохой документ кажется на русском есть и на shorewall.net
Back to top
View user's profile Send private message
smk
Tux's lil' helper
Tux's lil' helper


Joined: 31 May 2007
Posts: 80
Location: SPB

PostPosted: Thu Sep 06, 2007 9:17 am    Post subject: Reply with quote

Вроде iptables имеют и квоты и приоритетные очереди. Вроде видел что то подобное на linuxportal.ru .
_________________
USE --force, Luke
Back to top
View user's profile Send private message
klop
n00b
n00b


Joined: 24 Jun 2007
Posts: 33

PostPosted: Thu Sep 06, 2007 11:25 am    Post subject: Reply with quote

Хм, насчет iptables не уверен. А вот ссылки sa10 пригодились. Толком почитать еще не успел, но некоторая информация (не связанная с iproute) пригодилась. Спасибо за помощь, но вопросы чую еще будут. :)
Back to top
View user's profile Send private message
smk
Tux's lil' helper
Tux's lil' helper


Joined: 31 May 2007
Posts: 80
Location: SPB

PostPosted: Thu Sep 06, 2007 12:11 pm    Post subject: Reply with quote

Ipatables имеет очень большие возможности. В том числе и лимитировать скорость. Вот конкрентый пример. Ниже пример по созданию правил по мак-адресам. http://www.opennet.ru/docs/RUS/iptables/#TABLE.LIMITMATCH
_________________
USE --force, Luke
Back to top
View user's profile Send private message
sa10
Apprentice
Apprentice


Joined: 20 Jan 2005
Posts: 251
Location: Minsk

PostPosted: Fri Sep 07, 2007 8:55 am    Post subject: Reply with quote

Quote:
ipatables имеет очень большие возможности. В том числе и лимитировать скорость. Вот конкрентый пример. Ниже пример по созданию правил по мак-адресам. http://www.opennet.ru/docs/RUS/iptables/#TABLE.LIMITMATCH

Там скорость ограничивается количеством пакетов в единицу времени.
К сожалению юзеры быстро учаться менять размер пакетов и такие лимиты вряд ли жизнеспособны .....
Достаточно просто и эфективно задача решается настройкой пулов задержки на squid, но это частичное решение
Продуктивнее вермя потратить на изучение iproute2 и дисциплин управления очередью, там все очень круто...
Back to top
View user's profile Send private message
klop
n00b
n00b


Joined: 24 Jun 2007
Posts: 33

PostPosted: Fri Sep 07, 2007 9:19 am    Post subject: Reply with quote

По поводу лимитов хотел написать что-то похожее на пост sa10. Лимиты у меня и так работаю, но они общие на всю сеть на вход, выход и форвардинг. То что я прочитал про iproute мне очень понравилось - полность удовлетворяет мои потребности. Но, все нет времени заняться ей пплотную (хотя завтра суббота и будет время на практику).
Back to top
View user's profile Send private message
klop
n00b
n00b


Joined: 24 Jun 2007
Posts: 33

PostPosted: Wed Oct 10, 2007 1:55 pm    Post subject: Reply with quote

Уф, познакомился я с 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
View user's profile Send private message
klop
n00b
n00b


Joined: 24 Jun 2007
Posts: 33

PostPosted: Wed Oct 10, 2007 1:57 pm    Post subject: Reply with quote

Да вот еще, что хотелось бы узнать, как замерить скорость канала в сторону инета и в обратную сторону.
Back to top
View user's profile Send private message
smk
Tux's lil' helper
Tux's lil' helper


Joined: 31 May 2007
Posts: 80
Location: SPB

PostPosted: Thu Oct 11, 2007 11:24 am    Post subject: Reply with quote

Может не стоит заниматься мазохизмом? Ведь есть уже готовые решения, насколько рабочие не знаю, но вроде гемороя намного меньше...
Вот хотя бы http://www.opennet.ru/base/net/rshaper.txt.html
_________________
USE --force, Luke
Back to top
View user's profile Send private message
klop
n00b
n00b


Joined: 24 Jun 2007
Posts: 33

PostPosted: Mon Oct 15, 2007 12:06 pm    Post subject: Reply with quote

А в чем тут собственно сложность, мне например интересно - одно пока не радует (сейчас напишу, то что я спросил в ирке и никто ничего не ответил, впрочем, как и везде где я спрашивал):
/* вот я бы с большим удовольствием пообщался с человеком, который знает, как работает утилита tc и может мне объяснить в чем прикол от этих очередей, если мы не можем контролировать входящий трафик, так же, как и исходящий (имеется ввиду обычный компьютер, где весь трафик это входящий, а иходящего крохи).так как ingress бесклассовая дисциплина.*/
Вот то что я выше привер поидее можно смело было бы перекинуть на входящуюю дисциплину и толку было бы реально больше.
И еще никогда не поверю, что тут нет людей, которые не могли бы просветить немного по этому вопросу.
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Fri Oct 19, 2007 7:19 am    Post subject: Reply with quote

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
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Fri Oct 19, 2007 8:02 am    Post subject: Reply with quote

слушай, а почему у тебя приоритет везде одинаковый?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum