Крымский форум (Crimea-Board) Поиск Участники Помощь Текстовая версия Crimea-Board.Net
Здравствуйте Гость .:: Вход :: Регистрация ::. .:: Выслать повторно письмо для активации  
 
> Рекламный блок.
 
 
 
 
 
> Ваша реклама, здесь
 
 
 

  Start new topic Start Poll 

> Укртелеком, MTU и фрагментация пакетов
SwD | Профиль
Дата 10 Июня, 2009, 21:15
Quote Post



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


Итак, имеем следующую картину...
Удалённая точка, подключенная через нормального провайдера (например — Крымтел, Свифт-трейс), пробует простроить openvpn-туннель на УТ-интерфейс в моей головной конторе. Это проходит без проблем, и туннель стоит... Однако стоит подать на него плотную нагрузку (ну, например, uucp/rsync/плотный ping), как тут же туннелю становится плохо... Вдумчивое втыкание в tcpdump показало, что падение туннеля вызвано дропом больших (т.е. фрагментированных) пакетов. Тупое уменьшение MTU на интерфейсе удалённой точки проблему решило, равно как и более элегантное iptables -A OUTPUT -o eth1 -p tcp -d 82.207.xxx.xxx --tcp-flag SYN,RST SYN -m tcpmss --mss 1420:1500 -j TCPMSS --set-mss 1420 .
Но...
1. Наблюдал ли кто аналогичные проблемы с дропом пакетов на неУТ/УТ-коннектах?
2. Прав ли я, предполагая, что проблемы вызваны некорректной работой pmtud в недрах УТшной сетки (например — какой-то шлюз зафильтровал напрочь icmp и/или тупо передаёт лишь первую часть фрагментированного пакета, дропая оставшиеся, что приводит к невозможности собрать такой пакет в финальной точке)? Косвенно это подтверждается тем, что при коннекте не на УТ никаких плясок с MTU/MSS производить не надо.
3. Как, собственно, корректно вычислить MTU в данном случае? Ибо реально я скорее с потолка взял 1460 в описанном случае (вернее — потихоньку уменьшал изначальные 1500).


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
163/10182   
Бобер | Бездомный
Реклама двигатель прогресса       
Quote Post



А кому сча лехко?
Group Icon


















_________________
Желающим разместить рекламу смотреть сюдой
/   
adeep | Профиль
Дата 10 Июня, 2009, 21:42
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 795
Регистрация: 04.11.06
Авторитет: 1
Вне форума

Предупреждения:
(0%) -----


Цитата(SwD @ 10 Июня, 2009, 20:12)
Прав ли я, предполагая, что проблемы вызваны некорректной работой pmtud

вполне, только скорее всего просто дропают все большие пакеты (так например microsoft.com делает)

Цитата(SwD @ 10 Июня, 2009, 20:12)
Как, собственно, корректно вычислить MTU в данном случае?

по идее MTU = размер данных + размер заголовка TCP/IP + размер обертки пакета туннеля + заголовок TCP/IP туннеля < 1500

Отредактировал adeep - 10 Июня, 2009, 23:01


____________________
"BSD code sucks. Of course, everything else sucks far worse." - Theo de Raadt
PMEmail PosterUsers Website
147/4266   
Eugene | Профиль
Дата 10 Июня, 2009, 21:55
Quote Post



Юджин
Group Icon

Группа: VIP
Сообщений: 2047
Регистрация: 12.08.03
Авторитет: 8
Вне форума

Предупреждения:
(0%) -----


link-mtu 1504
в openvpn не пробовал ?
ну и mssfix подобрать экспериментально


____________________
Жизнь - вечная борьба: до обеда с голодом, после обеда со сном.
PMEmail Poster
155/5791   
SwD | Профиль
Дата 10 Июня, 2009, 22:31
Quote Post



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


Цитата(adeep @ 10 Июня, 2009, 20:39)
по идее MTU =

Ну в данном случае, как так tcpdump «слушал» не туннельный интерфейс (это нам мало чего дало бы), а УТшный — MTU = MSS + 40 байт на заголовки TCP/IP
В итоге экспериментально получен MTU 1460...

Eugene
Завтра поиграюсь с опцией mtu-test — посмотрю на результат... Она-то позволит вычислить оптимальный MTU, но... это займёт несколько минут при старте туннеля.


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
148/10182   
SwD | Профиль
Дата 10 Июня, 2009, 22:50
Quote Post



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


Цитата(Eugene @ 10 Июня, 2009, 20:52)
link-mtu 1504

Если верить документации, то:
Цитата
--link-mtu n
    Sets an upper bound on the size of UDP packets which are sent between OpenVPN peers. It's best not to set this parameter unless you know what you're doing.


Т.е. этот параметр мне мало поможет, ибо туннель по tcp строится, а не по udp.


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
152/10182   
adeep | Профиль
Дата 10 Июня, 2009, 22:56
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 795
Регистрация: 04.11.06
Авторитет: 1
Вне форума

Предупреждения:
(0%) -----


тогда mssfix на обрезку пакетов до 1460

Цитата(adeep @ 10 Июня, 2009, 20:39)
только скорее всего просто дропают все пакеты с флагом фрагментации (так например microsoft.com делает)

поправлюсь:
дропают большие пакеты и не присылают icmp response на ограничение MTU (не работает MTU Path Discovery)

то бишь экспериментально надо подобрать mssfix на максимуме работоспособности. в принципе немаксимальное значение просто немного увеличит расход траффика (ограничит туннельную скорость) без других негативных эффектов.

Отредактировал adeep - 10 Июня, 2009, 23:00


____________________
"BSD code sucks. Of course, everything else sucks far worse." - Theo de Raadt
PMEmail PosterUsers Website
151/4266   
SwD | Профиль
Дата 11 Июня, 2009, 11:28
Quote Post



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


adeep
Ну, в сущности, именно ограничение MSS и сделано, через iptables.


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
16/10182   

Topic Options Start new topic Start Poll 

 



[ Script Execution time: 0.0680 ]   [ 12 queries used ]   [ GZIP включён ]


Создание и продвижение сайтов в Крыму



Top