|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Gleb Smirnoff 2:5020/400 23 May 2005 13:27:59 To : Sergey Korolew Subject : Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме -------------------------------------------------------------------------------- Sergey Korolew <Sergey.Korolew@p2.f1.n6053.z2.fidonet.org> wrote: SK> Роутер с 5.4STABLE (сегодняшней). Стандартая схема использования ipsec - SK> поднят gif-туннель, соответственно, шифруются ipencap-пакеты. mtu туннеля SK> меньше чем 1500. SK> Проблема - при приходе tcp-пакета с DF не проходящего в этот gif-интерфейс SK> генерится icmp unreachable, need frag с _нулевым_ желательным mtu ! SK> Разумеется, источник пакетов никак на такую лажу не реагирует. SK> Убирание IPSEC из ядра полностью снимает проблему. SK> Дело, по всей видимости, в корявой попытке исправить pmtud для туннельного SK> режима ipsec: SK> sys/netinet/ip_input.c SK> #if defined(IPSEC) || defined(FAST_IPSEC) SK> /* SK> * If the packet is routed over IPsec tunnel, tell the SK> * originator the tunnel MTU. SK> * tunnel MTU = if MTU - sizeof(IP) - ESP/AH hdrsiz SK> * XXX quickhack!!! SK> */ SK> ... поскипано SK> /* SK> * find the correct route for outer IPv4 SK> * header, compute tunnel MTU. SK> * SK> * XXX BUG ALERT SK> * The "dummyifp" code relies upon the fact SK> * that icmp_error() touches only SK> ifp->if_mtu. */ SK> /*XXX*/ destifp = NULL; SK> if (sp->req != NULL sav != NULL sah != NULL) { SK> ro = &sp->req->sav->sah->sa_route; if SK> (ro->ro_rt && ro->ro_rt->rt_ifp) { SK> dummyifp.if_mtu = rt_rmx.rmx_mtu ? rt_rmx.rmx_mtu : rt_ifp->if_mtu; SK> dummyifp.if_mtu -= ipsechdr; SK> destifp = &dummyifp; } SK> } SK> Если обнаружена политика ipsec, подходящая для данного пакета, то тупо SK> пытаемся скорректировать mtu. Блин, ну хоть проверку на тип SK> (туннельный/транспортный) надо же вставить ! Иначе получаем нулевое SK> желательное mtu в ответном icmp-пакете при транспортном режиме. SK> Есть ли здесь заинтересованные люди (читай использующие ipsec), SK> способные корректно исправить проблему или хотя бы донести это до авторов ? SK> Это же вилы... Донести до авторов можно и нужно самому. Перевести вышесказанное на английский язык и написать в net@. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/65775a92cc9e.html, оценка из 5, голосов 10
|