VPC 네트워크 피어링 설정 및 관리

Google Cloud VPC 네트워크 피어링은 동일한 프로젝트에 속하는지 또는 동일한 조직에 속하는지에 관계없이 두 개의 Virtual Private Cloud(VPC) 네트워크에서 내부 IP 주소를 연결할 수 있습니다. 피어링은 이중 스택 서브넷이 있는 네트워크 간 연결을 지원합니다.

자세한 내용은 VPC 네트워크 피어링을 참조하세요.

피어링 구성 만들기

시작하기 전에 피어링할 VPC 네트워크의 이름이 있어야 합니다. 해당 네트워크가 다른 프로젝트에 있는 경우 해당 프로젝트의 프로젝트 ID도 있어야 합니다. VPC 네트워크에 대한 피어링 요청을 나열할 수 없습니다. 필요한 경우 피어링할 네트워크의 관리자에게 네트워크 및 프로젝트 이름을 요청하세요.

피어링 구성은 다른 VPC 네트워크에 연결할 인텐트를 설정합니다. 내 네트워크와 다른 네트워크는 각 네트워크에 상대 네트워크에 대한 피어링 구성이 만들어질 때까지 연결되지 않습니다. 내 네트워크와 피어링할 상응하는 구성이 다른 네트워크에 있으면 피어링 상태가 두 네트워크 모두에서 ACTIVE로 변경되고 두 네트워크가 연결됩니다. 다른 네트워크에 일치하는 피어링 구성이 없으면 피어링 상태가 INACTIVE로 유지됩니다. 이는 내 네트워크와 다른 네트워크가 연결되지 않는다는 것을 나타냅니다.

Google Cloud는 피어링된 네트워크 전역에서 한 번에 피어링 관련 활동 하나만 허용합니다. 예를 들어 하나의 네트워크와 피어링을 설정하고 즉시 다른 피어링을 설정하려고 시도하면 다음과 함께 작업이 실패합니다. Error: There is a peering operation in progress on the local or peer network. Try again later.

두 네트워크가 연결되면 항상 서브넷 경로를 교환합니다. 정적 및 동적 IPv4 커스텀 경로와 동적 IPv6 커스텀 경로를 내보내도록 구성된 경우 피어링된 네트워크에서 두 경로를 모두 가져올 수 있습니다. 자세한 내용은 커스텀 경로 가져오기 및 내보내기를 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링으로 이동
  2. 연결 만들기를 클릭합니다.
  3. 계속을 클릭합니다.
  4. 이름 필드에 피어링 구성 이름을 입력합니다.
  5. 내 VPC 네트워크에서 피어링할 네트워크를 선택합니다.
  6. 피어링할 네트워크를 선택합니다.

    • 피어링할 네트워크가 동일한 프로젝트에 있는 경우 프로젝트 [NAME-OF-YOUR-PROJECT]에서를 선택한 다음 피어링할 네트워크를 선택합니다.
    • 피어링할 네트워크가 다른 프로젝트에 있는 경우 다른 프로젝트에서를 선택합니다. 피어링할 네트워크가 포함된 프로젝트 ID와 VPC 네트워크의 이름을 지정합니다.
  7. IP 스택 유형에서 피어링된 네트워크 간에 교환할 서브넷 경로를 지정합니다.

    • IPv4(단일 스택): IPv4 경로만 교환합니다.
    • IPv4 및 IPv6(이중 스택): IPv4 및 IPv6 경로를 모두 교환합니다.
  8. IPv4 및 IPv6 커스텀 경로를 가져오거나 내보내려면 다음 옵션 중 하나 또는 둘 다 선택합니다.

    • 커스텀 경로 가져오기: 피어 네트워크에서 커스텀 경로를 가져옵니다. 피어 네트워크에서 가져올 경로에 커스텀 경로 내보내기를 사용 설정해야 합니다.
    • 커스텀 경로 내보내기: 커스텀 경로를 피어 네트워크로 내보냅니다. 피어 네트워크에서 내보낼 경로에 커스텀 경로 가져오기를 사용 설정해야 합니다.
  9. 네트워크 또는 피어 네트워크가 서브넷에서 비공개로 사용되는 공개 IPv4 범위를 사용하는 경우 이러한 경로를 기본적으로 내보내지만 기본적으로 가져오지는 않습니다. 비공개로 사용되는 공개 IPv4 서브넷 경로를 가져오려면 다음을 선택합니다.

    • 다른 네트워크에서 내보낸 비공개로 사용되는 공개 IP 서브넷 경로를 가져오려면 공개 IP를 사용하여 서브넷 경로를 가져옵니다.
  10. 만들기를 클릭합니다.

gcloud

VPC 네트워크 피어링 연결을 만듭니다.

gcloud compute networks peerings create PEERING_NAME \
    --network=NETWORK \
    --peer-project=PEER_PROJECT_ID \
    --peer-network=PEER_NETWORK_NAME \
    [--stack-type=STACK_TYPE] \
    [--import-custom-routes] \
    [--export-custom-routes] \
    [--import-subnet-routes-with-public-ip] \
    [--export-subnet-routes-with-public-ip]

다음을 바꿉니다.

  • PEERING_NAME: 피어링 구성의 이름
  • NETWORK: 피어링할 프로젝트의 네트워크 이름
  • PEER_PROJECT_ID: 피어링할 네트워크가 포함된 프로젝트의 ID
  • PEER_NETWORK_NAME: 피어링할 네트워크의 이름
  • STACK_TYPE: 피어링 연결의 스택 유형입니다. IPv4 경로만 교환하려면 IPV4_ONLY를 지정합니다. 또는 IPv4 및 IPv6 경로를 모두 교환하도록 IPV4_IPV6를 지정합니다. IPV4_ONLY가 기본값입니다.
  • --import-custom-routes는 피어링된 네트워크의 커스텀 경로를 수락하도록 네트워크에 지시합니다. 피어링된 네트워크는 먼저 경로를 내보내야 합니다.
  • --export-custom-routes커스텀 경로를 피어링된 네트워크로 내보내도록 네트워크에 지시합니다. 피어링된 네트워크는 경로를 가져오도록 설정되어야 합니다.
  • --import-subnet-routes-with-public-ip는 네트워크가 서브넷에서 비공개로 사용되는 공개 IPv4 주소를 사용하는 경우 피어링된 네트워크의 서브넷 경로를 수락하도록 네트워크에 지시합니다. 피어링된 네트워크는 먼저 경로를 내보내야 합니다.
  • --export-subnet-routes-with-public-ip는 비공개로 사용되는 공개 IP 주소가 포함된 서브넷 경로를 내보내도록 네트워크에 지시합니다. 피어링된 네트워크는 경로를 가져오도록 설정되어야 합니다.

Terraform

Terraform 모듈을 사용하여 피어링 구성을 만들 수 있습니다.

module "peering1" {
  source        = "terraform-google-modules/network/google//modules/network-peering"
  version       = "~> 9.0"
  local_network = var.local_network # Replace with self link to VPC network "foobar" in quotes
  peer_network  = var.peer_network  # Replace with self link to VPC network "other" in quotes
}

피어링된 두 VPC 네트워크의 경우 각 자체 링크에는 프로젝트 ID와 VPC 네트워크의 이름이 포함됩니다. VPC 네트워크의 자체 링크를 가져오려면 각 VPC 네트워크의 프로젝트에서 gcloud compute networks describe 명령어 또는 networks.get 메서드를 사용하면 됩니다.

local_network에서 peer_network로 피어링을 만들면 피어링 관계가 양방향이 됩니다. peer_network에서 local_network로의 피어링이 자동으로 생성됩니다.

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

피어링된 VPC 네트워크 간에 트래픽이 전달되는지 확인

VPC 흐름 로그를 사용하여 VM 인스턴스에서 전송되거나 수신되는 네트워크 흐름을 볼 수 있습니다. 또한 방화벽 규칙 로깅을 사용하여 트래픽이 네트워크 간에 전달되고 있는지 확인할 수 있습니다. 피어링된 네트워크 간에 트래픽을 허용하거나 거부하는 VPC 방화벽 규칙을 만들고 해당 규칙에 방화벽 규칙 로깅을 사용 설정합니다. 그런 다음 Cloud Logging을 사용하여 적중 항목이 있는 방화벽 규칙을 볼 수 있습니다.

피어링 연결 업데이트

기존 VPC 네트워크 피어링 연결을 업데이트할 때는 다음을 수행할 수 있습니다.

  • VPC 네트워크가 커스텀 경로나 비공개로 사용되는 공개 IPv4 서브넷 경로를 피어 VPC 네트워크에 내보내는지 또는 피어 VPC 네트워크에서 가져오는지 여부를 변경합니다.
  • 기존 피어링 연결을 업데이트하여 피어링 네트워크 간에 IPv6 경로 교환을 사용 설정 또는 사용 중지합니다.

또한 피어 네트워크가 경로를 내보내는 경우에만 네트워크에서 경로를 가져오고 경로를 가져오는 경우에만 피어 네트워크에서 경로를 수신합니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링으로 이동
  2. 업데이트할 피어링 연결을 선택합니다.
  3. 수정을 클릭합니다.
  4. IP 스택 유형 선택 항목을 업데이트하여 피어링된 네트워크 간에 교환해야 하는 서브넷 경로를 지정합니다.
    • IPv4(단일 스택): 피어링을 통한 IPv6 경로의 기존 교환을 중지하고 IPv4 경로만 계속 교환합니다.
    • IPv4 및 IPv6(이중 스택): 일치하는 피어링 연결도 IP 스택 유형IPv4 및 IPv6(이중 스택)으로 설정된 경우 IPv4 경로와 IPv6 경로를 모두 교환하기 시작합니다.
  5. IPv4 및 IPv6 커스텀 경로를 가져오거나 내보내려면 다음 옵션 중 하나 또는 둘 다 선택합니다.
    • 다른 네트워크에서 내보낸 커스텀 경로를 가져오려면 커스텀 경로를 가져옵니다.
    • 커스텀 경로를 다른 네트워크로 내보내려면 커스텀 경로를 내보냅니다. 다른 네트워크에서 경로를 보려면 경로를 가져와야 합니다.
  6. 네트워크 또는 피어 네트워크가 서브넷에서 비공개로 사용되는 공개 IPv4 범위를 사용하는 경우 이러한 경로를 기본적으로 내보내지만 기본적으로 가져오지는 않습니다. 비공개로 사용되는 공개 IPv4 서브넷 경로를 가져오려면 다음을 선택합니다.
    • 다른 네트워크에서 내보낸 비공개로 사용되는 공개 IP 서브넷 경로를 가져오려면 공개 IP를 사용하여 서브넷 경로를 가져옵니다.
    • 저장을 클릭합니다.

gcloud

gcloud compute networks peerings update PEERING_NAME \
    --network=NETWORK \
    [--stack-type=STACK_TYPE] \
    [--import-custom-routes] \
    [--export-custom-routes] \
    [--export-subnet-routes-with-public-ip] \
    [--import-subnet-routes-with-public-ip]

다음을 업데이트합니다.

  • PEERING_NAME: 기존 피어링 연결의 이름입니다.
  • NETWORK: 피어링된 프로젝트의 네트워크 이름입니다.
  • STACK_TYPE: 피어링 연결의 스택 유형입니다.
    • 피어링을 통한 IPv6 경로의 기존 교환을 중지하고 IPv4 경로만 계속 교환하려면 IPV4_ONLY를 지정합니다.
    • 일치하는 피어링 연결도 stack_typeIPV4_IPV6로 설정한 경우 IPV4_IPV6를 지정하여 IPv4 경로와 IPv6 경로를 모두 교환합니다.
  • --import-custom-routes는 피어링된 네트워크의 커스텀 경로를 수락하도록 네트워크에 지시합니다. 피어링된 네트워크는 먼저 경로를 내보내야 합니다.
  • --export-custom-routes커스텀 경로를 피어링된 네트워크로 내보내도록 네트워크에 지시합니다. 피어링된 네트워크는 경로를 가져오도록 설정되어야 합니다.
  • --import-subnet-routes-with-public-ip는 네트워크가 서브넷에서 비공개로 사용되는 공개 IPv4 주소를 사용하는 경우 피어링된 네트워크의 서브넷 경로를 수락하도록 네트워크에 지시합니다. 피어링된 네트워크는 먼저 경로를 내보내야 합니다.
  • --export-subnet-routes-with-public-ip는 비공개로 사용되는 공개 IP 주소가 포함된 서브넷 경로를 내보내도록 네트워크에 지시합니다. 피어링된 네트워크는 경로를 가져오도록 설정되어야 합니다.

피어링 연결 목록 표시

기존 피어링 연결 목록을 표시하여 해당 상태와 커스텀 경로를 가져오는지 또는 내보내는지 여부를 확인합니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링으로 이동
  2. 세부정보를 확인할 피어링 연결을 선택합니다.

gcloud

gcloud compute networks peerings list

피어링 연결의 경로 나열

VPC 네트워크가 피어링된 VPC 네트워크에 대해 가져오거나 내보내는 동적 경로를 나열할 수 있습니다. 내보낸 경로의 경우 피어 네트워크가 커스텀 경로를 수락하는지 또는 거부하는지 여부를 확인할 수 있습니다. 가져온 경로의 경우 네트워크가 피어 네트워크에서 커스텀 경로를 수락하는지 또는 거부하는지 여부를 확인할 수 있습니다.

각 리전에 대해 동일한 개수의 경로가 표시되지 않을 수 있습니다. 자세한 내용은 문제 해결을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링으로 이동
  2. 세부정보를 확인할 피어링 연결을 선택합니다.
  3. 내 네트워크가 가져오거나 내보내는 커스텀 경로를 확인합니다. 리전 선택기를 사용하여 특징 리전의 동적 경로를 확인합니다. 서브넷 및 정적 경로는 전역 경로이며 모든 리전에 표시됩니다.

    • 가져온 커스텀 경로를 확인하려면 가져온 경로 탭을 선택합니다.
    • 내보낸 커스텀 경로를 확인하려면 내보낸 경로 탭을 선택합니다.

gcloud

gcloud compute networks peerings list-routes PEERING_NAME \
    --network=NETWORK \
    --region=REGION \
    --direction=DIRECTION

다음을 업데이트합니다.

  • PEERING_NAME: 기존 피어링 연결의 이름입니다.
  • NETWORK: 피어링된 프로젝트의 네트워크 이름입니다.
  • REGION: 모든 동적 경로를 나열하려는 리전입니다. 서브넷 및 정적 경로는 전역 경로이며 모든 리전에 표시됩니다.
  • DIRECTION: 가져온(incoming) 경로나 내보낸(outgoing) 경로를 나열할지 여부를 지정합니다.

VPC 네트워크 피어링 연결 삭제

피어 VPC 네트워크의 네트워크 관리자 또는 사용자는 피어링 연결을 삭제할 수 있습니다. 피어링 구성이 삭제되면, 피어링 연결이 다른 네트워크에서 INACTIVE로 전환되고 네트워크 간에 공유되는 모든 경로가 삭제됩니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링으로 이동
  2. 제거할 피어링 옆의 체크박스를 선택합니다.
  3. 삭제를 클릭합니다.

gcloud

gcloud compute networks peerings delete PEERING_NAME \
    --network=NETWORK

다음을 업데이트합니다.

  • PEERING_NAME: 삭제할 피어링 연결의 이름입니다.
  • NETWORK: 피어링된 프로젝트의 네트워크 이름입니다.

할당량 및 한도

VPC 네트워크 피어링 할당량 및 한도를 참조하세요.

문제 해결

다음 섹션에서는 VPC 네트워크 피어링과 관련된 문제 해결 방법을 설명합니다.

피어 VM에 연결할 수 없음

피어링 연결이 활성화되면 피어링된 네트워크 간의 모든 트래픽 흐름이 설정될 때까지 최대 1분이 걸릴 수 있습니다. 이 시간은 피어링하는 네트워크의 크기에 따라 달라집니다. 최근에 피어링 연결을 설정했으면 최대 1분 동안 기다린 후 다시 시도하세요. 또한 피어 VPC 네트워크 서브넷 CIDR의 액세스를 차단하는 방화벽 규칙이 없는지 확인하세요.

피어링된 네트워크 간에 커스텀 경로가 교환되지 않음

먼저 피어링 연결의 경로 목록을 표시합니다. 예상하는 대상 위치에 대한 경로가 표시되지 않는 경우 다음을 확인하세요.

  • 피어링 연결 목록을 표시합니다. 원하는 대상 범위가 있는 네트워크를 찾고 해당 피어링 상태가 ACTIVE인지 확인합니다. 피어링 연결이 INACTIVE인 경우 네트워크에 대한 피어링 구성이 다른 네트워크에 존재하지 않습니다. 다른 네트워크를 관리하지 않는 경우 네트워크 관리자와 조율해야 합니다.

  • 네트워크에서 피어링 연결을 업데이트하여 다른 네트워크에서 커스텀 경로를 가져오도록 구성합니다. 다른 네트워크가 커스텀 경로를 내보내도록 구성되었는지 확인합니다.

피어 네트워크를 대상으로 하는 트래픽이 삭제됨

먼저 피어링 연결 목록을 표시하여 네트워크가 다른 네트워크에 계속 연결되어 있는지 확인합니다. 피어링 상태가 INACTIVE인 경우 네트워크에 대한 피어링 구성이 다른 네트워크에 존재하지 않습니다. 다른 네트워크를 관리하지 않는 경우 네트워크 관리자에게 연락해야 합니다.

그런 다음, 피어 연결의 경로 목록을 표시합니다. VPC 네트워크 피어링 한도에서 허용하는 경로만 가져올 수 있습니다.

트래픽이 예상치 못한 다음 홉으로 전송됨

라우팅 순서를 검토하여 다른 경로가 대신 선택되었는지 확인합니다.

특정 VPC 네트워크와 피어링할 수 없음

특정 VPC 네트워크에서 피어링 구성을 만들 수 없는 경우 조직 정책이 네트워크에서 피어링할 수 있는 VPC 네트워크를 제한할 수 있습니다. 조직 정책에서 허용되는 피어 목록에 네트워크를 추가하거나 조직 관리자에게 문의하세요. 자세한 내용은 constraints/compute.restrictVpcPeering 제약조건을 참조하세요.

피어링의 stack_typeIPV4_IPV6로 업데이트한 후 IPv6 서브넷 경로가 교환되지 않음

일치하는 피어링 연결의 stack_type 값도 IPV4_IPV6로 설정되었는지 확인합니다. IPv6 경로와 트래픽을 교환하려면 피어링 연결의 양측에서 stack_typeIPV4_IPV6로 설정해야 합니다.

피어링의 stack_typeIPV4_IPV6로 업데이트한 후 IPv6 동적 경로를 내보내지 않음

동적 및 정적 IPv6 경로를 내보내려면 일치하는 피어링 연결에서 –export-custom-route–import-custom-route 플래그를 사용 설정해야 합니다.

커스텀 경로 가져오기 및 내보내기를 사용 설정한 후 IPv6 정적 및 동적 경로가 교환되지 않음

두 피어링 모두에서 stack_typeIPV4_IPV6로 설정되었는지 확인합니다.

일부 동적 경로를 가져왔지만 모두 표시되지는 않음

다음 사항을 고려하세요.

  • 각 리전에 대해 동일한 개수의 경로가 표시되지 않을 수 있습니다. 동일한 IP 주소 범위의 여러 경로가 리전 간에 교환되는 경우 우선순위가 가장 높은 경로만 가져옵니다. 이러한 경로가 동일한 리전 간에 교환되는 경우에는 모든 경로를 가져옵니다.

  • 네트워크가 동적 경로의 피어링 그룹별 제한에 도달하면 더 이상 경로를 가져오지 않습니다. 하지만 생략할 경로를 결정할 수는 없습니다.

다음 단계