소개
이 문서에서는 AnyConnect 클라이언트가 ASA(Adaptive Security Appliance)에 1분 만에 다시 연결할 때 발생하는 상황에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
관련 제품
이러한 제품은 이 문제의 영향을 받았습니다.
- ASA 릴리스 9.17
- AnyConnect 클라이언트 릴리스 4.10
배경 정보
참고: AnyConnect는 Cisco Secure Client로 브랜드가 변경되었습니다. 다른 것은 없고 이름만 다를 뿐 설치과정이 똑같다.
AnyConnect 클라이언트가 정확히 1분 내에 ASA(Adaptive Security Appliance)에 다시 연결할 경우 사용자는 AnyConnect가 다시 연결될 때까지 TLS(Transport Layer Security) 터널을 통해 트래픽을 수신할 수 없습니다. 이는 이 문서에서 설명하는 몇 가지 다른 요소에 따라 달라집니다.
증상
이 예에서는 AnyConnect 클라이언트가 ASA에 다시 연결될 때 표시됩니다.
이 syslog는 ASA에 표시됩니다.
%ASA-6-722036: Group <ac_users_group> User <vpn> IP <10.1.75.111>
Transmitting large packet 1418 (threshold 1347).
문제 설명
이러한 진단 및 Reporting
툴(DART) 로그는 다음 문제와 함께 표시됩니다.
******************************************
Date : 11/16/2022
Time : 01:28:50
Type : Warning
Source : acvpnagent
Description : Reconfigure reason code 16:
New MTU configuration.
******************************************
Date : 11/16/2022
Time : 01:28:50
Type : Information
Source : acvpnagent
Description : The entire VPN connection is being reconfigured.
******************************************
Date : 11/16/2022
Time : 01:28:51
Type : Information
Source : acvpnui
Description : Message type information sent to the user:
Reconnecting to 10.1.1.2...
******************************************
Date : 11/16/2022
Time : 01:28:51
Type : Warning
Source : acvpnagent
Description : A new MTU needs to be applied to the VPN network interface.
Disabling and re-enabling
the Virtual Adapter. Applications utilizing the
private network may need to be restarted.
******************************************
원인
이 문제의 원인은 DTLS(데이터그램 전송 계층 보안) 터널을 구축하지 못했기 때문입니다. 이는 두 가지 이유 때문일 수 있습니다.
-
DTLS는 경로 어딘가에서 차단됩니다.
-
기본이 아닌 DTLS 포트 사용
DTLS가 경로 어딘가에서 차단됨
ASA Release 9.x 및 AnyConnect Release 4.x부터 클라이언트/ASA 간의 TLS/DTLS에 대해 협상되는 고유한 MTU(Maximum Transition Unit) 형식으로 최적화가 도입되었습니다. 이전에는 클라이언트가 TLS/DTLS를 모두 포함하는 대략적인 예상 MTU를 도출했으며, 이는 최적에 비해 매우 낮았습니다. 이제 ASA는 TLS/DTLS 모두에 대한 캡슐화 오버헤드를 계산하고 그에 따라 MTU 값을 파생합니다.
DTLS가 활성화된 경우 클라이언트는 최적의 성능을 보장하기 위해 VPN 어댑터(DTLS 터널이 설정되기 전에 활성화되며 경로/필터 시행에 필요한 어댑터)에서 DTLS MTU(이 경우 1418)를 적용합니다. DTLS 터널을 설정할 수 없거나 어느 시점에 터널이 삭제되면 클라이언트는 TLS로 장애 조치하고 VA(가상 어댑터)의 MTU를 TLS MTU 값으로 조정합니다(이 경우 세션 수준을 다시 연결해야 함).
해결
관리자는 DTLS > TLS의 이 가시적인 전환을 없애기 위해 (방화벽 제한으로 인해) DTLS 터널 설정에 문제가 있는 사용자의 TLS 전용 액세스에 대해 별도의 터널 그룹을 구성할 수 있습니다.
-
최상의 옵션은 AnyConnect MTU 값을 TLS MTU보다 낮게 설정한 다음 협상하는 것입니다.
group-policy ac_users_group attributes
webvpn
anyconnect mtu 1300
그러면 TLS 및 DTLS MTU 값이 같습니다. 이 경우에는 재연결이 표시되지 않습니다.
-
두 번째 옵션은 단편화를 허용하는 것입니다.
group-policy ac_users_group attributes
webvpn
anyconnect ssl df-bit-ignore enable
조각화를 사용하면 크기가 MTU 값을 초과하는 큰 패킷을 조각화하여 TLS 터널을 통해 전송할 수 있습니다.
-
세 번째 옵션은 여기에 표시된 MSS(Maximum Segment Size)를 1460으로 설정하는 것입니다.
sysopt conn tcpmss 1460
이 경우 TLS MTU는 DTLS MTU 1418(AES/SHA1/LZS)보다 큰 1427(RC4/SHA1)이 될 수 있습니다. 이렇게 하면 ASA에서 AnyConnect 클라이언트로의 TCP 문제가 해결되지만(MSS 덕분에), ASA에서 AnyConnect 클라이언트로의 대규모 UDP 트래픽은 AnyConnect 클라이언트 MTU 1418이 낮아 AnyConnect 클라이언트에서 삭제할 수 있으므로 문제가 발생할 수 있습니다. sysopt conn tcpmss가 수정되면 L2L(LAN-to-LAN) IPSec VPN 터널과 같은 다른 기능에 영향을 줄 수 있습니다.
워크플로 다시 연결
이러한 암호가 구성되었다고 가정합니다.
ssl cipher tlsv1.2 custom AES256-SHA256 AES128-SHA256 DHE-RSA-AES256-SHA256
이 경우 다음과 같은 일련의 이벤트가 발생합니다.
- AnyConnect는 SSL 암호화로 AES256-SHA256을 사용하여 상위 터널 및 TLS 데이터 터널을 설정합니다.
- DTLS가 경로에서 차단되고 DTLS 터널을 설정할 수 없습니다.
- ASA는 AnyConnect에 대한 매개변수를 발표하며, 여기에는 두 개의 개별 값인 TLS 및 DTLS MTU 값이 포함됩니다.
- DTLS MTU는 기본적으로 1418입니다.
- TLS MTU는 sysopt conn tcpmss 값에서 계산됩니다(기본값은 1380). TLS MTU가 파생되는 방법은 다음과 같습니다(디버그 webvpn anyconnect 출력에서 볼 수 있음).
1380 - 5 (TLS header) - 8 (CSTP) - 0 (padding) - 20 (HASH) = 1347
- AnyConnect는 VPN 어댑터를 가동하고 DTLS를 통해 연결할 수 있을 것으로 예상하여 DTLS MTU를 할당합니다.
- 이제 AnyConnect 클라이언트가 연결되고 사용자가 특정 웹 사이트로 이동합니다.
- 브라우저에서 TCP SYN을 전송하고 MSS = 1418-40 = 1378을 설정합니다.
- ASA 내부의 HTTP-server는 1418 크기의 패킷을 전송합니다.
- ASA는 DF(Do not Fragment) 비트가 설정되어 있으므로 이들을 터널에 넣을 수 없으며 프래그먼트화할 수 없습니다.
- ASA는 mp-svc-no-fragment-ASP 삭제 사유가 포함된 패킷을 인쇄 및 삭제합니다.
%ASA-6-722036: Group <ac_users_group> User <vpn> IP <10.1.75.111>
Transmitting large packet 1418 (threshold 1347)
- 동시에 ASA는 ICMP Destination Unreachable, Fragmentation Needed를 전송자에게 전송합니다.
%ASA-6-602101: PMTU-D packet 1418 bytes greater than effective mtu 1347,
dest_addr=10.10.10.1, src_addr=10.48.66.200, prot=TCP
- ICMP(Internet Control Message Protocol)가 허용되면 발신자는 삭제된 패킷을 다시 전송하며 모든 것이 작동하기 시작합니다. ICMP가 차단되면 ASA에서 트래픽이 블랙홀링됩니다.
- 여러 번 재전송한 후에는 DTLS 터널을 설정할 수 없으며 VPN 어댑터에 새 MTU 값을 다시 할당해야 합니다.
- 이 재연결의 목적은 새 MTU를 할당하는 것입니다.
다시 연결 동작 및 타이머에 대한 자세한 내용은 AnyConnect FAQ: 터널, 다시 연결 동작 및 비활성 타이머를 참조하십시오
관련 정보