LINUX.ORG.RU

Вопрос про сокеты в перл (работа с Cisco Netflow)


0

0

Вот кусочек кода
.
.
.
my $socket = IO::Socket::INET -> new (
PeerAddr  => '192.168.250.1',
LocalPort  => 9996,
Proto      =>'udp'
) or die "$!\n";

my $port = $socket -> peerport();
my $host = $socket -> peerhost();
my $host2 = $socket -> sockhost();
my $port2 = $socket -> sockport();

print "port = '$port' host = '$host'  port2 
= '$port2' host2 = '$host2' \n";

while (1)
{
  my $from = $socket -> recv (my $data, 8192, 0);
  if (length ($data) < 16) {
		warn ("Invalid packet length " . length ($data) .
			" received\n");
		next;
	}
  my ($version, $flows, $uptime, $secs, $usecs) = unpack ('nnNNN', $data);

  print "*************************************************\n";
  #my $len = length ($data);
  print("version = '$version'\n");
  print("flows = '$flows'\n");
  print("uptime = '$uptime'\n");
  print("secs = '$secs'\n");
  print("usecs = '$usecs'\n");
  print "*************************************************\n";
}
.
.
.

Есть Cisco 1700 - адрес 192.168.250.1
Порт данных 9996

Хочется читать данные 
Для этого создаю сокет
Обратите внимание на то, как создаётся 
сокет!!!
Я указываю PeerAddr И LocalPort(!)

И это работает, но я не понимаю как!
Ведь я просто создаю клиента и должен действовать по схеме

socket
connect
recv|send

На кой указывать LocalPort???
Если указать PeerPort 9996 - не работает!
В чём моя ошибка?

Ответ на: комментарий от majordomo

Да это коллектор.
Логика работы очень простая
 Инициалицация
 Демонизация
  В бесконечном цикле 
    Читаем в буфер из сокета
    Сбрасываем буфер в файл  
Я не совсем понимаю почему коллектор - это
сервер по отношению к Cisco.

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

Но от cisco он просто забирает данные!

kri
() автор топика
Ответ на: комментарий от kri

Вот почитай про netflow: http://manageengine.adventnet.com/products/netflow/help/installation/setup-ci...

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

И почему бы тебе в сторону flow-tools не посмотреть? Там и коллектор готовый, и парсер/экспортер/etc.

majordomo
()
Ответ на: комментарий от kri

Такой ещё вопрос:
Где найти полную спецификацию протокола 
Netflow.

На cisco.com куча доки, но искать я уже
запарился.

Может есть у кого готовый линк.

kri
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.