Показать сообщение отдельно
Старый 06.05.2006, 01:04     # 1
mmaaxx
Junior Member
 
Регистрация: 08.10.2003
Сообщения: 98

mmaaxx Известность не заставит себя ждать
Unhappy Неправильная checksum UDP (IPv6)... ?

Hi,

Может кто-то подскажет ... ?

Все это касается IPv6:
Есть 2 уотройства (с практически одинаковым software), сидят на одном хабе, там же (на хабе сидит PC со сниффером). Устройства ежеминутно делают мультикаст в UDP.

Итого слушаем:
PHP код:
max@snake:~$ sudo tcpdump ---i eth0 ---s 512 -vv ip6 or proto ipv6
Password
:
tcpdumplistening on eth0link-type EN10MB (Ethernet), capture size 512 bytes

fe80
::212:baff:fe00:100.8202 ff02::1.8202: [udp sum okUDPlength16 (len 24hlim 255)
        
0x0000:  6000 0000 0018 11ff fe80 0000 0000 0000  `...............
        0x0010:  0212 baff fe00 0100 ff02 0000 0000 0000  ................
        0x0020:  0000 0000 0000 0001 200a 200a 0018 5692  ..............V.
        0x0030:  aa55 04fb 0013 000d 0010 0000 0000 0000  .U..............
fe80::212:baff:fe00:200.8202 > ff02::1.8202: [bad udp cksum 1cfe!] UDP, length: 12 (len 28, hlim 255)
        0x0000:  6000 0000 001c 11ff fe80 0000 0000 0000  
`...............
        
0x0010:  0212 baff fe00 0200 ff02 0000 0000 0000  ................
        
0x0020:  0000 0000 0000 0001 200a 200a 0014 e514  ................
        
0x0030:  2004 fff1 0000 0003 0000 000d 0000 0014  ................
        
0x0040:  0000 01c7                                ....
fe80::212:baff:fe00:200.8202 ff02::1.8202: [bad udp cksum 1cfe!] UDPlength12 (len 28hlim 255)
        
0x0000:  6000 0000 001c 11ff fe80 0000 0000 0000  `...............
        0x0010:  0212 baff fe00 0200 ff02 0000 0000 0000  ................
        0x0020:  0000 0000 0000 0001 200a 200a 0014 e513  ................
        0x0030:  2004 fff1 0000 0004 0000 000d 0000 0014  ................
        0x0040:  0000 01c7                                ....

227 packets captured
227 packets received by filter
0 packets dropped by kernel 
* log немного подчистил от лишнего мусора.

fe80::212:baff:fe00:100 - устройство1 (udp sum ok)
fe80::212:baff:fe00:200 - устройство2 ("bad udp cksum ****!!")
fe80::20c:76ff:febb:a462 - собственно сам PC со сниффером

Вопрос простой: почему UDP checksum у устройства2 неправильный?

Сразу в глаза бросается линия:
PHP код:
fe80::212:baff:fe00:200.8202 ff02::1.8202: [bad udp cksum 1cfe!] UDPlength12 (len 28hlim 255
length: 12 - это не правильно, length - должен быть 28-sizeof(udpHeader)= 28-8=20 (для устройства1 - работает, там отнимается именно 8, а не 16 байт?!!!). В самом пакете все числа вроде правильные? IPv6 вроде тоже выглядит правильным?

PS: Кусок кода отвечающего за работу устройств в сети обсолютно! одинаковый, firmware у 2-го немного переделаный первый.

PPS: Сниффер под windows выдает что UDP checksum OK для обоих устройств!!!!!

Кто-то вообще понял о чем я?
Есть какието идеи?

Последний раз редактировалось mmaaxx; 06.05.2006 в 01:13.
mmaaxx вне форума