Cloud NAT 규칙 설정 및 관리

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

NAT 규칙 만들기

NAT 규칙은 Common Expression Language 구문을 사용하여 기록됩니다. 규칙 표현식 언어에 대한 자세한 내용은 규칙 표현식 언어를 참조하세요.

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

  • VM은 트래픽을 대상 198.51.100.10으로 보내려면 리소스 이름이 IP_ADDRESS1인 NAT IP 주소를 사용해야 합니다.
  • VM은 198.51.100.20/30으로 트래픽을 보내려면 리소스 이름이 IP_ADDRESS2 또는 IP_ADDRESS3인 NAT IP 주소를 사용해야 합니다.

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

콘솔

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

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

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

    Cloud NAT로 이동

  2. NAT 게이트웨이를 선택합니다.
  3. 수정을 선택합니다.
  4. NAT 규칙에서 새 규칙 추가를 선택합니다.
  5. 일치 필드에 198.51.100.10를 입력합니다.
  6. IP 주소 메뉴에서 IP_ADDRESS1에 사용한 IP 주소를 선택합니다.
  7. 규칙 번호 필드에 100을 입력합니다.
  8. 완료를 선택합니다.

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

  1. NAT 규칙에서 새 규칙 추가를 선택합니다.
  2. 일치 필드에 198.51.100.20/30를 입력합니다.
  3. IP 주소 메뉴에서 IP_ADDRESS2에 사용한 IP 주소를 선택합니다.
  4. IP 주소 추가를 선택한 후 IP_ADDRESS3에 사용한 IP 주소를 선택합니다.
  5. 규칙 번호 필드에 200을 입력합니다.
  6. 완료를 선택합니다.
  7. 저장을 선택하여 두 규칙을 모두 저장합니다.

gcloud

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

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

NAT 규칙 명령어를 사용하여 새 NAT 규칙을 추가할 수 있습니다. NAT_RULE_NUMBER를 원하는 NAT 규칙 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다.

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

gcloud compute routers nats rules create NAT_RULE_NUMBER \
    --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_NUMBER \
    --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 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_NUMBER를 원하는 NAT 규칙 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다. source-nat-drain-ips 옵션은 IP_ADDRESS3IP_ADDRESS4를 사용하여 대상에 대한 새 연결을 방지하지만 기존 연결을 유지합니다.

gcloud compute routers nats rules update NAT_RULE_NUMBER \
    --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_NUMBER를 원하는 NAT 규칙 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats rules delete NAT_RULE_NUMBER \
    --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_NUMBER를 해당 NAT 규칙 번호로 바꾸고 다른 변수는 해당 구성과 일치하는 정보로 바꿉니다.

gcloud compute routers nats rules describe NAT_RULE_NUMBER \
    --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 ...]