URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 74497
[ Назад ]

Исходное сообщение
"TCP checksum offload - Что за хрень?"

Отправлено sheff , 06-Июн-07 12:47 
Столкнулся с такой проблемой, после установки системы и пересборки ядра, перестала в полной мере работать сеть. Система стартует, сетевой интерфейс инициализируется без ошибок, пингуются различные узлы Internet, работает ICQ, но ни WWW, ни FTP не работает... Браузер в строке состояния пишет "Узел найден ожидается ответ" или что-то в этом роде и ВСЁ! Wireshark показал, что с МОЕГО хоста отправляются неправильные пакеты, как UDP, так и TCP. В общем на запросе "GET HTTP 1/1" снифер показывает ошибку "Checksum: 0xf59e [incorrect, should be 0xc500 (maybe caused by "TCP checksum offload"?)]", после чего генерятся пакеты c флагами F и P и соединение зависает... Как бороться с этой хренью??? Из ядра повыкидывал всё, оставил только сетевую поддержку и поддержку TCP/IP, избавился там от всяких айписеков, нетфильтров, маршрутизации и т. д.

Система: Gentoo 2007.0
Kernel: 2.6.20-r8
NIC: D-Link 10/100 на чипе RTL8139

Заранее благодарен за помощ...


Содержание

Сообщения в этом обсуждении
"TCP checksum offload - Что за хрень?"
Отправлено Аноним , 06-Июн-07 16:20 
>пингуются различные узлы Internet, работает ICQ, но ни WWW, ни FTP
>не работает...
>Браузер в строке состояния пишет "Узел найден ожидается ответ"
DNS значит тоже работает ))

Это часто бывает когда большие пакеты(MTU 1500) не пролазят. Входящие, исходящие, или все. Проиходит это обычно из-за дешёвой платы воткнутой в VLAN или pppoe/pptp


> Wireshark показал, что с
>МОЕГО хоста отправляются неправильные пакеты, как UDP, так и TCP. В
>общем на запросе "GET HTTP 1/1" снифер показывает ошибку "Checksum: 0xf59e
>[incorrect, should be 0xc500 (maybe caused by "TCP checksum offload"?)]", после
>чего генерятся пакеты c флагами F и P и соединение зависает...
>Как бороться с этой хренью???
Это из-за того что твоя сетевая плата умеет сама считать (и поправлять) контрольные суммы tcp/udp, и операционная система этим не утруждается, вставляя туда произвольное число. То что сетевая плата исправляет - никакой снифер разумеется не видит, так как он до неё.
Если бы контрольные суммы были не правильные - связи бы вообще не было.

Боротся надо с прохождением пакетов. Если от тебя не уходят - уменьшай MTU, если не приходят - пусть другая сторона включает фрагментацию, ну или настроить нормально канал с MTU=1500, это самое правильное решение.


"TCP checksum offload - Что за хрень?"
Отправлено dsk , 13-Янв-08 01:55 
та-же хрень под Fedora Core 6, уменьшение MTU ничего не меняет, на этом компьютере ещё установлена WinXP, всё работает нормально. Подключаю к тому же шнурку ноутбук под suse 10.0 - тоже всё работает (MTU=1500). Подскажите где грабли, пожалуйста.

"TCP checksum offload - Что за хрень?"
Отправлено dsk , 22-Янв-08 02:51 
"грабли" найдены, установил значение /proc/sys/net/ipv4/tcp_rmem как у SuSE - 4096    87380   174760, всё нормально работает.

"TCP checksum offload - Что за хрень?"
Отправлено Cheat , 27-Авг-08 21:00 
>"грабли" найдены, установил значение /proc/sys/net/ipv4/tcp_rmem как у SuSE - 4096  
> 87380   174760, всё нормально работает.

а было больше или меньше? у меня аналогичная проблема на сусе :(


"TCP checksum offload - Что за хрень?"
Отправлено dsk10 , 10-Окт-08 13:30 
>>"грабли" найдены, установил значение /proc/sys/net/ipv4/tcp_rmem как у SuSE - 4096  
>> 87380   174760, всё нормально работает.
>
>а было больше или меньше? у меня аналогичная проблема на сусе :(
>

последнее значение было гораздо больше (сколько не помню), установил именно эти значения.


"TCP checksum offload - Что за хрень?"
Отправлено lenin , 24-Окт-08 15:12 
>снифер показывает ошибку "Checksum: 0xf59e
>[incorrect, should be 0xc500 (maybe caused by "TCP checksum offload"?)]",

Примерно такая проблема была с Ubuntu 8.04, когда на шлюзе (FreeBSD 6.2, NAT через PF) прописали "pass out keep state" в pf.conf. Решилась удалением строки )))