OSI 7 layer를 기준으로 본다면, 네트워크 통신에 최소 계층은 2계층 MAC 통신이다.
L2 라고 말하는 장비에는 arp table 이라는 것이 있는데, 이 곳이 바로 MAC 주소 정보를 갖고 있는 곳이다.
이곳에 기록이 되면 일정시간동안 유지가 되고, 이 유지시간 이후에는 삭제가 된다.
이 MAC 테이블은 같은 브로드캐스트 도메인에 속해 있는 녀석들이 서로 통신할 수 있는 역활을 해준다.
그냥 쉽게 말해 4 포트 짜리 공유기에 물려 있는 4포트는 모두 하나의 브로드 캐스트 도메인이고, 서로간에 MAC 주소를 통해 통신할 수 있게 된다.
내방에 있는 공유기와 거실에 있는 공유기는 그냥 일반적인 기본 설정으로 사용하게되면(bridge mode로 사용하지 않음을 의미) 서로 다른 브로드 캐스트 도메인이기에, 공유기 A에 연결된 데스크탑 AA와 공유기 B에 연결된 데스크탑 BB는 서로 L2 구간에서는 통신할 수 없게 된다.
앞서 설명한 대로 공유기 A에 연결된 데스크탑 AB는 AA와 L2 즉 MAC 통신을 통해 서로 통신할 수 있게 된다.
NCP의 VPC는 쉽게 말해 공유기라고 설명한 적이 있다.
그리고 subnet 이라고 하는 브로드 캐스트 도메인이 있다. 일반 공유기와는 다르게 NCP 의 VPC는 여러 개의 subnet으로 나눌 수 가 있다.
보통은 public subnet 과 private subnet으로 나눈다. 물론 앞서 설명한 공유기 처럼 단일 subnet으로도 사용이 가능하다.
어쨌든 VPC 172.16.0.0/12 를 생성하고, subnet A를 172.16.0.0/24 로 생성했다고 가정하자.
이곳에 VM을 하나 생성해서 172.16.0.10 라는 private IP를 할당 받았다고 치자.
Cloud DB for MySQL을 172.16.0.0/12 VPC 안에 172.16.0.0/24 subnet A에 생성했다고 가정하고 할당받은 IP는 172.16.0.20 이라고 치자.
이때 CDB(Cloud DB for MySQL)은 같은 L2 구간이기 때문에 L3 의 라우팅 없이 MAC 통신으로만 통신이 가능하다.
통신에는 전혀 문제가 없지만 실제로 172.16.0.10 인 VM에서 172.16.0.20으로 mysql 접속을 시도하면 연결이 되지 않는다.
그것은 VPC 안에 2개의 보안과 관련된 접근제어가 있는데, 하나는 인스턴스(VM)에서 사용하는 ACG와 subnet에서 사용하는 NACL 이 있다.
둘의 특징에 대해서는 나중에 이야기 하도록 하고,
이 CDB도 사용자가 직접 관리하지 않을 뿐이지 VM이 생성되어 ACG의 영향을 받는다.
CDB에서 172.16.0.10 에 대해서 ACG 설정을 해주지 않는다면, L2 구간이라 하더라도 접속이 차단된다.
CDB 의 ACG 입장에서 172.16.0.10 로 부터 들어오는 3306 포트에 대해서 inbound 허용을 해주면 되고
만약 NACL을 사용한다면 172.16.0.10 으로 들어오는 3306 inboud 와 랜덤하게 나가는 포트(대략 30000이상)에 대해서 outbound 를 모두 허용해주어야 한다.
** NACL을 꼭 해야할까? 상황과 보안에 대한 가치관에 따라 다르겠지만, 일반적으로 NACL은 모두 허용으로 하는게 보편적인 것 같다. 하지만 보편적인게 항상 최선은 아니다. 2개를 모두 사용하겠다면 더 꼼꼼하고 섬세한 접근 제어가 가능하며, 관리 포인트가 2개나 되기에 더 신경써야 한다.
'IT > NCP[Naver Cloud Platform]' 카테고리의 다른 글
[NCP 202] IP header (0) | 2022.06.23 |
---|---|
[NCP 202] UDP 서비스 (0) | 2022.06.23 |
[NCP 202] 로드밸런서 (0) | 2022.06.10 |
[NCP 202] Class (0) | 2022.06.10 |
[NCP 207] ps 결과 (0) | 2022.06.10 |