Перейти к содержимому

Возможно ли определенный выд трафика пустить мимо


Рекомендованные сообщения

Здравствуйте!

Помогите советом, пожалуйста!

 

Есть роутер(FreeBSD 4.11 ppp/nat/ipfw ), для доступа в сеть провайдера (соответственно интернет и бесплатные локальные ресурсы провайдера) на котором установлен STG2.

 

Собственно вопрос: Возможно ли каим либо образом локальный трафик, допустим из сети 10.0.0.0/8, не считать и вообще не заворачивать на коллектор Stargazera?

Другими словами, снизить нагрузку на роутер(всмысле CPU), локальный таф. провайдера не считать, а интернет-траф. считать.

 

Учет производиться не через divert.

 

Пожалуйста, подкиньте идею...

Ссылка на сообщение
Поделиться на других сайтах
Гость Guest_Дмитрий
А что разве СТГ можно заставить не считать что-то? По-моему, он считает всё на интерфейсах, какие указаны (FreeBSD). Или нет?

Через диверт можно считать только то, что нужно.

 

2Gemini: еще можно использовать такое правило как skipto.

Ссылка на сообщение
Поделиться на других сайтах

To Guest_Дмитрий: Спасибо.

С дивертом STG у меня так и не поехал, решил всеже остановиться на подсчете с интерфейса. (считает нормально - я доволен)

Очень заинтересовало skipto, если не затруднит, кинь линк где можно про это прочитать. Или как примерно выглядит это правило?

Ссылка на сообщение
Поделиться на других сайтах
Гость Guest_Дмитрий

Очень заинтересовало 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 или это типа раутер.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответ.

Собственно, начиная с начала: у меня есть маленькая сетка(адреса 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 общаюсь совсем недавно, поэтому, не бейте сильно.

Ссылка на сообщение
Поделиться на других сайтах

Подсчет на фре идет есл ине через диверт, то через устройство bpf.

Туда все пакеты попадают ещё перед фаерволом.

Поэтому со старым типом подсчета ты ничего не сможешь сделать.

Могу посоветовать разнести по разным машинам файловый сервер и шлюз.

Ссылка на сообщение
Поделиться на других сайтах

Собственно, начиная с начала: у меня есть маленькая сетка(адреса 192.168.0.0/24). Есть роутер, который собственно  маршрутизит в сетку к провайдеру, у которого есть бесплатные локальные ресурсы(10.0.0.0/8),  с которых народ из моей сетки тоннами льет файло.

 

 

зарегистрировался -0

 

всё-таки я не понял,

сеть 10.0.0.0/8 доступна через tun0 и ты делаешь aliasing адресов в нее

 

или

 

это просто раутер (xl0) и у прова твоя подсеть в таблице маршрутизации?

Ссылка на сообщение
Поделиться на других сайтах

В общем, если не через диверт, то как я уже написал, считается через устройство bpf. Ты, как админ можешь сделать с подсчетом пакетов на интерфейсе через устройство только 2 вещи: вкл подсчет пакетов на интерфейсе и выкл =))

Могу посоветовать воткнуть ещё одну сетевуху, чтоб локальный трафик клиенты через неё качали.

И просто не указывать старгазеру считать трафик на ней.

Если только так.

Ссылка на сообщение
Поделиться на других сайтах
В общем, если не через диверт, то как я уже написал, считается через устройство 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 заранее не известен, но можно что-нибудь придумать.

Ссылка на сообщение
Поделиться на других сайтах

froggy:

Я писал, что можно сделать, если у человека старый тип подсчета.

В этом случае пропустить какой-то трафик, не извращяясь, не возможно.

 

Если он настроит подсчет через divert, то обход stargazer'а делается простой настройкой фаервола. Т.е. тут решение уже известно =)

 

2Gemini: Вывод такой: либо разносишь все по разным сетевухам/компам, либо делаешь подсчет через divert.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Всем спасибо за внимание к моему вопросу.

Сорри, что пропал. сессия знаете ли.

Сейчас разгебу с экзаменами и возьмусь за Divert.

Этот топик будет мне хорошим How To (может и не только мне).

 

А Stg - просто суппер, не могу нарадоваться!

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...