-
[NCP 기능 정리] 네이버클라우드 VPC & Classic 환경 기능 - 1Cloud/Naver Cloud Platform 2021. 10. 4. 01:32
평소 네이버클라우드를 사용하며 알아보았던 기능들에 대해 다른 분들이 사용하시기 쉽게 설명드리려 합니다.
네이버클라우드플랫폼을 기준으로 설명하지만 포스팅하면서 자연스레 네트워크에 대한 공부가 될 수 있습니다.
우선 네이버클라우드는 크게 기존 Classic환경과 보안이 한층 강화된 VPC환경이 존재합니다.
VPC Management
VPC(Virtual Private Cloud)는 논리적으로 격리된 네트워크 환경으로 다른 사용자의 간섭없이 안전하게 인프라 사용이 가능함. VPC는 Region에 상응하는 규모의 네트워크임.(아래의 그림 참조)
ACG와 NACL을 사용하여 접근제어를 진행하며 보안이 강화되었음. 그러한 논리적으로 격리된 공간을 생성할 수 있는 메뉴탭이 바로 VPC Management.
* VPC를 생성시 프라이빗 IPv4 주소 범위에 속하는 CIDR 블록을 지정하는 것이 좋음. (Private 대역 10.0.0.0/8, 172.16.0.0/12,192.168.0.0/16 내에서 /16~/28 범위여야함.)
* IPv4 주소, CIDR(사이더) 블록
IPv4주소는 32비트 길이의 식별자로 0.0.0.0-255.255.255.255까지의 숫자 조합으로 이루어짐.
유니케스트 주소는 A클래스: 0.0.0.0 - 127.255.255.255, B클래스: 128.0.0.0 - 191.255.255.255, C클래스: 192.0.0.0 - 223.255.255.255
CIDR(사이더)는 IP/(subnet bit 수)와 같이 IP주소 뒤에 subnet bit로 표시함. 다음은 각 서브넷마스크의 Prefix Mask. 255.255.255.255는 32, 255.255.255.0은 24, 255.255.0.0은 16, 255.0.0.0은 8, 0.0.0.0은 0.
Subnet Management
Subnet Management 메뉴를 설명하기 전에 Subnet에 대한 개념에 대해 먼저 살펴보겠음.
VPC가 네트워크의 큰 덩어리라하면 Subnet 단위로 쪼개서 분리하여 사용.
케이크 한판이 있다고 가정. 그 케이크 한판을 그냥 팀원들끼리 나눠먹으려하면 정해진 정량이 없기 때문에 많이 먹는사람, 뺏어먹는 사람, 하나도 먹지 못하는 사람이 생길 수 있음. 하지만 초반부터 이 케이크 한판에 대해 각자 2조각씩 분배를 해두고 먹는다면 아무런 문제가 생기지 않음.
이와 같이 VPC 내에서 다시 크기를 쪼개서 사용하는데 이를 Subnet이라고 칭함.
subnet은 지정된 VPC의 IPv4 CIDR에 속해야 함. 아래는 예시 subnet 대역.
VPC(케이크한판): 192.168.0.0/16
Subnet(팀원1 케이크조각): 192.168.10.0/24
Subnet(팀원2 케이크조각): 192.168.20.0/24
Subnet(팀원3 케이크조각): 192.168.30.0/24Subnet은 서비스 사용 목적에 따라 분리하기도 함. 특정 Subnet에 서비스 침해가 발생하면, 각 Subnet간 접근통제로 2차 피해를 막기 위해 서비스 목적에 따라 분리시켜야함. 분리된 Subnet간 통신은 NACL, ACG를 통해 제어.
ex) 192.168.10.0/24 - DB Zone, 192.168.20.0/24 - WAS Zone, 192.168.20.0/24 - Web Zone
Public Subnet과 Private Subnet으로 나눠져있으며 목적에 따라 선택하여 생성 가능.
Subnet 대역을 잘못 지정해주면 다음과 같이 생성이 불가함.
Network ACL
ACG(Access Control Group)는 VM <-> VM 단위의 네트워크 룰 적용.
NACL(Network Access Control List)는 Subnet <-> Subnet 단위의 네트워크 룰 적용.
ACG를 통해서 VM간의 차단룰을 적용하고 NACL을 통해 Subnet 을 통한 차단룰을 적용함.
ACG는 서버의 Inbound 및 Outbound 트래픽을 제어하고, NACL는 Subnet의 Inbound 및 Outbound 트래픽을 제어함.
ACG는 기본 세팅이 모두 "Deny"이고, NACL은 기본 세팅이 모두 "Allow".
아래는 ACG와 NACL의 비교 표.
NACL은 기본적으로 [vpc명]-default-network-acl 으로 하나가 생성되며 아무런 룰이 없음. NACL은 디폴트 세팅이 Allow이기 때문에 기존 서버 생성시에는 ACG룰에 의하여 적용됨.
NACL은 아래와 같이 rule을 설정할 때, inbound&outbound 포트를 설정함.
- inbound port: 목적지 포트(VM으로 들어오는 port)
- outbound port: 출발지 포트(VM에서 나가는 port)
추가로 ACG 설정을 했던 경험을 예시로 작성해봄.
Inbound & Outbound | TCP | 192.168.0.0/24 | 6443,10251,10252,2379 port
=> k8s master를 다중화 구성할 경우 kube-system의 컴포넌트간의 통신을 위해 각 vm의 해당포트를 허용.
Inbound & Outbound | UDP | 192.168.0.0/24 | 23 port
=> core-dns 파드가 통신하기 위해 UDP 23포트를 허용
이런식으로 VM간의 포트 허용이 필요할 시에는 ACG 설정의 inbound, outbound 세팅을 해주면 됨.
'Cloud > Naver Cloud Platform' 카테고리의 다른 글
[NCP 기능 정리] 네이버클라우드 VPC & Classic 환경 기능 - 2 (0) 2021.10.04