반응형

먼저 참고하기 좋은 github가 있어 공유 드립니다.

https://github.com/jesuispy/networking-101-gcp-sheet#vpcs-and-ip-addressing

 

GitHub - jesuispy/networking-101-gcp-sheet: This is a quick ref for general networking topics and google cloud networking stuff

This is a quick ref for general networking topics and google cloud networking stuff - jesuispy/networking-101-gcp-sheet

github.com

 

VPC Network

  • 프로젝트당 최대 5개까지 생성 가능 (기본 네트워크 포함)
  • 종류
    • 자동 VPC 네트워크
    • 커스텀 VPC 네트워크
  • 글로벌 리소스
    • 여러 리전에 걸쳐 존재하는 논리적 네트워크
    • 리전 간 통신이 Google 백본 네트워크를 통해 이루어짐
    • 리전 간 대역폭 제한 없음 (동일 VPC 내)
  • 논리적 격리
    • 서로 다른 VPC는 완전히 격리됨
    • VPC 간 통신은 별도 설정 필요 (VPC Peering, Shared VPC 등)GCP 프로젝트 계층 구조
프로젝트 (Project) 
└── VPC 네트워크 (VPC Network) 
    └── 서브네트워크 (Subnetwork) 
        └── VM 인스턴스 (VM Instance)

커스텀 네트워크 GCP Cloud Shell 로 생성하기

gcloud compute networks create {네트워크이름} --subnet-mode custom

기본 네트워크에 자동으로 만들어진 방화벽 규칙

  • 수동 VPC네트워크에는 자동 방화벽 규칙 없음
이름 내용
default-allow-internal 네트워크상의 인스턴스 간에 모든 프로토콜 및 포트의 네트워크 연결을 허용합니다.
default-allow-ssh 모든 소스에서 TCP 포트 22를 사용하여 네트워크의 모든 인스턴스에 SSH로 연결할 수 있도록 허용합니다.
default-allow-rdp 모든 소스에서 TCP 포트 3389를 사용하여 네트워크의 모든 인스턴스에 RDP로 연결할 수 있도록 허용합니다.
default-allow-icmp 모든 소스에서 네트워크의 모든 인스턴스에 이르는 ICMP 트래픽을 허용합니다.

subnet

  • 리전별로 생성되는 네트워크의 세부 분할
  • RFC1918 사설 IP 주소 공간 사용
  • 관련 리소스들을 논리적으로 그룹핑
  • 자동 서브넷 모드 (Auto Mode Network)
    • 새 프로젝트 생성 시 자동으로 생성
    • 각 리전마다 하나씩 서브넷 자동 생성
    • 미리 정의된 IP 범위와 게이트웨이 사용
    • 서브넷 이름 = 네트워크 이름과 동일
  • 커스텀 서브넷 모드 (Custom Mode Network)
    • 생성 시점에는 서브넷이 없음
    • 필요한 리전에만 수동으로 서브넷 생성
    • IP 범위를 직접 지정 가능
    • 리전별로 0개, 1개, 또는 여러 개의 서브넷 가능

Cloud Shell 로 서브넷 생성하기

# 미국 중부 서브넷 
gcloud compute networks subnets create {{subnet 이름}} \
     --network={{네트워크 이름}} \
    --range=10.0.0.0/16 \ 
    --region=us-central1 

# 유럽 서부 서브넷 
gcloud compute networks subnets create {{subnet 이름}} \ 
    --network={{네트워크 이름}} \ 
    --range=10.1.0.0/16 \ 
    --region=europe-west1 

# 아시아 동부 서브넷 
gcloud compute networks subnets create {{subnet 이름}} \ 
    --network={{네트워크 이름}} \ 
    --range=10.2.0.0/16 \ 
    --region=asia-east1

RFC1918이란?

  • "Address Allocation for Private Internets"
  • 인터넷에서 직접 라우팅되지 않는 사설 IP 주소 대역 정의
  • NAT(Network Address Translation)와 함께 사용하여 공인 IP 주소 절약
  • Classes
    • Class A : 10.0.0.0/8
    • Class B : 172.16.0.0/12
    • Class C : 192.168.0.0/16

방화벽 규칙

기본 정책

  • Ingress (인바운드): 기본적으로 모든 트래픽 차단
  • Egress (아웃바운드): 기본적으로 모든 트래픽 허용

규칙 평가 순서

  • 거부 규칙으로 허용 규칙 재정의 시 우선순위 등급 사용하여 재정의
  1. 우선순위 번호가 낮을수록 먼저 평가 (0이 최고 우선순위)
  2. 첫 번째 일치하는 규칙이 적용됨
  3. 일치하는 규칙이 없으면 기본 정책 적용
  • 기본 네트워크에는 자동으로 만들어진 방화벽 규칙 존재함
  • 네트워크 태그(인스턴스 태그)를 활용하여 VM 인스턴스 방화벽 규칙 적용
    • VM인스턴스 그룹간에 방화벽 규칙을 관리하는 강력한 도구
  • 전달하려는 트래픽 종류를 최소 허용 방화벽 규칙을 구성하는 것이 좋음

Cloud Shell을 이용하여 방화벽 규칙 생성하기

gcloud compute firewall-rules create {방화벽이름} \
    --allow tcp:80 --network {네트워크 이름} 
    --source-ranges 0.0.0.0/0 \
    --target-tags http // http 태그가 있는 VM들에게 적용 (네트워크 태그)

+ Recent posts