VPC 네트워크에서 멀티캐스트 트래픽을 사용할 수 있도록 설정하기

이 페이지에서는 VPC 네트워크의 멀티캐스트 소비자가 지정된 멀티캐스트 도메인 및 하나 이상의 그룹 범위에서 멀티캐스트 트래픽을 수신할 수 있도록Google Cloud 에서 리소스를 구성하는 데 필요한 단계를 설명합니다.

시작하기 전에

이 페이지의 절차를 시작하기 전에 이 섹션에 설명된 기본 요건을 완료해야 합니다.

멀티캐스트 도메인, 그룹 범위, 프로듀서 구성이 완료되었는지 확인

멀티캐스트 트래픽을 소비하려는 멀티캐스트 도메인, 멀티캐스트 그룹 범위, 멀티캐스트 프로듀서 구성이 멀티캐스트 구성 개요에 설명된 대로 완료되었는지 확인합니다. 필요한 경우 도메인의 멀티캐스트 관리자에게 문의하세요.

프로젝트 설정

멀티캐스트 소비자 VPC 네트워크의 프로젝트를 사용하도록 gcloud CLI를 설정합니다. 또는 다음 절차에서 각 명령어에 --project=PROJECT 플래그를 전달할 수 있습니다.

    gcloud config set project PROJECT

PROJECT를 프로젝트의 ID로 바꿉니다.

API 사용 설정

아직 사용 설정하지 않은 경우 다음 API를 사용 설정합니다.

API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 이 권한이 없는 경우 Identity and Access Management(IAM) 관리자에게 서비스 사용량 관리자(roles/serviceusage.serviceUsageAdmin) 역할을 부여해 달라고 요청하세요.

  1. 멀티캐스트 리소스를 만들려면 networkservices API를 사용 설정하세요.

        gcloud services enable networkservices.googleapis.com
    
  2. Network Connectivity Center VPC 스포크를 만들려면 networkconnectivity API를 사용 설정하세요.

        gcloud services enable networkconnectivity.googleapis.com
    

필요한 역할

멀티캐스트 소비자 리소스를 구성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 네트워크 리소스를 만들고 관리: 프로젝트의 Compute 네트워크 관리자(compute.networkAdmin) 역할
  • 방화벽 규칙을 만들고 관리: 프로젝트의 Compute 보안 관리자(compute.securityAdmin) 역할
  • Network Connectivity Center 스포크를 만들기: 프로젝트의 스포크 관리자(networkconnectivity.spokeAdmin) 역할
  • 멀티캐스트 도메인과 연결된 허브에 Network Connectivity Center 스포크 제안: 멀티캐스트 관리자 프로젝트의 그룹 사용자(networkconnectivity.groupUser) 역할
  • 멀티캐스트 리소스 만들기: 프로젝트의 멀티캐스트 관리자(networkservices.multicastAdmin) 역할

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

VPC 네트워크를 만들고 허브에 추가

멀티캐스트 도메인이 별도의 멀티캐스트 소비자 VPC 네트워크가 있는 Network Connectivity Center 스타 토폴로지를 사용하는 경우 이 섹션의 단계를 완료해야 합니다.

멀티캐스트 도메인이 단일 VPC 네트워크 토폴로지를 사용하는 경우 이 섹션을 건너뛰고 VPC 네트워크에서 멀티캐스트 트래픽을 소비하도록 사용 설정하는 단계로 바로 진행하면 됩니다.

VPC 네트워크 만들기

이 섹션에서는 멀티캐스트 트래픽을 소비하기 위한 가상 프라이빗 클라우드(VPC) 네트워크를 만드는 방법을 설명합니다.

VPC 네트워크 만들기에 대한 자세한 내용은 VPC 네트워크 만들기 및 관리를 참조하세요.

gcloud

  1. compute networks create 명령어를 사용하여 VPC 네트워크를 만듭니다.

    gcloud compute networks create MULTICAST_CONSUMER_NETWORK --subnet-mode=custom
    

    MULTICAST_CONSUMER_NETWORK를 멀티캐스트 소비자 네트워크의 이름으로 바꿉니다.

  2. compute networks subnets create 명령어를 사용하여 멀티캐스트 소비자를 호스팅할 서브넷을 하나 이상 추가합니다.

    gcloud compute networks subnets create SUBNET
       --network=MULTICAST_CONSUMER_NETWORK \
       --range=PRIMARY_RANGE \
       --region=REGION
    

    다음 값을 바꿉니다.

    • SUBNET: 서브넷의 이름입니다.
    • MULTICAST_CONSUMER_NETWORK: 이전에 만든 멀티캐스트 소비자 네트워크의 이름입니다.
    • PRIMARY_RANGE: CIDR 표기법으로 표시된 서브넷의 기본 IPv4 주소 범위입니다. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.
    • REGION: 새 서브넷이 생성되는 Google Cloud 리전입니다. 멀티캐스트를 지원하는 리전(예: us-east5)이어야 합니다.

방화벽 규칙 추가

이 섹션에서는 멀티캐스트 트래픽을 위해 멀티캐스트 소비자 VPC 네트워크에서 방화벽 규칙을 만드는 방법을 설명합니다.

SSH와 같은 추가 방화벽 규칙을 만들려면 VPC 방화벽 규칙 만들기를 참조하세요.

명령어에는 방화벽 규칙 이름의 예시가 자동 입력됩니다. 방화벽 규칙의 이름은 프로젝트에서 고유해야 합니다.

인그레스 멀티캐스트 트래픽 허용

gcloud

멀티캐스트 프로듀서 네트워크에서 VPC 네트워크로의 인그레스 멀티캐스트 트래픽을 허용하는 방화벽 규칙을 만들려면 compute firewall-rules create 명령어를 사용하세요.

gcloud compute firewall-rules create allow-multicast-traffic-ingress \
   --direction=INGRESS \
   --priority=1000 \
   --network=MULTICAST_CONSUMER_NETWORK \
   --action=ALLOW \
   --rules=udp[:PORT[-PORT]] \
   --source-ranges=MULTICAST_PRODUCER_RANGE \
   --destination-ranges=MULTICAST_GROUP_IP_RANGES

다음 값을 바꿉니다.

  • MULTICAST_CONSUMER_NETWORK: 이전에 만든 멀티캐스트 소비자 네트워크의 이름입니다.
  • PORT: 방화벽 규칙이 적용되는 포트 목록입니다. Google Cloud 는 멀티캐스트 트래픽에 udp를 사용합니다. 특정 포트를 통한 트래픽에 방화벽 규칙이 적용되는 프로토콜 뒤에 포트 또는 포트 범위를 지정할 수 있습니다. 포트 또는 포트 범위가 지정되지 않으면 모든 범위를 통한 연결이 적용됩니다.

    예를 들어 --rules=udp:1234를 지정하여 포트 1234를 통한 멀티캐스트 트래픽을 허용합니다.

  • MULTICAST_PRODUCER_RANGE: 멀티캐스트 프로듀서 VPC 네트워크의 CIDR 범위입니다. 이 범위는 멀티캐스트 프로듀서의 IP 주소를 할당하는 데 사용됩니다. 또는 인그레스 소스를 모든 IPv4 주소(0.0.0.0/0)로 설정하는 --source-ranges 플래그를 생략할 수 있습니다.

  • MULTICAST_GROUP_IP_RANGES: 멀티캐스트 프로듀서가 트래픽을 전송하는 멀티캐스트 그룹의 CIDR 범위입니다. 이는 클래스 D 주소 범위여야 합니다. 예를 들어 224.0.0.0/4를 사용하여 모든 멀티캐스트 트래픽을 허용할 수 있습니다.

인그레스 IGMP 쿼리 허용

gcloud

멀티캐스트 소비자 네트워크 범위에서 멀티캐스트 소비자 VPC 네트워크로의 인그레스 IGMP 쿼리 트래픽을 허용하는 방화벽 규칙을 만들려면 compute firewall-rules create 명령어를 사용하세요.

다음 명령어에는 다음이 포함됩니다.

  • --destination-ranges=224.0.0.1/32를 사용하여 이 서브넷의 모든 호스트를 나타내는 멀티캐스트 그룹 IP 주소를 지정합니다.
  • --rules=2: IGMP를 지정합니다.
gcloud compute firewall-rules create allow-multicast-igmp-ingress \
    --direction=INGRESS \
    --priority=1000 \
    --network=MULTICAST_CONSUMER_NETWORK \
    --action=ALLOW \
    --rules=2 \
    --source-ranges=MULTICAST_CONSUMER_RANGE \
    --destination-ranges=224.0.0.1/32

다음 값을 바꿉니다.

  • MULTICAST_CONSUMER_NETWORK: 이전에 만든 멀티캐스트 소비자 네트워크의 이름입니다.
  • MULTICAST_CONSUMER_RANGE: 멀티캐스트 소비자 네트워크의 CIDR 범위입니다. 이 범위는 멀티캐스트 소비자의 IP 주소를 할당하는 데 사용됩니다.

이그레스 IGMP 허용

이 섹션에서는 멀티캐스트 소비자에서 IGMP JOINLEAVE 메시지를 전송할 수 있도록 이그레스 IGMP 트래픽을 허용하는 방화벽 규칙을 만드는 방법을 설명합니다.

모든 VPC 네트워크에는 우선순위가 가장 낮은(65535) 기본 IPv4 이그레스 허용 규칙이 있습니다. 이그레스 트래픽을 명시적으로 차단하는 우선순위가 더 높은 규칙이 없는 경우 이 단계를 완료하지 않아도 됩니다. 자세한 내용은 묵시적 규칙을 참조하세요.

gcloud

멀티캐스트 소비자 VPC 네트워크에서 이그레스 멀티캐스트 IGMP 트래픽을 허용하는 방화벽 규칙을 만들려면 compute firewall-rules create 명령어를 사용하세요.

gcloud compute firewall-rules create allow-multicast-igmp-egress \
    --direction=EGRESS \
    --priority=1000 \
    --network=MULTICAST_CONSUMER_NETWORK \
    --action=ALLOW \
    --rules=2 \
    --destination-ranges=RANGES_FOR_JOIN_AND_LEAVE

다음 값을 바꿉니다.

  • MULTICAST_CONSUMER_NETWORK: 이전에 만든 멀티캐스트 소비자 네트워크의 이름입니다.
  • RANGES_FOR_JOIN_AND_LEAVE: 다음의 쉼표로 구분된 목록입니다.

    • 멀티캐스트 소비자가 참여해야 하는 멀티캐스트 그룹의 CIDR 범위입니다. 클래스 D 주소 범위를 사용해야 합니다.
    • 모든 라우터 IP 주소: 224.0.0.2/32 이 범위는 IGMP 나가기 메시지를 보내는 데 필요합니다.

    또는 224.0.0.0/4를 지정하여 모든 멀티캐스트 트래픽을 허용할 수 있습니다.

Network Connectivity Center 허브에 VPC 네트워크 추가

이 섹션에서는 멀티캐스트 관리자가 만든 Network Connectivity Center 허브에 VPC 네트워크를 추가하는 방법을 설명합니다. 네트워크를 추가하려면 에지 그룹에서 VPC 스포크를 만듭니다.

자세한 내용은 Network Connectivity Center 문서의 스타 토폴로지VPC 스포크 만들기를 참조하세요.

gcloud

  1. VPC 네트워크를 허브에 에지 스포크로 추가하려면 network-connectivity spokes linked-vpc-network create 명령어를 사용합니다.

      gcloud network-connectivity spokes linked-vpc-network create SPOKE_NAME \
        --hub=projects/MULTICAST_ADMIN_PROJECT/locations/global/hubs/HUB \
        --vpc-network=MULTICAST_CONSUMER_NETWORK \
        --group="edge" \
        --global \
        --include-export-ranges=INCLUDE_RANGES
    

    다음 값을 바꿉니다.

    • SPOKE_NAME: 에지 스포크의 이름입니다.
    • MULTICAST_ADMIN_PROJECT: 멀티캐스트 관리자 프로젝트의 ID
    • HUB: 멀티캐스트 관리자가 만든 Network Connectivity Center 허브의 이름입니다. 멀티캐스트 소비자 VPC 네트워크는 멀티캐스트 관리자 및 멀티캐스트 프로듀서 VPC 네트워크와 동일한 허브에 연결되어야 합니다. 필요한 경우 멀티캐스트 관리자에게 허브 이름을 문의하세요.

    • MULTICAST_CONSUMER_NETWORK: 이전에 만든 멀티캐스트 소비자 네트워크의 이름입니다.

      또는 다음 형식을 사용하여 멀티캐스트 소비자 네트워크의 URI를 제공할 수 있습니다. projects/MULTICAST_CONSUMER_PROJECT/global/networks/MULTICAST_CONSUMER_NETWORK

    • INCLUDE_RANGES: 허브로 내보낼 IP 주소 범위의 쉼표로 구분된 목록입니다.

      기본적으로 스포크는 모든 서브넷 범위를 내보냅니다. 허브의 다른 스포크와 겹치지 않도록 내보낼 서브넷 범위를 지정할 수 있습니다. 서브넷 범위를 지정하는 경우 멀티캐스트 소비자를 호스팅하는 범위와 센터 그룹의 스포크와 통신하는 데 필요한 기타 범위(예: 유니캐스트 트래픽)를 포함해야 합니다.

      Google Cloud 는 서브넷 경로 고유성에 설명된 대로 VPC 스포크 간에 서브넷이 겹치는 것을 금지합니다. 내보내기 필터를 사용하여 중복을 방지하는 방법에 관한 자세한 내용은 내보내기 필터를 사용한 VPC 연결을 참조하세요.

  2. 멀티캐스트 관리자에게 허브에 VPC 스포크를 제안했다고 알립니다.

    허브가 다른 프로젝트에 있는 경우 멀티캐스트 관리자가 프로젝트를 자동 수락 프로젝트로 추가하지 않는 한 스포크가 활성화되기 전에 멀티캐스트 관리자가 명시적으로 승인해야 합니다.

    스포크를 만든 후 스포크의 상태를 확인하려면 VPC 스포크 상태 확인을 참조하세요.

VPC 네트워크에서 멀티캐스트 트래픽을 사용할 수 있도록 설정하기

이 섹션에서는 VPC 네트워크의 멀티캐스트 소비자가 지정된 도메인 및 하나 이상의 그룹 범위에서 멀티캐스트 트래픽을 수신하도록 사용 설정하는 데 필요한 단계를 설명합니다.

도메인에 멀티캐스트 소비자 VPC 네트워크 추가

이 섹션에서는 네트워크와 도메인 간에 멀티캐스트 소비자 연결을 만들어 멀티캐스트 소비자 VPC 네트워크를 도메인에 추가하는 방법을 설명합니다.

멀티캐스트 소비자를 호스팅하려는 각 영역에서 다음 단계를 완료합니다.

gcloud

도메인에 멀티캐스트 소비자 VPC 네트워크를 추가하려면 network-services multicast-consumer-associations create 명령어를 사용합니다.

   gcloud network-services multicast-consumer-associations create CONSUMER_ASSOCIATION_NAME \
      --multicast-domain-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME" \
      --network="projects/MULTICAST_CONSUMER_PROJECT/locations/global/networks/MULTICAST_CONSUMER_NETWORK" \
      --location=ZONE

다음 값을 바꿉니다.

  • CONSUMER_ASSOCIATION_NAME: 멀티캐스트 소비자 연결의 이름
  • ADMIN_PROJECT: 멀티캐스트 관리자 프로젝트의 ID
  • ZONE: 관리자가 멀티캐스트 도메인을 활성화하고 멀티캐스트 소비자를 호스팅해야 하는 영역입니다.
  • DOMAIN_ACTIVATION_NAME: 멀티캐스트 관리자가 만든 도메인 활성화의 이름
  • MULTICAST_CONSUMER_PROJECTMULTICAST_CONSUMER_NETWORK: 멀티캐스트 트래픽을 사용하는 프로젝트 및 네트워크입니다. 도메인의 멀티캐스트 토폴로지에 따라 멀티캐스트 관리자 프로젝트 및 네트워크 또는 별도의 멀티캐스트 소비자 프로젝트 및 네트워크입니다.

API

도메인에 멀티캐스트 소비자 VPC 네트워크를 추가하려면 multicastConsumerAssociations.create 메서드를 사용합니다.

POST https://networkservices.googleapis.com/v1/projects/MULTICAST_CONSUMER_PROJECT/locations/ZONE/multicastConsumerAssociations?multicastConsumerAssociationId=CONSUMER_ASSOCIATION_NAME
{
  "multicastDomainActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastDomainActivations/DOMAIN_ACTIVATION_NAME",
  "network": "projects/MULTICAST_CONSUMER_PROJECT/locations/global/networks/MULTICAST_CONSUMER_NETWORK"
}

다음 값을 바꿉니다.

  • CONSUMER_ASSOCIATION_NAME: 멀티캐스트 소비자 연결의 이름
  • ADMIN_PROJECT: 멀티캐스트 관리자 프로젝트의 ID
  • ZONE: 관리자가 멀티캐스트 도메인을 활성화하고 멀티캐스트 소비자를 호스팅해야 하는 영역입니다.
  • DOMAIN_ACTIVATION_NAME: 멀티캐스트 관리자가 만든 도메인 활성화의 이름
  • MULTICAST_CONSUMER_PROJECTMULTICAST_CONSUMER_NETWORK: 멀티캐스트 트래픽을 사용하는 프로젝트 및 네트워크입니다. 도메인의 멀티캐스트 토폴로지에 따라 멀티캐스트 관리자 프로젝트 및 네트워크 또는 별도의 멀티캐스트 소비자 프로젝트 및 네트워크입니다.

그룹 범위의 멀티캐스트 소비자 VPC 네트워크 활성화

이 섹션에서는 그룹 범위의 멀티캐스트 소비자 VPC 네트워크를 활성화하는 방법을 설명합니다.

멀티캐스트 트래픽을 소비하려는 각 멀티캐스트 그룹 범위 및 영역에 대해 다음 단계를 완료합니다.

이 단계를 완료하면 네트워크의 멀티캐스트 소비자가 IGMP가 구성되어 있는 경우 지정된 그룹 범위의 멀티캐스트 그룹 IP 주소에 참여할 수 있습니다.

gcloud

멀티캐스트 그룹 범위의 멀티캐스트 소비자 VPC 네트워크를 활성화하려면 network-services multicast-group-consumer-activations create 명령어를 사용합니다.

   gcloud network-services multicast-group-consumer-activations create GROUP_CONSUMER_ACTIVATION_NAME \
      --multicast-consumer-association="projects/CONSUMER_PROJECT/locations/ZONE/multicastConsumerAssociations/CONSUMER_ASSOCIATION_NAME" \
      --multicast-group-range-activation="projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations/GROUP_RANGE_ACTIVATION_NAME" \
      --location=ZONE \
      [--enable-logging | --no-enable-logging]

다음 값을 바꿉니다.

  • GROUP_CONSUMER_ACTIVATION_NAME: 멀티캐스트 그룹 소비자 활성화의 이름
  • CONSUMER_PROJECT: 프로젝트의 ID입니다. 이는 멀티캐스트 도메인의 토폴로지에 따라 멀티캐스트 관리자 프로젝트이거나 별도의 멀티캐스트 소비자 프로젝트일 수 있습니다.

  • ZONE: 멀티캐스트 소비자 네트워크를 활성화할 영역입니다. 관리자가 멀티캐스트 그룹 범위를 활성화한 영역이기도 해야 합니다.

  • CONSUMER_ASSOCIATION_NAME: 이전에 만든 멀티캐스트 소비자 연결의 이름입니다.

  • ADMIN_PROJECT: 멀티캐스트 관리자 프로젝트의 ID

  • GROUP_RANGE_ACTIVATION_NAME: 멀티캐스트 관리자가 만든 그룹 범위 활성화의 이름입니다.

  • --[no-]enable-logging: (선택사항) 그룹 멤버십 이벤트 로깅이 사용 설정되어 있는지 여부를 결정합니다.

    • 로깅을 사용 설정하려면 --enable-logging을 사용합니다.
    • (기본값) 로깅을 중지하려면 --no-enable-logging을 사용합니다.

API

멀티캐스트 그룹 범위의 멀티캐스트 소비자 VPC 네트워크를 활성화하려면 multicastGroupConsumerActivations.create 메서드를 사용합니다.

POST https://networkservices.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/ZONE/multicastGroupConsumerActivations?multicastGroupConsumerActivationId=GROUP_CONSUMER_ACTIVATION_NAME
{
  "multicastConsumerAssociation": "projects/CONSUMER_PROJECT/locations/ZONE/multicastConsumerAssociations/CONSUMER_ASSOCIATION_NAME",
  "multicastGroupRangeActivation": "projects/ADMIN_PROJECT/locations/ZONE/multicastGroupRangeActivations/GROUP_RANGE_ACTIVATION_NAME",
  "logConfig": {
          "enabled": "LOGGING_ENABLED"
    }
}

다음 값을 바꿉니다.

  • GROUP_CONSUMER_ACTIVATION_NAME: 멀티캐스트 그룹 소비자 활성화의 이름
  • CONSUMER_PROJECT: 프로젝트의 ID입니다. 이는 멀티캐스트 도메인의 토폴로지에 따라 멀티캐스트 관리자 프로젝트이거나 별도의 멀티캐스트 소비자 프로젝트일 수 있습니다.
  • ZONE: 멀티캐스트 소비자 네트워크를 활성화할 영역입니다. 관리자가 멀티캐스트 그룹 범위를 활성화한 영역이기도 해야 합니다.
  • CONSUMER_ASSOCIATION_NAME: 이전에 만든 멀티캐스트 소비자 연결의 이름입니다.
  • ADMIN_PROJECT: 멀티캐스트 관리자 프로젝트의 ID
  • GROUP_RANGE_ACTIVATION_NAME: 멀티캐스트 관리자가 만든 그룹 범위 활성화의 이름
  • LOGGING_ENABLED: 그룹 멤버십 이벤트 로깅이 사용 설정되어 있는지 여부를 결정합니다.
    • 로깅을 사용 설정하려면 true로 설정합니다.
    • (기본값) 로깅을 사용 중지하려면 false로 설정합니다.

멀티캐스트 소비자 인스턴스 만들기

아직 만들지 않았다면 멀티캐스트 트래픽을 사용하는 애플리케이션을 실행할 하나 이상의 Compute Engine 인스턴스를 만듭니다. 멀티캐스트 소비자 인스턴스를 만들거나 기존 인스턴스를 멀티캐스트 소비자로 구성하려면 멀티캐스트 소비자 인스턴스 구성을 참고하세요.

다음 단계