The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Ограничение скорости"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Квоты, ограничения, QoS / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Ограничение скорости"  +/
Сообщение от nops email(ok) on 16-Июл-13, 09:04 
Всем доброго времени.

Обращаюсь к Вам знатоки.

Имею шлюз, на нем ipfw+pf.
pf фильтрует все что должно заходить снаружи, по IP и по портам
ipfw разруливает все остальное.

Есть подсеть 192.168.0.0/24 и из нее юзеры бегают в инет часть через проксю(с фильтрацией и запретами), а часть напрямую. Тут как бы все нормально и ничего нигде не подрезаю.

Появилась необходимость выделить небольшую подсеть 172.16.201.0/29 и загнать ее в трубу, при чем целиком, а не отдельно каждый IP.

Что было сделано.
В начале конфига ipfw приписан запуск скрипта, который перебивает pipe, вот его содержимое:
# cat pipe.sh
#!/bin/sh

f=/sbin/ipfw

${f} -f pipe flush

${f} pipe 1 config bw 1024Kbit/s

### Otdel_1
${f} pipe 2011 config bw 5Mbit/s
${f} pipe 2012 config bw 1Mbit/s

И трубы успешно созданы.
Далее я добиваю 2 таблицы, table 10 и  table 11, вот содержимое скрипта:
#!/bin/sh

##### Click #####
### NetMask 255.255.255.248 or /29
### Table 10 and 11

f=/sbin/ipfw

${f} table 10 add 172.16.201.2/32 2011
${f} table 11 add 172.16.201.2/32 2012

${f} table 10 add 172.16.201.3/32 2011
${f} table 11 add 172.16.201.3/32 2012

${f} table 10 add 172.16.201.4/32 2011
${f} table 11 add 172.16.201.4/32 2012

${f} table 10 add 172.16.201.5/32 2011
${f} table 11 add 172.16.201.5/32 2012

и получаю на выходе:
# ipfw table all list
---table(10)---
172.16.201.2/32 2011
172.16.201.3/32 2011
172.16.201.4/32 2011
172.16.201.5/32 2011
---table(11)---
172.16.201.2/32 2012
172.16.201.3/32 2012
172.16.201.4/32 2012
172.16.201.5/32 2012

Как бы без проблем.

Далее я в фаерволе прописываю правила:
${f} add 30010 pipe tablearg ip from table\(11\) to any
${f} add 30020 pipe tablearg ip from any to table\(10\)
И у меня входящая и исходящая режутся пополам от заявленного в трубе.

Порыскав на просторах интернета начитал, что нужно указать в правилах где исход, где вход.
Я не долго думая дописал:
${f} add 30010 pipe tablearg ip from table\(11\) to any out
${f} add 30020 pipe tablearg ip from any to table\(10\) in
и в итоге инета вообще нет.
в ipfw show мне показывет такую картину:
30010    7687   5883082 pipe tablearg ip from table(11) to any out
30020    0   0 pipe tablearg ip from any to table(10) in

Подскажите, что я делаю не так?
Нужно, чтобы юзеры из подсети 172.16.201.0/29 получали на всех отведенную ширину канала, а не каждый по 5 Мбит/сек.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Ограничение скорости"  +/
Сообщение от parad (ok) on 16-Июл-13, 17:34 
> Имею шлюз, на нем ipfw+pf.

какой смысл?

пс. дальше этой строчки не читал.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Ограничение скорости"  +/
Сообщение от VolanD (ok) on 17-Июл-13, 12:51 
>[оверквотинг удален]
> ${f} add 30020 pipe tablearg ip from any to table\(10\) in
> и в итоге инета вообще нет.
> в ipfw show мне показывет такую картину:
> 30010    7687   5883082 pipe tablearg ip from
> table(11) to any out
> 30020    0   0 pipe tablearg ip from
> any to table(10) in
> Подскажите, что я делаю не так?
> Нужно, чтобы юзеры из подсети 172.16.201.0/29 получали на всех отведенную ширину канала,
> а не каждый по 5 Мбит/сек.

А зачем вам два фаера то?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Ограничение скорости"  +/
Сообщение от nops email(ok) on 18-Июл-13, 07:42 
Отвечаю сразу обоим.
Так случилось, что с NATD я как-то не сдружился. Использовать ядерный нат тоже как-то не камильфо.
PF предоставляет широкие возможности в этом плане. Он натит мне исходящий трайик, плюс он разруливает весь трафик что приходит снаружи на сервер с фильтрацией по IPадресам и назначением правил согласно адресам.
IPFW разруливает все остальное.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Ограничение скорости"  +/
Сообщение от VolanD (ok) on 18-Июл-13, 08:00 
> Отвечаю сразу обоим.
> Так случилось, что с NATD я как-то не сдружился. Использовать ядерный нат
> тоже как-то не камильфо.
> PF предоставляет широкие возможности в этом плане. Он натит мне исходящий трайик,
> плюс он разруливает весь трафик что приходит снаружи на сервер с
> фильтрацией по IPадресам и назначением правил согласно адресам.
> IPFW разруливает все остальное.

А что остальное?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Ограничение скорости"  +/
Сообщение от parad (ok) on 18-Июл-13, 12:59 
а пф по твоему не в ядре живет и натит в юзерспейсе? и с чего это ядерный нат не комельфо?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Ограничение скорости"  +/
Сообщение от nops email(ok) on 18-Июл-13, 14:31 
> а пф по твоему не в ядре живет и натит в юзерспейсе?
> и с чего это ядерный нат не комельфо?

я не умею с ним работать. Как-то подсел на такую связку, привык и мне так стало удобно...
У меня много удаленных клеинтов на статике, много внутренних сервисов...

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Ограничение скорости"  +/
Сообщение от Miha (??) on 21-Июл-13, 13:06 
> а пф по твоему не в ядре живет и натит в юзерспейсе?
> и с чего это ядерный нат не комельфо?

А потому что нестандартные топологии\задачи ядерным натом крайне сложно реализовать.
Допустим, необходимо редиректить все запросы на UDP/TCP:53 от клиентов приватной сети в Инет на адрес, находящийся в ином сегменте сети, нежели роутер, например на адрес 8.8.8.8.
Тут простым fwd не обойтись, а прийдется извращаться с несколькими инстансами ната.
ipfw привлекает возможностью acl на интерфейсах и dummynet. ALTQ в PF - технологии прошлого века.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Ограничение скорости"  +/
Сообщение от parad (ok) on 21-Июл-13, 23:05 
1. если не хватает знания не ори что невозможно. прочитай про внутреннее устройство ipfw, как там живет нат . сравни с тем как это было раньше, когда гонялось через диверт сокеты в пользовательское пространство. и ты увидишь что разница незначительна и не существует ничего такого что реализуемо на натд и не реализуемо на ядерном нате. обратное не верно.
2. то что у тебя сделано с днс - истинное извращение( но даже оно реализуемо на ядерном - см выше ).
3. как можно говорить про технологии прошлого века и при этом гонять не ядерный нат?
4. что в altq и pf технологии из прошлого века и чем они хуже остальных?
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Ограничение скорости"  +/
Сообщение от Miha (??) on 22-Июл-13, 10:03 
>[оверквотинг удален]
> это было раньше, когда гонялось через диверт сокеты в пользовательское пространство.
> и ты увидишь что разница незначительна и не существует ничего такого
> что реализуемо на натд и не реализуемо на ядерном нате. обратное
> не верно.
> 2. то что у тебя сделано с днс - истинное извращение( но
> даже оно реализуемо на ядерном - см выше ).
> 3. как можно говорить про технологии прошлого века и при этом гонять
> не ядерный нат?
> 4. что в altq и pf технологии из прошлого века и чем
> они хуже остальных?

Невежа, ты сначала подумай, а потом пиши.
1)Я привел пример с ДНС, есть еще куча. А ну кинь сюда решение с ДНС я посмотрю ))
2)
> 3. как можно говорить про технологии прошлого века и при этом гонять
> не ядерный нат?

иди проспись. это где я сказал про неядерный нат. pf?, ipfw_nat?
3)я в отличии от тебя регулярно читаю списки рассылки, там уже давно проскакивали мысли о том, что бы заменить чем-то altq.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Ограничение скорости"  +/
Сообщение от parad (ok) on 22-Июл-13, 12:30 

> Невежа, ты сначала подумай, а потом пиши.
> 1)Я привел пример с ДНС, есть еще куча. А ну кинь сюда
> решение с ДНС я посмотрю ))

есть еще куча неверных примеров? знаю внутреннее устройство ипфв и пф. этого достаточно чтобы утверждать что не существует такой задачи, которая решалась бы натдом и не реашалась бы ядерным. все также можно обрабатывать пакеты как до ната так и после него. при этом правка правил будет незначительной.

> 2)
>> 3. как можно говорить про технологии прошлого века и при этом гонять
>> не ядерный нат?
>  иди проспись. это где я сказал про неядерный нат. pf?, ipfw_nat?

... бла ... тяжело решаемо ... неядерным ... бла ...

> 3)я в отличии от тебя регулярно читаю списки рассылки, там уже давно
> проскакивали мысли о том, что бы заменить чем-то altq.

- кто смотрит порно?
- тот у кого секса в жизни нет.

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

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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

8. "Ограничение скорости"  +/
Сообщение от Miha (??) on 21-Июл-13, 13:31 
>[оверквотинг удален]
> ${f} add 30020 pipe tablearg ip from any to table\(10\) in
> и в итоге инета вообще нет.
> в ipfw show мне показывет такую картину:
> 30010    7687   5883082 pipe tablearg ip from
> table(11) to any out
> 30020    0   0 pipe tablearg ip from
> any to table(10) in
> Подскажите, что я делаю не так?
> Нужно, чтобы юзеры из подсети 172.16.201.0/29 получали на всех отведенную ширину канала,
> а не каждый по 5 Мбит/сек.

Я бы вам рекомендовал сделать так: возложить задачи фильтрации и ната на PF, а резать\приоритизировать - ipfw.
В ipfw:
$cmd 100 skipto tablearg all from any to any in recv "table(10)"
$cmd 110 skipto tablearg all from any to any out xmit "table(11)"
$cmd 999 deny log all from any to any

В table(10):

# table with ifaces
# in
ipfw -fq table 10 flush
ipfw table 10 add em0 1000 # inner iface
ipfw table 10 add em1 2000 # public iface
ipfw table 10 add lo 9000
ipfw table 10 add .... 9000

В table(11):

# out
ipfw -fq table 11 flush
ipfw table 11 add em0 11000
ipfw table 11 add em1 12000
ipfw table 11 add lo 9000 # go to default rule - allow all
ipfw table 11 add .... 9000 # go to default rule - allow all

...
ipfw add 9000 allow all from any to any
ipfw rules with pipe/queue/etc...
...

Я "режу" на внешнем - upload, на внутреннем - download.
Покажу для download; никаких указаний дирекшинов уже не надо.
ipfw pipe 2 config bw 5000Kbit/s
ipfw add 11000 pipe 2 ip from any to _таблица_с_вашими_адресами_

По-аналогии на внешнем upload ...

И последнее, если вам чисто нарезка, то выставьте one_pass=1, если после пайпа вы разделяете трафик по приоритетам, то соответственно, one_pass=1 + корректировка привил.

Ну, как-то так...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Ограничение скорости"  +/
Сообщение от михалыч (ok) on 24-Июл-13, 18:38 
Я, так же думаю, что два фаера, в принципе, не криминал. ))
Такая схема, как говорится, имеет право быть.

> Я бы вам рекомендовал сделать так: возложить задачи фильтрации и ната на
> PF, а резать\приоритизировать - ipfw.

Именно такую схему, было время, сам реализовывал и как ни странно, работало.
Так что вы меня опередили, с рекомендацией.

> ipfw table 10 add em0 1000 # inner iface
> ipfw table 10 add em1 2000 # public iface
> ipfw table 10 add lo 9000

Упс, упустил, с какой версии стало можно добавлять интерфейс в таблицу. 9.1?
И чего можно реализовать с этим?

> Я "режу" на внешнем - upload, на внутреннем - download.

Как на внешнем? Там же нат?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру