연결 문제 해결 개요
Azure에서 정교한 고성능 워크로드가 증가함에 따라 이러한 워크로드를 실행하는 복잡한 네트워크의 작동 상태에 대한 가시성 및 제어가 향상되어야 합니다. 이러한 복잡한 네트워크는 Azure에서 제공하는 네트워크 보안 그룹, 방화벽, 사용자 정의 경로 및 리소스를 사용하여 구현됩니다. 복잡한 구성은 연결 문제 해결을 어렵게 만듭니다.
Azure Network Watcher의 연결 문제 해결 기능은 네트워크 연결 문제를 진단하고 해결하는 데 걸리는 시간을 줄이는 데 도움이 됩니다. 반환된 결과를 통해 연결 문제의 근본 원인과 플랫폼 또는 사용자 구성 문제로 인한 것인지에 대한 인사이트를 얻을 수 있습니다.
연결 문제 해결은 네트워크 보안 그룹, 사용자 정의 경로 및 차단된 포트와 관련된 문제를 검색하기 위해 모든 연결 주요 검사를 수행하는 포괄적인 방법을 제공하여 MTTR(평균 해결 시간)을 줄입니다. 더 빠른 해결을 위해 단계별 가이드 또는 해당 설명서가 제공되는 실행 가능한 인사이트를 통해 다음 결과를 제공합니다.
- 서로 다른 대상 유형(VM, URI, FQDN 또는 IP 주소)을 사용하는 연결 테스트
- 연결 가능성에 영향을 주는 구성 문제
- 원본에서 대상까지 가능한 모든 홉 단위 경로
- 홉 단위 대기 시간
- 대기 시간(원본과 대상 간의 최소, 최대 및 평균)
- 원본에서 대상까지의 그래픽 토폴로지 보기
- 연결 문제 해결 검사 동안 실패한 프로브 수
지원되는 원본 및 대상 유형
연결 문제 해결은 다음 Azure 리소스에서 TCP 또는 ICMP 연결을 검사하는 기능을 제공합니다.
- 가상 머신
- 가상 머신 크기 집합
- Azure Bastion 인스턴스
- 애플리케이션 게이트웨이(v1 제외)
Important
연결 문제 해결을 위해서는 문제를 해결하는 가상 머신에 Network Watcher 에이전트 VM 확장이 설치되어 있어야 합니다. 확장은 대상 가상 머신에 필요하지 않습니다.
- Windows 가상 머신에 확장을 설치하려면 Windows용 Network Watcher 에이전트 VM 확장을 참조하세요.
- Linux 가상 머신에 확장을 설치하려면 Linux용 Network Watcher 에이전트 VM 확장을 참조하세요.
- 이미 설치된 확장을 업데이트하려면 Network Watcher 에이전트 VM 확장을 최신 버전으로 업데이트를 참조하세요.
연결 문제 해결은 다음 대상에 대한 연결을 테스트할 수 있습니다.
- 가상 머신
- FQDN(정규화된 도메인 이름)
- URI(Uniform Resource Identifier)
- IP 주소
연결 문제 해결을 통해 감지된 문제
연결 문제 해결은 연결에 영향을 미칠 수 있는 다음과 같은 유형의 문제를 검색할 수 있습니다.
- 높은 VM CPU 사용률
- 높은 VM 메모리 사용률
- 가상 머신(게스트) 방화벽 규칙 트래픽 차단
- DNS 확인 실패
- 잘못 구성되었거나 누락된 경로
- 트래픽을 차단하는 NSG(네트워크 보안 그룹) 규칙
- 지정된 원본 포트에서 소켓을 열 수 없음
- Azure ExpressRoute 회로에 대한 주소 확인 프로토콜 항목 누락
- 지정된 대상 포트에서 수신 대기하지 않는 서버
응답
다음 표에서는 연결 문제 해결을 실행한 후 반환된 속성을 보여 줍니다.
속성 | 설명 |
---|---|
ConnectionStatus | 연결 확인의 상태입니다. 가능한 결과는 연결 가능 및 연결 불가능입니다. |
AvgLatencyInMs | 연결 확인 중 평균 대기 시간(밀리초)입니다. (검사 상태가 연결 가능인 경우에만 표시됩니다.) |
MinLatencyInMs | 연결 확인 중 최소 대기 시간(밀리초)입니다. (검사 상태가 연결 가능인 경우에만 표시됩니다.) |
MaxLatencyInMs | 연결 확인 중 최대 대기 시간(밀리초)입니다. (검사 상태가 연결 가능인 경우에만 표시됩니다.) |
ProbesSent | 검사 중 보낸 프로브의 수입니다. 최댓값은 100입니다. |
ProbesFailed | 검사 중 실패한 프로브의 수입니다. 최댓값은 100입니다. |
홉 | 원본에서 대상까지 홉 단위 경로입니다. |
Hops[].Type | 리소스의 형식입니다. 가능한 값은 Source, VirtualAppliance, VnetLocal 및 Internet입니다. |
Hops[].Id | 홉의 고유 식별자입니다. |
Hops[].Address | 홉의 IP 주소입니다. |
Hops[].ResourceId | 홉이 Azure 리소스인 경우 홉의 리소스 ID입니다. 인터넷 리소스인 경우 ResourceID는 Internet입니다. |
Hops[].NextHopIds | 수행된 다음 홉의 고유 식별자입니다. |
Hops[].Issues | 홉 확인 중 발생한 문제 컬렉션입니다. 문제가 없는 경우 값은 비어 있습니다. |
Hops[].Issues[].Origin | 현재 홉에서 문제가 발생한 경우입니다. 가능한 값은 다음과 같습니다. 인바운드 - 문제가 이전 홉부터 현재 홉까지 링크에 있습니다. 아웃바운드 - 문제가 현재 홉부터 다음 홉까지 링크에 있습니다. 로컬 - 문제가 현재 홉에 있습니다. |
Hops[].Issues[].Severity | 검색된 문제의 심각도입니다. 가능한 값은 Error 및 Warning입니다. |
Hops[].Issues[].Type | 검색된 문제의 형식입니다. 가능한 값은 다음과 같습니다. CPU 메모리 GuestFirewall DnsResolution NetworkSecurityRule UserDefinedRoute |
Hops[].Issues[].Context | 검색된 문제에 대한 세부 정보입니다. |
Hops[].Issues[].Context[].key | 반환된 키 값 쌍의 키입니다. |
Hops[].Issues[].Context[].value | 반환된 키 값 쌍의 값입니다. |
NextHopAnalytics.NextHopType | 다음 홉의 형식입니다. 가능한 값은 다음과 같습니다. HyperNetGateway 인터넷 없음 VirtualAppliance VirtualNetworkGateway VnetLocal |
NextHopAnalytics.NextHopIpAddress | 다음 홉의 IP 주소입니다. |
반환되는 경로와 연결된 경로 테이블의 리소스 식별자입니다. 반환된 경로가 사용자 만들기 경로와 일치하지 않는 경우 이 필드는 문자열 System Route가 됩니다. | |
SourceSecurityRuleAnalysis.Results[].Profile | 네트워크 구성 진단 프로필입니다. |
SourceSecurityRuleAnalysis.Results[].Profile.Source | 트래픽 원본입니다. 가능한 값은 *, IP 주소/CIDR 및 서비스 태그입니다. |
SourceSecurityRuleAnalysis.Results[].Profile.Destination | 트래픽 대상. 가능한 값은 *, IP 주소/CIDR 및 서비스 태그입니다. |
SourceSecurityRuleAnalysis.Results[].Profile.DestinationPort | 트래픽 대상 포트입니다. 가능한 값은 * 및 (0 ~ 65535) 범위의 단일 포트입니다. |
SourceSecurityRuleAnalysis.Results[].Profile.Protocol | 검증할 프로토콜입니다. 가능한 값은 *, TCP 및 UDP입니다. |
SourceSecurityRuleAnalysis.Results[].Profile.Direction | 트래픽 방향입니다. 가능한 값은 아웃바운드 및 인바운드입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult | 네트워크 보안 그룹 결과입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[] | 네트워크 보안 그룹 진단 결과 목록입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.SecurityRuleAccessResult | 네트워크 트래픽이 허용되거나 거부됩니다. 가능한 값은 Allow 및 Deny입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].AppliedTo | 네트워크 보안 그룹이 적용되는 NIC 또는 서브넷의 리소스 ID입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule | 일치하는 네트워크 보안 규칙입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule.Action | 네트워크 트래픽이 허용되거나 거부됩니다. 가능한 값은 Allow 및 Deny입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].MatchedRule.RuleName | 일치하는 네트워크 보안 규칙의 이름입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.EvaluatedSecurityGroups[].NetworkSecurityGroupId | 네트워크 보안 그룹 ID |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[] | 네트워크 보안 규칙 평가 결과 목록입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].DestinationMatched | 값은 대상이 일치하는지 여부를 나타냅니다. 부울 값. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].DestinationPortMatched | 값은 대상 포트가 일치하는지 여부를 나타냅니다. 부울 값. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].Name | 네트워크 보안 규칙의 이름입니다. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].ProtocolMatched | 값은 프로토콜이 일치하는지 여부를 나타냅니다. 부울 값. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourceMatched | 값은 원본이 일치하는지 여부를 나타냅니다. 부울 값. |
SourceSecurityRuleAnalysis.Results[].NetworkSecurityGroupResult.RulesEvaluationResult[].SourcePortMatched | 값은 원본 포트가 일치하는지 여부를 나타냅니다. 부울 값. |
DestinationSecurityRuleAnalysis | SourceSecurityRuleAnalysis 형식과 동일합니다. |
SourcePortStatus | 원본의 포트에 연결할 수 있는지 여부를 결정합니다. 가능한 값은 다음과 같습니다. 알 수 없음 Reachable Unstable NoConnection 시간 제한 |
DestinationPortStatus | 대상 포트에 연결할 수 있는지 여부를 결정합니다. 가능한 값은 다음과 같습니다. 알 수 없음 Reachable Unstable NoConnection 시간 제한 |
다음 예에서는 홉에서 발견된 문제를 보여 줍니다.
"Issues": [
{
"Origin": "Outbound",
"Severity": "Error",
"Type": "NetworkSecurityRule",
"Context": [
{
"key": "RuleName",
"value": "UserRule_Port80"
}
]
}
]
오류 형식
연결 문제 해결은 연결에 대한 오류 형식을 반환합니다. 다음 표에는 반환될 수 있는 오류 형식의 목록이 나열되어 있습니다.
Type | 설명 |
---|---|
CPU | 높은 CPU 사용률 |
메모리 | 높은 메모리 사용률 |
GuestFirewall | 가상 컴퓨터 방화벽 구성으로 인해 트래픽이 차단되었습니다. TCP ping은 허용되는 규칙이 없는 경우 TCP ping이 대상 IP 주소/FQDN에 도달하지 않더라도 방화벽 자체가 클라이언트의 TCP ping 요청에 응답하는 고유한 사용 사례입니다. 이 이벤트는 기록되지 않습니다. 대상 IP 주소/FQDN에 대한 액세스를 허용하는 네트워크 규칙이 있는 경우, ping 요청이 대상 서버에 도달하고 해당 응답이 클라이언트에 다시 릴레이됩니다. 이 이벤트는 네트워크 규칙 로그에 기록됩니다. |
DNSResolution | 대상 주소에 대한 DNS 확인에 실패했습니다. |
NetworkSecurityRule | 네트워크 보안 그룹 규칙에 의해 트래픽이 차단됨(보안 규칙이 반환됨) |
UserDefinedRoute | 트래픽이 사용자 정의 또는 시스템 경로로 인해 삭제되었습니다. |
다음 단계
연결 문제 해결을 사용하여 연결을 테스트하고 문제를 해결하는 방법을 알아보려면 다음을 계속합니다.