Вопрос про shaping. Можно ли реализовать следущую схему? (Если да, то на чём лучше (Linux || BSD)?)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение 0xFF »

Код: Выделить всё

интернет---ADSL роутер---комп---комп1
                               \--[комп3....компN]
                                комп2

Есть канал безлимитный (64 Кбит/с). <комп1> и <комп2> подключены к <комп> напрямую, т.е. реализован NAT, пропускается только 2 компьютера по их IP. ADSL роутер имеет реальный IP адрес, соединение типа PPPoE, выполняет функцию DMZ для <комп>.
Можно ли реализовать следующие правила распределения трафика для этих 2-х компьютеров? Что для этого использовать? Какой дистрибутив лучше установить на <комп> (Linux || BSD)?:

1) При ((<комп1>&&(http||https||ftp||pop3||imap||smtp))&&(<комп2>&&(http||https||ftp||pop3||imap||smtp))) режем канал по 32 Кбит/с на каждого;
2) При ((<комп1>&&(http||https||ftp||pop3||imap||smtp))||(<комп2>&&(http||https||ftp||pop3||imap||smtp))) выделяем весь канал активному компу, но на псевдо-пассивном должна остаться возможность работы по протокоам icq и jabber. Можно конечно просто не резать трафик, но тогда второй клиент не может пробиться в аську или жаббер, дабы конкурирующий канал забит пакетами.
Спасибо сказали:
playnet
Сообщения: 373
Статус: изучающий
ОС: CentOS, FreeBSD

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение playnet »

0xFF писал(а):
24.12.2007 14:35

Код: Выделить всё

интернет---ADSL роутер---комп---комп1
                               \--[комп3....компN]
                                комп2

Да все равно.. Ту, что может поставить знакомый юниксоид )
Во фре управление полосами через ipfw+dummynet или pf+altq
в линухе тоже есть модуль какой-то. не помню какой.
Спасибо сказали:
Tokra
Сообщения: 399

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение Tokra »

0xFF писал(а):
24.12.2007 14:35

Код: Выделить всё

интернет---ADSL роутер---комп---комп1
                               \--[комп3....компN]
                                комп2

Есть канал безлимитный (64 Кбит/с). <комп1> и <комп2> подключены к <комп> напрямую, т.е. реализован NAT, пропускается только 2 компьютера по их IP. ADSL роутер имеет реальный IP адрес, соединение типа PPPoE, выполняет функцию DMZ для <комп>.
Можно ли реализовать следующие правила распределения трафика для этих 2-х компьютеров? Что для этого использовать? Какой дистрибутив лучше установить на <комп> (Linux || BSD)?:

1) При ((<комп1>&&(http||https||ftp||pop3||imap||smtp))&&(<комп2>&&(http||https||ftp||pop3||imap||smtp))) режем канал по 32 Кбит/с на каждого;
2) При ((<комп1>&&(http||https||ftp||pop3||imap||smtp))||(<комп2>&&(http||https||ftp||pop3||imap||smtp))) выделяем весь канал активному компу, но на псевдо-пассивном должна остаться возможность работы по протокоам icq и jabber. Можно конечно просто не резать трафик, но тогда второй клиент не может пробиться в аську или жаббер, дабы конкурирующий канал забит пакетами.

Под линухом, для управления трафиком, есть прога tc. Она входит в пакет iproute2. В нете, по этому поводу, куча всякого добра и откровенного мусора. Посоветую тебе копать в сторону HTB.init или CBQ.init.
В дебе есть shaperd. У нее достаточно понятный синтаксис. Есть примеры готовых файлов конфигурации. Посмотрите. Может вам подойдет.
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение 0xFF »

playnet писал(а):
25.12.2007 17:09

Хех, тут в районе я для всех знакомый юниксоид :)

Вопрос вобщем-то не "как?", а "что?" лучше использовать. Поставить... хоть Hurd, я и сам могу ;) Есть серверок, личный, исключительно для всякого рода экспериментов, решил вот прикоснуться к шейперам... Только времени пока мало для изучения различных вариантов реализации, поэтому прошу в помощи в выборе оптимального, под конкретную задачу :)
Мельком читал, что FreeBSD с шейпингом больше дружит, чем Linux.
ipfw+dummynet или pf+altq - это типа iproute2+(cbq||hbr) в Linux'е?
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение rm_ »

Тоже очень давно хочу поднять шейпер. Пока ничего дельного найти не смог. Попадаются либо километровые хауту, устаревшие в 2002'м, либо вот этот cbq.init, для которого не менее километровый конфиг нужно писать руками с нуля. А хотелось бы попроще что-нибудь. Есть WebCBQ, но он аргентинский и корявый ("Dobleclic show the wizard" - цитата из интерфейса). Неужели ничего кроме этого не придумано?

0xFF, Вас сложно читать, используйте побольше русского языка, и поменьше булевой математики в сообщениях. ;)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение sash-kan »

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение 0xFF »

Вобщем задача нашла свою реализацию :-) Вот ответы на возникшие у меня вопросы:
eth0
-- смотрит в инет, eth1 -- в локальную сеть.


Использовал:
cbq.init, т. к. в Debian'е есть уже пакет <shaper>, содержащий в себе ЭТО;
arno-iptables-firewall -- удобный обёртка для iptables, всегда о такой мечтал :) ;

Конфигурационные файлы:

Код: Выделить всё

server:/etc/shaper# cat cbq-009.ssh_internal
DEVICE=eth1,100Mbit,10Mbit
RATE=256Kbit
WEIGHT=16Kbit
RULE=:22,
PRIO=1
LEAF=sfq
Здесь о том, что нужно предоставить приоритетный доступ ssh во внутреннюю сеть.

Код: Выделить всё

server:/etc/shaper# cat cbq-010.out
DEVICE=eth0,10Mbit,1Mbit
RATE=112Kbit
WEIGHT=14Kbit
PRIO=5
LEAF=sfq
Ограничение общего исходящего в интернет трафика.

Код: Выделить всё

server:/etc/shaper# cat cbq-020.in
DEVICE=eth1,100Mbit,10Mbit
RATE=112Kbit
WEIGHT=14Kbit
PRIO=5
LEAF=sfq
Ограничение входящего. Значение 112 вместо 128 (у входящего тоже) -- это для того, чтобы не успевал заполняться буфер у провайдера, иначе весь шейпинг сходит на нет... провайдер ведь тоже анлимщиков шейпит :) т.е. получается ситуация, что при скачивании чего-нибудь даже в один поток, не могу посетить какой-либо сайт через браузер...

Код: Выделить всё

server:/etc/shaper# cat cbq-100.out-high_level
DEVICE=eth0
RATE=88Kbit
WEIGHT=8Kbit
PRIO=3
PARENT=010
LEAF=sfq
BOUNDED=no
RULE=:22
RULE=:53
RULE=:20
RULE=:21
RULE=:989
RULE=:990
RULE=:2121
RULE=:8021
Это приоритетный исходящий трафик, т.е. закачки закачками, а сёрфинг по WWW должнен быть. Тут ещё упоминание про FTP: человек, с которым делю трафик, частенько закачивает что-нибудь на шары, а у меня исходящий трафик используется лишь осликом, что не так критично, поэтому FTP в авторитете приоритете.

Код: Выделить всё

server:/etc/shaper# cat cbq-110.out-low_level
DEVICE=eth0
RATE=24Kbit
WEIGHT=2Kbit
PRIO=5
PARENT=010
LEAF=sfq
BOUNDED=no
RULE=0.0.0.0/0
Остальной исходящий трафик, имеющий малый приоритет.

Код: Выделить всё

server:/etc/shaper# cat cbq-200.in-high_level
DEVICE=eth1
RATE=88Kbit
WEIGHT=8Kbit
PRIO=3
PARENT=020
LEAF=sfq
BOUNDED=no
RULE=:53,
RULE=:80,
RULE=:443,
Входящий, с приоритетом на HTTP(S) и отклик на DNS.

Код: Выделить всё

server:/etc/shaper# cat cbq-210.in-low_level
DEVICE=eth1
RATE=24Kbit
WEIGHT=2Kbit
PRIO=5
PARENT=020
LEAF=sfq
BOUNDED=no
RULE=0.0.0.0/0,
Остальной низкоприоритетный входящий трафик.

Это всё лирика. Самая-то вкусность в том, что свободность канала распределяется на дочерние при необходимости, т.е. неиспользуемый высокоприоритетный трафик переходит низкоприоритетному, и мой ослик качает вовсю! :) Для этого в параметрах класса должно стоять LEAF=sfq и BOUNDED=no.
-------------------------------
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение 0xFF »

Остался ещё вопросик: как шейпить трафик, исходящий от сервера? :)
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение 0xFF »

Ой.. точнее входящий на сервер...
Спасибо сказали:
zkrvova
Сообщения: 280

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение zkrvova »

0xFF писал(а):
02.01.2008 12:41
Ой.. точнее входящий на сервер...


Сначала ответь на вопрос: Как можно когото заставить слать тебе данные с нужной тебе скоростью?

Ответ: никак!
Вывод: шейпить входящий трафик нельзя.

Если скажеш, что както можно, то значит так и можно шейпить входящий трафик.
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение 0xFF »

zkrvova писал(а):
02.01.2008 18:24
0xFF писал(а):
02.01.2008 12:41
Ой.. точнее входящий на сервер...


Сначала ответь на вопрос: Как можно когото заставить слать тебе данные с нужной тебе скоростью?

Ответ: никак!
Вывод: шейпить входящий трафик нельзя.

Если скажеш, что както можно, то значит так и можно шейпить входящий трафик.
Очевидных способов нет... но может интерфейс какой виртуальный промежуточный создать?.... неужели совсем никак нельзя? :unsure:
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение Olden Gremlin »

0xFF писал(а):
02.01.2008 12:41
Ой.. точнее входящий на сервер...

можно попробовать ингрес... но! есть небольшая проблема: все, что не успело пройти - тупо пропадает в никуда...
намного интересней и правильней навешивать симметричные правила для egress по входящим и исходящим интерфейсам: если что-то пришло с внутреннего интерфейса - оно уйдет с наружного и наоборот (мысль ясна?). тогда мы получаем полноценную очередь, чего не имеем в случае с ингресом :(
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение rm_ »

0xFF
Спасибо за информацию. На основе Ваших правил, наконец-то (кажется) настроил CBQ и у себя. :)

Что изменил:
1) У Вас есть файл cbq-009.ssh-internal.
А у меня, шлюз не только предоставляет SSH-доступ внутренним юзерам, но и вообще, сам, загружается из этой сети (Root over NFS).
Поэтому, сделал cbq-030.local-out, и там написал:

Код: Выделить всё

DEVICE=интерфейс_в_локальную_сеть,100Mbit,10Mbit
RATE=100Mbit
WEIGHT=10Mbit
RULE=внутренний_IP_сервера,
PRIO=5
LEAF=sfq

Проверил - работает. Если RATE занизить до нескольких мегабит, ping -f начинает пинговать не быстрее, чем указанное кол-во мегабит.
Без этого правила, весь исходящий трафик сервера зарезается скоростью, указанной в cbq-020.in. А система, которая не может записывать на свою корневую ФС быстрее, чем 250 килобит/сек, не очень-то шустра. :)

2) У Вас только high-level и low-level. Я сделал ещё уровень "general" (PRIO=5). В general перенёс то, что у вас в low, т.е. "весь трафик".
А в моём "low" (PRIO=7) - только список портов, на которых работает Торрент-клиент. Может быть добавлю ещё что-нибудь туда, со временем.
Таким образом получаем разделение трафика на "высокоприоритетный (прописанный вручную)", "низкоприоритетный (тоже прописанный вручную)", и "весь остальной".
Плюс в том, что при установке новой сетевой игры (к примеру), не нужно выискивать, какими портами она пользуется, чтобы прописать их в "high" и таким образом дать ей преимущество над торрентами. Трафик игры сам, автоматом пойдёт в "general", где ему не будут мешать находящиеся в "low" торренты.
Спасибо сказали:
Bad_Block
Сообщения: 13
ОС: Gentoo 2005.1

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение Bad_Block »

Есть еще вариант, юзать Mikrotik в нем все это гораздо проще реализовано и причем все документировано, а вообще неплохой мануал по теории действия шейпера как раз реализовывается все это дело на микротике Ссылка
Software is like sex but better when it's for free. Copyright Torvalds
Спасибо сказали:
uaradio
Сообщения: 16
ОС: Debian

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение uaradio »

У меня так и не получилось ограничить исходящий трафик в интернет ... использую АДСЛ интернет , интерфейс ppp0
Спасибо сказали:
Аватара пользователя
isvroot
Сообщения: 31
ОС: Windows Vista

Re: Вопрос про shaping. Можно ли реализовать следущую схему?

Сообщение isvroot »

rm_ писал(а):
25.12.2007 20:25
Тоже очень давно хочу поднять шейпер. Пока ничего дельного найти не смог. Попадаются либо километровые хауту, устаревшие в 2002'м, либо вот этот cbq.init, для которого не менее километровый конфиг нужно писать руками с нуля. А хотелось бы попроще что-нибудь. Есть WebCBQ, но он аргентинский и корявый ("Dobleclic show the wizard" - цитата из интерфейса). Неужели ничего кроме этого не придумано?

0xFF, Вас сложно читать, используйте побольше русского языка, и поменьше булевой математики в сообщениях. ;)

Ставим с репоpитория shaper, и никаких километровых конфигов руками писать не нужно, после того как установлен пакет читаем README и пишем пo примеру файлик /etc/shaper/cbq???.<name>
и работаем с процесом /etc/init.d/shaper restart|start|stop
Windows жжёт
Спасибо сказали: