Помогите чайнику


Я тут в очередной раз переставил систему на роутере, который раздавал сеть в квартире.
Раньше там стояло FreeBSD, с ним было почти все нормально, но при большом траффике связь между компом и роутром падала.
Теперь поставил gentoo. Опять же почти все нормально, кроме того, что http и ftp тормозят как не знаю кто. Точнее так: некоторые сайты спокойно открываются, другие пишут "Жду ответа от сайта" и остаются в этом состоянии навсегда. На ftp можно нормально зайти, если список файлов меньше определенного размера; а если больше, то он не прочитывается. Пинги при этом проходят без проблем. Если комп подключить напрямую к сети, тоже все нормально.
Провайдер - Корбина с системой "сперва подключаемся к локалке, потом к vpn".
С самого роутера все грузится нормально.
Кто может быть виноват, и что делать?

Upd. Quest complete, нашлось нужное волшебное слово где-то в дебрях интернета :)
Я так понимаю на роутере NAT?
нормально ли видна провайдерская локалка из за роутера?
Если видна, то крутить mtu/mru/mrru на vpn в сторону уменьшения (там кто -- pppoe или pptp?)

Ну или генту такое генту, и там что-то не так собрано. Но тут я не копенгаген, у меня или дебиан или тепловозная соляра везде ;)
Локалка да, вроде бы нормально. Там pptp.
А дебиан у меня почему-то вообще ни одну сетевую карту не увидел :)
Как то странно -- ядро то в общем и там и там примерно с одного и того же места.
У некоторых пптп концентраторов проблема с дефрагментацией пакетов -- маленькие пролезают, а на большие той стороне говорят source quench и превед. попробуй mtu == mru == 500, mrru == 600 например. (подбери максимально большой при котором работает)

PS А какое решение подошло кстати? (увидел апдейт)
Нужно было в iptables вставить iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Я, честно говоря, не понял, что оно делает, но теперь все работает :)
http://en.wikipedia.org/wiki/Path_MTU_discovery
вот ровно оно.
Скорее всего или ваш файрволл, или нат провайдера режет IP Fragmentation needed. (или узкое место у провайдера его не говорит почему-то). Варианта два -- один вы нашли, второй -- зажать мту на туннельном интерфейсе чтобы он был меньше чем "узкое место"
Понятно. Скорее всего проблема была из-за того, что я отключил icmp кроме 0 и 8.
Ну я бы оставил 3 и 4 еще
#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
#define ICMP_SOURCE_QUENCH 4 /* Source Quench */

Может конечно меня кто поправит, и скажет что это плохо плохо