패킷 미러링 사용
패킷 미러링을 사용하여 특정 가상 머신(VM) 인스턴스로 들어오고 나가는 트래픽을 미러링할 수 있습니다. 수집된 트래픽을 사용하면 보안 위협을 감지하고 애플리케이션 성능을 모니터링하는 데 도움이 될 수 있습니다. 패킷 미러링에 관한 자세한 내용은 패킷 미러링을 참고하세요.
미러링된 트래픽은 적절한 소프트웨어를 설치한 VM으로 전송됩니다. 소프트웨어를 제공하는 공급업체 목록은 패킷 미러링 파트너 제공업체를 참고하세요.
다음 섹션에서는 패킷 미러링 정책을 만들고 관리하는 방법을 설명합니다.
제한사항
패킷 미러링은 Private Service Connect의 게시된 서비스 트래픽의 패킷을 미러링할 수 없습니다.
보안상의 이유로 패킷 미러링은 링크-로컬 IP 주소 범위
169.254.0.0/16
로 전송되는 패킷을 미러링하지 않습니다. 이 범위에는 VM에서 메타데이터 서버로 전송되는 메타데이터 요청이 포함됩니다.Google Kubernetes Engine(GKE) LoadBalancer 서비스를 패킷 미러링 수집기로 사용할 수 없습니다.
또한 패킷 미러링 정책이 수집기 인스턴스에 적용되는 경우 패킷 미러링은 이를 무시하고 해당 트래픽을 미러링하지 않습니다.
시작하기 전에
패킷 미러링 정책을 만들기 전에 적절한 권한이 있어야 합니다. 수집기 대상으로 사용할 내부 패스 스루 네트워크 부하 분산기도 만들어야 합니다. 이 내부 패스 스루 네트워크 부하 분산기에는 백엔드 서비스가 VM을 수집기 대상으로 사용할 수 있도록 인스턴스 그룹이 필요합니다.
권한
패킷 미러링 정책을 만들고 관리하기 위해 Google Cloud는 패킷 미러링과 관련된 두 가지 역할을 제공합니다.
compute.packetMirroringUser
는 사용자에게 패킷 미러링 정책을 생성, 업데이트, 삭제할 수 있는 권한을 부여합니다. 패킷 미러링을 사용하려면 사용자가 패킷 미러링 정책을 만드는 프로젝트에 이 역할을 가지고 있어야 합니다.compute.packetMirroringAdmin
은 사용자에게 특정 리소스를 미러링할 권한을 부여합니다. 사용자에게 패킷 미러링 정책을 만들 수 있는 권한이 있어도 관련 소스를 미러링할 수 있는 권한이 필요합니다. 공유 VPC 시나리오와 같이 정책 소유자가 다른 권한을 가질 수 없는 프로젝트에서 이 역할을 사용합니다.
IAM 역할 사용에 대한 자세한 내용은 IAM 문서의 프로젝트, 폴더, 조직 액세스 관리를 참조하세요.
수집기 인스턴스 만들기
패킷 미러링에는 수집기 인스턴스의 인스턴스 그룹이 필요합니다. 인스턴스 그룹에 대한 자세한 내용은 새 인스턴스 템플릿 만들기 및 단일 영역에 MIG 만들기를 참조하세요.
패킷 미러링용 내부 부하 분산기 만들기
패킷 미러링을 사용 설정하려면 패킷 미러링 수집기로 작동할 수 있는 내부 패스 스루 네트워크 부하 분산기가 있어야 합니다. 내부 패스 스루 네트워크 부하 분산기는 다음 요구사항을 충족해야 합니다.
- 내부 패스 스루 네트워크 부하 분산기의 전달 규칙에는 규칙이 생성될 때 패킷 미러링이 사용 설정되어 있어야 합니다. 규칙을 만든 후에는 이 상태를 변경할 수 없습니다. 이 전달 규칙을 사용하여 IPv4 및 IPv6 트래픽을 모두 수집할 수 있습니다.
- 내부 패스 스루 네트워크 부하 분산기는 미러링 중인 인스턴스와 동일한 리전에 있습니다.
- 내부 패스 스루 네트워크 부하 분산기의 백엔드 서비스는
NONE
의 세션 어피니티(5튜플 해시)를 사용해야 합니다. - 내부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에는 백엔드 하위 설정이 사용 중지되어 있어야 합니다.
수집기 인스턴스가 백엔드 서비스로 구성한 상태 점검에 응답하도록 설정되지 않은 경우 상태 점검이 실패할 수 있습니다. 이 경우에도 패킷을 미러링할 수 있습니다.
패킷 미러링을 위한 내부 패스 스루 네트워크 부하 분산기 생성 방법에 대한 자세한 내용은 패킷 미러링을 위한 부하 분산기 만들기를 참조하세요.
방화벽 규칙 구성
패킷 미러링 트래픽을 위해 VPC 네트워크를 준비하려면 다음을 수행합니다.
부하 분산기의 인스턴스 그룹에 있는 수집기 인스턴스가 미러링된 인스턴스 또는 미러링된 인스턴스의 IPv4 및 IPv6 주소 범위로부터 트래픽을 수신할 수 있는지 확인합니다. 예를 들어 수집기 인스턴스가 VM에서 IPv4 트래픽을 수신할 수 있도록 하려면 소스 IPv4 주소 범위가
0.0.0.0/0
인 방화벽 규칙을 만듭니다. 수집기 인스턴스가 VM에서 IPv6 트래픽을 수신할 수 있도록 하려면 소스 IPv6 주소 범위가::/0
인 방화벽 규칙을 만듭니다. 인터넷 트래픽이 수집기 인스턴스에 전달되지 않도록 하려면 내부 IPv4 및 IPv6 주소만 할당합니다.미러링된 트래픽이 소스 인스턴스에서 내부 패스 스루 네트워크 부하 분산기의 일부인 대상 인스턴스로 전송될 수 있도록 다른 방화벽 규칙이 암시적 이그레스 규칙을 재정의하지 않도록 해야 합니다.
수집기 인스턴스가 Google Cloud 상태 점검 시스템에서 트래픽을 수신할 수 있는지 확인합니다. 예를 들어 IPv4 트래픽의 경우
130.211.0.0/22
및35.191.0.0/16
의 IPv4 주소 범위에서 수집기 인스턴스로 트래픽을 허용하는 방화벽 규칙을 만듭니다. IPv6 트래픽의 경우2600:2d00:1:b029::/64
의 IPv6 주소 범위에서 수집기 인스턴스로의 트래픽을 허용하는 방화벽 규칙을 만듭니다.하나 이상의 미러링된 인스턴스에서 이그레스 트래픽을 수동으로 전송하여 패킷 미러링을 테스트하려면 이러한 인스턴스에 대해 SSH 트래픽을 허용하는 방화벽 규칙을 만듭니다. 예를 들어 모든 IPv4 및 IPv6 주소에서 미러링된 인스턴스에 SSH 연결을 허용하려면 소스 IPv4 및 IPv6 주소에서 포트
22
로의 인그레스TCP
트래픽을 허용합니다. 특정 IPv4 또는 IPv6 주소 범위에서 시작된 SSH 연결만 허용하려면 해당 IPv4 또는 IPv6 주소 범위를 방화벽 규칙의 소스 범위로 지정합니다. 내부 패스 스루 네트워크 부하 분산기 테스트에 대한 자세한 내용은 부하 분산 테스트를 참고하세요.
이 트래픽을 허용하는 기존 규칙이 없는 경우 VPC 방화벽 규칙 사용을 참조하여 규칙을 만듭니다. 내부 패스 스루 네트워크 부하 분산기의 방화벽 규칙 만들기에 대한 자세한 내용은 Cloud Load Balancing 문서의 방화벽 규칙 구성을 참조하세요.
패킷 미러링 정책 만들기
특정 인스턴스에서 트래픽을 주고받는 미러링을 시작하려면 패킷 미러링 정책을 만듭니다. Google Cloud는 지정한 소스 중 하나 이상과 일치하는 인스턴스를 미러링합니다.
콘솔
Google Cloud 콘솔에서 패킷 미러링 페이지로 이동합니다.
정책 만들기를 클릭합니다.
정책에 대한 다음 정보를 입력한 다음 계속을 클릭합니다.
- 정책의 이름을 입력합니다.
- 미러링되는 소스 및 수집기 대상이 포함된 리전을 선택합니다. 패킷 미러링 정책은 소스 및 대상과 동일한 리전에 있어야 합니다.
- 우선순위 필드는 무시합니다. 현재 조정할 수 없습니다.
- 정책을 만들 때 정책을 활성화하려면 사용 설정을 선택합니다.
미러링되는 소스 및 수집기 대상이 있는 VPC 네트워크를 선택하고 계속을 클릭합니다.
소스와 대상은 동일하거나 다른 VPC 네트워크에 있을 수 있습니다.
- 동일한 VPC 네트워크에 있는 경우 미러링되는 소스 및 대상이 동일한 VPC 네트워크에 있음을 선택한 다음 네트워크를 선택합니다.
- 다른 네트워크에 있는 경우 미러링되는 소스 및 수집기 대상이 별도의 피어링된 VPC 네트워크에 있음을 선택한 다음 미러링되는 소스 네트워크와 수집기 대상 네트워크를 차례로 선택합니다.
미러링된 소스를 선택하고 계속을 클릭합니다. 하나 이상의 소스를 선택할 수 있습니다. Google Cloud는 선택한 소스 중 하나 이상과 일치하는 인스턴스를 미러링합니다.
- 서브넷: 하나 이상의 서브네트워크를 선택합니다. Google Cloud는 선택한 서브넷의 기존 인스턴스와 향후 인스턴스를 미러링합니다.
- 네트워크 태그: 하나 이상의 네트워크 태그를 지정합니다. Google Cloud는 지정된 태그 중 하나 이상을 가진 인스턴스를 미러링합니다.
- 인스턴스 이름: 미러링할 특정 인스턴스를 선택합니다.
패킷 미러링을 위해 구성된 내부 패스 스루 네트워크 부하 분산기를 선택하고 계속을 클릭합니다. Google Cloud는 내부 패스 스루 네트워크 부하 분산기 뒤에 있는 인스턴스에 미러링된 트래픽을 보냅니다.
공유 VPC의 경우 수집기 대상과 미러링되는 소스가 동일한 공유 VPC 네트워크에 있는 경우 수집기 대상이 있는 프로젝트를 선택한 다음 부하 분산기를 선택해야 합니다.
미러링할 트래픽을 선택하려면 다음 단계를 따르세요.
- 모든 IPv4 트래픽을 미러링하려면 모든 IPv4 트래픽 미러링(기본값)을 선택합니다.
- 모든 IPv4 및 IPv6 트래픽을 미러링하려면 필터링된 트래픽 미러링을 선택한 다음 다음을 실행합니다.
- 모든 프로토콜 허용을 선택합니다.
- 모든 IPv4 범위 허용(0.0.0.0/0)을 선택합니다.
- 모든 IPv6 범위 허용(::/0)을 선택합니다.
- 인그레스 및 이그레스 트래픽 모두 허용을 선택합니다.
미러링할 트래픽을 제한하려면 필터링된 트래픽 미러링을 선택한 다음 다음을 실행합니다.
프로토콜별로 미러링된 트래픽을 제한하려면 특정 프로토콜 허용을 선택한 다음 프로토콜을 선택합니다. 트래픽을 미러링할 프로토콜이 표시되지 않으면 기타 프로토콜을 선택한 다음 기타 프로토콜 필드에 프로토콜을 입력합니다. 유효한 값은
tcp
,udp
,esp
,ah
,ipip
,sctp
, IANA 프로토콜 번호입니다. IPv6에 ICMP를 지정하려면58
을 입력합니다.IPv4 범위 필터의 경우 다음을 실행합니다.
- 모든 IPv4 트래픽을 미러링하려면 모든 IPv4 범위 허용(0.0.0.0/0)을 선택합니다.
- 특정 IPv4 주소 범위의 트래픽을 미러링하려면 특정 IPv4 범위 허용을 선택합니다. IPv4 범위 필드에 단일 IPv4 주소 범위를 입력한 후 Enter 키를 누릅니다. 각 범위를 입력한 후 Enter 키를 눌러 IPv4 범위를 여러 개 추가할 수 있습니다.
IPv6 범위 필터의 경우 다음을 실행합니다.
- 모든 IPv6 트래픽을 필터링하려면 없음을 선택합니다.
- 모든 IPv6 트래픽을 미러링하려면 모든 IPv6 범위 허용(::/0)을 선택합니다.
- 특정 IPv6 주소 범위의 트래픽을 미러링하려면 특정 IPv6 범위 허용을 선택합니다. IPv6 범위 필드에 단일 IPv6 주소 범위를 입력한 후 Enter 키를 누릅니다. 각 범위를 입력한 후 Enter 키를 눌러 IPv6 범위를 여러 개 추가할 수 있습니다.
미러링할 트래픽의 트래픽 방향을 선택합니다.
패킷 미러링 정책을 만들려면 제출을 클릭합니다.
gcloud
패킷 미러링 정책을 만들려면 packet-mirrorings create
명령어를 사용합니다.
gcloud compute packet-mirrorings create POLICY_NAME \ --region=REGION \ --network=NETWORK_NAME \ --collector-ilb=FORWARDING_RULE_NAME \ [--mirrored-subnets=SUBNET,[SUBNET,...]] \ [--mirrored-tags=TAG,[TAG,...]] \ [--mirrored-instances=INSTANCE,[INSTANCE,...]] \ [--filter-cidr-ranges=CIDR_RANGE,[CIDR_RANGE,...]] \ [--filter-protocols=PROTOCOL,[PROTOCOL,...]] \ [--filter-direction=DIRECTION]
다음을 바꿉니다.
POLICY_NAME
: 패킷 미러링 정책의 이름입니다.REGION
: 미러링되는 소스와 수집기 대상이 있는 리전입니다.NETWORK_NAME
: 미러링되는 소스가 있는 네트워크입니다.FORWARDING_RULE_NAME
: 미러링 수집기로 구성된 전달 규칙 이름입니다. Google Cloud는 미러링된 모든 트래픽을 연결된 내부 패스 스루 네트워크 부하 분산기로 보냅니다.SUBNET
: 미러링할 하나 이상의 서브넷 이름입니다. 쉼표로 구분된 목록을 사용하여 서브넷을 여러 개 제공할 수 있습니다. Google Cloud는 서브넷의 기존 인스턴스와 향후 인스턴스를 미러링합니다.TAG
: 하나 이상의 네트워크 태그입니다. Google Cloud는 네트워크 태그가 있는 인스턴스를 미러링합니다. 쉼표로 구분된 목록을 사용하여 태그를 여러 개 제공할 수 있습니다.INSTANCE
: 미러링할 하나 이상의 인스턴스의 정규화된 ID입니다. 쉼표로 구분된 목록을 사용하여 인스턴스를 여러 개 제공할 수 있습니다.CIDR_RANGE
: 미러링할 하나 이상의 IPv4 또는 IPv6 CIDR 범위입니다. CIDR 범위가 지정되지 않으면 지정된 프로토콜과 일치하는 모든 IPv4 트래픽이 미러링됩니다. CIDR 범위와 프로토콜이 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. 모든 IPv4 및 IPv6 트래픽을 미러링하려면0.0.0.0/0,::/0
을 사용합니다. IPv4 및 IPv6 CIDR 범위를 모두 포함할 수 있습니다. 쉼표로 구분된 목록을 사용하여 범위를 여러 개 제공할 수 있습니다.PROTOCOL
: 하나 이상의 미러링할 프로토콜입니다. 유효한 값은tcp
,udp
,icmp
,esp
,ah
,ipip
,sctp
, IANA 프로토콜 번호입니다. 프로토콜을 지정하지 않으면 지정된 CIDR 범위와 일치하는 모든 트래픽이 미러링됩니다. 프로토콜과 CIDR 범위가 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. IPv6에 ICMP를 지정하려면58
을 사용합니다. 쉼표로 구분된 목록을 사용하여 프로토콜을 여러 개 제공할 수 있습니다.DIRECTION
: VM을 기준으로 미러링할 트래픽 방향입니다. 기본적으로both
로 설정됩니다. 즉, 인그레스 트래픽과 이그레스 트래픽이 모두 미러링됩니다. 인그레스 패킷만 캡처하도록ingress
를 지정하거나 이그레스 패킷만 캡처하도록egress
를 지정하면 캡처되는 패킷을 제한할 수 있습니다.
Terraform
Terraform 리소스를 사용하여 패킷 미러링 정책을 만들 수 있습니다.
Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.
API
패킷 미러링 정책을 만들려면 packetMirrorings.insert
메서드에 POST
요청을 실행합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings { "name": "POLICY_NAME", "enable": "ENABLED", "network": { "url": "NETWORK_URL" }, "priority": PRIORITY, "mirroredResources": { "subnetworks": [ { "url": "SUBNET_URL" } ], "tags": [ "TAG" ], "instances": [ { "url": "INSTANCE" } ] }, "collectorIlb": { "url": "FORWARDING_RULE_URL" }, "filter": { "IPProtocols": [ "PROTOCOL" ], "cidrRanges": [ "CIDR_RANGE" ], "direction": "DIRECTION" } }
다음을 바꿉니다.
PROJECT_ID
: 정책을 만들 프로젝트의 ID입니다.REGION
: 미러링되는 소스와 수집기 대상이 있는 리전입니다.POLICY_NAME
: 패킷 미러링 정책의 이름입니다.ENABLED
: 이 정책이 적용되는지 여부입니다. 옵션은TRUE
및FALSE
입니다. 기본값은TRUE
입니다.NETWORK_URL
: 미러링된 소스가 있는 네트워크의 URL입니다.PRIORITY
: 일치하는 규칙이 두 개 이상일 때 우선순위를 결정하는 데 사용되는 전달 규칙의 우선순위입니다. 유효 범위는 0~65,535이고 기본값은 1,000입니다.SUBNET_URL
: 미러링할 서브넷의 URL입니다. Google Cloud는 서브넷의 기존 인스턴스와 향후 인스턴스를 미러링합니다. 쉼표로 구분된 목록을 사용하여 서브넷을 여러 개 제공할 수 있습니다.TAG
: 네트워크 태그입니다. Google Cloud는 네트워크 태그가 있는 인스턴스를 미러링합니다. 쉼표로 구분된 목록을 사용하여 태그를 여러 개 제공할 수 있습니다.INSTANCE
: 미러링할 인스턴스의 정규화된 ID입니다. 쉼표로 구분된 목록을 사용하여 인스턴스를 여러 개 제공할 수 있습니다.FORWARDING_RULE_URL
: 미러링 수집기로 구성된 전달 규칙의 URL입니다. Google Cloud는 미러링된 모든 트래픽을 연결된 내부 패스 스루 네트워크 부하 분산기로 보냅니다.PROTOCOL
: 하나 이상의 프로토콜입니다. 옵션은tcp
,udp
,icmp
,esp
,ah
,ipip
,sctp
또는 IANA 프로토콜 번호입니다. 프로토콜을 지정하지 않으면 지정된 CIDR 범위와 일치하는 모든 트래픽이 미러링됩니다. CIDR 범위와 프로토콜이 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. IPv6에 ICMP를 지정하려면58
을 입력합니다."icmp", "udp"
형식을 사용하여 여러 프로토콜을 제공할 수 있습니다.CIDR_RANGE
: 미러링할 하나 이상의 IPv4 또는 IPv6 CIDR 범위입니다. CIDR 범위가 지정되지 않으면 지정된 프로토콜과 일치하는 모든 IPv4 트래픽이 미러링됩니다. CIDR 범위와 프로토콜이 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. 모든 IPv4 및 IPv6 트래픽을 미러링하려면"0.0.0.0/0", "::/0"
을 사용합니다. IPv4 및 IPv6 CIDR 범위를 모두 포함할 수 있습니다."192.0.2.0/24", "2001:0DB8::/32"
형식을 사용하여 여러 CIDR 범위를 제공할 수 있습니다.PROTOCOL
: 하나 이상의 미러링할 프로토콜입니다.DIRECTION
: 미러링할 트래픽의 방향입니다. 옵션은INGRESS
,EGRESS
또는BOTH
입니다. 기본값은BOTH
입니다.
패킷 미러링 확인
수집기 인스턴스가 미러링된 트래픽을 올바르게 수신하는지 확인하려면 tcpdump
를 사용하면 됩니다.
수집기 인스턴스에 연결합니다.
tcpdump
명령어를 사용할 수 없으면 설치합니다.네트워크 인터페이스를 확인합니다.
ip address
네트워크 인터페이스 목록에서 수집기 인스턴스의 기본 내부 IPv4 주소와 연결된 이름(예:
ens4
)을 찾습니다.패킷 분석을 시작합니다.
sudo tcpdump -i INTERFACE_NAME -f "host IP_ADDRESS"
다음을 바꿉니다.
INTERFACE_NAME
: 3단계에서 식별한 인터페이스 이름입니다.IP_ADDRESS
: 미러링된 소스 VM의 IPv4 주소입니다.
테스트를 실행하려면 미러링된 소스 VM에서 트래픽을 전송합니다(예:
ICMP
핑 전송).tcpdump
출력에서 예상된 트래픽을 볼 수 있는지 확인합니다.
패킷 미러링 정책 수정
기존 정책을 업데이트하여 미러링된 소스 또는 수집기 대상과 같은 세부정보를 업데이트할 수 있습니다.
콘솔
Google Cloud 콘솔에서 패킷 미러링 페이지로 이동합니다.
패킷 미러링 정책 목록에서 수정할 정책을 클릭합니다.
정책 세부정보 페이지에서 수정을 클릭합니다.
업데이트할 필드를 수정합니다. 콘솔은 정책을 만들 때와 동일한 흐름을 따릅니다. 각 필드에 대한 자세한 내용은 패킷 미러링 정책 만들기를 참조하세요.
gcloud
기존 패킷 미러링 정책을 업데이트하려면 packet-mirrorings update
명령어를 사용합니다.
gcloud compute packet-mirrorings update POLICY_NAME [--async] \ [--collector-ilb=FORWARDING_RULE_NAME] [--description=DESCRIPTION] [--enable] \ [--filter-direction=DIRECTION] [--region=REGION] \ [--add-filter-cidr-ranges=[CIDR_RANGE,...] | --clear-filter-cidr-ranges \ | --remove-filter-cidr-ranges=[CIDR_RANGE,...] \ | --set-filter-cidr-ranges=[CIDR_RANGE,...]] \ [--add-filter-protocols=[PROTOCOL,...] | --clear-filter-protocols \ | --remove-filter-protocols=[PROTOCOL,...] \ | --set-filter-protocols=[PROTOCOL,...]] \ [--add-mirrored-instances=[INSTANCE,...] | --clear-mirrored-instances \ | --remove-mirrored-instances=[INSTANCE,...] \ | --set-mirrored-instances=[INSTANCE,...]] \ [--add-mirrored-subnets=[SUBNET,...] | --clear-mirrored-subnets \ | --remove-mirrored-subnets=[SUBNET,...] \ | --set-mirrored-subnets=[SUBNET,...]] \ [--add-mirrored-tags=[TAG,...] | --clear-mirrored-tags \ | --remove-mirrored-tags=[TAG,...] | --set-mirrored-tags=[TAG,...]]
다음을 바꿉니다.
POLICY_NAME
: 수정할 패킷 미러링 정책의 이름입니다.FORWARDING_RULE_NAME
: 수집기로 구성된 전달 규칙 이름입니다. Google Cloud는 미러링된 모든 트래픽을 연결된 내부 패스 스루 네트워크 부하 분산기로 보냅니다.DESCRIPTION
: 패킷 미러링 정책에 대한 설명입니다.DIRECTION
: 패킷 미러링 정책을 적용할 트래픽의 방향입니다. 옵션은egress
,ingress
또는both
입니다.REGION
: 정책이 있는 리전입니다.CIDR_RANGE
: 미러링할 하나 이상의 IPv4 또는 IPv6 CIDR 범위입니다. CIDR 범위가 지정되지 않으면 지정된 프로토콜과 일치하는 모든 IPv4 트래픽이 미러링됩니다. CIDR 범위와 프로토콜이 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. 모든 IPv4 및 IPv6 트래픽을 미러링하려면0.0.0.0/0,::/0
을 사용합니다. IPv4 및 IPv6 CIDR 범위를 모두 포함할 수 있습니다. 쉼표로 구분된 목록을 사용하여 범위를 여러 개 제공할 수 있습니다.PROTOCOL
: 하나 이상의 미러링할 프로토콜입니다. 유효한 값은tcp
,udp
,icmp
,esp
,ah
,ipip
,sctp
, IANA 프로토콜 번호입니다. 프로토콜이 지정되지 않으면 지정된 CIDR 범위와 일치하는 트래픽이 미러링됩니다. 프로토콜과 CIDR 범위가 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. IPv6에 ICMP를 지정하려면58
을 사용합니다. 쉼표로 구분된 목록을 사용하여 프로토콜을 여러 개 제공할 수 있습니다.INSTANCE
: 미러링할 하나 이상의 VM 인스턴스의 정규화된 ID입니다. 쉼표로 구분된 목록을 사용하여 인스턴스를 여러 개 제공할 수 있습니다.SUBNET
: 하나 이상의 서브네트워크입니다. 쉼표로 구분된 목록을 사용하여 서브네트워크를 여러 개 제공할 수 있습니다. Google Cloud는 서브넷의 기존 인스턴스와 향후 인스턴스를 미러링합니다.TAG
: 하나 이상의 네트워크 태그입니다. 쉼표로 구분된 목록을 사용하여 태그를 여러 개 제공할 수 있습니다.
API
패킷 미러링 정책을 업데이트하려면 packetMirrorings.patch
메서드에 POST
요청을 실행합니다.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME { "name": "POLICY_NAME", "description": "DESCRIPTION", "priority": "PRIORITY", "collectorIlb": { "url": "FORWARDING_RULE_URL" }, "mirroredResources": { "subnetworks": [ { "url": "SUBNET_URL" } ], "instances": [ { "url": "INSTANCE_URL" } ], "tags": [ "NETWORK_TAGS" ] }, "filter": { "cidrRanges": [ "CIDR_RANGE" ], "IPProtocols": [ "PROTOCOL" ], "direction": "DIRECTION" }, "enable": "ENABLED" }
다음을 바꿉니다.
PROJECT_ID
: 정책이 저장된 프로젝트의 ID입니다.REGION
: 패킷 미러링 정책의 리전입니다.POLICY_NAME
: 수정할 패킷 미러링 정책의 이름입니다.DESCRIPTION
: 정책에 대한 설명입니다(선택사항).PRIORITY
: 일치하는 정책이 여러 개인 경우 우선순위를 결정하는 데 사용되는 정책의 우선순위입니다. 기본값은 1,000입니다. 유효 범위는 0~65,535입니다.FORWARDING_RULE_URL
: 패킷 미러링이 사용 설정된 전달 규칙의 URL입니다. Google Cloud는 미러링된 모든 트래픽을 연결된 내부 패스 스루 네트워크 부하 분산기로 보냅니다.SUBNET_URL
: 서브네트워크 URL입니다. Google Cloud는 서브넷의 기존 인스턴스와 향후 인스턴스를 미러링합니다. 쉼표로 구분된 목록을 사용하여 서브네트워크를 여러 개 제공할 수 있습니다.INSTANCE_URL
: 미러링할 VM 인스턴스의 URL입니다. 쉼표로 구분된 목록을 사용하여 인스턴스를 여러 개 제공할 수 있습니다.NETWORK_TAGS
: 네트워크 태그입니다. Google Cloud는 하나 이상의 네트워크 태그가 있는 인스턴스를 미러링합니다. 쉼표로 구분된 목록을 사용하여 태그를 여러 개 제공할 수 있습니다.CIDR_RANGE
: 미러링할 하나 이상의 IPv4 또는 IPv6 CIDR 범위입니다. CIDR 범위가 지정되지 않으면 지정된 프로토콜과 일치하는 모든 IPv4 트래픽이 미러링됩니다. CIDR 범위와 프로토콜이 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. 모든 IPv4 및 IPv6 트래픽을 미러링하려면"0.0.0.0/0", "::/0"
을 사용합니다. IPv4 및 IPv6 CIDR 범위를 모두 포함할 수 있습니다."192.0.2.0/24", "2001:DB8::/32"
형식을 사용하여 여러 CIDR 범위를 제공할 수 있습니다.IP_PROTOCOL
: 하나 이상의 프로토콜입니다. 옵션은tcp
,udp
,icmp
,esp
,ah
,ipip
,sctp
또는 IANA 프로토콜 번호입니다. 프로토콜을 지정하지 않으면 지정된 CIDR 범위와 일치하는 모든 트래픽이 미러링됩니다. CIDR 범위와 프로토콜이 지정되지 않으면 모든 IPv4 트래픽이 미러링됩니다. IPv6에 ICMP를 지정하려면58
을 사용합니다."icmp", "udp"
형식을 사용하여 여러 프로토콜을 제공할 수 있습니다.DIRECTION
: 미러링할 트래픽의 방향입니다. 옵션은INGRESS
,EGRESS
또는BOTH
입니다. 기본값은BOTH
입니다.ENABLED
: 정책이 사용 설정되어 있는지 여부를 나타냅니다. 옵션은TRUE
또는FALSE
입니다.
패킷 미러링 정책 나열
패킷 미러링 정책을 나열하여 기존 정책을 볼 수 있습니다.
콘솔
Google Cloud 콘솔에서 패킷 미러링 페이지로 이동합니다.
Google Cloud 콘솔에 프로젝트의 모든 정책이 나열됩니다.
gcloud
프로젝트 또는 특정 리전에 있는 패킷 미러링 정책을 나열하려면 packet-mirrorings list
명령어를 사용합니다.
gcloud compute packet-mirrorings list \ [--filter="region:(REGION...)"]
REGION
을 나열할 정책이 포함된 리전의 이름으로 바꿉니다.
API
프로젝트의 기존 패킷 미러링 정책을 나열하려면 packetMirrorings.list
메서드에 GET
요청을 실행합니다.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/packetMirrorings
PROJECT_ID
를 프로젝트의 ID로 바꿉니다.
특정 리전의 기존 패킷 미러링 정책을 나열하려면 packetMirrorings.list
메서드에 GET
요청을 수행합니다.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings
다음을 바꿉니다.
PROJECT_ID
: 나열할 정책이 포함된 프로젝트의 ID입니다.REGION
: 나열할 정책이 포함된 리전입니다.
패킷 미러링 정책 설명
패킷 미러링 정책을 설명하여 정책의 필터와 같은 세부정보를 볼 수 있습니다.
콘솔
Google Cloud 콘솔에서 패킷 미러링 페이지로 이동합니다.
패킷 미러링 정책 목록에서 보려는 패킷 미러링 정책을 선택합니다. Google Cloud 콘솔에 선택한 정책의 세부정보가 표시됩니다.
gcloud
패킷 미러링 정책을 설명하려면 packet-mirrorings describe
명령어를 사용합니다.
gcloud compute packet-mirrorings describe POLICY_NAME \ --region=REGION \
다음을 바꿉니다.
POLICY_NAME
: 설명할 패킷 미러링 정책의 이름입니다.REGION
: 정책이 있는 리전입니다.
API
패킷 미러링 정책을 설명하려면 packetMirrorings.get
메서드에 GET
요청을 실행합니다.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
다음을 바꿉니다.
PROJECT_ID
: 정책이 저장된 프로젝트의 ID입니다.REGION
: 정책이 있는 리전입니다.POLICY_NAME
: 설명할 패킷 미러링 정책의 이름입니다.
패킷 미러링 정책 중지 또는 사용 설정
패킷 미러링 정책을 사용 중지 또는 사용 설정하여 미러링된 트래픽 수집을 중지하거나 시작할 수 있습니다.
콘솔
Google Cloud 콘솔에서 패킷 미러링 페이지로 이동합니다.
패킷 미러링 정책 목록에서 사용 중지 또는 사용 설정할 정책을 선택합니다.
사용 중지 또는 사용 설정을 클릭합니다.
사용 중지 또는 사용 설정을 클릭하여 확인합니다.
gcloud
패킷 미러링 정책을 사용 중지하려면 packet-mirrorings update
명령어를 사용합니다.
gcloud compute packet-mirrorings update POLICY_NAME \ --region=REGION \ --no-enable
다음을 바꿉니다.
POLICY_NAME
: 사용 중지하거나 사용 설정할 패킷 미러링 정책의 이름입니다.REGION
: 정책이 있는 리전입니다.
패킷 미러링 정책을 사용 설정하려면 packet-mirrorings update
명령어를 사용합니다.
gcloud compute packet-mirrorings update POLICY_NAME \ --region=REGION \ --enable
다음을 바꿉니다.
POLICY_NAME
: 사용 중지하거나 사용 설정할 패킷 미러링 정책의 이름입니다.REGION
: 정책이 있는 리전입니다.
API
기존 패킷 미러링 정책을 사용 중지 또는 사용 설정하려면 packetMirrorings.patch
메서드에 PATCH
요청을 실행합니다.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME { "enable": "FALSE|TRUE" }
다음을 바꿉니다.
PROJECT_ID
: 정책이 저장된 프로젝트의 ID입니다.REGION
: 정책이 있는 리전입니다.POLICY_NAME
: 사용 중지할 패킷 미러링 정책의 이름입니다.
패킷 미러링 정책 삭제
패킷 미러링 정책을 삭제하여 프로젝트에서 제거할 수 있습니다. 정책을 삭제하면 Google Cloud에서 해당 정책과 관련된 모든 트래픽의 미러링을 중지합니다.
콘솔
Google Cloud 콘솔에서 패킷 미러링 페이지로 이동합니다.
패킷 미러링 정책 목록에서 삭제할 패킷 미러링 정책을 선택합니다.
삭제를 클릭합니다.
삭제를 클릭하여 확인합니다.
gcloud
패킷 미러링 정책을 삭제하려면 packet-mirrorings delete
명령어를 사용합니다.
gcloud compute packet-mirrorings delete POLICY_NAME \ --region=REGION \
다음을 바꿉니다.
POLICY_NAME
: 삭제할 패킷 미러링 정책의 이름입니다.REGION
: 정책이 있는 리전입니다.
API
패킷 미러링 정책을 삭제하려면 packetMirrorings.delete
메서드에 DELETE
요청을 실행합니다.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
다음을 바꿉니다.
PROJECT_ID
: 정책이 저장된 프로젝트의 ID입니다.POLICY_NAME
: 삭제할 패킷 미러링 정책의 이름입니다.REGION
: 정책이 있는 리전입니다.
문제 해결
패킷 미러링 정책이 의도한 미러링된 트래픽을 수집하지 않는 경우 다음 구성을 확인합니다.
미러링되는 인스턴스에서 수집기 인스턴스로의 트래픽을 허용하는 방화벽 규칙이 있는지 확인합니다.
미러링되는 소스가 미러링할 인스턴스를 포함 또는 제외하는지 확인합니다. 예를 들어 서브넷을 미러링되는 소스로 지정하면 서브넷에 있는 모든 기존 인스턴스와 향후 인스턴스가 미러링됩니다. 태그를 지정하면 일치하는 태그가 있는 인스턴스만 미러링됩니다.
패킷 미러링 필터가 너무 광범위하거나 너무 좁지 않은지 확인합니다. 의도치 않게 특정 트래픽을 포함하거나 제외하도록 필터를 구성했을 수 있습니다.
IPv6 트래픽을 수집하도록 패킷 미러링 정책을 구성한 경우 미러링된 트래픽의 소스가 이중 스택 서브넷과 연결된 이중 스택 VM인지 확인합니다.