есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 - в интернет. Хочу с помощью ipfw подсчитать трафик, на каждую машину, но при этом если пользователи скачивают информацию с нашего сервера, то это не учитывать. Помоги начинающему разобраться, а то прочитал много, но ни чего не понял.
Если я не ошибаюсь, то придётся для каждой машины прописывать разрешения.
>Если я не ошибаюсь, то придётся для каждой машины прописывать разрешения.
>да это я уже сделал, но мне нужно, чтобы не учитывался трафик, который идет с сервера, т.е. на сервере есть сайт, чтобы когда его просматривал локальный пользователь ему трафик не защитывался.
Так правила описывают связь между внешним интерфейсом и внутренним. А всё что бегает внутри учитываться не будет.(если не захочешь)
>Так правила описывают связь между внешним интерфейсом и внутренним. А всё что
>бегает внутри учитываться не будет.(если не захочешь)Может приведешь пример, а то у меня учитывается.
если пишу ipfw add count all from any to номер машины via rl0, то счетчик постоянно пустой, а если
ipfw add count all from any to номер машины via rl1, то учитывается все...
Я думаю так. На каждую машину пишешь
ipfw add allow ip from <внеш адрес> <порты> to внутр адр/32
ipfw add allow ip from внутр адр/32 <порты> to <внеш адрес>Хотя сам засомневался. Скорее всего работать не будет, т.к. NAT переворачивает адреса. Напиши про результат.
>Я думаю так. На каждую машину пишешь
>ipfw add allow ip from <внеш адрес> <порты> to внутр адр/32
>ipfw add allow ip from внутр адр/32 <порты> to <внеш адрес>
>
>Хотя сам засомневался. Скорее всего работать не будет, т.к. NAT переворачивает адреса.
>Напиши про результат.у меня уже есть ipfw add allow from any to внут. адрес.
И так для всех машин, но это учитывает все, а теперь мне нужно узнать сколько пользователь реально насидел в интернете. А то получаются большие числа из-за того, что многие скачивают с нашего ftp, а мне это не нужно. Может как-нибудь разницу считать, но я не знаю как это все задать в правилах.
Пропробуй поставить еще правила для локатьной машинки, то есть:
ipfw add XXX count from any to your-local-machine
ipfw add XXY count from your-local-machine to anyЛибо вместо any твою подсетку... Избыточно, но верно...
На мой взгляд самое толковое решение - реализовать данную задачу через 2 машины, на одной ( 1-ой ) прописать все сетевые роутинги и поднять необходимые ресурсы, а на другую ( 2-ую ) направлять только запросы не сроученные на первом сервере. Это скажется грамотно на подсчёте трафика ( не будет попадать локальны
>На мой взгляд самое толковое решение - реализовать данную задачу через 2
>машины, на одной ( 1-ой ) прописать все сетевые роутинги и
>поднять необходимые ресурсы, а на другую ( 2-ую ) направлять только
>запросы не сроученные на первом сервере. Это скажется грамотно на подсчёте
>трафика ( не будет попадать локальны
А нельзя это как-нибудь подробней описать, как это все реализовать, или может ссылку дашь?
>Пропробуй поставить еще правила для локатьной машинки, то есть:
>ipfw add XXX count from any to your-local-machine
>ipfw add XXY count from your-local-machine to any
>
>Либо вместо any твою подсетку... Избыточно, но верно...
Да такие правила уже есть, на них я и заметил, что лишнего считается... Когда начал скачивать с сервера 200 меговый файл.
>Да такие правила уже есть, на них я и заметил, что лишнего
>считается... Когда начал скачивать с сервера 200 меговый файл.Да нет, дело в том, что у тебя еще есть правила для каждого IP'шника:
ipfw XXX3 count from Your-IP to any
ipfw XXX4 count from any to Your-IPЕсли я не ошибаюсь, то каждый count считает только для себя и если до него стоят тоже count's, то траффик повторно не включается... То есть делаешь так:
ipfw XXX1 count from any to your-local-machine
ipfw XXЧ2 count from your-local-machine to any
ipfw XXX3 count from Your-IP to any
ipfw XXX4 count from any to Your-IPПервые будут считать локалный трафик, который в правила ХХХ3,4 включаться не будет!!!
>>Да такие правила уже есть, на них я и заметил, что лишнего
>>считается... Когда начал скачивать с сервера 200 меговый файл.
>
>Да нет, дело в том, что у тебя еще есть правила для
>каждого IP'шника:
>ipfw XXX3 count from Your-IP to any
>ipfw XXX4 count from any to Your-IP
>
>Если я не ошибаюсь, то каждый count считает только для себя и
>если до него стоят тоже count's, то траффик повторно не включается...
>То есть делаешь так:
>
>ipfw XXX1 count from any to your-local-machine
>ipfw XXЧ2 count from your-local-machine to any
>ipfw XXX3 count from Your-IP to any
>ipfw XXX4 count from any to Your-IP
>
>Первые будут считать локалный трафик, который в правила ХХХ3,4 включаться не будет!!!
>
А если у меня самые первое правило
00001 162366 45655517 count ip from any to any in recv rl0
оно не как не влияет на подсчет для других машин?
>есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в
>интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 -
>в интернет. Хочу с помощью ipfw подсчитать трафик, на каждую машину,
>но при этом если пользователи скачивают информацию с нашего сервера, то
>это не учитывать. Помоги начинающему разобраться, а то прочитал много, но
>ни чего не понял.
100 ipfw add allow ip from <твоя сетка> to <внешний адрес>110- считаешь траффик для каждой мышины
.....................последовательность ВАЖНА!!
разрешающее правило должно стоять самое первоеЭто РАБОТАЕТ!
ВСЁ
Хе-хе, а вот у меня наоборот сначала считающие правила, а потом разрешающие и все прекрасно работает, а когда разрешающее перед считающим, то подсчет идет в разрешающем и то как-то криво, а в считающем - 0...З.Ы. Не верь словам, верь глазам... :)
>Хе-хе, а вот у меня наоборот сначала считающие правила, а потом разрешающие
>и все прекрасно работает, а когда разрешающее перед считающим, то подсчет
>идет в разрешающем и то как-то криво, а в считающем -
>0...
>
>З.Ы. Не верь словам, верь глазам... :)
Во-во попробывал как посоветовали, сначали разрешающие правила, а потом считающие, скачиваю файл а счетчик нулевой, буду пробывать, что-нибудь другое...
Вот пример из ipfw show:00150 26595 3178477 count tcp from IP to any 80 via xl0
00155 33449 30040215 count tcp from any 80 to IP via xl0
10150 14881 6855896 count ip from IP to any
10155 50846 42477926 count ip from any to IP
20150 17313 9055929 allow ip from IP to any
20155 20155 44039212 allow ip from any to IPПритом второй count первый не включает(то есть общий объем - сумма). А в allow вообще непонятно что за цифры...
>Вот пример из ipfw show:
>
>00150 26595 3178477 count tcp from IP
>to any 80 via xl0
>00155 33449 30040215 count tcp from any 80
>to IP via xl0
>10150 14881 6855896 count ip from IP
>to any
>10155 50846 42477926 count ip from any to
>IP
>20150 17313 9055929 allow ip from IP
>to any
>20155 20155 44039212 allow ip from any to
>IP
>
>Притом второй count первый не включает(то есть общий объем - сумма). А
>в allow вообще непонятно что за цифры...
А если у меня самое первые правила:00001 164257 46288994 count ip from any to any in recv rl0
00002 513267 288988516 count ip from any to any out xmit rl0они не как на счетчики других не влияют?
>есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в
>интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 -
>в интернет.
ipfw add count all from any to НужныйАдрес via rl0
>есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в
>интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 -
>в интернет. Хочу с помощью ipfw подсчитать трафик, на каждую машину,
>но при этом если пользователи скачивают информацию с нашего сервера, то
>это не учитывать. Помоги начинающему разобраться, а то прочитал много, но
>ни чего не понял.ipfw add 90 skipto 120 ip from local_net to local_net
ipfw add 100 count ip from any to local_ip out via if
ipfw add 110 count ip from local_ip to any in ifпервое правило в примере позволяет не счититать локальный трфик
>>есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в
>>интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 -
>>в интернет. Хочу с помощью ipfw подсчитать трафик, на каждую машину,
>>но при этом если пользователи скачивают информацию с нашего сервера, то
>>это не учитывать. Помоги начинающему разобраться, а то прочитал много, но
>>ни чего не понял.
>
>ipfw add 90 skipto 120 ip from local_net to local_net
>ipfw add 100 count ip from any to local_ip out via if
>
>ipfw add 110 count ip from local_ip to any in if
>
>первое правило в примере позволяет не счититать локальный трфик
Не можешь объяснить что делает правило skipto?
если пакет удовлетворяет требованию skipto (from локальные_ip & to локальные_ip), то "мы пропускаем" несколько правил и начинаем с правила, указанного в skipto.
skipto можно поставить до правил подсчета трафика локальных машин и таким образом не считать трафик внутри локалки.
Спасибо всем, все теперь разобрался, все работает