zep Опубликовано 17 февраля, 2011 (изменено) · Жалоба Всем привет! Столкнулся с проблемой и не могу найти решения. Есть PPPoE (ядерный rp-pppoe.so) BRAS на базе Linux Debian. На нем крутится NAT и шейпинг. 1) При подключение с Win XP клиента (ДАЖЕ без шейпинга интерфейса, без ната) скорость передачи данных к клиенту не поднимается выше 30-50Мбит, соединение между ними 100base-T. Измерения скорости проводились торентами и флешевыми тестами. 2) При подключении того-же Win XP клиента через роутер (D-Link DIR-615) + оконечивание PPPoE на этом же роутере, проблема счезает. Даже флешевые тесты показывают скорость в обе стороны приближенную к канальной ~ 97 Мбит/сек. 3) При подключении Linux клиента к BRAS через PPPoE - проблема исчезает, скорость максимально возможная. В настройках сервера PPPoE, параметр MTU установлен в автоматическом режиме. Полез смотреть в сторону TCP MSS. Запустил tcpdump на вэб-сервере и зашел на страницу: При подключении из Win XP - MTU на обеих сторонах 1480, рассогласований нет: 13:50:00.195943 IP CLIENT_IP.3536 > WEB_SERV_IP.www: S 1746232114:1746232114(0) win 65535 <mss 1440,nop,wscale 2,nop,nop,sackOK> 13:50:00.195981 IP WEB_SERV_IP.www > CLIENT_IP.3536: S 4040982219:4040982219(0) ack 1746232115 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7> 13:50:00.207458 IP CLIENT_IP.3536 > WEB_SERV_IP.www: . ack 1 win 65340 13:50:00.207664 IP CLIENT_IP.3536 > WEB_SERV_IP.www: P 1:458(457) ack 1 win 65340 13:50:00.207695 IP WEB_SERV_IP.www > CLIENT_IP.3536: . ack 458 win 54 13:50:00.233633 IP WEB_SERV_IP.www > CLIENT_IP.3536: P 1:492(491) ack 458 win 54 13:50:00.233698 IP WEB_SERV_IP.www > CLIENT_IP.3536: F 492:492(0) ack 458 win 54 13:50:00.238783 IP CLIENT_IP.3536 > WEB_SERV_IP.www: . ack 493 win 65217 13:50:00.239080 IP CLIENT_IP.3536 > WEB_SERV_IP.www: F 458:458(0) ack 493 win 65217 13:50:00.239096 IP WEB_SERV_IP.www > CLIENT_IP.3536: . ack 459 win 54 При подключении Win XP через DIR-615 - MTU на обеих сторонах 1492, рассогласований нет. 13:58:45.950662 IP CLIENT_IP.3048 > WEB_SERV_IP.www: S 3816467849:3816467849(0) win 65535 <mss 1452,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK> 13:58:45.950695 IP WEB_SERV_IP.www > CLIENT_IP.3048: S 3692826051:3692826051(0) ack 3816467850 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7> 13:58:45.951712 IP CLIENT_IP.3048 > WEB_SERV_IP.www: . ack 1 win 32768 13:58:45.952016 IP CLIENT_IP.3048 > WEB_SERV_IP.www: P 1:274(273) ack 1 win 32768 13:58:45.952043 IP WEB_SERV_IP.www > CLIENT_IP.3048: . ack 274 win 54 13:58:45.953054 IP WEB_SERV_IP.www > CLIENT_IP.3048: P 1:1395(1394) ack 274 win 54 13:58:45.953127 IP WEB_SERV_IP.www > CLIENT_IP.3048: F 1395:1395(0) ack 274 win 54 13:58:45.954486 IP CLIENT_IP.3048 > WEB_SERV_IP.www: . ack 1396 win 32593 13:58:45.958107 IP CLIENT_IP.3048 > WEB_SERV_IP.www: F 274:274(0) ack 1396 win 32593 13:58:45.958122 IP WEB_SERV_IP.www > CLIENT_IP.3048: . ack 275 win 54 Немного теории: Параметр MTU (Maximum Transmit Unit) отвечает за максимальный размер передаваемого пакета. Если размер пакета будет больше, чем может пропустить маршрутизатор, то он будет разделен, что сразу скажется на скорости и пропускной способности. Если параметр не указать принудительно, значение будет выставлено автоматически и, увы, не всегда рационально. Рассчитывать его следует так. Максимальный размер фрейма Ethernet – 1518 байт, из них 14 – заголовок и 4 – контроль (то есть полезная нагрузка равна 1500 байт). Далее PPPoE отбирает еще 6 байт, а PPP – 2. В итоге значение MTU для PPPoE должно составлять не более 1492. При установлении TCP соединения каждая сторона выставляет параметр Maximum Segment Size (MSS), определяющий максимальный размер TCP сегмента на всем пути. По умолчанию его значение берется, как MTU для исходящего интерфейса минус размер заголовков TCP и IP (40). Исходя из этого, максимальное значение MSS для Ethernet будет равняться 1460, а для PPPoE – 1452. Вопрос по результатам: Почему MSS ack не равен MSS syn ? Хотя в случае через роутер по идее тоже должны быть проблемы, но их нет.... В чем может быть проблема? П.С. Пробовал выставить на BRASe "iptables -A FORWARD -i ppp{NUM} -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1430" но это не изменило значений Изменено 17 февраля, 2011 пользователем zep Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 17 февраля, 2011 · Жалоба Поставьте на сервере MTU 1400 и не мучьтесь. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zep Опубликовано 17 февраля, 2011 · Жалоба Поставьте на сервере MTU 1400 и не мучьтесь. Стояло. Куча проблем. Во многих абонентских устройствах MTU выставлено по-умолчанию не в автоматическом режиме. Начинает "плавится" телефон у тех. поддержки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 17 февраля, 2011 · Жалоба Вот мои настройки:Тоже дебиан. Проблем со скоростью нет. Ни на роутерах ни на винде. # PPP options for the PPPoE server# LIC: GPL lcp-echo-interval 10 lcp-echo-failure 2 mtu 1480 mru 1480 auth +mschap-v2 +mschap +chap nomppe #Fit MSS to PMTU (Actual for routers) $IPTABLES -t filter -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zep Опубликовано 17 февраля, 2011 · Жалоба Проблема нашлась имеено в Win XP. Поставил драйвер PPPoE стороннего производителя ( http://www.raspppoe.com ) И... Торрент, флешевые тесты ожили! Пошел проверил работу на штатном PPP адаптере в Win 7, плясок с бубном непотребовалось. Тест флешем и торентом показал такой-же замечательный результат. Вообщем - привет мелкомягким. Всем спасибо за внимание! 2 Ivan Rostovikov: Устанавливать жестко MTU на BRASe я бы все-таки не стал на вашем месте. Будут жалобы в духе - Mail.ru не открывается и т.д. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 17 февраля, 2011 · Жалоба mssfix юзайте на сервере своём, со скоростью не поможет, скорее всего, зато всё открываться будет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 17 февраля, 2011 (изменено) · Жалоба Устанавливать жестко MTU на BRASe я бы все-таки не стал на вашем месте. Будут жалобы в духе - Mail.ru не открывается и т.д.Жестко ставим 1400 и для пппое и для пптп. Никаких жалоб.А вот если не ставить - то винда с перепугу порой 1500 назначает (хотя это актуально для пптп, если память не подводит, штатный пппое вроде как не пучит). P.S. В свое время clamp-mss-to-pmtu на брасе привел к падению скорости и прочим лагам, от того - убрал нах. Изменено 17 февраля, 2011 пользователем NiTr0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zep Опубликовано 17 февраля, 2011 (изменено) · Жалоба mssfix юзайте на сервере своём, со скоростью не поможет, скорее всего, зато всё открываться будет.Специально для Вас: Пока стояло наявно указано MTU на BRASe, были рассогласования с абонентскими устройствами. Сейчас все отлично, никаких MTU 1500. Даже не переубеждайте. Проверено временем. И кстати, MTU 1500 на PPP - это скорее всего результаты эксперементов пользователя, всякие тюнеры сетевого стека. П.С. Проверил clamp-mss-to-pmtu - мне тоже показалось, что скорость стала еще хуже, особенно в торентах Изменено 17 февраля, 2011 пользователем zep Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 18 февраля, 2011 · Жалоба >Будут жалобы в духе - Mail.ru не открывается и т.д. Жалобы - это если не делать clamp-mss-to-pmtu. А с ним у меня все отлично. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zep Опубликовано 18 февраля, 2011 (изменено) · Жалоба Жалобы - это если не делать clamp-mss-to-pmtu. А с ним у меня все отлично Надоело повторять: жалобы на неправильную фрагментацию будут, тогда, когда МТУ будет несогласовано сторонами. Вы наверно не понимаете о чем говорите и поэтому решаете проблему костылем clamp-mss-to-pmtu. Изменено 18 февраля, 2011 пользователем zep Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 18 февраля, 2011 · Жалоба Жалобы - это если не делать clamp-mss-to-pmtu. А с ним у меня все отлично Надоело повторять: жалобы на неправильную фрагментацию будут, тогда, когда МТУ будет несогласовано сторонами. Вы наверно не понимаете о чем говорите и поэтому решаете проблему костылем clamp-mss-to-pmtu. Окей, у меня и у клиента-пира, скажем, 1000. Все согласовано, всё чин чином.А вот PayPal например упорно шлет TCP с MSS 1400. Что делать - clamp'ить mss или сказать клиенту не ходить на пейпал, потому что у них Web-сервер кривой? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 18 февраля, 2011 · Жалоба Надоело повторять: жалобы на неправильную фрагментацию будут, тогда, когда МТУ будет несогласовано сторонами. Вы наверно не понимаете о чем говорите и поэтому решаете проблему костылем clamp-mss-to-pmtu.И как они будут согласовывать, если мегасервероадмин какого нибудь сервера зарежет ICMP по самые пинги?И Вы всем клиентам с роутерами предлагаете: "пофиксить MTU на сетевом интерфейсе"? На фряхе оно работает оч быстро в ядре: контрольную сумму не пересчитывает полностью а только изменённого, пакеты матчатся тоже парой сравнений. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan Rostovikov Опубликовано 18 февраля, 2011 · Жалоба >Вы наверно не понимаете. Все мы чего то не понимаем. Однако clamp - работает и этого достаточно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...