본문 바로가기

IT/Infra

IP 표기 보고 사용가능한 IP 수 알아내기

안녕하세요. 잇킹 시도르입니다.

 

시스템을 운영하거나 프로젝트를 마무리하게 되면 정리할 문서도 많고 응대할 내용도 많습니다. 특히 저는 네트워크 관련 지식이 적어서 해당 내용을 담당자에게 보낼 때는 정말 답답했었습니다. 최근에 신규 프로젝트 준비하면서 이번 글의 주제를 작성할 계기가 생겼는데요. AWS로 진행한 프로젝트에서 GLUE가 IP 수를 얼마나 잡았느냐 라는 질문을 받고서였습니다. 

 

AWS ETL 서비스인 GLUE는 서버리스 서비스입니다. 그래서 특정 IP를 잡지 않고 범위를 주는 데요. XXX.XX.X.X/25 라고만 문서 작성된걸 보고 어떻게 아는 거지? 라고 생각했습니다. 보통 이런 걸 인프라 엔지니어에게 맡기다 보니 개념이 부족했죠. 검색하다 보니 전문적인 내용이라 이해가 잘 안가는 경우가 많았습니다. 그래서 사용 IP 주소를 확인하는 방법에 앞서 먼저 인프라 엔지니어가 아닌 제가 이해한 기본 개념부터 정리하도록 하겠습니다. 

 

IP 주소

IP 주소는 호스트마다 하나씩 있으며 반드시 유일해야 합니다. 호스트는 네트워크를 이용하기 위해 네트워크가 연결된 노드(컴퓨터 및 장치)를 의미합니다. 요청에 응답하는 호스트가 서버인 거고요. 

 

글이 좀 샜네요.

IP 주소는 32비트로 관리 됩니다. 192.168.1.2라는 IP 주소에는 .마다 8비트씩 있는 거죠. 그런데 IP 주소는 네트워크 부분과 호스트 부분으로 나누어집니다. 네트워크 부분을 통해서 호스트들이 어디 네트워크에 속하는지 알게 됩니다. 그래서 네트워크 주소는 호스트에 할당할 수 없다고 합니다.

▲네트워크 호스트의 관계

 

넷마스크 - 서브넷 마스크 - CIDR 표기

그런데 IP 주소에서 네트워크와 호스트 부분을 어떻게 구분하느냐? 여기서 네트워크와 호스트를 구분하는 비트 패턴인 넷마스크가 나옵니다. 이때 넷마스크를 통해서 하나의 네트워크를 분할한 그룹을 서브넷이라고 합니다. 이때 사용되는 넷마크스가 서브넷 마스크네트워크 내의 IP 주소를 낭비없이 사용하기 위한 목적이죠.

 

서두에 언급한 XXX.XX.X.X/25에서 Prefix인 25는 서브넷 마스크 비트 수를 의미하며 이와 같이 서브넷 마스크 비트 수를 추가한 표기를 CIDR 표기라고 부릅니다. 즉 CIDR은 1비트 단위로 네트워크를 분할하는 방법을 의미합니다.

 

IP 주소는 32비트입니다. 2^32는 4,294,967,296이죠. 그래서 192.168.1.2/0이라면 사용할 수 있는 IP 주소는 4,294,967,296입니다. 0은 아무 그룹으로도 분할하지 않았다는 것이니깐요. /32이라면 단일 호스트 지정이 됩니다.

 

그럼 이제 프로젝트 문서에서 나온 XXX.XX.X.X/25를 보고 사용 가능한 IP 주소를 판단할 수 있겠죠? 2^32-25 = 2^7 = 128개가 이전 프로젝트에서 Glue로 잡은 IP 수입니다.

 

이상입니다!!!