URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 26793
[ Назад ]

Исходное сообщение
"так и не смог разобраться с ipfw"

Отправлено Dimm , 21-Фев-03 15:07 
есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 - в интернет. Хочу с помощью ipfw подсчитать трафик, на каждую машину, но при этом если пользователи скачивают информацию с нашего сервера, то это не учитывать. Помоги начинающему разобраться, а то прочитал много, но ни чего не понял.

Содержание

Сообщения в этом обсуждении
"RE: так и не смог разобраться с ipfw"
Отправлено Rostik , 21-Фев-03 16:37 
Если я не ошибаюсь, то придётся для каждой машины прописывать разрешения.



"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 21-Фев-03 16:41 
>Если я не ошибаюсь, то придётся для каждой машины прописывать разрешения.
>

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


"RE: так и не смог разобраться с ipfw"
Отправлено Rostik , 21-Фев-03 16:52 
Так правила описывают связь между внешним интерфейсом и внутренним. А всё что бегает внутри учитываться не будет.(если не захочешь)

"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 21-Фев-03 17:05 
>Так правила описывают связь между внешним интерфейсом и внутренним. А всё что
>бегает внутри учитываться не будет.(если не захочешь)

Может приведешь пример, а то у меня учитывается.
если пишу ipfw add count all from any to номер машины via rl0, то счетчик постоянно пустой, а если
ipfw add count all from any to номер машины via rl1, то учитывается все...


"RE: так и не смог разобраться с ipfw"
Отправлено Rostik , 21-Фев-03 17:28 
Я думаю так. На каждую машину пишешь
ipfw add allow ip from <внеш адрес> <порты> to внутр адр/32
ipfw add allow ip from внутр адр/32 <порты> to <внеш адрес>

Хотя сам засомневался. Скорее всего работать не будет, т.к. NAT переворачивает адреса. Напиши про результат.


"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 21-Фев-03 17:52 
>Я думаю так. На каждую машину пишешь
>ipfw add allow ip from <внеш адрес> <порты> to внутр адр/32
>ipfw add allow ip from внутр адр/32 <порты> to <внеш адрес>
>
>Хотя сам засомневался. Скорее всего работать не будет, т.к. NAT переворачивает адреса.
>Напиши про результат.

у меня уже есть ipfw add allow from any to внут. адрес.
И так для всех машин, но это учитывает все, а теперь мне нужно узнать сколько пользователь реально насидел в интернете. А то получаются большие числа из-за того, что многие скачивают с нашего ftp, а мне это не нужно. Может как-нибудь разницу считать, но я не знаю как это все задать в правилах.


"RE: так и не смог разобраться с ipfw"
Отправлено ViruZ , 21-Фев-03 22:00 
Пропробуй поставить еще правила для локатьной машинки, то есть:
ipfw add XXX count from any to your-local-machine
ipfw add XXY count from your-local-machine to any

Либо вместо any твою подсетку... Избыточно, но верно...


"RE: так и не смог разобраться с ipfw"
Отправлено Den Tiger , 22-Фев-03 01:59 
На мой взгляд самое толковое решение - реализовать данную задачу через 2 машины, на одной ( 1-ой ) прописать все сетевые роутинги и поднять необходимые ресурсы, а на другую ( 2-ую ) направлять только запросы не сроученные на первом сервере. Это скажется грамотно на подсчёте трафика ( не будет попадать локальны

"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 22-Фев-03 13:13 
>На мой взгляд самое толковое решение - реализовать данную задачу через 2
>машины, на одной ( 1-ой ) прописать все сетевые роутинги и
>поднять необходимые ресурсы, а на другую ( 2-ую ) направлять только
>запросы не сроученные на первом сервере. Это скажется грамотно на подсчёте
>трафика ( не будет попадать локальны


А нельзя это как-нибудь подробней описать, как это все реализовать, или может ссылку дашь?


"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 22-Фев-03 13:27 
>Пропробуй поставить еще правила для локатьной машинки, то есть:
>ipfw add XXX count from any to your-local-machine
>ipfw add XXY count from your-local-machine to any
>
>Либо вместо any твою подсетку... Избыточно, но верно...


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


"RE: так и не смог разобраться с ipfw"
Отправлено ViruZ , 22-Фев-03 13:52 
>Да такие правила уже есть, на них я и заметил, что лишнего
>считается... Когда начал скачивать с сервера 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 включаться не будет!!!


"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 22-Фев-03 14:32 
>>Да такие правила уже есть, на них я и заметил, что лишнего
>>считается... Когда начал скачивать с сервера 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
оно не как не влияет на подсчет для других машин?


"RE: так и не смог разобраться с ipfw"
Отправлено Bizon , 22-Фев-03 14:00 
>есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в
>интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 -
>в интернет. Хочу с помощью ipfw подсчитать трафик, на каждую машину,
>но при этом если пользователи скачивают информацию с нашего сервера, то
>это не учитывать. Помоги начинающему разобраться, а то прочитал много, но
>ни чего не понял.


100 ipfw add allow ip from <твоя сетка> to <внешний адрес>

110- считаешь траффик для каждой мышины
.....................

последовательность ВАЖНА!!
разрешающее правило должно стоять самое первое

Это РАБОТАЕТ!
ВСЁ


"RE: так и не смог разобраться с ipfw"
Отправлено ViruZ , 22-Фев-03 14:15 
Хе-хе, а вот у меня наоборот сначала считающие правила, а потом разрешающие и все прекрасно работает, а когда разрешающее перед считающим, то подсчет идет в разрешающем и то как-то криво, а в считающем - 0...

З.Ы. Не верь словам, верь глазам... :)


"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 22-Фев-03 14:27 
>Хе-хе, а вот у меня наоборот сначала считающие правила, а потом разрешающие
>и все прекрасно работает, а когда разрешающее перед считающим, то подсчет
>идет в разрешающем и то как-то криво, а в считающем -
>0...
>
>З.Ы. Не верь словам, верь глазам... :)


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


"RE: так и не смог разобраться с ipfw"
Отправлено ViruZ , 22-Фев-03 14:35 
Вот пример из 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 вообще непонятно что за цифры...


"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 22-Фев-03 15:00 
>Вот пример из 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

они не как на счетчики других не влияют?



"RE: так и не смог разобраться с ipfw"
Отправлено Max , 24-Фев-03 05:59 
>есть локальная сеть(адреса компьютеров 192.168.0.2/8), подключенная к серверу(с BSD). Сервер выходит в
>интет. Есть два интерфейса rl1-смотрит в локальную сетку и rl0 -
>в интернет.
ipfw add count all from any to НужныйАдрес via rl0


"RE: так и не смог разобраться с ipfw"
Отправлено Oleg A. Makogon , 24-Фев-03 12:30 
>есть локальная сеть(адреса компьютеров 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

первое правило в примере позволяет не счититать локальный трфик


"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 24-Фев-03 14:05 
>>есть локальная сеть(адреса компьютеров 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?


"RE: так и не смог разобраться с ipfw"
Отправлено Oleg A. Makogon , 24-Фев-03 14:15 
если пакет удовлетворяет требованию skipto (from локальные_ip & to локальные_ip), то "мы пропускаем" несколько правил и начинаем с правила, указанного в skipto.
skipto можно поставить до правил подсчета трафика локальных машин и таким образом не считать трафик внутри локалки.

"RE: так и не смог разобраться с ipfw"
Отправлено Dimm , 25-Фев-03 14:11 
Спасибо всем, все теперь разобрался, все работает