Проблемы с udp-сокетом

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Altair83
Сообщения: 1

Проблемы с udp-сокетом

Сообщение Altair83 »

Всем добрый день.

Есть система CentOS rel.5
На которой работает скрипт для получения netflow-трафика путем прослушки udp-порта 9996
Фрагмент скрипта:

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

# Создаём сокет
my $socket;
if ( $ret_val = create_socket(\$socket) ) { logg($ret_val); }

  # Хэш для хранения заголовка датаграммы
  my %header = ();

# Хэш для хранения одной записи датаграммы
 my %record = ();

  # Строка для хранения датаграммы
  my $data;
  # Здесь будет храниться возвращаемое recv значение (запакованные адрес и порт роутера)
  my $from;
  # Читаем датаграмму из сокета - eval НЕОБХОДИМ (perldoc -f alarm)
   eval
   {
     local $SIG{ALRM} =  sub {die "alarm\n"};
     alarm ($global_cfg{alarm_timeout});
        $from = $socket->recv($data, 8192, 0) or next;
        logg ($from);
     alarm(0);
   };

sub create_socket($)
{
   my $sock = shift;
   my_die("sub create_socket : no reference to socket handle") unless defined $sock;
   $$sock =  IO::Socket::INET -> new (
                         LocalPort  => $local_port},
                        Proto      =>'udp'
                     ) or return "Can't create socket : '$!'";
   return undef;
}


Установил этот скрипт на другой сервер в этой же сети с ОС Fedora 11.
Скрипт запускается без проблем, сокет открывает.
netstat -avn выдает:
udp 0 0 0.0.0.0:9996 0.0.0.0:*
tcpdump показывает наличие пакетов:
...
14:03:28.101886 IP 80.241.32.253.55117 > 80.241.32.196.palace-5: UDP, length 1464
14:03:28.110150 IP 80.241.32.253.55117 > 80.241.32.196.palace-5: UDP, length 1464
14:03:28.115266 IP 80.241.32.253.55117 > 80.241.32.196.palace-5: UDP, length 1464
14:03:28.122073 IP 80.241.32.253.55117 > 80.241.32.196.palace-5: UDP, length 1464
...

но датаграммы никакие не принимает.
Не могу разобраться в чем причина.
Может нужны какие-то настройки в самой Fedora, чтобы заставить скрипт получать данные?
Спасибо сказали: