[Sysadmins] SCTP recv problems
Eugene Prokopiev
enp на itx.ru
Ср Фев 5 15:03:50 MSK 2014
Здравствуйте!
Есть некое ПО, использующее SCTP и работающее на одной машине, но не
работающее на другой. И там, и там свежий t7/branch, очевидной разницы
в конфигурации нет. В поисках источника проблемы докатились до того,
что написали маленький SCTP-сервер:
#!/usr/bin/perl
use strict;
use Socket;
my $proto = getprotobyname('sctp');
socket(server, PF_INET, SOCK_RAW, $proto) || die "socket error: $!";
bind(server, sockaddr_in(0, INADDR_ANY)) || die "bind error: $!";
my $buffer;
while (1) {
print "recv wait ...\n";
my $paddr = recv(server, $buffer, 65535, 0);
my ($port, $iaddr) = sockaddr_in($paddr);
print "recv from [".inet_ntoa($iaddr)."]\n";
}
На одной машине поведение такое:
# ./sctp.pl
recv wait ...
recv from [10.10.10.1]
recv wait ...
recv from [10.10.10.1]
и:
$ tshark -i eth0 -R 'sctp'
Capturing on eth0
9.304980 10.10.10.1 -> 10.10.10.2 SCTP 86 INIT
9.305173 10.10.10.2 -> 10.10.10.1 SCTP 50 ABORT
39.426030 10.10.10.1 -> 10.10.10.2 SCTP 86 INIT
39.426237 10.10.10.2 -> 10.10.10.1 SCTP 50 ABORT
На другой:
# ./sctp.pl
recv wait ...
и:
$ tshark -i eth0 -R 'sctp'
Capturing on eth1
5.112609 10.10.10.1 -> 10.10.10.2 SCTP 86 INIT
6.212575 10.10.10.1 -> 10.10.10.2 SCTP 86 INIT
Куда пропадают INIT-пакеты? Разумеется, iptables на обоих машинах отсутствует.
--
WBR,
Eugene Prokopiev
Подробная информация о списке рассылки Sysadmins