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

ng_netflow

Добавлено: 2009-03-26 16:48:17
maniackiller
Написал такую штуку. Скажите это правильно? Трафик будет считаться корректно? или нужно для каждого интерфейса сделать???
Напомню что две сетевухи имеются. На одной висит провайдер. С ним поднято бгп. А на второй сетевухе висят сети. В выводе описана та сетевуха на которой висят сети:

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

#!/bin/sh

kldload ng_netflow
kldload ng_ether
kldload ng_tee
kldload ng_one2many

ngctl -f- <<-SEQ
               mkpeer rl0: tee lower left
               connect rl0: rl0:lower upper right
               mkpeer rl0:lower one2many left2right many0
               connect rl0:lower.left2right rl0:lower many1 right2left
               name rl0:lower.right2left o2m
               mkpeer o2m: netflow one iface0
               name o2m:one netflow
               mkpeer netflow: ksocket export inet/dgram/udp
               msg netflow:export connect inet/192.168.2.184:4444 
И как можно сделать чтобы нетфлоу лилось еще на один комп?

Re: ng_netflow

Добавлено: 2009-03-26 17:06:03
LMik
maniackiller писал(а):Написал такую штуку. Скажите это правильно? Трафик будет считаться корректно? или нужно для каждого интерфейса сделать???
Напомню что две сетевухи имеются. На одной висит провайдер. С ним поднято бгп. А на второй сетевухе висят сети. В выводе описана та сетевуха на которой висят сети:

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

#!/bin/sh

kldload ng_netflow
kldload ng_ether
kldload ng_tee
kldload ng_one2many

ngctl -f- <<-SEQ
               mkpeer rl0: tee lower left
               connect rl0: rl0:lower upper right
               mkpeer rl0:lower one2many left2right many0
               connect rl0:lower.left2right rl0:lower many1 right2left
               name rl0:lower.right2left o2m
               mkpeer o2m: netflow one iface0
               name o2m:one netflow
               mkpeer netflow: ksocket export inet/dgram/udp
               msg netflow:export connect inet/192.168.2.184:4444 
И как можно сделать чтобы нетфлоу лилось еще на один комп?
в ipfw что? чтобы на несколько ипов слать можно привенуть сюда ng_hub.

Re: ng_netflow

Добавлено: 2009-03-26 17:46:40
maniackiller

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

ipfw allow ip from any to any

Re: ng_netflow

Добавлено: 2009-03-26 17:58:06
LMik
Двойной нетфлоу

Скрипт

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


#!/bin/sh

case "$1" in
        start)
            echo "Starting netflow...."
            /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: hub export one
            /usr/sbin/ngctl name netflow:export netflow0

            /usr/sbin/ngctl mkpeer netflow0: ksocket two inet/dgram/udp
            /usr/sbin/ngctl msg netflow0:two connect inet/xxx.xxx.xxx.xxx:9996

            /usr/sbin/ngctl mkpeer netflow0: ksocket three inet/dgram/udp
            /usr/sbin/ngctl msg netflow0:three connect inet/yyy.yyy.yyy.yyy:9996
            echo "Ok."
            exit 0
            ;;
        stop)
            echo "Stopping netflow...."
            /usr/sbin/ngctl shutdown netflow:
            /usr/sbin/ngctl shutdown netflow0:
            echo "Ok."
            exit 0
            ;;
        restart)
            sh $0 stop
            sleep 5
            sh $0 start
            ;;
        *)
            echo "Usage: `basename $0` { start | stop | restart }"
            exit 64
            ;;
esac
В ipfw для удобного руления того что дложно обсчитываться

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

ipfw add ngtee 30 ip from any to any out via rl0
ipfw add ngtee 30 ip from any to any in via rl0

Re: ng_netflow

Добавлено: 2009-03-30 7:56:52
maniackiller
А как сделать чтоб при старте эти правила загружались?

Re: ng_netflow

Добавлено: 2009-03-30 8:27:54
zingel

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

/etc/rc.firewall

Re: ng_netflow

Добавлено: 2009-03-30 10:11:23
maniackiller
А если у меня не через firewall??

Re: ng_netflow

Добавлено: 2009-03-30 10:24:59
zingel
ну укажите тогда файл откуда бирутся правила, чего тут сложного

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

firewall_script="/some/fucking/path/to/you/script"

Re: ng_netflow

Добавлено: 2009-04-02 11:17:17
maniackiller
добавил в rc.firewall следующие записи:

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

fwcmd="/sbin/ipfw"
${fwcmd} -f flush

        #Loopback
        #${fwcmd} add 100 pass all from any to any via lo0
        #${fwcmd} add 200 deny all from any to 127.0.0.0/8
        #${fwcmd} add 300 deny ip from 127.0.0.0/8 to any

        ${fwcmd} add deny all from any to me 22
        ${fwcmd} add pass ip from any to any

        /usr/sbin/ngctl mkpeer dc0: tee lower left
        /usr/sbin/ngctl connect dc0: dc0:lower upper right
        /usr/sbin/ngctl mkpeer dc0:lower one2many left2right many0
        /usr/sbin/ngctl connect dc0:lower.left2right dc0:lower many1 right2left
        /usr/sbin/ngctl name dc0:lower.right2left o2m
        /usr/sbin/ngctl mkpeer o2m: netflow one iface0
        /usr/sbin/ngctl name o2m:one netflow
        /usr/sbin/ngctl mkpeer netflow: hub export one
        /usr/sbin/ngctl name netflow:export netflow0
        /usr/sbin/ngctl mkpeer netflow0: ksocket two inet/dgram/udp
        /usr/sbin/ngctl msg netflow0:two connect inet/xx.xx.xx.x2:9996
        /usr/sbin/ngctl mkpeer netflow0: ksocket three inet/dgram/udp
        /usr/sbin/ngctl msg netflow0:three connect inet/xx.xx.xx.x2:9996
добавил в rc.conf чтоб подгружался данный скрипт. При загрузке msg ругается на то что недоступны узлы на которые нетфлоу отсылать. Приходиться ручками снова запускать. Может подскажете как сделать чтоб после загрузки системы правила создавались????

Re: ng_netflow

Добавлено: 2009-04-02 11:55:58
iye
Как вариант сделать скриптик в /usr/local/etc/rc.d с ключами для rcorder чтобы грузилось после всего.

Re: ng_netflow

Добавлено: 2009-04-02 11:59:08
maniackiller
iye писал(а):Как вариант сделать скриптик в /usr/local/etc/rc.d с ключами для rcorder чтобы грузилось после всего.
А не подскажешь как? я в программировании не очень силен

Re: ng_netflow

Добавлено: 2009-04-02 12:13:08
iye
Идем в /usr/local/etc/rc.d/ смотрим любой скрипт и делаем по подобию ... ну и man rcorder и гугл в помощь.