Безопасность и VPN : Протоколы IPSec Negotiation/IKE

Устранение неисправностей в IP-безопасности – общие сведения и использование команд отладки

23 марта 2008 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (28 июля 2013) | Английский (15 июля 2009) | Отзыв

Содержание

Введение
Предварительные условия
      Требования
      Используемые компоненты
      Условные обозначения
Отладка ПО для Cisco IOS
      show crypto isakmp sa
      show crypto ipsec sa
      show crypto engine connection active
      debug crypto isakmp
      debug crypto ipsec
Примеры сообщений об ошибках
      Проверка воспроизведения не удалась
      Неправильный адрес локальной сети
      Сообщение об обмене ключами в Интернете (IKE) от X.X.X.X неисправно или неправильно сформировано
      Сбой при обработке основного режима для однорангового соединения
      Удостоверения прокси не поддерживаются
      Преобразование предложения не поддерживается
      Без сертификатов и без ключей для удаленного узла
      Узел с адресом X.X.X.X не найден
      Пакет IPsec использует недопустимый индекс SPI
      IPSEC(initialize_sas): Недопустимые идентификаторы прокси
      Ненулевое резервирование для полезных данных 5
      Предложенный алгоритм хеширования не соответствует политике
      Сбой при проверке HMAC
      Удаленный узел не отвечает
Отладки PIX
      show crypto isakmp sa
      show crypto ipsec sa
      debug crypto isakmp
      debug crypto ipsec
Известные ошибки взаимодействия маршрутизатора с клиентом VPN
      Невозможность доступа к подсетям вне VPN-туннеля – Разделение туннелей
Типичные проблемы клиента PIX-to-VPN
      Прохождение трафика после установления туннеля отсутствует – не удается проверить доступность адресата внутри сети за PIX
      После завершения работы туннеля пользователь не может просматривать файлы в Интернете – Разделенное туннелирование
      После завершения работы туннеля некоторые приложения не работают - Корректировка MTU на клиенте
      Пропуск команды "sysopt"
Проверка списков управления доступом (ACL)
Связанные обсуждения сообщества поддержки Cisco
Дополнительные сведения

Введение

В данном документе представлено описание распространенных команд debug, которые используются для устранения неисправностей IPSec в ПО Cisco IOS® и PIX. Предполагается, что попытка настроить IPSec выполнена. Дополнительная информация представлена в документах Типичные сообщения об ошибках IPSec и Типичные проблемы IPSec.

Предварительные условия

Требования

Для данного документа нет особых требований.

Используемые компоненты

Сведения, содержащиеся в данном документе, касаются следующих версий программного и аппаратного обеспечения:

  • ПО Cisco IOS

    • Набор функций IPSec.

    • 56i - обозначает единый стандарт шифрования данных (DES) (в ПО Cisco IOS версии 11.2 и выше).

    • k2 - обозначает стандарт тройного шифрования данных DES (в ПО Cisco IOS версии 12.0 и выше). Стандарт тройного шифрования DES поддерживается в Cisco серии 2600 и более новый версиях.

  • PIX - версия 5.0 и выше. Для активации этой функции необходим лицензионный ключ единичного или тройного DES.

Данные для документа были получены в специально созданных лабораторных условиях. При написании данного документа использовались только данные, полученные от устройств с конфигурацией по умолчанию. В рабочей сети необходимо понимать последствия выполнения всех команд.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические советы Cisco. Условные обозначения.

Отладка ПО для Cisco IOS

В этом разделе описаны возможности отладки ПО Cisco IOS. Дополнительная информация представлена в документах Типичные сообщения об ошибках IPSec и Типичные проблемы IPSec.

show crypto isakmp sa

– Эта команда отображает сопоставление безопасности (SA) протокола ISAKMP, созданное между двумя одноранговыми узлами.

dst    	  src        state     conn-id     slot
12.1.1.2  12.1.1.1   QM_IDLE    1           0

show crypto ipsec sa

В этой команде представлены сопоставления безопасности IPSec между узлами. Между узлами 12.1.1.1 и 12.1.1.2 создается зашифрованный туннель, обеспечивающий передачу трафика между сетями 20.1.1.0 и 10.1.1.0. Можно видеть, что входящий и исходящий потоки формируют два сопоставления безопасности (SA) протокола инкапсулирующей защиты содержимого (ESP). Заголовок проверки подлинности (AH) не используется, т. к. для него отсутствуют SA.

В этих выходных данных показан пример выполнения команды show crypto ipsec sa.

  interface: FastEthernet0
    Crypto map tag: test, local addr. 12.1.1.1
   local  ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)
   current_peer: 12.1.1.2
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 7767918, #pkts encrypt: 7767918, #pkts digest 7767918
    #pkts decaps: 7760382, #pkts decrypt: 7760382, #pkts verify 7760382
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0, 
    #pkts decompress failed: 0, #send errors 1, #recv errors 0
     local crypto endpt.: 12.1.1.1, remote crypto endpt.: 12.1.1.2
     path mtu 1500, media mtu 1500
     current outbound spi: 3D3
     inbound esp sas:
      spi: 0x136A010F(325714191)
        transform: esp-3des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 3442, flow_id: 1443, crypto map: test
        sa timing: remaining key lifetime (k/sec): (4608000/52)
        IV size: 8 bytes
        replay detection support: Y
     inbound ah sas:
     inbound pcp sas:
inbound pcp sas:
outbound esp sas:
   spi: 0x3D3(979)
    transform: esp-3des esp-md5-hmac ,
    in use settings ={Tunnel, }
    slot: 0, conn id: 3443, flow_id: 1444, crypto map: test
    sa timing: remaining key lifetime (k/sec): (4608000/52)
    IV size: 8 bytes
    replay detection support: Y
outbound ah sas:
outbound pcp sas: 

show crypto engine connection active

Эта команда отображает все встроенные сопоставления безопасности второго этапа и объем отправленного трафика. Поскольку сопоставления безопасности второго этапа являются однонаправленными, каждый SA показывает трафик только в одном направлении (шифрование для исходящих сообщений, дешифрование для входящих сообщений).

debug crypto isakmp

В этих выходных данных представлен пример команды debug crypto isakmp.

processing SA payload. message ID = 0 
Checking ISAKMP transform against priority 1 policy 
	encryption DES-CBC 
      	hash SHA 
	default group 2 
	auth pre-share 
	life type in seconds 
	life duration (basic) of 240 
atts are acceptable. Next payload is 0 
processing KE payload. message ID = 0 
processing NONCE payload. message ID = 0 
processing ID payload. message ID = 0 
SKEYID state generated 
processing HASH payload. message ID = 0 
SA has been authenticated 
processing SA payload. message ID = 800032287 

debug crypto ipsec

В этой команде показаны источник и пункт назначения конечных точек туннеля IPSec. Src_proxy и dest_proxy являются клиентскими подсетями. Два сообщения "sa created" появляются в каждой подсети для каждого направления. (При выполнении ESP и AH появляются четыре сообщения).

В этих выходных данных показан пример выполнения команды debug crypto ipsec.

Checking IPSec proposal 1transform 1, ESP_DES 
attributes in transform: 
	encaps is 1 
	SA life type in seconds 
	SA life duration (basic) of 3600 
	SA life type in kilobytes 
	SA life duration (VPI) of 0x0 0x46 0x50 0x0 
HMAC algorithm is SHA 
atts are acceptable. 
Invalid attribute combinations between peers will show up as "atts 
  not acceptable".
IPSEC(validate_proposal_request): proposal part #2, 
(key eng. msg.) dest= 12.1.1.2, SRC= 12.1.1.1, 
      dest_proxy= 10.1.1.0/0.0.0.0/0/0,
      src_proxy= 20.1.1.0/0.0.0.16/0/0, 
      protocol= ESP, transform= esp-des esp-sha-hmac 
      lifedur= 0s and 0kb,
      spi= 0x0(0), conn_id= 0, keysize= 0, flags= 0x4 
IPSEC(key_engine): got a queue event... 
IPSEC(spi_response): getting spi 203563166 for SA 
      from 12.1.1.2 to 12.1.1.1 for prot 2 
IPSEC(spi_response): getting spi 194838793 for SA 
      from 12.1.1.2 to 12.1.1.1 for prot 3 
IPSEC(key_engine): got a queue event... 
IPSEC(initialize_sas):, 
  (key eng. msg.) dest= 12.1.1.2, SRC= 12.1.1.1, 
      dest_proxy= 10.1.1.0/255.255.255.0/0/0, 
      src_proxy= 20.1.1.0/255.255.255.0/0/0, 
      protocol= ESP, transform= esp-des esp-sha-hmac
      lifedur= 3600s and 4608000kb, 
      spi= 0xC22209E(203563166), conn_id= 3, 
              keysize=0, flags= 0x4 
IPSEC(initialize_sas): ,
  (key eng. msg.) SRC= 12.1.1.2, dest= 12.1.1.1, 
      src_proxy= 10.1.1.0/255.255.255.0/0/0, 
      dest_proxy= 20.1.1.0/255.255.255.0/0/0, 
      protocol= ESP, transform= esp-des esp-sha-hmac 
      lifedur= 3600s and 4608000kb, 
      spi= 0xDED0AB4(233638580), conn_id= 6, 
              keysize= 0, flags= 0x4 
IPSEC(create_sa): sa created, 
      (sa) sa_dest= 12.1.1.2, sa_prot= 50, 
      sa_spi= 0xB9D0109(194838793), 
      sa_trans= esp-des esp-sha-hmac , sa_conn_id= 5 
 IPSEC(create_sa): sa created, 
      (sa) sa_dest= 12.1.1.2, sa_prot= 50, 
      sa_spi= 0xDED0AB4(233638580), 
      sa_trans= esp-des esp-sha-hmac , sa_conn_id= 6 

Примеры сообщений об ошибках

Данные примеры сообщений об ошибках были получены от выполнения команд отладки, перечисленных в настоящем документе.

  • debug crypto ipsec

  • debug crypto isakmp

  • debug crypt engine

Дополнительную информацию можно получить с помощью инструмента расшифровки сообщений об ошибках Error Message Decoder (только для зарегистрированных клиентов).

Проверка воспроизведения не удалась

В этих выходных данных показан пример ошибки "Replay Check Failed".

"%CRYPTO-4-PKT_REPLAY_ERR: decrypt: replay check failed connection id=#." 

Эта ошибка возникает от реорганизации в среде передачи данных (особенно, при наличии параллельных путей) или путей обработки пакетов с неравной стоимостью внутри Cisco IOS для сравнения больших пакетов с малыми пакетами при нагрузке. Для того, чтобы получить представление, измените набор преобразований. Сообщение reply check возникает только тогда, когда включена функция transform-set esp-md5-hmac. Для того, чтобы отменить вывод этого сообщения, отключите esp-md5-hmac и выполняйте только шифрование. Обратитесь к дефекту Cisco номер CSCdp19680 (только для зарегистрированных пользователей).

Неправильный адрес локальной сети

В этих выходных данных содержится пример сообщения об ошибке.

IPSEC(validate_proposal): invalid local address 12.2.6.2
ISAKMP (0:3): atts not acceptable. Next payload is 0
ISAKMP (0:3): SA not acceptable!

Это сообщение об ошибке относится к одной из следующих двух распространенных проблем.

  • Команда crypto map map-name local-address interface-id вынуждает маршрутизатор использовать неверный адрес в качестве идентификатора, поскольку она предполагает использование определенного адреса.

  • Криптографическая карта применяется к неправильному интерфейсу или не используется совсем. Чтобы убедиться, что криптокарта применяется к правильному интерфейсу, проверьте конфигурацию.

Сообщение об обмене ключами в Интернете (IKE) от X.X.X.X не прошло санитарной проверки или неправильно сформировано

Эта ошибка отладки появляется, если предварительные ключи узлов не совпадают. Чтобы устранить эту проблему, проверьте предварительные ключи на обеих сторонах.

1d00H:%CRPTO-4-IKMP_BAD_MESSAGE: IKE message from 150.150.150.1 failed its
 sanity check or is malformed   

Сбой при обработке основного режима для однорангового соединения

Это пример сообщения об ошибке основного режима. Сбой основного режима означает, что политика первого этапа не совпадает на обеих сторонах.

1d00h: ISAKMP (0:1): atts are not acceptable. Next payload is 0
1d00h: ISAKMP (0:1); no offers accepted!
1d00h: ISAKMP (0:1): SA not acceptable!
1d00h: %CRYPTO-6-IKMP_MODE_FAILURE: Processing of Main Mode failed with 
peer at 150.150.150.1

Команда show crypto isakmp sa показывает, что ISAKMP SA находится в состоянии MM_NO_STATE. Это также означает, что основной режим неисправен.

dst    	  src        state     		conn-id     	slot
10.1.1.2  10.1.1.1   MM_NO_STATE    	1           0

Проверьте выполнение политики первого этапа на обоих узлах и убедитесь, что все атрибуты совпадают.

Encryption DES or 3DES
Hash MD5 or SHA
Diffie-Hellman Group 1 or 2
Authentication {rsa-sig | rsa-encr | pre-share  

Удостоверения прокси не поддерживаются

Это сообщение появляется в командах отладки, если списки доступа трафика IPSec не совпадают.

1d00h: IPSec(validate_transform_proposal): proxy identities not supported
1d00h: ISAKMP: IPSec policy invalidated proposal
1d00h: ISAKMP (0:2): SA not acceptable!

Списки доступа каждого узла должны быть зеркальным отражением друг друга (все записи должны быть зеркальным отражением друг друга). Этот вопрос представлен в следующем примере.

Peer A
access-list 150 permit ip 172.21.113.0 0.0.0.255 172.21.114.0 0.0.0.255
access-list 150 permit ip host 15.15.15.1 host 172.21.114.123
Peer B
access-list 150 permit ip 172.21.114.0 0.0.0.255 172.21.113.0 0.0.0.255
access-list 150 permit ip host 172.21.114.123 host 15.15.15.1

Преобразование предложения не поддерживается

Это сообщение появляется, если IPSec второго этапа не соответствуют друг другу на обоих узлах. Чаще всего это происходит, если в наборе преобразования имеется несовпадение или несовместимость.

1d00h: IPSec (validate_proposal): transform proposal 
   (port 3, trans 2, hmac_alg 2) not supported  
1d00h: ISAKMP (0:2) : atts not acceptable. Next payload is 0
1d00h: ISAKMP (0:2) SA not acceptable

Убедитесь, что наборы преобразования у обоих узлов совпадают.

crypto ipsec transform-set transform-set-name transform1 
[transform2 [transform3]]
? ah-md5-hmac
? ah-sha-hmac 
? esp-des
? esp-des and esp-md5-hmac
? esp-des and esp-sha-hmac
? esp-3des and esp-md5-hmac 
? esp-3des and esp-sha-hmac
? comp-lzs

Без сертификатов и без ключей для удаленного узла

Это сообщение означает, что адрес узла, настроенный на маршрутизаторе неверен или был изменен. Убедитесь, что адрес узла правилен и доступен.

1d00h: ISAKMP: No cert, and no keys (public or pre-shared) with 
remote peer 150.150.150.2

Узел с адресом X.X.X.X не найден

Это сообщение об ошибке обычно появляется вместе с соответствующим сообщением об ошибке концентратора VPN 3000 Сообщение. No proposal chosen(14). Это результат того, что соединения установлены между узлами. В конфигурации маршрутизатора предложения IPSec находятся в таком порядке, при котором предложение, выбранное для маршрутизатора соответствует списку доступа, а не узлу. В списке доступа представлена большая сеть, которая включает в себя узел, разделяющий трафик. Для того, чтобы исправить эту проблему, поставьте данное предложение маршрутизатора для соединения концентратор-маршрутизатор первым в списке. Таким образом предложение будет в первую очередь соответствовать выбранному узлу.

20:44:44: IPSEC(validate_proposal_request): proposal part #1,
  (key eng. msg.) dest= 194.70.240.150, src= 198.174.236.6, 
    dest_proxy= 10.0.0.76/255.255.255.255/0/0 (type=1), 
    src_proxy= 198.174.238.203/255.255.255.255/0/0 (type=1),
    protocol= ESP, transform= esp-3des esp-md5-hmac , 
    lifedur= 0s and 0kb, 
    spi= 0x0(0), conn_id= 0, keysize= 0, flags= 0x4
20:44:44: IPSEC(validate_transform_proposal): 
   peer address 198.174.236.6 not found

Пакет IPSec использует недопустимый индекс SPI

В этих выходных данных содержится пример сообщения об ошибке.

%PIX-4-402101: decaps: recd IPSEC packet has 
invalid spi for destaddr=dest_address, prot=protocol, spi=number

В полученном пакете IPSec указан индекс SPI, который отсутствует в базе данных SADB. Это может быть временным состоянием, вызванным следующими причинами:

  • небольшие отличия в устаревании сопоставлений безопасности (SA) между узлами IPSec;

  • локальные SA были очищены;

  • узел IPSec отослал неправильные пакеты;

Причиной этой ошибки может также быть сетевая атака.

Рекомендуемое действие: Узел может не предоставить подтверждение того, что локальные SA были очищены. Если на локальном маршрутизаторе устанавливается новое соединение, то в этом случае два узла могут успешно восстановить соединение. В противном случае, если проблема не устранена в течение длительного времени, каждый узел пытается установить новое соединение или связаться с администратором узла.

IPSEC(initialize_sas): Недопустимые идентификаторы прокси

Ошибка 21:57:57: IPSEC(initialize_sas): invalid proxy IDs означает, что полученный идентификатор прокси не совпадает с настроенным идентификатором прокси в списке доступа. Чтобы убедиться, что эти два значения совпадают друг с другом, проверьте выходные данные команды debug.

В выходных данных команды debug предложенного запроса значения команды "corresponding access-list 103 permit ip 10.1.1.0 0.0.0.255 20.1.1.0 0.0.0.255" не совпадают. Список доступа относится к сети с одной стороны и к узлу с другой.

21:57:57: IPSEC(validate_proposal_request): proposal part #1,
  (key eng. msg.) dest= 192.1.1.1, src= 192.1.1.2,
    dest_proxy= 10.1.1.1/255.255.255.0/0/0 (type=4),
    src_proxy= 20.1.1.1/255.255.255.0/0/0 (type=4)

Ненулевое резервирование для полезных данных 5

Это означает, что ключи ISAKMP не совпадают. Чтобы гарантировать точность, смените ключ/перезагрузитесь.

Предложенный алгоритм хеширования не соответствует политике

Если настроенные политики ISAKMP не соответствуют политике, предложенной удаленным узлом, маршрутизатор пытается использовать политику по умолчанию 65535. Если эта политика также не подходит, согласование ISAKMP не проходит. Пользователь получает на маршрутизаторах сообщения об ошибке Hash algorithm offered does not match policy! или Encryption algorithm offered does not match policy!.

=RouterA=
3d01h: ISAKMP (0:1): processing SA payload. message ID = 0
3d01h: ISAKMP (0:1): found peer pre-shared key matching 209.165.200.227
ISAKMP (0:1): Checking ISAKMP transform 1 against priority 1 policy
ISAKMP:      encryption 3DES-CBC
ISAKMP:      hash MD5
ISAKMP:      default group 1
ISAKMP:      auth pre-share
ISAKMP:      life type in seconds
ISAKMP:      life duration (VPI) of  0x0 0x1 0x51 0x80
ISAKMP (0:1): Hash algorithm offered does not match policy!
ISAKMP (0:1): atts are not acceptable. Next payload is 0
=RouterB=
ISAKMP (0:1): Checking ISAKMP transform 1 against priority 65535 policy
ISAKMP:      encryption 3DES-CBC
ISAKMP:      hash MD5
ISAKMP:      default group 1
ISAKMP:      auth pre-share
ISAKMP:      life type in seconds
ISAKMP:      life duration (VPI) of  0x0 0x1 0x51 0x80
ISAKMP (0:1): Encryption algorithm offered does not match policy!
ISAKMP (0:1): atts are not acceptable. Next payload is 0
ISAKMP (0:1): no offers accepted!
ISAKMP (0:1): phase 1 SA not acceptable!

Сбой при проверке HMAC

Это сообщение об ошибке возникает при сбое в проверке кода HMAC в пакете IPSec. Обычно это происходит, если пакет каким-либо образом поврежден.

Sep 22 11:02:39 131.203.252.166 2435: 
Sep 22 11:02:39: %MOTCR-1-ERROR:motcr_crypto_callback() motcr return failure
Sep 22 11:02:39 131.203.252.166 2436: 
Sep 22 11:02:39: %MOTCR-1-PKTENGRET_ERROR: MOTCR PktEng Return Value = 0x20000, 
                 PktEngReturn_MACMiscompare

При появлении этого сообщения об ошибке его можно игнорировать. Однако если сообщение появляется периодически, необходимо найти повреждение пакета. Оно может быть вызвано ошибкой в средстве ускорения шифрования.

Удаленный узел не отвечает

Это сообщение об ошибке появляется при несовпадении в наборе для преобразования. Убедитесь, что совпадающие наборы преобразования настроены на обоих узлах.

Команды отладки PIX

show crypto isakmp sa

Эта команда демонстрирует ISAKMP SA, созданные между узлами.

dst    	  src        state     conn-id     slot
12.1.1.2  12.1.1.1   QM_IDLE    1           0

В выходных данных команды show crypto isakmp sa значение состояния всегда должно составлять QM_IDLE. Если значение состояния равно MM_KEY_EXCH, это означает, что настроенный предварительный ключ неправилен или IP-адреса узла отличаются.

PIX(config)#show crypto isakmp sa
Total     : 2
Embryonic : 1
        dst               src        state     pending     created
 192.168.254.250   10.177.243.187    MM_KEY_EXCH   0           0

Это можно исправить, настроив правильный IP-адрес или предварительный ключ.

show crypto ipsec sa

В этой команде представлены сопоставления безопасности IPSec между узлами. Между узлами 12.1.1.1 и 12.1.1.2 создается зашифрованный туннель, обеспечивающий передачу трафика между сетями 20.1.1.0 и 10.1.1.0. Можно увидеть две версии ESP SA: входящую и исходящую. Заголовок проверки подлинности (AH) не используется, т. к. для него отсутствуют SA.

В следующих выходных данных показан пример команды show crypto ipsec sa.

interface: outside
    Crypto map tag: vpn, local addr. 12.1.1.1
   local  ident (addr/mask/prot/port): (20.1.1.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (12.1.1.2/255.255.255.255/0/0)
   current_peer: 10.2.1.1
   dynamic allocated peer ip: 12.1.1.2
     PERMIT, flags={}
    #pkts encaps: 345, #pkts encrypt: 345, #pkts digest 0
    #pkts decaps: 366, #pkts decrypt: 366, #pkts verify 0
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0, 
    #pkts decompress failed: 0, #send errors 0, #recv errors 0
     local crypto endpt.: 12.1.1.1, remote crypto endpt.: 12.1.1.2
     path mtu 1500, ipsec overhead 56, media mtu 1500
     current outbound spi: 9a46ecae
     inbound esp sas:
      spi: 0x50b98b5(84646069)
        transform: esp-3des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 1, crypto map: vpn
        sa timing: remaining key lifetime (k/sec): (460800/21)
        IV size: 8 bytes
        replay detection support: Y
     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x9a46ecae(2588339374)
        transform: esp-3des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2, crypto map: vpn
        sa timing: remaining key lifetime (k/sec): (460800/21)
        IV size: 8 bytes
        replay detection support: Y 
    outbound ah sas:

debug crypto isakmp

Эта команда показывает данные об отладке соединений IPSec с указанием первого набора атрибутов, отклоняемых из-за несовместимости на обоих узлах. Вторая попытка согласования (3DES используется вместо DES и [SHA]) принимается и создается ISAKMP SA. Эта отладка также проводится из клиента удаленного доступа, который принимает IP-адрес (10.32.8.1) от локального пула. После создания ISAKMP SA атрибуты IPSec согласовываются и признаются допустимыми. Затем PIX настраивает сопоставления безопасности IPSec, как показано далее.

В этих выходных данных показан пример выполнения команды debug crypto isakmp.

crypto_isakmp_process_block: src 12.1.1.1, dest 12.1.1.2
OAK_AG exchange
ISAKMP (0): processing SA payload. message ID = 0
ISAKMP (0): Checking ISAKMP transform 1 against priority 1 policy
ISAKMP:      encryption DES-CBC
ISAKMP:      hash MD5
ISAKMP:      default group 1
ISAKMP:      auth pre-share
ISAKMP (0): atts are not acceptable. Next payload is 3
ISAKMP (0): Checking ISAKMP transform 3 against priority 1 policy
ISAKMP:      encryption 3DES-CBC
ISAKMP:      hash SHA
ISAKMP:      default group 1
ISAKMP:      auth pre-share
ISAKMP (0): atts are acceptable. Next payload is 3
ISAKMP (0): processing KE payload. message ID = 0
ISAKMP: Created a peer node for 12.1.1.2
OAK_QM exchange
ISAKMP (0:0): Need config/address
ISAKMP (0:0): initiating peer config to 12.1.1.2. ID = 2607270170 (0x9b67c91a)
return status is IKMP_NO_ERROR
crypto_isakmp_process_block: src 12.1.1.2, dest 12.1.1.1
ISAKMP_TRANSACTION exchange
ISAKMP (0:0): processing transaction payload from 12.1.1.2. 
   message ID = 2156506360
ISAKMP: Config payload CFG_ACK
ISAKMP (0:0): peer accepted the address!
ISAKMP (0:0): processing saved QM.
oakley_process_quick_mode:
OAK_QM_IDLE
ISAKMP (0): processing SA payload. message ID = 818324052
ISAKMP : Checking IPSec proposal 1
ISAKMP: transform 1, ESP_DES
ISAKMP:   attributes in transform:
ISAKMP:      authenticator is HMAC-MD5
ISAKMP:      encaps is 1
IPSEC(validate_proposal): transform proposal 
   (prot 3, trans 2, hmac_alg 1) not supported
ISAKMP (0): atts not acceptable. Next payload is 0
ISAKMP : Checking IPSec proposal 2
ISAKMP: transform 1, ESP_3DES
ISAKMP:   attributes in transform:
ISAKMP:      authenticator is HMAC-MD5
ISAKMP:      encaps is 1
ISAKMP (0): atts are acceptable.
ISAKMP (0): processing NONCE payload. message ID = 818324052
ISAKMP (0): processing ID payload. message ID = 81
ISAKMP (0): ID_IPV4_ADDR src 10.32.8.1 prot 0 port 0
ISAKMP (0): processing ID payload. message ID = 81
ISAKMP (0): ID_IPV4_ADDR dst 12.1.1.1 prot 0 port 0
INITIAL_CONTACTIPSEC(key_engine): got a queue event...

debug crypto ipsec

В этой команде показаны данные отладки соединений IPSec.

IPSEC(key_engine): got a queue event...
IPSEC(spi_response): getting spi 0xd532efbd(3576885181) for SA
        from  12.1.1.2  to  12.1.1.1  for prot 3
return status is IKMP_NO_ERROR
crypto_isakmp_process_block: src 12.1.1.2, dest 12.1.1.1
OAK_QM exchange
oakley_process_quick_mode:
OAK_QM_AUTH_AWAIT
ISAKMP (0): Creating IPSec SAs
        inbound SA from  12.1.1.2  to  12.1.1.1  
           (proxy 10.32.8.1 to  12.1.1.1.)
        has spi 3576885181 and conn_id 2 and flags 4
        outbound SA from  12.1.1.1  to  12.1.1.2  
           (proxy 12.1.1.1 to 10.32.8.1)
        has spi 2749108168 and conn_id 1 and flags 4IPSEC(key_engine):  
           got a queue event...
IPSEC(initialize_sas): ,
  (key eng. msg.) dest= 12.1.1.1, src= 12.1.1.2,
    dest_proxy= 12.1.1.1/0.0.0.0/0/0 (type=1),
    src_proxy= 10.32.8.1/0.0.0.0/0/0 (type=1),
    protocol= ESP, transform= esp-3des esp-md5-hmac ,
    lifedur= 0s and 0kb,
    spi= 0xd532efbd(3576885181), conn_id= 2, keysize= 0, flags= 0x4 
IPSEC(initialize_sas): ,
  (key eng. msg.) src= 12.1.1.1, dest= 12.1.1.2,
    src_proxy= 12.1.1.1/0.0.0.0/0/0 (type=1),
    dest_proxy= 10.32.8.1/0.0.0.0/0/0 (type=1),
    protocol= ESP, transform= esp-3des esp-md5-hmac ,
    lifedur= 0s and 0kb,
    spi= 0xa3dc0fc8(2749108168), conn_id= 1, keysize= 0, flags= 0x4
return status is IKMP_NO_ERROR

Известные ошибки взаимодействия маршрутизатора с клиентом VPN

Невозможность доступа к подсетям вне VPN-туннеля – Разделение туннелей

В этой выдержке конфигурации маршрутизатора показано, как подключить раздельное туннелирование для соединений VPN. Команда access list 150 связана с группой в соответствии с командой crypto isakmp client configuration group hw-client-groupname. Это позволяет клиенту Cisco VPN использовать маршрутизатор, чтобы получить доступ к дополнительной подсети, не входящей в туннель VPN. При этом безопасность соединения IPSec не ухудшается. Туннель сформирован в сети 172.168.0.128. Потоки трафика дешифруются в устройствах не содержащихся в команде access list 150, например, Интернет.

!
crypto isakmp client configuration group hw-client-groupname
 key hw-client-password
 dns 172.168.0.250 172.168.0.251
 wins 172.168.0.252 172.168.0.253
 domain cisco.com
 pool dynpool
 acl 150 
!
!
access-list 150 permit ip 172.168.0.128 0.0.0.127 any 
!

Типичные проблемы клиента PIX-to-VPN

В этих разделах описаны распространенные проблемы, возникающие при настройке PIX для IPSec с помощью клиента VPN 3.x. Примеры конфигураций для PIX основаны на версии 6.x.

Прохождение трафика после установления туннеля отсутствует – не удается проверить доступность адресата внутри сети за PIX

Эта проблема характерна для коммутации. Убедитесь, что в PIX присутствует маршрут для внутренних сетей, не подключенных напрямую к той же подсети. Кроме того, для внутренних сетей должен присутствовать обратный маршрут к PIX для адресов в пуле клиентских адресов.

Пример представлен в выходных данных.


!--- Адрес внутреннего интерфейса PIX.

ip address inside 10.1.1.1 255.255.255.240

!--- Маршрут к сетям, находящимся во внутреннем сегменте. 
!--- Следующий узел - внутренний маршрутизатор.

route inside 172.16.0.0 255.255.0.0 10.1.1.2 1

!--- Пул адресов, определенных в PIX, из которого назначаются адреса
!--- для клиента VPN в рамках сеанса IPSec.

ip local pool mypool 10.1.2.1-10.1.2.254

!--- Если шлюз по умолчанию не является
!--- внутренним интерфейсом PIX на внутреннем маршрутизаторе, у маршрутизатора должен присутствовать маршрут к
!--- сети 10.1.2.0/24 со внутренним интерфейсом PIX в качестве следующего узла
!--- (как в маршрутизаторах Cisco IOS).

ip route 10.1.2.0 255.255.255.0 10.1.1.1

После завершения работы туннеля пользователь не может просматривать файлы в Интернете – Разделенное туннелирование

Самая распространенная причина этой проблемы в том, что в туннеле IPSec от клиента VPN к PIX весь трафик отсылается через туннель к брандмауэру PIX. Функции PIX не позволяют отсылать трафик обратно на интерфейс, с которого он был получен. Следовательно, трафик, отправляемый в Интернет, не пересылается. Чтобы устранить эту проблему, используйте команду split tunneling. Идея, лежащая в основе этого исправления, заключается в том, что через туннель отправляется только конкретный трафик, а остальной трафик идет в Интернет напрямую, не через туннель.

vpngroup vpn3000 split-tunnel 90
access-list 90 permit ip 10.1.1.0 255.255.255.0 10.1.2.0 255.255.255.0
access-list 90 permit ip 172.16.0.0 255.255.0.0 10.1.2.0 255.255.255.0

Примечание: С помощью команды vpngroup vpn3000 split-tunnel 90 выполняется раздельное туннелирование с использованием списка доступа номер 90. Команда access-list 90 определяет, какой трафик должен проходить сквозь туннель, а остальной трафик отклоняется в конце списка доступа. Список доступа должен соответствовать списку для отклонения трансляции сетевых адресов на PIX.

После завершения работы туннеля некоторые приложения не работают - Корректировка MTU на клиенте

Иногда после установления туннеля обнаруживается, что проверка соединения на компьютерах в обход брандмауэра PIX возможна, а использование некоторых приложений, как, например, Microsoft Outlook, - нет. Распространенной проблемой является размер пакетов MTU. Заголовок IPSec может иметь размер от 50 до 60 байт, которые добавляются к исходному пакету. Если размер пакета превышает 1500 (размер по умолчанию для Интернета), устройства должны провести его фрагментацию. Таким образом, после добавления заголовка IPSec размер пакета не превышает 1496, что является максимальным значением для IPSec.

Команда show interface показывает MTU определенного интерфейса на доступных маршрутизаторах или на маршрутизаторах в помещении пользователя. Для того, чтобы определить MTU всего пути от источника до пункта назначения, отсылаются датаграммы различных размеров с набором битов DF; если размер датаграммы превышает размер MTU, сообщение об ошибке отправляется назад к источнику.

frag. needed and DF set

В этих выходных данных показан пример обнаружения MTU пути между узлами с IP-адресами 10.1.1.2 и 172.16.1.56.

Router#debug ip icmp
ICMP packet debugging is on
 

!--- Выполняется расширенная проверка соединения.

Router#ping
Protocol [ip]:
Target IP address: 172.16.1.56
Repeat count [5]:
Datagram size [100]: 1550
Timeout in seconds [2]:


!--- Убедитесь, что для расширенных команд указано значение "у".

Extended commands [n]: y
Source address or interface: 10.1.1.2
Type of service [0]:


!--- Установите бит DF, как показано далее.


Set DF bit in IP header? [no]: y
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 1550-byte ICMP Echos to 172.16.1.56, timeout is 2 seconds:
 
2w5d: ICMP: dst (172.16.1.56): frag. needed and DF set.
2w5d: ICMP: dst (172.16.1.56): frag. needed and DF set.
2w5d: ICMP: dst (172.16.1.56): frag. needed and DF set.
2w5d: ICMP: dst (172.16.1.56): frag. needed and DF set.
2w5d: ICMP: dst (172.16.1.56): frag. needed and DF set.
Success rate is 0 percent (0/5)


!--- Дополнительно сократите размер датаграммы и вновь выполните проверку соединения.

Router#ping
Protocol [ip]:
Target IP address: 172.16.1.56
Repeat count [5]:
Datagram size [100]: 1500
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 10.1.1.2
Type of service [0]:
Set DF bit in IP header? [no]: y
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 172.16.1.56, timeout is 2 seconds:
!!!!!
2w5d: ICMP: echo reply rcvd, src 172.16.1.56, dst 10.1.1.2
2w5d: ICMP: echo reply rcvd, src 172.16.1.56, dst 10.1.1.2
2w5d: ICMP: echo reply rcvd, src 172.16.1.56, dst 10.1.1.2
2w5d: ICMP: echo reply rcvd, src 172.16.1.56, dst 10.1.1.2
2w5d: ICMP: echo reply rcvd, src 172.16.1.56, dst 10.1.1.2
 
Success rate is 100 percent (5/5), round-trip min/avg/max = 380/383/384 ms

Примечание: Клиент VPN включает в себя служебную программу настройки MTU, которая позволяет пользователям настраивать MTU для клиента Cisco VPN. Если используется клиент PPPoE, настройте MTU для адаптера PPPoE.

Примечание: Для того чтобы настроить утилиту MTU для клиента VPN, выполните следующие действия.

  1. Выберите Start > Programs > Cisco System VPN Client > Set MTU.

  2. Выберите Local Area Connection и 1400. Нажмите OK.

    ipsec_debug-2.gif

  3. Повторите действие 1, выберите Dial-up Networking и 576. Нажмите OK.

    ipsec_debug-1.gif

Пропуск команды "sysopt"

С помощью команды sysopt connection permit-ipsec в конфигурациях IPSec на можно разрешить трафику IPSec проходить через брандмауэр PIX без проверки командных предложений conduit или access-list. По умолчанию все входящие сеансы должны быть явно разрешены командным предложением conduit или access-list. При использовании защищенного трафика IPSec вторичная проверка списка доступа может быть избыточной. Для того, чтобы входящие сеансы аутентификации/шифрования IPSec были всегда разрешены, используйте команду sysopt connection permit-ipsec.

Проверка списков управления доступом (ACL)

В типичной конфигурации IPSec VPN используется два списка доступа. Один список используется для исключения трафика, направленного в туннель VPN, из процесса NAT. Другой список доступа определяет трафик для шифрования. Он включает в себя список шифрования ACL в настройке ЛВС-ЛВС или список раздельного туннелирования в конфигурации удаленного доступа. Если эти списки доступа неправильно настроены или отсутствуют, трафик может идти по туннелю VPN только в одном направлении или может вообще не проходить через туннель.

Убедитесь, что все списки доступа, необходимые для конфигурации IPSec VPN, настроены и что эти списки определяют правильный трафик. В списке далее описаны простые способы проверки в тех случаях, когда подозревается, что причина проблем с IPSec VPN в списке доступа.

  • Убедитесь, что в исключении NAT и списках доступа шифрования ACL указан правильный трафик.

  • Если имеется несколько туннелей VPN и списков шифрования ACL, убедитесь, что эти списки не пересекаются.

  • Не используйте ACL дважды. Даже если в ACL исключения NAT и в списке шифрования ACL указан одинаковый трафик, используйте два разных списка доступа.

  • Убедитесь, что конфигурация устройства позволяет использовать ACL исключения NAT. Для маршрутизатора это означает использование команды route-map. Для PIX или ASA это означает использование команды nat (0). Список ACL исключения NAT необходимо для конфигураций ЛВС-ЛВС и удаленного доступа.

Чтобы узнать больше о проверке утверждений ACL, используйте раздел Проверка правильности ACL в документе Наиболее распространенные решения проблем с L2L и IPSec VPN удаленного доступа.

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 5409