Cloud NAT 규칙 설정 및 관리

이 페이지에서는 Public NAT용 Cloud NAT 규칙을 구성하는 방법을 설명합니다. Cloud NAT 규칙을 구성하기 전에 Cloud NAT 규칙 개요를 참고하세요.

NAT 규칙 만들기

NAT 규칙을 만들기 위해 Cloud NAT는 규칙 표현식 언어에 설명된 대로 Common Expression Language (CEL)를 사용합니다. NAT 규칙에 사용할 수 있는 표현식의 예는 표현식 예를 참고하세요.

NAT 규칙을 만들려면 NAT 게이트웨이에서 엔드포인트 독립 매핑이 사용 중지되어 있는지 확인하세요.

소스 기반 규칙 만들기

이 섹션의 단계에서는 다음 조건에 따라 소스 기반 NAT 규칙을 만드는 방법을 설명합니다.

  1. 소스 IP 범위 10.10.1.0/24의 패킷은 IP_ADDRESS_1를 사용해야 합니다.
  2. 소스 IP 범위 10.10.2.0/24의 패킷은 IP_ADDRESS_2를 사용해야 합니다.
  3. 다른 모든 패킷은 IP_ADDRESS_3를 사용해야 합니다.

조건 1과 2의 경우 NAT 규칙을 두 개 만듭니다. 조건 3은 소스 주소 일치를 위한 기본 NAT 규칙에 의해 충족됩니다. IP_ADDRESS_1, IP_ADDRESS_2, IP_ADDRESS_3는 NAT에 사용할 외부 IP 주소입니다.

콘솔

기존 NAT 게이트웨이에 NAT 규칙 추가

  1. 10.10.1.0/24의 트래픽과 일치하고 소스 IP를 IP_ADDRESS_1로 변환하는 NAT 규칙을 추가합니다.

    1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

      Cloud NAT로 이동

    2. NAT 게이트웨이를 클릭합니다.

    3. 수정을 클릭합니다.

    4. Cloud NAT IP 주소에서 수동을 선택합니다.

    5. Cloud NAT 규칙 섹션에서 규칙 추가를 클릭합니다.

    6. 규칙 우선순위 필드에 0(가장 높은 우선순위)에서 65000 (가장 낮은 우선순위)까지의 숫자를 입력합니다. 예를 들면 100입니다.

    7. IP 범위 일치에서 소스를 선택합니다.

    8. 소스 IP 범위 필드에 10.10.1.0/24을 입력합니다.

    9. IP 주소 섹션에서 IP_ADDRESS_1에 사용할 IP 주소를 선택합니다.

    10. 완료를 클릭합니다.

  2. 10.10.2.0/24의 트래픽과 일치하고 이를 IP_ADDRESS_2로 변환하는 NAT 규칙을 추가합니다.

    1. Cloud NAT 규칙 섹션에서 규칙 추가를 클릭합니다.
    2. 규칙 우선순위 필드에 0(가장 높은 우선순위)에서 65000 (가장 낮은 우선순위)까지의 숫자를 입력합니다. 예를 들면 200입니다.
    3. IP 범위 일치에서 소스를 선택합니다.
    4. 소스 IP 범위 필드에 10.10.2.0/24을 입력합니다.
    5. IP 주소 섹션에서 IP_ADDRESS_2에 사용할 IP 주소를 선택합니다.
    6. 완료를 클릭합니다.
    7. 저장을 클릭하여 두 규칙을 모두 저장합니다.

gcloud

다음 섹션의 단계를 수행하여 규칙 파일을 만들고, 규칙 파일의 규칙을 사용하는 Cloud NAT 게이트웨이를 만들고, 규칙을 기존 NAT 게이트웨이에 추가할 수 있습니다.

기존 NAT 게이트웨이에 NAT 규칙 추가

gcloud beta compute routers nats rules create 명령어를 사용하여 새 NAT 규칙을 추가할 수 있습니다.

  1. 10.10.1.0/24의 트래픽에 IP_ADDRESS_1를 사용하는 NAT 규칙을 추가합니다.

    gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \
        --router=NAT_ROUTER \
        --region=REGION \
        --nat=NAT_CONFIG \
        --match="inIpRange(source.ip, '10.10.1.0/24')" \
        --source-nat-active-ips=IP_ADDRESS_1
    

    다음을 바꿉니다.

    • NAT_RULE_PRIORITY: NAT 규칙을 고유하게 식별하는 규칙 번호입니다(0(가장 높은 우선순위)에서 65000(가장 낮은 우선순위)까지). 예를 들어 100입니다.
    • NAT_ROUTER: NAT 게이트웨이에 사용하는 Cloud Router의 이름
    • REGION: NAT 게이트웨이의 리전
    • NAT_CONFIG: NAT 구성 이름
    • IP_ADDRESS_1: 규칙과 일치하는 패킷에 사용할 수동으로 할당된 외부 IP 주소
  2. 10.10.2.0/24의 트래픽에 IP_ADDRESS_2를 사용하는 NAT 규칙을 추가합니다.

    gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \
        --router=NAT_ROUTER \
        --region=REGION \
        --nat=NAT_CONFIG \
        --match="inIpRange(source.ip, '10.10.2.0/24')" \
        --source-nat-active-ips=IP_ADDRESS_2
    

    다음을 바꿉니다.

    • NAT_RULE_PRIORITY: NAT 규칙을 고유하게 식별하는 규칙 번호입니다(0(가장 높은 우선순위)에서 65000(가장 낮은 우선순위)까지). 예를 들어 200입니다.
    • NAT_ROUTER: NAT 게이트웨이에 사용하는 Cloud Router의 이름
    • REGION: NAT 게이트웨이의 리전
    • NAT_CONFIG: NAT 구성 이름
    • IP_ADDRESS_2: 규칙과 일치하는 패킷에 사용할 수동으로 할당된 외부 IP 주소

NAT 규칙 파일을 사용하여 NAT 게이트웨이 만들기

다음 코드 샘플은 규칙 파일의 예시입니다. 이 규칙 파일을 사용 사례에 맞게 수정하거나 이미 규칙 파일이 있으면 이 단계를 건너뛸 수 있습니다.

규칙 파일 만들기
rules:
 - ruleNumber: 100
   match: inIpRange(source.ip, '10.10.1.0/24')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_1
 - ruleNumber: 200
   match: inIpRange(source.ip, '10.10.2.0/24')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_2

위의 예에서 IP_ADDRESS_1IP_ADDRESS_2은 규칙과 일치하는 패킷에 사용하려는 수동으로 할당된 외부 IP 주소입니다. 각 IP 주소에 대해 다음을 바꿉니다.

  • PROJECT_ID: IP 주소의 프로젝트
  • REGION: IP 주소가 예약된 리전
NAT 규칙 파일을 사용하여 NAT 게이트웨이 만들기

다음 명령어는 NAT 게이트웨이를 만들고 NAT 규칙 파일의 규칙으로 이를 구성합니다. 이미 NAT 게이트웨이를 구성한 경우 기존 NAT 게이트웨이에 NAT 규칙 추가를 참고하세요.

gcloud beta compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS_3,[IP_ADDRESS_4] \
    --rules=PATH_TO_NAT_RULE_FILE

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성의 이름
  • NAT_ROUTER: NAT 게이트웨이에 사용할 Cloud Router의 이름
  • REGION: Cloud NAT 게이트웨이를 만들 리전
  • IP_ADDRESS_3IP_ADDRESS_4: 기본 NAT 규칙에 사용할 외부 IP 주소
  • PATH_TO_NAT_RULE_FILE: NAT 규칙 파일의 경로

대상 기반 규칙 만들기

다음 구성 단계 예시에서는 다음 조건을 충족합니다.

  • 대상 주소가 198.51.100.10인 패킷은 NAT IP 주소 IP_ADDRESS_1을 사용해야 합니다.
  • 대상 주소가 198.51.100.20/30인 패킷은 NAT IP 주소 IP_ADDRESS_2 또는 IP_ADDRESS_3을 사용해야 합니다.

NAT 규칙 하나를 만들어 이러한 각 조건을 충족할 수 있습니다.

콘솔

기존 NAT 게이트웨이에 NAT 규칙 추가

  1. IP_ADDRESS_1를 사용하여 트래픽을 198.51.100.10으로 전송하는 NAT 규칙을 추가합니다.

    1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

      Cloud NAT로 이동

    2. 수정을 클릭합니다.

    3. Cloud NAT IP 주소에서 수동을 선택합니다.

    4. Cloud NAT 규칙 섹션에서 규칙 추가를 클릭합니다.

    5. 규칙 우선순위 필드에 0(가장 높은 우선순위)에서 65000 (가장 낮은 우선순위)까지의 숫자를 입력합니다. 예를 들면 100입니다.

    6. 일치 IP 범위에서 대상을 선택합니다.

    7. 대상 IP 범위 필드에 198.51.100.10를 입력합니다.

    8. IP 주소 섹션에서 IP_ADDRESS_1에 사용할 IP 주소를 선택합니다.

    9. 완료를 클릭합니다.

  2. IP_ADDRESS_2 또는 IP_ADDRESS_3을 사용하여 트래픽을 198.51.100.20/30으로 전송하는 NAT 규칙을 추가합니다.

    1. Cloud NAT 규칙 섹션에서 규칙 추가를 클릭합니다.
    2. 규칙 우선순위 필드에 0(가장 높은 우선순위)에서 65000 (가장 낮은 우선순위)까지의 숫자를 입력합니다. 예를 들면 200입니다.
    3. 일치 IP 범위에서 대상을 선택합니다.
    4. 대상 IP 범위 필드에 198.51.100.20/30를 입력합니다.
    5. IP 주소 섹션에서 IP_ADDRESS_2에 사용할 IP 주소를 선택합니다.
    6. IP 주소 추가를 클릭하고 IP_ADDRESS_3에 사용할 IP 주소를 선택합니다.
    7. 완료를 클릭합니다.
    8. 저장을 클릭하여 두 규칙을 모두 저장합니다.

gcloud

다음 섹션의 단계를 수행하여 규칙 파일을 만들고 규칙 파일의 규칙을 사용하는 NAT 게이트웨이를 만들고 규칙을 기존 NAT 게이트웨이에 추가할 수 있습니다.

기존 NAT 게이트웨이에 NAT 규칙 추가

NAT 규칙 명령어를 사용하여 새 NAT 규칙을 추가할 수 있습니다. NAT_RULE_PRIORITY를 규칙에 할당할 NAT 규칙 우선순위(0(가장 높음)에서 65000(가장 낮음)까지)로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다.

먼저 트래픽을 IP_ADDRESS1에서 198.51.100.10으로 전송하는 NAT 규칙을 추가합니다.

gcloud compute routers nats rules create NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match='destination.ip == "198.51.100.10"' \
    --source-nat-active-ips=IP_ADDRESS1 \
    [--region=REGION] [GLOBAL-FLAG ...]

그런 다음 트래픽을 IP_ADDRESS2 또는 IP_ADDRESS3에서 198.51.100.20/30으로 전송하는 NAT 규칙을 추가합니다.

gcloud compute routers nats rules create NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match='inIpRange(destination.ip, "198.51.100.20/30")' \
    --source-nat-active-ips=IP_ADDRESS2,IP_ADDRESS3 \
    [--region=REGION] [GLOBAL-FLAG ...]

규칙 파일 만들기

다음 코드 샘플은 규칙 파일의 예시입니다. 이 규칙 파일을 사용 사례에 맞게 수정하거나 이미 규칙 파일이 있으면 이 단계를 건너뛸 수 있습니다.

rules:
 - ruleNumber: 100
   match: destination.ip == '198.51.100.10'
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS1
 - ruleNumber: 200
   match: inIpRange(destination.ip, '198.51.100.20/30')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS2
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS3

NAT 규칙 파일을 사용하여 NAT 게이트웨이 만들기

다음 명령어는 NAT 게이트웨이를 만들고 NAT 규칙 파일의 규칙으로 이를 구성합니다. 이미 NAT 게이트웨이를 구성한 경우 기존 NAT 게이트웨이에 NAT 규칙 추가를 참고하세요. 변수를 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats create NAT_NAME \
    --router=ROUTER_NAME \
    --nat-external-ip-pool=IP_ADDRESS4,[IP_ADDRESS5] \
    --nat-all-subnet-ip-ranges \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT 규칙 업데이트

NAT 규칙을 업데이트하려면 다음 섹션의 단계를 수행합니다. gcloud 명령줄 도구를 통해서만 규칙 파일을 사용할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. 맞춤설정된 규칙에서 업데이트할 규칙을 클릭합니다.
  5. 확장된 필드에서 변경하려는 정보를 수정할 수 있습니다.
  6. 완료를 클릭합니다.
  7. 저장을 클릭합니다.

gcloud

NAT 규칙 파일을 사용하여 업데이트

NAT 규칙 파일을 사용하여 NAT 게이트웨이를 업데이트하려면 gcloud compute routers nats update 명령어를 사용합니다.

변수를 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats update NAT_NAME \
    --router=ROUTER_NAME \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

다음 코드 샘플은 규칙 파일의 예시입니다. sourceNatDrainIps 작업을 확인합니다. 이 작업은 IP_ADDRESS1을 사용하여 대상에 대한 새 연결을 방지하지만 기존 연결은 유지합니다.

rules:
 - ruleNumber: 100
   match: destination.ip == '198.51.100.10'
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS2
     sourceNatDrainIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS1

NAT 규칙 명령어를 사용하여 업데이트

단일 NAT 규칙을 업데이트하려면 다음 명령어를 사용합니다. NAT_RULE_PRIORITY를 NAT 규칙 우선순위 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다. source-nat-drain-ips 옵션은 IP_ADDRESS3IP_ADDRESS4를 사용하여 대상에 대한 새 연결을 방지하지만 기존 연결을 유지합니다.

gcloud compute routers nats rules update NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match=Match conditions (expressed in CEL) \
    --source-nat-active-ips=[IP_ADDRESS1],[IP_ADDRESS2] \
    --source-nat-drain-ips=[IP_ADDRESS3],[IP_ADDRESS4] \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT 규칙 삭제

콘솔

  1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. 맞춤설정된 규칙에서 마우스 포인터를 삭제할 규칙에 올려놓습니다. 을 클릭합니다.
  5. 저장을 클릭합니다.

gcloud

게이트웨이에서 NAT 규칙을 삭제하려면 게이트웨이에서 직접 제거하거나 규칙 파일에서 삭제하고 게이트웨이를 업데이트하면 됩니다.

NAT 규칙 파일을 사용하여 삭제

규칙 파일에서 NAT 파일을 직접 삭제한 후 NAT 게이트웨이를 업데이트할 수 있습니다. 여기에서 NAT 게이트웨이 업데이트 명령어는 편의를 위해 반복되었습니다.

변수를 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats update NAT_NAME \
    --router=ROUTER_NAME \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT 규칙 명령어를 사용하여 삭제

또는 NAT 규칙 delete 명령어를 사용하여 게이트웨이에서 NAT 규칙을 삭제할 수 있습니다. NAT_RULE_PRIORITY를 NAT 규칙 우선순위 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats rules delete NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT 규칙 설명

콘솔

Cloud NAT 페이지에서 NAT 규칙에 대한 정보를 볼 수 있습니다.

  1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.
  3. NAT 규칙을 봅니다.

개별 NAT 규칙에 대한 자세한 내용을 보려면 다음을 수행하면 됩니다.

  1. 수정을 클릭합니다.
  2. 맞춤설정된 규칙 제목에서 NAT 규칙을 선택합니다.
  3. 추가 정보를 봅니다.
  4. 취소를 클릭합니다.

gcloud

NAT 규칙을 설명하려면 다음 명령어를 사용합니다. NAT_RULE_PRIORITY를 NAT 규칙 우선순위 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats rules describe NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]

NAT 게이트웨이의 모든 NAT 규칙 나열

콘솔

Cloud NAT 페이지에서 NAT 규칙을 볼 수 있습니다.

  1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.
  3. NAT 규칙을 봅니다.

gcloud

NAT 게이트웨이의 모든 NAT 규칙을 나열하기 위해 다음 명령어를 사용합니다. 그러면 기본 규칙을 포함하여 NAT 규칙에 있는 모든 NAT IP 주소도 표시됩니다. 변수를 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats rules list \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]