이 가이드에서는 연결 테스트를 반복적으로 사용하여 네트워크 연결 문제를 파악하고 수정하는 방법을 보여줍니다.
이 경우 Virtual Private Cloud(VPC) 방화벽 규칙은 가상 머신(VM) 인스턴스 하나의 외부 IP 주소가 ICMP 프로토콜을 사용하여 다른 VM의 외부 IP 주소에 핑하지 않도록 합니다.
VM 간 통신 문제는 종종 네트워크 연결 문제이므로 연결 테스트는 문제를 해결할 수 있도록 가능한 구성 문제에 대한 정보를 제공할 수 있습니다. 그런 다음 연결 테스트를 다시 실행하여 수정 사항을 확인할 수 있습니다.
개요
이 경우 VPC 네트워크의 동일한 서브넷에 VM 인스턴스 두 개를 구성했습니다. 두 VM 모두 외부 IP 주소가 있습니다. 핑 패킷을 vm1
에서 vm2
의 외부 IP 주소로 전송하여 이들 간의 연결을 테스트하면 핑이 작동하지 않습니다.
시작하기 전에
튜토리얼을 시작하기 전에 연결 테스트 만들기 및 실행의 Before you begin
섹션에 있는 모든 단계를 수행합니다.
VPC 방화벽 규칙 작동 방식을 검토하는 것도 도움이 될 수 있습니다.
네트워크 리소스 구성
이 섹션에서는 테스트 경로에서 Google Cloud 리소스를 구성합니다.
VPC 네트워크 구성
VM이 포함된 기존 네트워크 및 서브넷을 사용하거나 새 네트워크 및 서브넷을 생성할 수 있습니다.
두 개의 VM 인스턴스 구성
- 이 가이드의 VM 인스턴스는 동일한 VPC 네트워크 및 서브넷에 있습니다. 기존 VM을 사용하거나 새 VM을 만들 수 있습니다.
vm1
및vm2
를 만들 때 외부 IP 주소를 할당합니다. 나중에 사용하므로 주소를 기록해 둡니다.
방화벽 규칙 default-deny-outgoing-ping
만들기
VM을 만든 후 default-deny-outgoing-ping
이라는 이그레스 VPC 방화벽 규칙을 만듭니다. 이 규칙은 ICMP 프로토콜을 vm1
에서 vm2
까지 거부합니다. 이 네트워크에 이 규칙을 재정의하는 기존 방화벽 규칙이 없는지 확인합니다. 또한 이 규칙을 재정의하는 계층식 방화벽 정책 규칙이 없어야 합니다. 자세한 내용은 계층식 방화벽 정책 개요를 참조하세요.
이 VPC 방화벽 규칙을 구성하려면 다음 표의 값을 사용합니다.
VPC 방화벽 규칙 필드 | 값 |
---|---|
Name | default-deny-outgoing-ping |
네트워크 | VM이 있는 VPC 네트워크를 사용합니다. |
우선순위 | 1000 |
트래픽 방향 | 송신 |
일치 시 작업 | 거부 |
대상 | 네트워크의 모든 인스턴스를 선택합니다. |
도착 IP 범위 | vm2 의 외부 IP 주소를 사용합니다. |
지정된 프로토콜 및 포트 | 기타 프로토콜 체크박스를 선택한 후 icmp 를 입력합니다. |
방화벽 규칙 default-deny-ingress-to-vm2
만들기
default-deny-ingress-to-vm2
라는 인그레스 방화벽 규칙을 만들어 vm2
의 외부 IP 주소에 대한 ICMP 프로토콜을 거부합니다. 이 네트워크에 이 규칙을 재정의하는 기존 방화벽 규칙이 없는지 확인합니다. 또한 이 규칙을 재정의하는 계층식 방화벽 정책 규칙이 없어야 합니다. 자세한 내용은 계층식 방화벽 정책 개요를 참조하세요.
다음 표의 값을 사용하여 규칙을 만듭니다.
VPC 방화벽 규칙 필드 | 값 |
---|---|
Name | default-deny-ingress-to-vm2 |
네트워크 | VM이 있는 VPC 네트워크를 사용합니다. |
우선순위 | 65534 |
트래픽 방향 | 인그레스 |
일치 시 작업 | 거부 |
대상 | 네트워크의 모든 인스턴스를 선택합니다. |
소스 IP 범위 | vm1 의 외부 IP 주소를 사용합니다. |
지정된 프로토콜 및 포트 | 기타 프로토콜 체크박스를 선택한 후 icmp 를 입력합니다. |
첫 번째 추적 실행
Google Cloud Console을 사용하여 trace를 실행하여 ICMP(핑) 패킷이 vm1
에서 외부 IP 주소 vm2
로 이동할 수 있는지 확인합니다. 이 trace를 실행한 후 연결 테스트는 VPC 방화벽 규칙 default-deny-outgoing-ping
으로 인해 trace 패킷이 삭제되었음을 알려줍니다.
추적에 대한 입력값은 다음 표를 사용합니다.
필드 이름 | 값 |
---|---|
프로토콜 | icmp |
소스 IP 주소 |
Google Cloud에서 사용되는 IP 주소입니다 체크박스를 선택합니다. |
소스 IP 주소 또는 서비스 프로젝트 | vm1 의 프로젝트 이름을 확인합니다. |
대상 IP 주소 |
Google Cloud에서 사용되는 IP 주소입니다 체크박스를 선택합니다. |
대상 IP 주소 또는 서비스 프로젝트 | vm2 의 프로젝트 이름을 확인합니다. |
다음 Google Cloud 콘솔 스냅샷은 방화벽 규칙 default-deny-outgoing-ping
으로 인해 trace 패킷이 삭제되었음을 알려줍니다.
방화벽 규칙 default-deny-outgoing-ping
을 중지한 후 두 번째 추적 실행
- 핑 테스트를
vm2
에 허용하려면 VPC 방화벽 규칙default-deny-outgoing-ping
을 일시 중지합니다. - 구성 업데이트가 완료되면 추적을 다시 실행합니다.
- 추적이 다시 실패합니다.
vm2
의 외부 IP 주소에 대한 인그레스 ICMP 패킷을 거부하는이 방화벽 규칙으로 인해 패킷이 삭제되었습니다.
다음 Google Cloud 콘솔 스냅샷은 인바운드 trace 패킷이 Cloud NAT를 통과할 수 있지만 앞에서 언급한 방화벽 규칙으로 인해 vm2
에 도달할 수 없음을 보여줍니다.
방화벽 규칙 allow-ping-from-known-ranges
만들기
vm2
의 외부 IP 주소에 대한 인그레스를 허용하려면 allow-ping-from-known-ranges
라는 새 VPC 방화벽 규칙을 구성합니다. VPC 네트워크에 모든 인그레스 ICMP 패킷을 허용하면 보안 위험이 발생할 수 있으므로 ICMP 패킷을 vm2
외부 IP 주소로 전송할 수 있는 작은 소스 범위 집합만 지정합니다.
이 가이드의 목적을 위해 이 소스 범위에는 vm1
의 외부 IP 주소만 포함되어 있지만 기존 방화벽 규칙 또는 규칙 우선순위를 확인하여 이 새 규칙보다 우선하지 않도록 합니다. 또한 이 규칙을 재정의하는 계층식 방화벽 정책 규칙이 없어야 합니다. 자세한 내용은 계층식 방화벽 정책 개요를 참조하세요.
다음 표의 값을 사용하여 규칙을 구성합니다.
VPC 방화벽 규칙 필드 | 값 |
---|---|
Name | allow-ping-from-known-ranges |
네트워크 | 두 VM이 모두 포함된 네트워크 이름을 사용합니다. |
우선순위 | 1000 |
트래픽 방향 | 인그레스 |
일치 시 작업 | 허용 |
대상 | 네트워크의 모든 인스턴스를 선택합니다. |
소스 필터 | IP 범위 |
소스 IP 범위 | vm1 의 외부 IP 주소를 사용합니다. |
지정된 프로토콜 및 포트 | 기타 프로토콜 체크박스를 선택한 후 icmp 를 입력합니다. |
세 번째 추적 실행
allow-ping-from-known-ranges
방화벽 규칙을 작성한 후 vm2
의 외부 IP 주소를 다시 핑합니다. 핑이 작동하고 문제가 해결됩니다.
새 방화벽 규칙이 포함된 업데이트된 구성에 대해 다른 추적을 수행하여 이 결과를 확인할 수 있습니다. 이번에는 연결 테스트에서 패킷이 vm2
에 전달되었고 일치하는 방화벽 규칙 allow-ping-from-known-ranges
가 vm2
외부 IP 주소에 대한 인바운드 ICMP 패킷을 허용함을 알려줍니다.
정리
필요한 경우 이 튜토리얼을 위해 생성한 다음 Google Cloud 리소스를 비활성화하거나 삭제할 수 있습니다. 이들이 프로덕션 리소스가 아닌지 확인합니다. 리소스를 사용 중지하려는 경우, 요금이 청구되지 않도록 Compute Engine 가격 책정 페이지 및 모든 네트워킹 가격 책정 페이지에서 확인하세요.