The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 18-Дек-06, 23:55  [смотреть все]
FreeBSD 6.0
3 интерфейса. NAT'а нет.

нужно посчитать трафик в обоих направлениях. Делаю так:

#!/bin/sh

ext_if=fxp0 # 192.168.0.1/252
int_if=em0  # 10.101.0.1/248
serv_if=em1 # 10.101.1.1/255

       ngctl -f- <<-SEQ
               mkpeer ${ext_if}: tee lower right
               name ${ext_if}:lower ext_tee
               connect ${ext_if}: ext_tee: upper left

               mkpeer ${int_if}: tee lower right
               name ${int_if}:lower int_tee0
               connect ${int_if}: int_tee0: upper left

               mkpeer ${serv_if}: tee lower right
               name ${serv_if}:lower int_tee1
               connect ${serv_if}: int_tee1: upper left


               mkpeer ext_tee: netflow right2left iface0
               name ext_tee:right2left netflow

               connect ext_tee: netflow: left2right iface1
               connect int_tee0: netflow: left2right iface2
               connect int_tee0: netflow: right2left iface3
               connect int_tee1: netflow: left2right iface4
               connect int_tee1: netflow: right2left iface5

               mkpeer netflow: ksocket export inet/dgram/udp
               msg netflow:export connect inet/127.0.0.1:6667
SEQ
------------------------------------------------------------------------

В результате трафик двоит.. подозреваю, что из-за использования tee
В 6.0 появился out но как переписать - ниасилил :((

Помогите поправить - голову сломал :\

  • FreeBSD 6.0 + ng_netflow + tee :(, !*! Lelik, 15:50 , 19-Дек-06 (1)
    • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 21:03 , 19-Дек-06 (2)
      >mkpeer vlan0: tee lower right
      >connect vlan0: vlan0:lower upper left
      >mkpeer vlan0:lower netflow right2left iface0
      >name vlan0:lower.right2left netflow
      >connect netflow: vlan0:upper iface1 left2right
      >mkpeer netflow: ksocket export inet/dgram/udp
      >msg netflow: settimeouts { inactive=10 active=10 }
      >msg netflow:export connect inet/IP_FOR_EXPORT:PORT
      >
      >у меня вот так работает на 6.0.Ловит оба направления.
      >Переписывай под себя и радуйся жизни :)
      >PS
      >Очень познавательная тема форума про это:
      >http://forum.bestcom.ru/index.php?showtopic=15&st=0

      Тема знакома до ломоты в глазах.. там большинство примеров для 5 ветки :( Не удалось заставить работать :((

      В твоём примере описана настройка для vlan0.. а как мне правильно описать для 3-х интерфесов? В моём случае нужно учитывать входящий и исходящий на int_if=em0  # 10.101.0.1/248 c ext_if и c serv_if

      Достаточно-ли сделать в твоём примере исправить vlan0 на int_if если не используецца nat?

      • FreeBSD 6.0 + ng_netflow + tee :(, !*! Lelik, 21:21 , 19-Дек-06 (3)
        • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 23:47 , 19-Дек-06 (4)
          >для одного интерфейса - достаточно просто исправить vlan0 на имя твоего интерфейса
          >
          >остальные нужно будет подключать к хуку netflow

          мм.. опять же картина в голове следующая (может и ошибаюсь):

          мне нужно учитывать трафик для юзеров в сети int_if.. нужно ли подключать остальные к хуку netflow? Предположил, что на интерфейсе int_if будут пакеты от ext_if на int и от serv_if на int, соответственно и в обратную сторону.. Или всё-таки я не понял принцип?

          З.Ы.: можно пример, как подключить интерфейс к хуку?

          • FreeBSD 6.0 + ng_netflow + tee :(, !*! Lelik, 12:50 , 20-Дек-06 (5)
            • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 14:52 , 20-Дек-06 (6)
              >если тебе надо считать траф тока на интерфейсе int_if - просто заменять
              >в моем примере vlan0 на свой физический интерфейс
              >тока вот есть 1 НО! если у тебя перед интерфейсом стоит nat
              >- у тебя статистика ваще не информативная будет.
              >Статистика будет показывать не реального отправителя пакета,а уже транслированый адрес, т.е. IP
              >inf_if.
              >Так что при таком раскладе надо будет либо юзать ng_nat+ng_ipfw,либо собирать статистику
              >с других интерфейсов.
              >Смотри ссылку,которую я дал выше. Там это все подробно расписано и обсосано
              >во всех вариациях!


              В том то и дело, что никакого ната нет и везде серые адреса.. Внешний интерфейс ext_if 192.168.0.1 смотрит в машину 192.168.0.2, на которой натом раздается инет(т.е. на ext_if приходит пакет уже оттранслированный обратно).

              Нужно считать траф от контент-серверов(serv_if) и с инета (ext_if), который валится от/на юзеров в сетке int_if.

              Хорошо, попробую считать только на одном интерфейсе - потом сообщу результат. Спасибо!

              • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 12:03 , 29-Дек-06 (7)
                >>если тебе надо считать траф тока на интерфейсе int_if - просто заменять
                >>в моем примере vlan0 на свой физический интерфейс
                >>тока вот есть 1 НО! если у тебя перед интерфейсом стоит nat
                >>- у тебя статистика ваще не информативная будет.
                >>Статистика будет показывать не реального отправителя пакета,а уже транслированый адрес, т.е. IP
                >>inf_if.
                >>Так что при таком раскладе надо будет либо юзать ng_nat+ng_ipfw,либо собирать статистику
                >>с других интерфейсов.
                >>Смотри ссылку,которую я дал выше. Там это все подробно расписано и обсосано
                >>во всех вариациях!
                >
                >
                >В том то и дело, что никакого ната нет и везде серые
                >адреса.. Внешний интерфейс ext_if 192.168.0.1 смотрит в машину 192.168.0.2, на которой
                >натом раздается инет(т.е. на ext_if приходит пакет уже оттранслированный обратно).
                >
                > Нужно считать траф от контент-серверов(serv_if) и с инета (ext_if), который валится
                >от/на юзеров в сетке int_if.
                >
                > Хорошо, попробую считать только на одном интерфейсе - потом сообщу результат.
                >Спасибо!


                Заработало! :)

                • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 12:37 , 29-Дек-06 (8)
                  >> Хорошо, попробую считать только на одном интерфейсе - потом сообщу результат.
                  >>Спасибо!
                  >
                  >
                  >Заработало! :)


                  Теперь задачка несколько изменилась. На внутреннем интерфейсе создано несколько vlan-ов. Нужно посчитать трафик по ним.

                  Набросал предварительный вариант:

                  for i in vlan1 vlan2 vlan3 etc..
                    do
                    m=n+1
                    ngctl -f-<<SEQ
                     mkpeer $i: tee lower right                      
                     connect $i: vlan0:lower upper left              
                     mkpeer $i:lower netflow right2left iface$n      
                     name $i:lower.right2left netflow                
                     connect netflow: $i:upper iface$m left2right    
                    n=`expr $n + 1`

                  SEQ

                    n=`expr $n + 1`
                  done

                  ngctl -f-<<SEQ
                  mkpeer netflow: ksocket export inet/dgram/udp      
                  msg netflow: settimeouts { inactive=10 active=10 }
                  msg netflow:export connect inet/127.0.0.1:6667

                  SEQ

                  ---------------------
                  Подскажите, кто знает, можно ли такую конструкцию применять?

                  • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 15:40 , 10-Янв-07 (9)
                    >>> Хорошо, попробую считать только на одном интерфейсе - потом сообщу результат.
                    >>>Спасибо!
                    >>
                    >>
                    >>Заработало! :)
                    >
                    >
                    >Теперь задачка несколько изменилась. На внутреннем интерфейсе создано несколько vlan-ов. Нужно посчитать
                    >трафик по ним.
                    >
                    > Набросал предварительный вариант:
                    >
                    >for i in vlan1 vlan2 vlan3 etc..
                    >  do
                    >  m=n+1
                    >  ngctl -f-<<SEQ
                    >   mkpeer $i: tee lower right
                    >   connect $i: vlan0:lower upper left
                    >   mkpeer $i:lower netflow right2left iface$n
                    >   name $i:lower.right2left netflow
                    >   connect netflow: $i:upper iface$m left2right
                    >  n=`expr $n + 1`
                    >
                    >SEQ
                    >
                    >  n=`expr $n + 1`
                    > done
                    >
                    >ngctl -f-<<SEQ
                    >mkpeer netflow: ksocket export inet/dgram/udp
                    >msg netflow: settimeouts { inactive=10 active=10 }
                    >msg netflow:export connect inet/127.0.0.1:6667
                    >
                    >SEQ
                    >
                    >---------------------
                    > Подскажите, кто знает, можно ли такую конструкцию применять?


                    Неужели никто не сталкивался?? :\

                    • FreeBSD 6.0 + ng_netflow + tee :(, !*! PavelR, 15:59 , 10-Янв-07 (10)
                      • FreeBSD 6.0 + ng_netflow + tee :(, !*! asphix, 11:41 , 11-Янв-07 (11)
                        >>> Подскажите, кто знает, можно ли такую конструкцию применять?
                        >>
                        >>
                        >>Неужели никто не сталкивался?? :\
                        >
                        >
                        >использую нат и вот такую конструкцию:
                        >
                        >IFACE = внешний_интерфейс, на который делается нат.
                        >
                        >
                        >
                        >            
                        >    start|*)
                        >                        kldload ng_netams > /dev/null 2>&1
                        >                        kldload ng_ipfw >/dev/null 2>&1
                        >            
                        >          
                        > ngctl mkpeer ipfw: netams 60 if_in
                        >            
                        >          
                        > ngctl name ipfw:60 netams
                        >            
                        >          
                        > ngctl connect netams: ipfw: if_out 61
                        >            
                        >          
                        > ngctl msg netams: mode 2
                        >            
                        >          
                        > ngctl msg netams: debug $DEBUG
                        >            
                        >          
                        > ngctl msg netams: setdefault $DEFAULTPOLICY
                        >            
                        >          
                        > ngctl msg netams: dlt 12
                        >
                        >            
                        >          
                        > natd -a внешний.ип -u -s -m
                        >
                        >            
                        >          
                        > ipfw add 020 drop all from any to not внешний.ип
                        >in via rl0
                        >            
                        >          
                        > ipfw add 050 divert natd all from any to any
                        >in via ${IFACE}
                        >            
                        >          
                        > ipfw add 060 netgraph 60 all from any to any
                        >in via ${IFACE}
                        >
                        >            
                        >          
                        > ipfw add 080 netgraph 61 all from any to any
                        >out via ${IFACE}
                        >            
                        >          
                        > ipfw add 090 divert natd all from any to any
                        >out via ${IFACE}
                        >            
                        >          
                        > ;;


                        Спасибо за инфу, но это не совсем мне подходит.. у меня ни netams  ни nat не используется.. биллинг Stargazer + netflow module.

                        Нужно просто на vlan'ы размножить конфигу :(




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру