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

ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 12:47:21
wel
Привет Всем
ng_nat + ng_netflow + mpd - детальная статистика и нат в одном флаконе
Хотелось бы где-нить почитать РАБОЧИЙ пример использования:

ng_nat+ng_netflow+mpd4


Примеры что в Инете - у Меня не работают:
Весь затык на правилах ipfw - пакеты туды попадают, но дальше никуда не выходят в том числе
ipfw add allow all from any to any
И все - получаю непингуемую машину
- ipfw по умолчанию deny all


# ifconfig

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

rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 10.11.2.1 netmask 0xffffff00 broadcast 10.11.2.255
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.100.99 netmask 0xffffff00 broadcast 192.168.100.255
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
pfsync0: flags=0<> mtu 2020
        syncpeer: 224.0.0.240 maxupd: 128
pflog0: flags=0<> mtu 33208
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000 
rl0 - локалка
rl1 - инет
flow-capture - работает, причем даже с ng_netflow -
#ngctl -f /ng_netflow

#cat /ng_netflow

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

mkpeer rl1: tee lower left
name rl1:lower tee0
connect rl1: rl1:lower upper right
mkpeer tee0: one2many left2right many0
name tee0:left2right one2many0
connect tee0:  one2many0: right2left many1
mkpeer one2many0: netflow one iface0
name one2many0:one netflow
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow: setifindex { iface=0 index=2 }
msg netflow:export connect inet/127.0.0.1:2222
Такой скрипт (ng_nat+ng_netflow - для подсчета любого трафика отправленого ipfw не работает) :

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

#!/bin/sh
        EXT_IP="192.168.100.99"
        LOCAL_NET="10.11.2.0/24"

             /usr/sbin/ngctl mkpeer ipfw: nat 70 out
            /usr/sbin/ngctl name ipfw:70 nat
            /usr/sbin/ngctl connect ipfw: nat: 71 in
            /usr/sbin/ngctl msg nat: setaliasaddr $EXT_IP
            /usr/sbin/ngctl mkpeer ipfw: netflow 30 iface0
            /usr/sbin/ngctl name ipfw:30 netflow
            /usr/sbin/ngctl msg netflow: setdlt {iface=0 dlt=12}
            /usr/sbin/ngctl msg netflow: setifindex {iface=0 index=1}

            /usr/sbin/ngctl mkpeer netflow: ksocket export inet/dgram/udp
            /usr/sbin/ngctl msg netflow:export connect inet/127.0.0.1:2222
       
        /sbin/ipfw add 6400 allow all from any to any
        /sbin/sysctl net.inet.ip.fw.one_pass=0
       /sbin/ipfw add 110 ngtee 30 ip from any to any out via ng*
       /sbin/ipfw add 111 ngtee 30 ip from any to any in via ng*
        /sbin/ipfw add 200 netgraph 71 all from not $LOCAL_NET to $EXT_IP out via rl1
        /sbin/ipfw add 201 netgraph 70 all from $LOCAL_NET to not $LOCAL_NET in via rl1     
        /usr/local/bin/flow-capture -n 287 -w /var/db/flows/ 0.0.0.0/127.0.0.1/2222

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 13:23:26
squid
у меня стоит связка ng_netflow+mpd+flow-tools
статистику собирает вроде все работает
стоит natd
если интересуют конфиги могу сбросить

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 14:45:38
wel
squid писал(а):у меня стоит связка ng_netflow+mpd+flow-tools
статистику собирает вроде все работает
стоит natd
если интересуют конфиги могу сбросить
Давай - Мне интересно ка Ты статистику с ng*-интерфейсов снимаешь?
Ладно нат будет не ng_* - не страшно, а вот статистика с ng*-интерфейсов интересует - из-за этого же думал на ng_netflow перейти и заодно и на ng_nat

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 16:23:33
squid
вот такие настройки ng_netflow снимает входящий и исходящий код

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

/usr/sbin/ngctl -f- <<-SEQ
    mkpeer ng0:inet netflow right2left iface0
    name ng0:inet.right2left netfl
    connect ng0:inet netfl: left2right iface1
    msg netfl: setdlt { iface=0 dlt=12 }
    msg netfl: setdlt { iface=1 dlt=12 }

    mkpeer netfl: ksocket export inet/dgram/udp
    msg netfl:export connect inet/127.0.0.1:4444
SEQ
далее настроен flow-capture который принимает трафик и записывает у файлы
вот с такими параметрами запускаю

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

flow-capture -S 1 -n479 -N-2 -w /var/db/flows -p /var/run/flow.pid

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 16:31:39
wel
squid писал(а):вот такие настройки ng_netflow снимает входящий и исходящий код
Тоесть Еслир у Меня 700 интерфейсов ng* - Я должен буду прописать примерно так? Или можно как-то по другому?

ЗЫ: Траффик ноормально отбражается?
мир-серый ИП
серый ИП-мир
?

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

mkpeer ng$X:inet netflow right2left iface0
    name ng$X:inet.right2left netfl
    connect ng$X:inet netfl: left2right iface1
    msg netfl: setdlt { iface=0 dlt=12 }
    msg netfl: setdlt { iface=1 dlt=12 }

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 16:54:57
squid
wel писал(а):Тоесть Еслир у Меня 700 интерфейсов ng* - Я должен буду прописать примерно так? Или можно как-то по другому?
интересный конечно вопрос
ng0 у меня один, направлен у меня на инет и показывает только мир = реальный айпи и наоборот, поскольку стоит нат
а на этом же компе ng_netflow снимает статистику с сетевухах там показывает мир-серый айпи, серый айпи - мир

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 17:13:15
wel
squid писал(а): интересный конечно вопрос
ng0 у меня один, направлен у меня на инет и показывает только мир = реальный айпи и наоборот, поскольку стоит нат
а на этом же компе ng_netflow снимает статистику с сетевухах там показывает мир-серый айпи, серый айпи - мир
Вопрос в следующем:
есть такая схема:
rl0 - локалка
rl1 - инет

Inet<==>real ip (заменён на 10.11.2.1)(rl1) || 192.168.100.99 (rl0) <== подключение по vpn ==> серая подсеть 192.168.1.0/24

Натится все так:
192.168.1.0/24 => 10.11.2.1(реальный ИП-к)

Если статистику снимать на rl0,rl1 например с помощью softflowd. То Я не вижу траффик :
192.168.1.0/24 =>Inet
Inet =>192.168.1.0/24

Надо вешать softflowd на каждый ng* - что для 700 интерфейсов накладно да и тупо...

В общем Я рашил - почему бы не соеденить ng_nat+ng_netflow - как описано это здесь:
http://wiki.bsdportal.ru/doc:netgraph_ng_nat
Но получилось так что все примеры адаптированные для моей схемы не работают :(
Даже пример из man 4 ng_nat тоже

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 17:17:39
wel
Тогда вопрос - в твоей схеме будет работать то что Я хочу?
статистика для (серой подсетки)
192.168.1.0/24 =>Inet
Inet =>192.168.1.0/24
Если да - то поподробнее можешь?

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 19:51:19
squid
wel писал(а):Вопрос в следующем:
есть такая схема:
rl0 - локалка
rl1 - инет
у меня
xl0 - локалка
ng0 - инет
rl1 - IР-телефон
ng_netflow считает на:
ng0 - общий трафик
rl1 - трафик айпи телефона
xl0 - трафик вот в таком виде

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

# flow-cat ft-v05.2007-09-24.193900+0300 | flow-print | grep 192.168.71
77.73.24.4       192.168.71.101   6     80       1062     163951      127
213.180.214.31   192.168.71.101   6     80       1070     628         4
192.168.71.101   77.73.24.4       6     1062     80       6531        77
192.168.71.101   213.180.214.31   6     1070     80       958         6
213.180.214.31   192.168.71.101   6     80       1065     40          1
213.180.214.31   192.168.71.101   6     80       1074     3847        5
192.168.71.101   213.180.214.31   6     1074     80       754         6
77.73.24.4       192.168.71.101   6     80       1063     40          1
77.73.24.4       192.168.71.101   6     80       1064     40          1
213.180.214.31   192.168.71.101   6     80       1066     40          1
213.180.214.31   192.168.71.101   6     80       1068     40          1
77.73.24.4       192.168.71.101   6     80       1071     82350       65
213.180.214.31   192.168.71.101   6     80       1069     617         3
213.180.214.31   192.168.71.101   6     80       1076     657         4
213.180.214.31   192.168.71.101   6     80       1075     897         5
77.73.24.4       192.168.71.101   6     80       1073     620         4
77.73.24.4       192.168.71.101   6     80       1072     890         5
192.168.71.101   213.180.214.31   6     1076     80       1217        6
192.168.71.101   213.180.214.31   6     1075     80       1583        8
192.168.71.101   77.73.24.4       6     1071     80       3666        41
192.168.71.101   77.73.24.4       6     1072     80       2499        10
192.168.71.101   77.73.24.4       6     1073     80       1713        8
77.73.24.4       192.168.71.101   6     80       1062     40          1
213.180.214.31   192.168.71.101   6     80       1074     40          1
192.168.71.101   209.85.129.99    6     1061     80       785         7
192.168.71.101   205.188.13.44    6     1045     5190     1437        16
192.168.71.0/24 это подсеть ng*
192.168.71.101 - это я сейчас сижу
то есть я могу увидеть кто куда ходил и считать трафик по айпи, есть заготовка к веб морде но никак не настрою

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 20:21:20
wel
xl0 - локалка
ng0 - инет
Тогда такой вопрос:
Когда делаешь
# flow-cat ft-* | flow-print | grep ХХХ
Там видно траффик от локальной сети?
Просто не понятно 192.168.71.0 это ип-ки из локалки или это на серве ИП-к?

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 21:03:12
squid
у меня в локалке 10.12.0.0/16
а 192.168.71.0/24 - это все адреса впн (на ng*)
wel писал(а):# flow-cat ft-* | flow-print | grep ХХХ
Там видно траффик от локальной сети?
нет видно трафик который идет через ng*

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 21:08:09
wel
спасибо - хоть этим порадовал :)
ЗЫ:
Как парсиш netflow?

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2007-09-24 21:14:08
squid
да я особо не заморачивался
flow-tools каждые 3 минуты пишет в файлы
а и каждый час все гоню в мускуль, а там уже разгребаю
больше пока ничего не делал, да и надобности пока нету

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2008-05-11 14:39:37
shlang
Squid, приветствую.
У меня аналогичная ситуация:
FreeBSD 6.3 - Stable
ng0 - инет;
rl0 - первая локалка;
rl1 - вторая локалка.

Хотел посчитать трафик на ng0. Сделал по твоему примеру:

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

/usr/sbin/ngctl -f- <<-SEQ
    mkpeer ng0:inet netflow right2left iface0
    name ng0:inet.right2left netfl
    connect ng0:inet netfl: left2right iface1
    msg netfl: setdlt { iface=0 dlt=12 }
    msg netfl: setdlt { iface=1 dlt=12 }

    mkpeer netfl: ksocket export inet/dgram/udp
    msg netfl:export connect inet/127.0.0.1:4444
SEQ
Но где-то, что- то не работает - трафик не считается(трафик реально присутствует):

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

[root@anime /]# flowctl netfl show
SrcIf         SrcIPaddress    DstIf         DstIPaddress    Pr SrcP DstP  Pkts

Возможно будет предположение в чем косяк?

Если поможет, то хуки выглядят так:

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

+ show netfl:
  Name: netfl           Type: netflow         ID: 0000004e   Num hooks: 3
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  export          <unnamed>       ksocket      0000004f        inet/dgram/udp
  iface1          <unnamed>       bpf          00000018        left2right
  iface0          <unnamed>       bpf          00000018        right2left

+ show netfl:iface0
  Name: <unnamed>       Type: bpf             ID: 00000018   Num hooks: 5
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  left2right      netfl           netflow      0000004e        iface1
  right2left      netfl           netflow      0000004e        iface0
  mpd             <unnamed>       socket       00000016        demand
  iface           ng0             iface        00000002        inet
  ppp             mpd1079-vpn     ppp          00000017        inet

+ show netfl:iface1
  Name: <unnamed>       Type: bpf             ID: 00000018   Num hooks: 5
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  left2right      netfl           netflow      0000004e        iface1
  right2left      netfl           netflow      0000004e        iface0
  mpd             <unnamed>       socket       00000016        demand
  iface           ng0             iface        00000002        inet
  ppp             mpd1079-vpn     ppp          00000017        inet

Заранее спасибо!

Re: ng_nat + ng_netflow + mpd - детальная статистика

Добавлено: 2008-05-12 12:44:50
squid
смотри tcpdump идут ли вообще пакеты
а там уже по ситуации смотреть что не работает
более конкртено врятли получится подсказать, давно настраивал
а к тому серваку доступа нету чтобы посмотреть что там ещме может быть