Страница 1 из 1

ipfw, dummynet, natd

Добавлено: 2008-11-27 12:03:10
Summoner
Добрый день.
Недавно стала необходимость настроить сервер с шейпером трафика... Использование прокси забраковали сразу(Начальство)... По памяти вспомнил что можно реализовать через DUMMYNET.... Написал небольшой списко правил для фаервола:

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

#!/bin/sh
fwcmd='/sbin/ipfw -q'
home_net='10.0.0.0/24'
user='10.0.0'

user_ports='80,21,25,110,443,53'
inet_ports='80,21,25,110,443,53'
out='tun0'
net='rl1'

${fwcmd} -f flush
${fwcmd} -f pipe flush
${fwcmd} -f queue flush

${fwcmd} add 100 check-state
${fwcmd} add 300 allow ip from any to any via lo
${fwcmd} add 310 allow ip from me to any keep-state
${fwcmd} add 320 allow ip from any to me ${inet_ports} via ${out} keep-state
${fwcmd} add 400 allow tcp from any to me ${user_ports} via ${net} keep-state
#
${fwcmd} add 530 divert natd ip from ${net} to any out via ${out}
${fwcmd} add 540 divert natd ip from any to me in via ${out}
#
${fwcmd} add 600 deny ip from 10.0.0.0/8 to any out via ${out}
${fwcmd} add 610 deny ip from 172.16.0.0/12 to any out via ${out}
${fwcmd} add 620 deny ip from 192.168.0.0/16 to any out via ${out}
#
${fwcmd} pipe 7002 config bw 128Kbit/s
${fwcmd} pipe 8002 config bw 128Kbit/s
${fwcmd} add 7002 pipe 7002 ip from any to ${user}.2 in via ${net}
${fwcmd} add 8002 pipe 8002 ip from ${user}.2 to any out via ${net} limit src-addr 20
#
${fwcmd} pipe 7003 config bw 64Kbit/s
${fwcmd} pipe 8003 config bw 64Kbit/s
${fwcmd} add 7003 pipe 7003 ip from any to ${user}.3 in via ${net}
${fwcmd} add 8003 pipe 8003 ip from ${user}.3 to any out via ${net} limit src-addr 20

${fwcmd} add 50000 deny ip from any to any
Хотелось бы узнать ваше мнение.... все ли правила составлены правильно... не допустил ли я серьезных ошибок при составлении правил...
Заранее благодарен.

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 12:41:05
dikens3
Summoner писал(а):Добрый день.
Недавно стала необходимость настроить сервер с шейпером трафика... Использование прокси забраковали сразу(Начальство)...
Однако это решать тому, кто реализует, а не командует.
И чем прокси не устроила можно поинтересоваться?
Summoner писал(а):все ли правила составлены правильно... не допустил ли я серьезных ошибок при составлении правил...
Попробуй, тут немногие этим занимаются.

Вот тебе в помощь ссылка:
http://www.nag.ru/2005/1106/1106.shtml

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 12:48:48
Summoner
И чем прокси не устроила можно поинтересоваться?
Хм... во первых начальство не сможет играть в линейку... а во вторых часть софт(Спицефического) изначально не может работать с проксей.... приходиться ставить и настраивать FreeCup и ему подобные...

За ссылку спосибо :)

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 13:55:10
silver001
Pipe-ы, по-моему лучше писать до 100-го правила, по крайней мере до divert-а. В pipe также лучше не включать внутреннюю сетку, а то скорость скачки с интернета и локалки будет одинаковой. Еще скажу, что pipe_ы нормально работают при малом числе подключений, у меня при числе подключений больше 20 и-нет просто повисал у всех, канал, правда тоже был маленький, но в принципе такого быть не должно. Вообще, я бы сначала данный конфиг обкатал на рабочей сети без pipe-ов, а потом просто бы добавил правила с pipe-ами и смотрел результат.

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 14:13:49
hizel
интересно, а дружат ли pipe и keep-state правила :/

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 14:50:16
Summoner

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

В pipe также лучше не включать внутреннюю сетку, а то скорость скачки с интернета и локалки будет одинаковой.
Недумаю... это правила должно сработать раньше pipe'ов.... поидее.... и тем самым открыть пустить тарфик на прямую к серверу без пайпов.... (Сеть одноранговая)

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

${fwcmd} add 400 allow tcp from any to me ${user_ports} via ${net} keep-state
Еще скажу, что pipe_ы нормально работают при малом числе подключений, у меня при числе подключений больше 20 и-нет просто повисал у всех, канал, правда тоже был маленький, но в принципе такого быть не должно.
Вот тут скажу точное что 20-30 не проблема и работают весьма шустро... а вот 50-100 лучше задуматься о биленге
Вообще, я бы сначала данный конфиг обкатал на рабочей сети без pipe-ов, а потом просто бы добавил правила с pipe-ами и смотрел результат.
Это я сделал общею схему... сейчас просто работаю удаленно поэтому тестировать нерескую....

А вообще каким образом лучше всего организовать небольшой биллинг (Сейчас машин 12+ 4 ноута)... (Но уже было арендовано дополнительное помещение так что машин будет становиться больше...)
интересно, а дружат ли pipe и keep-state правила :/
Думаю что-то типо такого можно сделать:

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

${fwcmd} add 7002 pipe 7002 ip from any to ${user}.2 in via ${net} keep-state

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 18:08:21
silver001
А вообще каким образом лучше всего организовать небольшой биллинг (Сейчас машин 12+ 4 ноута).

Можно сделать на основе trafd+perl script. Trafd считает траффик, скрипт добавляет правила в фаерволл при превышении, cron-ом запускаем trafd и perl-script. От самых хитрых не спасет, но для офиса потянет. Главное, баз никаких не надо ставить и считает практически все с интерфейса.

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 18:13:56
paradox
если канал анлимит
то невижу смысла и считать
а если нужна надежность
толучше уже mpd - pppoe/pptp

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 19:04:02
Summoner
толучше уже mpd - pppoe/pptp
А где можно почитать на эту тему? Желательно с наглядным примером.... а в mpd можно поставить шейпер?
И вообще интересно было бы с этим разрбраться :)

Re: ipfw, dummynet, natd

Добавлено: 2008-11-27 19:06:50
paradox
шейпер вообще то ставиться отдельно
не ну есть конечно извращенцы которые тулят в Mpd и ldap и шейпер и биллинг

почитать
на форуме тысщу раз обсуждалось

Re: ipfw, dummynet, natd

Добавлено: 2008-11-28 15:47:33
neyro
Summoner писал(а):
И чем прокси не устроила можно поинтересоваться?
Хм... во первых начальство не сможет играть в линейку... а во вторых часть софт(Спицефического) изначально не может работать с проксей.... приходиться ставить и настраивать FreeCup и ему подобные...

За ссылку спосибо :)
Никто не заставляет все порты на проксю заворачивать...только 80 и 8080(в прозрачном режиме)..больше не нужно.

Re: ipfw, dummynet, natd

Добавлено: 2008-11-28 18:46:58
Summoner
Никто не заставляет все порты на проксю заворачивать...только 80 и 8080(в прозрачном режиме)..больше не нужно.
Тоже так думал... но вот с p2p както бороться надо