PIX 506E, MTU, фрагментация VPN-пакетов и IP-телефония Shoretel

У нас есть два сайта, большой южный и маленький северный, между которыми есть VPN, определенные на двух межсетевых экранах Cisco PIX. По этому VPN трафик IP-телефона Shoretel путешествует так же, как и весь другой сетевой трафик. Недавно мы перевели меньший Северный офис на Bt Infinity (оптоволокно), и все системы работали отлично, то есть они работали отлично до прошлой недели. Обратите внимание, ничего не изменилось в этот день.

Трафик, поступающий по VPN из Манчестера, работает на всех фронтах, кроме телефонной системы. Наши ручные телефонные инженеры из Shoretel говорят нам, что это все из-за того, что пакеты телефонной системы имеют бит DF (не фрагментированный), включенный в их трафике, и требуемую полезную нагрузку 1472, а из-за служебной нагрузки IPSec 1472 не будет соответствовать линии MTU.

Если я выполняю тест ping MTU из нашего южного офиса в наш северный офис, я получаю следующее:

C:\>ping <NorthernOfficeServerIP> -f -l 1472

Pinging <NorthernOfficeServerIP> with 1472 bytes of data:
Reply from <OutsideInterfaceOfSourthernPixIP>: Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Настройка VPN на PIX выглядит следующим образом:

sysopt connection permit-ipsec
crypto ipsec transform-set chevelle esp-des esp-md5-hmac
crypto map transam 1 ipsec-isakmp
crypto map transam 1 match address 101
crypto map transam 1 set peer <Peer IP> 
crypto map transam 1 set transform-set chevelle
crypto map transam interface outside
isakmp enable outside
isakmp key ******** address <Peer IP> netmask 255.255.255.0
isakmp keepalive 10
isakmp nat-traversal 20
isakmp policy 1 authentication pre-share
isakmp policy 1 encryption des
isakmp policy 1 hash md5
isakmp policy 1 group 1
isakmp policy 1 lifetime 86400

Первое, что я попробовал на PIX, было заставить его сбросить флаг DF на пакетах, как показано ниже:

pix(config)# crypto ipsec df-bit clear-df outside

К сожалению, это просто дает:

ОШИБКА: нераспознанное использование: [no] crypto ipsec { transform-set | security-association} ... Введите help или '?' для списка доступных команд.

Но тогда наша прошивка PIX весьма почтительна, шоу ver дает мне:

Cisco PIX Firewall Version 6.3(5)
Cisco PIX Device Manager Version 3.0(4)

Compiled on Thu 04-Aug-05 21:40 by morlee

chathampix up 14 hours 54 mins

Hardware:   PIX-506E, 32 MB RAM, CPU Pentium II 300 MHz
Flash E28F640J3 @ 0x300, 8MB
BIOS Flash AM29F400B @ 0xfffd8000, 32KB

Я попытался изменить размер MTU на PIX, у меня был Внешний интерфейс на 1500, 1492 (8 байт для PPP) и рекомендация BT 1458, чтобы попытаться смягчить проблему. Издержки 56 байтов VPN означают, что пакеты с битом DF, установленным в 1472 байта, будут всегда отбрасываться VPN.

Кто-нибудь знает эквивалентную команду для "pix(config)# crypto ipsec df-bit clear-df outside" для PIX с этой прошивкой? Или у тебя есть другие идеи?

ОБНОВИТЬ:

Шоу crypto ipsec sa для Северного PIX ниже:

interface: outside
    Crypto map tag: transam, local addr. <NorthernOutsideInterfaceIP>

   local  ident (addr/mask/prot/port): (192.168.16.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (192.168.0.0/255.255.255.0/0/0)
   current_peer: <SouthernOutsideInterfaceIP>:500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 107592, #pkts encrypt: 107592, #pkts digest 107592
    #pkts decaps: 114302, #pkts decrypt: 114302, #pkts verify 114302
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0, #pkts decompress failed: 0
    #send errors 8, #recv errors 0

     local crypto endpt.: <NorthernOutsideInterfaceIP>, remote crypto endpt.: <SouthernOutsideInterfaceIP>
     path mtu 1492, ipsec overhead 56, media mtu 1492
     current outbound spi: 4ada0b77

     inbound esp sas:
      spi: 0xe7c2815(243017749)
        transform: esp-des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 1, crypto map: transam
        sa timing: remaining key lifetime (k/sec): (4516828/21982)
        IV size: 8 bytes
        replay detection support: Y


     inbound ah sas:


     inbound pcp sas:


     outbound esp sas:
      spi: 0x4ada0b77(1255803767)
        transform: esp-des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2, crypto map: transam
        sa timing: remaining key lifetime (k/sec): (4598687/21980)
        IV size: 8 bytes
        replay detection support: Y


     outbound ah sas:


     outbound pcp sas:

И MTU для Южного PIX и Северного PIX:

mtu outside 1500
mtu inside 1500

Я полагаю, что MTU автоматически устанавливает меньше 8 байтов для PPP PIX.

1 ответ

Для трафика, превышающего MTU исходящего интерфейса после добавления издержек IPSec, существует несколько "исправлений" на стороне PIX/ASA.

Измените значение MTU на PIX/ASA на меньшее число (обычно 1380), заставляя отправляющие станции реагировать - не всегда желаемым образом.

Изменить MSS (только TCP, не полезно для UDP)

Пусть фрагмент PIX/ASA.

Если во внутреннем IP-заголовке установлен бит df и требуется фрагментация для прохождения через туннель IPSec, разрешить PIX/ASA очистить бит df также возможно.

Обратите внимание, что для очистки df-бита требуется PIX/ASA OS 7.0 и выше. "Почтенный" PIX 6.3(5) не будет его резать.

Более важный вопрос: почему ваш VoIP-трафик вообще отключает MTU? Все известные мне кодеки VoIP (включая очень распространенные G.711 и G.729) создают для каждого "пакетного" полезного кода кодека менее 160 байтов. Добавьте к издержкам RTP, UDP и IP - всего около 40 байт, а размер полезной нагрузки L2 не превышает 200 байт. Добавьте еще 56 байтов для IPSec ESP, и он все еще не соответствует типичным MTU интерфейса Ethernet.

Что ваши администраторы VoIP проталкивают через провод, который требует 142 байта полезной нагрузки L2?

Ref:

Voice Over IP - потребление полосы пропускания на звонок

Техническая информация - VoIP-кодеки

Другие вопросы по тегам