Gemini 0 Posted 2005-03-28 14:30:37 Share Posted 2005-03-28 14:30:37 Здравствуйте! Помогите советом, пожалуйста! Есть роутер(FreeBSD 4.11 ppp/nat/ipfw ), для доступа в сеть провайдера (соответственно интернет и бесплатные локальные ресурсы провайдера) на котором установлен STG2. Собственно вопрос: Возможно ли каим либо образом локальный трафик, допустим из сети 10.0.0.0/8, не считать и вообще не заворачивать на коллектор Stargazera? Другими словами, снизить нагрузку на роутер(всмысле CPU), локальный таф. провайдера не считать, а интернет-траф. считать. Учет производиться не через divert. Пожалуйста, подкиньте идею... Link to post Share on other sites
Guest Guest_Дмитрий Posted 2005-03-28 19:37:53 Share Posted 2005-03-28 19:37:53 ipfw add divert <stg_port> all from any to not 10.0.0.0/8 via <iface> так должно получится. Link to post Share on other sites
canny 0 Posted 2005-03-29 03:28:34 Share Posted 2005-03-29 03:28:34 А что разве СТГ можно заставить не считать что-то? По-моему, он считает всё на интерфейсах, какие указаны (FreeBSD). Или нет? Link to post Share on other sites
Guest Guest_Дмитрий Posted 2005-03-29 05:06:59 Share Posted 2005-03-29 05:06:59 А что разве СТГ можно заставить не считать что-то? По-моему, он считает всё на интерфейсах, какие указаны (FreeBSD). Или нет? Через диверт можно считать только то, что нужно. 2Gemini: еще можно использовать такое правило как skipto. Link to post Share on other sites
Gemini 0 Posted 2005-03-29 07:50:16 Author Share Posted 2005-03-29 07:50:16 To Guest_Дмитрий: Спасибо. С дивертом STG у меня так и не поехал, решил всеже остановиться на подсчете с интерфейса. (считает нормально - я доволен) Очень заинтересовало skipto, если не затруднит, кинь линк где можно про это прочитать. Или как примерно выглядит это правило? Link to post Share on other sites
Guest Guest_Дмитрий Posted 2005-03-29 09:17:07 Share Posted 2005-03-29 09:17:07 Очень заинтересовало skipto, если не затруднит, кинь линк где можно про это прочитать. Или как примерно выглядит это правило? ipfw add skipto <номер правила> <правило, при котором производить прыжок> только если не через диверт считать, то оно не поможет. Я не знаю, как у тебя там всё устроено, но сам сделал бы следующим образом: скажем rl0 - это внутренний, а dc0 - внешний. 192.168.0.0/24 - твоя подсеть. 10.0.0.0/8 - б/п сети провайдера. # здесь перебрасываем всё, что от нас на 10.0.0.0/8 через подсчет ipfw add 100 skipto 999 ip from 192.168.0.0/24 to 10.0.0.0/8 # тоже самое, только обратно ipfw add 200 skipto 999 ip from 10.0.0.0/8 to me # этими правилами отсекаем траффик с серваком (.1), чтобы тоже не считался. ipfw add 300 allow ip from 192.168.0.0/24 to 192.168.0.1 ipfw add 400 allow ip from 192.168.0.1 to 192.168.0.0/24 ipfw add 500 allow ip from 192.168.0.0/24 to 192.168.24.255 # диверт на подсчет ipfw add 600 divert <stg> ip from any to any via rl0 # начиная с 1000 добавляем правила скриптом OnConnect в squid и на диверт, # скрипт примерно такой: # ipfw add `expr $id '*' 10 + 1000` fwd 127.0.0.1,3128 tcp from $ip to not me 80 # ipfw add `expr $id '*' 10 + 1001` divert <nat> ip from $ip to any out xmit dc0 # завершающее правило для NAT ipfw add 100000 divert <nat> ip from any to <адрес интерфейса dc0> in recv dc0 немного не уверен на счет правила 200 может быть еще один скипто from 10.0.0.0/8 to 192.168.0.0/24. Надо тестить, короче ;-) Ты кстати не сказал, ты не 10.0.0.0/8 диверт делаешь из 192.168.0.0/24 или это типа раутер. Link to post Share on other sites
Guest Guest_Дмитрий Posted 2005-03-29 09:58:25 Share Posted 2005-03-29 09:58:25 ошибся немного, должно быть ipfw add 500 allow ip from 192.168.0.0/24 to 192.168.0.255 Link to post Share on other sites
Gemini 0 Posted 2005-03-29 12:26:52 Author Share Posted 2005-03-29 12:26:52 Спасибо за ответ. Собственно, начиная с начала: у меня есть маленькая сетка(адреса 192.168.0.0/24). Есть роутер, который собственно маршрутизит в сетку к провайдеру, у которого есть бесплатные локальные ресурсы(10.0.0.0/8), с которых народ из моей сетки тоннами льет файло. Все бы ничего, но STG это дело обсчитывает и сильно грузит CPU - в результате пропускная способность падает до 1.5 Mb/s (при кильнутом Stg 3-3.5 Mb/s). Еще на этом роутере поднят кэширующий DNS Незнаю насколько корректно, посчет идет на внутреннем интерфейсе. xl0 - внешний xl1 - внутренний tun0 - тунельное устройство которое поднимает PPP на внешнем интерфейсе Правила ipfw: fwcmd='/sbin/ipfw -q' int_if="xl1" ext_if="tun0" ${fwcmd} -f flush ${fwcmd} add 100 divert natd ip from any to any via ${ext_if} ${fwcmd} add 300 allow ip from any to any via lo0 ${fwcmd} add 400 allow ip from any to any via ${int_if} ${fwcmd} add 500 allow udp from any to any 53 via ${ext_if} ${fwcmd} add 600 allow udp from any 53 to any via ${ext_if} ${fwcmd} add 700 allow tcp from any to any out xmit ${ext_if} setup ${fwcmd} add 800 allow tcp from any to any via ${ext_if} established ${fwcmd} add 900 reset log tcp from any to any 113 in recv ${ext_if} ###DC++ ${fwcmd} add 1000 allow tcp from any to 192.168.0.14 1414 via ${ext_if}# ${fwcmd} add 1100 allow tcp from any to 192.168.0.12 1412 via ${ext_if}# ${fwcmd} add 1200 allow tcp from any to 192.168.0.13 1413 via ${ext_if}# Можно ли в такой конфигурации сделать нечто подобное, что ты описал. Если всеже не возможно, то попытаюсь всетаки сделать через диверт... P.S. сразу оговорюсь: с фрей и ipfw общаюсь совсем недавно, поэтому, не бейте сильно. Link to post Share on other sites
XoRe 0 Posted 2005-03-29 12:42:39 Share Posted 2005-03-29 12:42:39 Подсчет на фре идет есл ине через диверт, то через устройство bpf. Туда все пакеты попадают ещё перед фаерволом. Поэтому со старым типом подсчета ты ничего не сможешь сделать. Могу посоветовать разнести по разным машинам файловый сервер и шлюз. Link to post Share on other sites
froggy 0 Posted 2005-03-29 18:35:43 Share Posted 2005-03-29 18:35:43 Собственно, начиная с начала: у меня есть маленькая сетка(адреса 192.168.0.0/24). Есть роутер, который собственно маршрутизит в сетку к провайдеру, у которого есть бесплатные локальные ресурсы(10.0.0.0/8), с которых народ из моей сетки тоннами льет файло. зарегистрировался -0 всё-таки я не понял, сеть 10.0.0.0/8 доступна через tun0 и ты делаешь aliasing адресов в нее или это просто раутер (xl0) и у прова твоя подсеть в таблице маршрутизации? Link to post Share on other sites
XoRe 0 Posted 2005-03-30 08:00:02 Share Posted 2005-03-30 08:00:02 В общем, если не через диверт, то как я уже написал, считается через устройство bpf. Ты, как админ можешь сделать с подсчетом пакетов на интерфейсе через устройство только 2 вещи: вкл подсчет пакетов на интерфейсе и выкл =)) Могу посоветовать воткнуть ещё одну сетевуху, чтоб локальный трафик клиенты через неё качали. И просто не указывать старгазеру считать трафик на ней. Если только так. Link to post Share on other sites
froggy 0 Posted 2005-03-30 12:50:31 Share Posted 2005-03-30 12:50:31 В общем, если не через диверт, то как я уже написал, считается через устройство bpf. Ты, как админ можешь сделать с подсчетом пакетов на интерфейсе через устройство только 2 вещи: вкл подсчет пакетов на интерфейсе и выкл =))Могу посоветовать воткнуть ещё одну сетевуху, чтоб локальный трафик клиенты через неё качали. И просто не указывать старгазеру считать трафик на ней. Если только так. Да зачем вторую сетевуху. пусть сделает через диверт на подобие той конфигурации, ктр я привел выше. смысл там в том, что пакеты, удовлетворяющие правилам 100 200 "прыгают" через подсчет, удовлетворяющие правилам 300 400 500 просто до 600 правила не доходят ибо прекращают свое движение по цепочке правил (man ipfw). кста, правило 200 (было проверено, работает) должно выглядить так: ipfw add 200 skipto 999 ip from 10.0.0.0/8 to 192.168.0.0/24. конечно, в случае с интерфейсом tun (предполагаю, что адрес выдается динамически) конструкция для NATа вида divert natd from $ip to any out xmit <внешний интерфейс> divert natd from any to <ip внешнего интерфейса> in recv <внешний интерфейс> непременима, тк ip заранее не известен, но можно что-нибудь придумать. Link to post Share on other sites
XoRe 0 Posted 2005-03-31 06:13:14 Share Posted 2005-03-31 06:13:14 froggy: Я писал, что можно сделать, если у человека старый тип подсчета. В этом случае пропустить какой-то трафик, не извращяясь, не возможно. Если он настроит подсчет через divert, то обход stargazer'а делается простой настройкой фаервола. Т.е. тут решение уже известно =) 2Gemini: Вывод такой: либо разносишь все по разным сетевухам/компам, либо делаешь подсчет через divert. Link to post Share on other sites
Gemini 0 Posted 2005-04-13 18:31:12 Author Share Posted 2005-04-13 18:31:12 Всем спасибо за внимание к моему вопросу. Сорри, что пропал. сессия знаете ли. Сейчас разгебу с экзаменами и возьмусь за Divert. Этот топик будет мне хорошим How To (может и не только мне). А Stg - просто суппер, не могу нарадоваться! Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now