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

Исходное сообщение
"ng_netflow статистика inout на нескольких ифейсах"

Отправлено Azudim , 09-Июл-08 21:22 
Подскажите плз, как выглядит скрипт для ngctl для снятия in|out трафика по _нескольким_ интерфейсам?

Рабочий вариант по одному интерфейсу: съем статистики и отдача
--------
#!/bin/sh                                                  
ngctl -f- <<-SEQ                                          
  mkpeer msk0: tee lower left                              
  connect msk0: msk0:lower upper right                    
  mkpeer msk0:lower one2many left2right many0              
  connect msk0:lower.left2right msk0:lower many1 right2left
  name msk0: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.1.210:9996
---------
FreeBSD 7.0
Смотрю через NetFLow Analyzer


Содержание

Сообщения в этом обсуждении
"ng_netflow статистика inout на нескольких ифейсах"
Отправлено bluez , 10-Июл-08 03:26 
man flowctl  ?
или я чет не понял

"ng_netflow статистика inout на нескольких ифейсах"
Отправлено Azudim , 10-Июл-08 10:40 
>man flowctl  ?
>или я чет не понял

это модно сейчас к манам отправлять? я понимаю если человек владеет вопросом и уверен что в мане есть ответ.. я потому и задаю вопрос, что с моим скудоумием не асилил сам =)


"ng_netflow статистика inout на нескольких ифейсах"
Отправлено bluez , 10-Июл-08 13:51 
man это  скорее намек куда надо посмотреть
думаю если вы наберете у себя
то прочитав несколько строк от туда
сразу впрос от падет

а на новичков фраза man както действует не так
они считают что их куда то отправляют далеко
типа послали

вообщем странно
потому как эта фраза man
возникла в кругу спецов
дабы не тратить времея на обьяснения
а как бы намекнуть куда посмотреть



"ng_netflow статистика inout на нескольких ифейсах"
Отправлено ShyLion , 11-Июл-08 09:38 
>man flowctl  ?
>или я чет не понял

чел видимо не умеет скрипты писать
тут надо man rc, man rc.d, man sh, man ngctl %)


"ng_netflow статистика inout на нескольких ифейсах"
Отправлено ShyLion , 11-Июл-08 09:35 
>Подскажите плз, как выглядит скрипт для ngctl для снятия in|out трафика по
>_нескольким_ интерфейсам?

вот мой скрипт, слабал когда-то давно за полчаса

# cat /usr/local/etc/rc.d/ng_flow.sh
#!/bin/sh

sub_start_ng_flow () {
  iflist=`ifconfig -l ether`
  count=0
  named=no

# Compiled into kernel
#  kldload ng_ether > /dev/null 2>&1

  if [ "$ng_flow_auto" = "YES" -a ! -z "$iflist" ]
  then
    for if in $iflist
    do
      ngctl mkpeer $if: tee lower right
      ngctl name $if:lower ${if}_tee
      ngctl connect $if: $if:lower upper left
      if [ "$named" = "no" ]
      then
        ngctl mkpeer $if:lower netflow left2right iface$count
        ngctl name $if:lower.left2right netflow
        named=yes
      else
        ngctl connect $if:lower netflow: left2right iface$count
      fi
      count=$(( $count + 1 ))
      ngctl connect $if:lower netflow: right2left iface$count
      count=$(( $count + 1 ))
    done
    ngctl mkpeer netflow: ksocket export inet/dgram/udp
    ngctl name netflow:export netflow_socket
    ngctl msg netflow:export connect inet/127.0.0.1:8787
  fi
}

sub_stop_ng_flow () {
  ngctl shutdown netflow: >/dev/null 2>&1
  iflist=`ifconfig -l ether`
  if [ ! -z "$iflist" ]
  then
    for if in $iflist
    do
      ngctl shutdown $if: >/dev/null 2>&1
    done
  fi
}

. /etc/rc.conf

case $1 in
        start)
                if [ "$ng_flow_enable" = "YES" ]
                then
                  #sub_stop_ng_flow
                  sub_start_ng_flow
                  echo "ng_flow "
                fi
                exit 0
                ;;
        stop)
                sub_stop_ng_flow
                exit 0
                ;;
        *)
                echo "usage: `basename $0` start|stop"
                ;;
esac


"ng_netflow статистика inout на нескольких ифейсах"
Отправлено ShyLion , 11-Июл-08 09:41 
>  iflist=`ifconfig -l ether`

получаем список всех езернет интерфейсов


>[оверквотинг удален]
>
>        named=yes
>      else
>        ngctl connect $if:lower netflow:
>left2right iface$count
>      fi
>      count=$(( $count + 1 ))
>      ngctl connect $if:lower netflow: right2left iface$count
>
>      count=$(( $count + 1 ))

в цикле подключаем их обеими концами к экспортеру, именуем все узлы

>    ngctl mkpeer netflow: ksocket export inet/dgram/udp
>    ngctl name netflow:export netflow_socket
>    ngctl msg netflow:export connect inet/127.0.0.1:8787

включаем собсно экспорт