Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Sergey Korolew                       2:6053/1.2     22 May 2005  23:59:09
 To : All
 Subject : 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме
 -------------------------------------------------------------------------------- 
 
 
 Роутер с 5.4STABLE (сегодняшней). Стандартая схема использования ipsec -
 поднят gif-туннель, соответственно, шифруются ipencap-пакеты. mtu туннеля меньше
 чем 1500.
 
 Проблема - при приходе tcp-пакета с DF не проходящего в этот gif-интерфейс
 генерится icmp unreachable, need frag с _нулевым_ желательным mtu !
 Разумеется, источник пакетов никак на такую лажу не реагирует.
 Убирание IPSEC из ядра полностью снимает проблему.
 
 Дело, по всей видимости, в корявой попытке исправить pmtud для туннельного
 режима ipsec:
 
 sys/netinet/ip_input.c
 
 #if defined(IPSEC) || defined(FAST_IPSEC)
                 /*
                  * If the packet is routed over IPsec tunnel, tell the
                  * originator the tunnel MTU.
                  *      tunnel MTU = if MTU - sizeof(IP) - ESP/AH hdrsiz
                  * XXX quickhack!!!
                  */
 
 ... поскипано
 
                                 /*
                                  * find the correct route for outer IPv4
                                  * header, compute tunnel MTU.
                                  *
                                  * XXX BUG ALERT
                                  * The "dummyifp" code relies upon the fact
                                  * that icmp_error() touches only ifp->if_mtu.
                                  */
                                 /*XXX*/
                                 destifp = NULL;
                                 if (sp->req != NULL
                                  && sp->req->sav != NULL
                                  && sp->req->sav->sah != NULL) {
                                         ro = &sp->req->sav->sah->sa_route;
                                         if (ro->ro_rt && ro->ro_rt->rt_ifp) {
                                                 dummyifp.if_mtu =
                                                   ro->ro_rt->rt_rmx.rmx_mtu ?
                                                   ro->ro_rt->rt_rmx.rmx_mtu :
                                                   ro->ro_rt->rt_ifp->if_mtu;
                                                 dummyifp.if_mtu -= ipsechdr;
                                                 destifp = &dummyifp;
                                         }
                                 }
 
 Если обнаружена политика ipsec, подходящая для данного пакета, то тупо пытаемся 
 скорректировать mtu. Блин, ну хоть проверку на тип (туннельный/транспортный)
 надо же вставить ! Иначе получаем нулевое желательное mtu в ответном icmp-пакете
 при транспортном режиме.
 
 Есть ли здесь заинтересованные люди (читай использующие ipsec),
 способные корректно исправить проблему или хотя бы донести это до авторов ?
 Это же вилы...
 
  Всего наилучшего,
   Sergey aka DS
 
 --- GoldED+/W32 snapshot-2001.03.04
  * Origin: Hету. Придумывать лень. (2:6053/1.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Sergey Korolew   22 May 2005 23:59:09 
 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Sergey Mikhnenkov   23 May 2005 12:04:32 
 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Sergey Korolew   23 May 2005 12:24:16 
 Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Gleb Smirnoff   23 May 2005 13:27:59 
 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Sergey Korolew   23 May 2005 14:50:20 
 Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Gleb Smirnoff   23 May 2005 17:20:07 
 Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Alexey Luckyanchikov   24 May 2005 19:48:42 
 Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Gleb Smirnoff   24 May 2005 21:19:46 
 Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Alexey Luckyanchikov   25 May 2005 14:56:43 
 Re: 5.4 - поломан PMTUD при использовании IPSEC в транспортном режиме   Gleb Smirnoff   25 May 2005 21:02:56 
Архивное /ru.unix.bsd/22204290e78d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional