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

Исходное сообщение
"Отчего не работает tcpmssfix в MPD 3.18?"

Отправлено xOr , 06-Окт-07 23:44 
Имеется в виду опция set iface enable tcpmssfix в файле mpd.conf
При этом никаких ошибок в mpd.log не замечено, он не ругается на опцию.  Синтаксис соблюден (как и другие опции через табуляцию в начале указана).

Вот подобное сообщение, ответа вроде нет (или неизвестно как его найти): http://www.net-pr.com.ru/fido7.ru.unix.bsd/66048.html

В теории, tcpmssfix должен изменять MSS только исходящих пакетов, или входящих тоже? А может вообще только входящих.  В последнем случае он не работает не у меня, а у провайдера.

Меняется MSS только входящих пакетов (видимо это происходит у провайдера), а на исходящих - нет.

То же самое наблюдалось до обновления mpd с 3.17 до 3.18

Вопрос возник в ходе решения этой проблемы http://www.opennet.me/openforum/vsluhforumID1/76497.html
решил оформить его в отдельную, более конкретную тему.


Содержание

Сообщения в этом обсуждении
"Отчего не работает tcpmssfix в MPD 3.18?"
Отправлено ws , 07-Окт-07 02:04 
>[оверквотинг удален]
>А может вообще только входящих.  В последнем случае он не
>работает не у меня, а у провайдера.
>
>Меняется MSS только входящих пакетов (видимо это происходит у провайдера), а на
>исходящих - нет.
>
>То же самое наблюдалось до обновления mpd с 3.17 до 3.18
>
>Вопрос возник в ходе решения этой проблемы http://www.opennet.me/openforum/vsluhforumID1/76497.html
>решил оформить его в отдельную, более конкретную тему.

Работает для входящих и исходящих пакетов. Подстраивает MSS не превышающее MTU на интерфейсе. Т.е в конфиге должно быть примерно так:
set iface mtu 1440
set iface enable tcpmssfix

Проверял для mpd-4.3

p.s.: MSS можно подстравать и другими способами:
С помощью демона tcpmssd, используя связку ipfw+tcpmssd
или использовать штатные средства нормлизации
пактов в PF, например scrub out on ng0 max-mss 1440


"Отчего не работает tcpmssfix в MPD 3.18?"
Отправлено xOr , 07-Окт-07 03:17 
>[оверквотинг удален]
>интерфейсе. Т.е в конфиге должно быть примерно так:
>set iface mtu 1440
>set iface enable tcpmssfix
>
>Проверял для mpd-4.3
>
>p.s.: MSS можно подстравать и другими способами:
>С помощью демона tcpmssd, используя связку ipfw+tcpmssd
>или использовать штатные средства нормлизации
>пактов в PF, например scrub out on ng0 max-mss 1440

Спасибо! set iface mtu я действительно не указывал. Из mana было непонятно зачем он вообще нужен (и не является ли огранчиением MTU базового интерфейса)
Но... ничего не изменилось
        set iface mtu 1460
        set iface enable tcpmssfix

всё равно производится замена MSS только для входящих пакетов (это не провайдер меняет, точно у меня, отключал tcpmssfix - переставало заменять), а для исходящих приходится использовать tcpmssfix

Сейчас использую tcpmssd  но он много процессора съедает.


"Отчего не работает tcpmssfix в MPD 3.18?"
Отправлено ws , 07-Окт-07 23:28 
Помнится для mpd 3-й версии в инете патчик для tcpmssfix был. То ли он вводил эту фичу, то ли исправлял - уже не помню.
А почему на 4-ю врсию не перейдешь?
У меня шлюзовая машина работатет, как клиент - нет проблем.


"Отчего не работает tcpmssfix в MPD 3.18?"
Отправлено xOr , 08-Окт-07 00:56 
>Помнится для mpd 3-й версии в инете патчик для tcpmssfix был. То
>ли он вводил эту фичу, то ли исправлял - уже не
>помню.
>А почему на 4-ю врсию не перейдешь?
>У меня шлюзовая машина работатет, как клиент - нет проблем.

4-й почему-то не хотел ставиться.  Он вообще должен идти под FreeBSD 4.9?
Пробовал порт обновить с freshports.org, разные ошибки при make выдавал, короче я забил на это.   У него там были ещё зависимости от ng_ipacct и ng_car.  Надо будет ещё попробовать. Просто перебои интернета связанные с настройкой уже всех довели.

Спасибо за информацию про патч, попробую найти.  Только сама команда у меня понимается, но работает только на вход.  Так что может он как раз для тех версий < 3.15 где она не понималась.  Думаю вряд ли в 3.18 её не исправили.
Замечу что MPD ставился заново (после удаления 3.17).

P.S.
Если кому понадобится tcpmssd:
Направлять пакеты очень хорошо так  divert <порт> ip from <внешний адрес> to any tcpoptions syn out
То есть только пакеты установления TCP соединения, т.к. только в них передается MSS. Весь трафик гнать через него не нужно.

Впрочим основная проблема тут - надежность. Отвалится демон - и всё, соединение не установишь. Надежнее опция в mpd всё же.


"Отчего не работает tcpmssfix в MPD 3.18?"
Отправлено magr , 08-Окт-07 16:35 
>[оверквотинг удален]
>Замечу что MPD ставился заново (после удаления 3.17).
>
>P.S.
>Если кому понадобится tcpmssd:
>Направлять пакеты очень хорошо так  divert <порт> ip from <внешний адрес> to any tcpoptions syn out
>То есть только пакеты установления TCP соединения, т.к. только в них передается
>MSS. Весь трафик гнать через него не нужно.
>
>Впрочим основная проблема тут - надежность. Отвалится демон - и всё, соединение
>не установишь. Надежнее опция в mpd всё же.

tcpmssfix уже должен быть включен в состав кода mpd 3.18. Патч имел смысл для более ранних версий mpd.
Правильнее всего устанавливать последним _портом_ mpd 3.18, который у вас поставится. Я выражаюсь не очень конкретно, поскольку 4.9 формально не поддерживается и соберется ли в ней самый актуальный порт этого продукта (mpd-3.18_5), сказать не готов.

Еще были сложности с WinXP клиентами, рекомендовалось использовать помимо tcpmssfix , опции
set pptp disable windowing
set pptp enable always-ack



"Отчего не работает tcpmssfix в MPD 3.18?"
Отправлено xOr , 10-Окт-07 00:33 
>[оверквотинг удален]
>смысл для более ранних версий mpd.
>Правильнее всего устанавливать последним _портом_ mpd 3.18, который у вас поставится. Я
>выражаюсь не очень конкретно, поскольку 4.9 формально не поддерживается и соберется
>ли в ней самый актуальный порт этого продукта (mpd-3.18_5), сказать не
>готов.
>
>Еще были сложности с WinXP клиентами, рекомендовалось использовать помимо tcpmssfix , опции
>
>set pptp disable windowing
>set pptp enable always-ack

На 4.9 собирал давно ещё, но вот для теста на 4.10 собрал с последними файлами порта с freshports.org  (кстати так и не понял,как оттуда все файлы скачиваить, пришлось по одному из каждого обновления, и патч только вручную прошел, make ругался что не может его выполнить  (там 4 патча разных файлов))  - никакой разницы в работе (машина другая).

Опцию windowing   mpd 3.18 не понимает.  Я поставил патч  ng_pptpgre.patch-4.10.txt  и включил опцию set pptp disable delayed-ack

Скажите, кстати, пожалуйста, always-ack не может повышать вероятность разрывов связи? И стоит ли её включать если mpd используется в качестве клиента.  Она подразумевает подтверждение к каждому пакету ppp?
И у меня не на клиентов, а как раз в качестве клиента.