LINUX.ORG.RU
ФорумAdmin

UDP: bad checksum и UDP: short packet


0

0

Администрирую сервер Counter-Strike 1.6 последнее время сервер стал часто валиться:
[1005315.100642] hlds_i686[28889]: segfault at 43c8d33b ip b7e03fb3 sp bff37e14 error 4 in libc-2.9.so[b7d93000+158000]
или
[935804.518743] hlds_i686[28290]: segfault at 0 ip b55dce91 sp bffbe770 error 4 in cs_i386.so[b5565000+136000]
также в dmesg много ошибок:
[851693.876911] UDP: bad checksum. From 201.13.151.129:57713 to 195.250.182.5:27015 ulen 33
[854540.658583] UDP: bad checksum. From 122.252.245.228:2245 to 195.250.182.5:27015 ulen 33
[855687.604988] UDP: bad checksum. From 189.18.4.119:1565 to 195.250.182.5:27015 ulen 33
[860052.204694] UDP: bad checksum. From 122.252.245.228:1821 to 195.250.182.5:27015 ulen 33
[860524.159011] UDP: bad checksum. From 122.252.245.228:1085 to 195.250.182.5:27015 ulen 33
[860599.250222] UDP: bad checksum. From 189.18.65.182:60143 to 195.250.182.5:27015 ulen 33
[861940.065217] UDP: bad checksum. From 201.95.129.1:3285 to 195.250.182.5:27015 ulen 33
[862792.157285] UDP: bad checksum. From 201.13.208.217:62979 to 195.250.182.5:27015 ulen 33
[879265.386130] UDP: short packet: From 93.209.226.163:0 0/105 to 195.250.182.5:0
[879325.685503] UDP: short packet: From 93.209.226.163:0 0/105 to 195.250.182.5:0
[879755.064074] UDP: short packet: From 93.209.226.163:0 65535/105 to 195.250.182.5:0
[926526.936357] UDP: short packet: From 79.129.8.98:28223 58561/33 to 195.250.182.5:27015
[933483.280670] UDP: short packet: From 89.76.206.131:55984 0/105 to 195.250.182.5:0

Может ли сервер валиться из-за "кривых" пакетов? Может лучше попытаться отфильтровывать лишнее, к примеру через iptables?

debian stable


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

Печально.

Эта хреновина как раз проверяла чексуммы пакетов. Но, как выяснилось, еще во времена 2.6.0 ее отключили.

nnz ★★★★
()
Ответ на: комментарий от Opik

>А есть ещё какой вариант?

Других вариантов я не знаю :(

nnz ★★★★
()

Из исходников ядра:

short_packet:
        LIMIT_NETDEBUG(KERN_DEBUG "UDP%s: short packet: From %pI4:%u %d/%d to %pI4:%u\n",
                       proto == IPPROTO_UDPLITE ? "-Lite" : "",
                       &saddr,
                       ntohs(uh->source),
                       ulen,
                       skb->len,
                       &daddr,
                       ntohs(uh->dest));
        goto drop;

csum_error:
        /*
         * RFC1122: OK.  Discards the bad packet silently (as far as
         * the network is concerned, anyway) as per 4.1.3.4 (MUST).
         */
        LIMIT_NETDEBUG(KERN_DEBUG "UDP%s: bad checksum. From %pI4:%u to %pI4:%u ulen %d\n",
                       proto == IPPROTO_UDPLITE ? "-Lite" : "",
                       &saddr,
                       ntohs(uh->source),
                       &daddr,
                       ntohs(uh->dest),
                       ulen);
drop:
        UDP_INC_STATS_BH(net, UDP_MIB_INERRORS, proto == IPPROTO_UDPLITE);
        kfree_skb(skb);
        return 0;

Видно что ядро эти пакеты не пропускает. Лучше сделай сброс корки у CS и поизучай после удачного падения ;)

zenith ★★★
()
16 ноября 2009 г.

как вариант - на сетевухе включены фичи по контролю чексумм из-за них может быть такая хрень - глючат

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