VM의 PTR 레코드 만들기


구성 가능한 PTR 레코드를 사용하면 VM 인스턴스의 외부 IP 주소와 연관된 역방향 DNS 레코드를 정의하여 이러한 레코드를 사용하는 애플리케이션이 의도된 대로 작동하게 할 수 있습니다.

일부 애플리케이션은 IP 주소를 도메인 이름으로 분석하기 위해 역방향 DNS 레코드(PTR 레코드)가 필요합니다. 예를 들어 SMTP를 사용하는 애플리케이션은 전송하려는 이메일의 시작 도메인을 가리키는 PTR 레코드가 필요합니다. 이 레코드가 없으면 스팸 필터로 인해 이메일의 인지도가 낮은 것으로 표시되고 결국 이메일이 스팸 폴더로 이동되거나 아예 전송되지 않을 수 있습니다.

PTR 레코드를 VM 인스턴스의 기본 네트워크 인터페이스에만 추가할 수 있습니다. 부하 분산기 프런트엔드, Cloud NAT 또는 기타 VM이 아닌 IP 주소에는 PTR 레코드를 사용할 수 없습니다.

외부 IPv6 IP 주소 범위가 있는 이중 스택 서브넷에 인스턴스의 기본 네트워크 인터페이스가 연결된 경우에만 IPv6 PTR 레코드를 사용할 수 있습니다. 이 경우 별도의 IPv4 및 IPv6 PTR 레코드가 있을 수 있습니다.

자동으로 생성된 내부 DNS PTR 이름을 재정의하는 커스텀 PTR 레코드를 만들려면 관리형 역방향 조회 영역을 참조하세요.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

도메인 소유권 확인

커스텀 PTR 레코드를 사용하여 VM을 만들기 전에 도메인 이름을 소유하고 있는지 확인합니다. 소유권 확인은 Google에 귀하가 도메인 소유자임을 입증하기 위한 보안 절차입니다.

다음 두 가지 방법으로 도메인 이름을 확인할 수 있습니다.

  • Google 계정이 있는 경우 Search Console을 사용하여 확인할 수 있습니다.
  • Google 또는 Google 이외의 계정이 있는 경우 DNS 구성에 VM의 IP 주소를 추가하여 확인할 수 있습니다.

Search Console을 사용하여 확인

  1. Search Console을 열고 인스턴스에 PTR 레코드를 추가하기 위해 사용할 Google 계정을 사용하여 로그인합니다. 여러 계정의 도메인 소유권을 확인할 수 있습니다.
  2. PTR 도메인 이름을 입력합니다.
  3. 계속을 클릭합니다.
  4. 안내를 따른 후 속성으로 이동을 클릭합니다.
  5. 설정(왼쪽 하단의 메뉴에 있음)을 클릭한 다음 소유권 인증을 클릭합니다.

도메인 소유권을 확인한 후 설정 창에서 사용자를 클릭하여 다른 확인된 소유자를 확인합니다. 다른 도메인에 PTR 레코드를 추가하려면 현재 도메인을 표시하는 왼쪽에 있는 속성 선택도구를 클릭합니다. 이러한 도메인을 추가하려면 속성 추가를 클릭합니다.

도메인 이름이 즉시 확인되지 않으면, 권장 방법을 사용하여 확인을 얻습니다.

DNS 구성에 VM의 IP 주소를 추가하여 확인

  1. VM이 아직 없으면 리전 고정 외부 IP 주소를 예약하고 나중에 VM을 만드는 동안 사용합니다.
  2. VM의 외부 IP 주소를 사용하여 'A' 레코드를 도메인의 DNS 구성에 추가합니다.

PTR 레코드가 있는 VM 인스턴스 만들기

새 인스턴스를 만들 때 PTR 레코드를 지정할 수 있습니다. 기존 인스턴스의 PTR 레코드를 추가하려면 PTR 레코드 추가를 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. VM 세부정보를 지정합니다.

  3. 고급 옵션 섹션을 펼친 후 다음을 수행합니다.

    1. 네트워킹 섹션을 펼칩니다.
    2. 이 VM에 사용할 하나 이상의 네트워크 인터페이스를 만듭니다. 또는 기본 네트워크 인터페이스를 사용할 수 있습니다.
    3. 네트워크 인터페이스 섹션에서 기본 네트워크 인터페이스인 첫 번째 네트워크 인터페이스를 펼칩니다.
    4. 공개 DNS PTR 레코드 섹션에서 추가하려는 각 PTR 레코드 유형을 선택합니다.
    5. PTR 도메인 이름 필드에 추가할 각 PTR 레코드 유형의 도메인 이름을 입력합니다.
    6. 외부 IPv4 주소 또는 외부 IPv6 주소 필드에서 이전에 예약된 IP 주소를 선택합니다. DNS 구성을 통해 VM의 IP 주소를 확인한 경우 해당 주소를 지정해야 합니다.
    7. 네트워크 인터페이스 설정을 확인하려면 완료를 클릭합니다.
  4. 새 VM의 나머지 속성을 구성합니다.

  5. 페이지 하단에서 만들기를 클릭합니다.

VM이 시작된 후 VM의 외부 IP 주소에서 역방향 DNS 조회를 실행하여 PTR 레코드가 예상한 대로 작동하는지 확인할 수 있습니다.

gcloud

  • IPv4 PTR 레코드가 연결된 새 인스턴스를 만들려면 gcloud instances create 명령어를 사용합니다.

    gcloud compute instances create INSTANCE_NAME \
        --image-family IMAGE_FAMILY \
        --image-project IMAGE_PROJECT \
        --public-ptr \
        --public-ptr-domain DOMAIN_NAME \
        --address=IP_ADDRESS
    

    다음을 바꿉니다.

    • INSTANCE_NAME: 새 VM 인스턴스의 이름
    • IMAGE_FAMILY: 사용 가능한 이미지 계열 중 하나
    • IMAGE_PROJECT: 모든 이미지 및 이미지 계열 참조를 확인하는 Google Cloud 프로젝트. 프로젝트 이름을 제공하지 않으면 현재 기본 프로젝트가 사용됩니다.
    • DOMAIN_NAME: 이 인스턴스에 추가할 도메인 이름
    • IP_ADDRESS: 이전에 예약된 IP 주소입니다. DNS 구성을 통해 VM의 IP 주소를 확인한 경우 해당 주소를 지정해야 합니다.
  • IPv6 PTR 레코드가 연결된 새 인스턴스를 만들려면 다음을 수행합니다.

    1. 이중 스택 VM을 만듭니다.
    2. IPv6 PTR 레코드를 추가합니다.

REST

  • IPv4 PTR 레코드를 사용해서 새 인스턴스를 만들려면 instances.insert 메서드POST 요청을 수행합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "disks": [
        {
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
          },
          "boot": true
        }
      ],
      "networkInterfaces": [
        {
          "network": "NETWORK",
          "accessConfigs": [
            {
              "type": "ONE_TO_ONE_NAT",
              "name": "External NAT",
              "natIP": "IP_ADDRESS",
              "publicPtrDomainName": "DOMAIN_NAME",
              "setPublicPtr": true
            }
          ]
        }
      ]
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID
    • ZONE: 인스턴스의 영역
    • MACHINE_TYPE: 머신 유형
    • INSTANCE_NAME: 인스턴스 이름
    • NETWORK: 네트워크의 URL
    • IP_ADDRESS: 이전에 예약된 IP 주소입니다. DNS 구성을 통해 VM의 IP 주소를 확인한 경우 해당 주소를 지정해야 합니다.
    • DOMAIN_NAME: 추가할 도메인 이름
  • IPv6 PTR 레코드가 포함된 새 인스턴스를 만들려면 다음을 수행합니다.

    1. 이중 스택 VM을 만듭니다.
    2. IPv6 PTR 레코드를 추가합니다.

PTR 레코드 추가

VM 인스턴스의 기본 네트워크 인터페이스인 nic0에서 액세스 구성을 업데이트하여 PTR 레코드를 추가할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 수정할 인스턴스를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 네트워크 인터페이스 섹션에서 기본 네트워크 인터페이스를 클릭합니다.

  5. 공개 DNS PTR 레코드 섹션에서 추가하려는 각 PTR 레코드 유형을 선택합니다.

  6. PTR 도메인 이름 필드에 추가하려는 각 PTR 레코드 유형의 도메인 이름을 입력합니다.

  7. 완료를 클릭한 다음 저장을 클릭합니다.

gcloud

  1. VM에 액세스 구성이 없으면 gcloud compute instances add-access-config 명령어를 사용하여 구성을 추가합니다.

    gcloud compute instances add-access-config INSTANCE_NAME
    

    INSTANCE_NAME을 인스턴스 이름으로 바꿉니다.

  2. gcloud compute instances update-access-config 명령어를 사용하여 액세스 구성을 업데이트해 PTR 레코드를 추가합니다. IPv4 및 IPv6 PTR 레코드를 모두 추가하려면 다음 명령어를 개별적으로 사용합니다.

    • IPv4의 경우:

      gcloud compute instances update-access-config INSTANCE_NAME \
          --public-ptr \
          --public-ptr-domain DOMAIN_NAME
      
    • IPv6의 경우:

      gcloud compute instances update-access-config INSTANCE_NAME \
          --ipv6-public-ptr-domain=DOMAIN_NAME
      

    다음을 바꿉니다.

    • INSTANCE_NAME: 업데이트할 인스턴스의 이름
    • DOMAIN_NAME: 추가할 도메인 이름

REST

  1. VM에 액세스 구성이 없으면 instances.addAccessConfig 메서드POST 요청을 수행하여 구성을 만듭니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig?networkInterface="nic0"
    
  2. POST 요청을 instances.updateAccessConfig 메서드에 보내 액세스 구성을 업데이트하여 PTR 레코드를 추가합니다. IPv4 및 IPv6 PTR 레코드 모두 추가하려면 다음 요청을 개별적으로 수행합니다.

    • IPv4의 경우:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
      {
        "setPublicPtr": true,
        "publicPtrDomainName": "DOMAIN_NAME",
        "type": "ONE_TO_ONE_NAT"
      }
      
    • IPv6의 경우:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
      {
        "publicPtrDomainName": "DOMAIN_NAME",
        "type": "DIRECT_IPV6"
      }
      

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID
    • ZONE: 인스턴스의 영역
    • INSTANCE_NAME: 인스턴스의 이름
    • DOMAIN_NAME: 추가할 도메인 이름

PTR 레코드 삭제

PTR 레코드를 삭제하려면 VM 인스턴스의 기본 네트워크 인터페이스인 nic0에서 액세스 구성을 업데이트합니다. PTR 레코드를 삭제하면 Google Cloud에서 정규화된 기본 도메인 이름인 googleusercontent.com을 사용하여 역방향 DNS 조회에 응답합니다.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 수정할 인스턴스를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 네트워크 인터페이스 섹션에서 기본 네트워크 인터페이스를 클릭합니다.

  5. 공개 DNS PTR 레코드 섹션에서 삭제하려는 각 PTR 레코드 유형에 대한 체크박스를 선택 취소합니다.

  6. 완료를 클릭한 다음 저장을 클릭합니다.

gcloud

PTR 레코드를 삭제하려면 gcloud compute instances update-access-config 명령어를 사용합니다. IPv4 및 IPv6 PTR 레코드 모두 삭제하려면 다음 명령어를 개별적으로 사용합니다.

  • IPv4의 경우:

    gcloud compute instances update-access-config INSTANCE_NAME \
        --no-public-ptr
    
  • IPv6의 경우:

    gcloud compute instances update-access-config INSTANCE_NAME \
        --no-ipv6-public-ptr
    

INSTANCE_NAME을 업데이트할 인스턴스의 이름으로 바꿉니다.

REST

PTR 레코드를 삭제하려면 instances.updateAccessConfig 메서드POST 요청을 수행합니다. IPv4 및 IPv6 PTR 레코드 모두 삭제하려면 다음 요청을 개별적으로 수행합니다.

  • IPv4의 경우:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
    {
      "setPublicPtr": false,
      "type": "ONE_TO_ONE_NAT"
    }
    
  • IPv6의 경우:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
    {
      "publicPtrDomainName": "",
      "type": "DIRECT_IPV6"
    }
    

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • ZONE: 인스턴스의 영역
  • INSTANCE_NAME: 인스턴스의 이름

제한사항

  • 유지보수 이벤트 중 라이브 마이그레이션 프로세스의 일부로 VM이 다른 호스트로 마이그레이션되면 PTR 레코드 로직이 일부 특이 사례를 올바르게 처리하지 않고 DNS PTR 레코드를 정규화된 도메인 이름(FQDN) googleusercontent.com으로 되돌립니다. 기능을 복원하려면 PTR 레코드를 다시 적용하세요.

  • IPv6 PTR 레코드가 있는 VM을 중지하면 IPv6 PTR 레코드가 일시적으로 등록 취소되어 VM에 표시되지 않습니다. VM을 다시 시작하면 레코드가 자동으로 다시 추가됩니다.

다음 단계