Столкнулся с такой проблемой, после установки системы и пересборки ядра, перестала в полной мере работать сеть. Система стартует, сетевой интерфейс инициализируется без ошибок, пингуются различные узлы 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Заранее благодарен за помощ...
>пингуются различные узлы 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, это самое правильное решение.
та-же хрень под Fedora Core 6, уменьшение MTU ничего не меняет, на этом компьютере ещё установлена WinXP, всё работает нормально. Подключаю к тому же шнурку ноутбук под suse 10.0 - тоже всё работает (MTU=1500). Подскажите где грабли, пожалуйста.
"грабли" найдены, установил значение /proc/sys/net/ipv4/tcp_rmem как у SuSE - 4096 87380 174760, всё нормально работает.
>"грабли" найдены, установил значение /proc/sys/net/ipv4/tcp_rmem как у SuSE - 4096
> 87380 174760, всё нормально работает.а было больше или меньше? у меня аналогичная проблема на сусе :(
>>"грабли" найдены, установил значение /proc/sys/net/ipv4/tcp_rmem как у SuSE - 4096
>> 87380 174760, всё нормально работает.
>
>а было больше или меньше? у меня аналогичная проблема на сусе :(
>последнее значение было гораздо больше (сколько не помню), установил именно эти значения.
>снифер показывает ошибку "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. Решилась удалением строки )))