Итак завершающий топик из серии.
В контексте топиков подымалась проблема передачи разного трафика из центра в удаленные офисы.
Первую проблему по передаче больших файлов мне удалось решить и наконец усилиями других пользователей оно попало в объявление.
В нескольких последних топиках, наприер
http://www.dlink.ru/newphorum/viewtopic.php?t=4671 обсуждалась проблема роздачи интернета и почты в удаленные офисы.
Все подробности и схемы подключения ищите в пред. топиках.
Общая суть проблемы и частично ее решение приведена здесь:
1.
http://www.cisco.com/warp/public/105/56.pdf
Здесь сведена теория по фрагментации пакетов при туннелировании и в частности по IPSec:
2.
http://www.cisco.com/warp/public/105/pmtud_ipfrag.pdf
Теперь привожу свое решение проблемы:
1. Схема подключения:
ХР <-> 804HV <-> SHDSL <- 128k -> SHDSL <-> 804HV <-> Linux <-> Internet
На всех интерфейсах установлено MTU=1500. В этом случае наблюдается "захлебывание" и зависание почтовых клиентов и броузеров.
Машина с Linux выдает все пакеты с установленным флагом DF. При инкапсуляции добавляется до 58 байт данных IPSec. В результате пакет не "влазит" в интерфейс и роутер должен вернуть соотв. ICMP сообщение Linux-машине, которая в свою очередь должна передать такой же пакет, но меньшей длины. Чего не происходит, поскольку нет ICMP сообщения. Я не смог их зафиксировать даже когда изменил правила файервола.
Мое решение:
Базируется на основе информации из источника №2.
Необходимо понизить длину пакета на величину от 52 до 58 байт. Зависит от настроек VPN.
Менять MTU на интерфейсе Linux-машины не очень интересно, т.к. она работает на несколько подсетей с MTU=1500. Поэтому менять нужно только в случае с удаленным офисом.
1. Если в первом Syn-пакете с запросом на подсоединение изменить размер значение MSS, то все остальные ответные пакеты будут отсылаться не более указанного размера.
MSS=MTU-40 т.е. в нашем случае получаем ( 1500-58 ) - 40 = 1402.
2. Затем например в iptables написать, что-то вроде:
iptables -t mangle -A INPUT -j TCPMSS --set-mss 1402 -s {branch office IP} -p tcp --syn
Модуль с "таргетом" TCPMSS должен быть в наличии.
Таким образом все меняется на лету и не нужно больших изменений. Эффект хорошо видно сниффером.
Сразу говорю всем, кто делал такое ранее, но на мои вопросы в форуме не отвечал - описываю ход своего решения.
Модераторам! Я думаю, что все вышенаписанное можно подвесить рядом с "проблемой передачи больших файлов" в объявлениях. Исключительно ради того, чтобы никто более голову не ломал. Естественно все на Ваше усмотрение.