네트워크를 공부할 때 반드시 알아야 하는 개념이 바로 IP 주소 할당 방식이다.
초기 클래스 기반의 비효율적인 방식에서 현재의 효율적인 클래스리스 체계로 어떻게 변화해 왔는지, 그리고 실무에서 필수적인 서브넷 계산법까지 알아보자.
IP 주소 체계를 이해하려면 먼저 서브넷 마스크를 알아야 한다.
IP 주소는 하나의 덩어리가 아니라, '어느 동네(네트워크)'의 '어느 집(호스트)'인지를 나타내는 두 부분으로 구성된다.
1. 서브넷 마스크(Subnet Mask)란?
마스크(Mask)는 '가린다'는 뜻이다.
서브넷 마스크는 총 32비트의 연속된 1과 연속된 0으로 이루어져 있다.
1로 표시된 부분은 네트워크 영역, 0으로 표시된 부분은 호스트 영역을 의미한다.
따라서 32비트로 이루어진 IPv4 주소에 32비트 서브넷 마스크를 AND 연산으로 덮어씌우면,
네트워크 부분만 남고, 호스트 부분은 완전히 가려진다.
🟢 서브넷 마스크 예시: 192.168.1.10 / 255.255.255.0
만약 내 컴퓨터의 IP가 192.168.1.10이고 서브넷 마스크가 255.255.255.0이라면 다음과 같이 해석된다.

- 네트워크 부분: 앞의 세 옥텟(192.168.1)이 네트워크 주소다.
같은 네트워크에 있는 기기들은 이 부분이 모두 같아야 통신이 가능하다. - 호스트 부분: 마지막 옥텟(.10)이 해당 네트워크 내의 개별 기기 식별 번호다.
- 원리: 서브넷 마스크를 2진수로 변환했을 때 1로 채워진 부분은 네트워크, 0으로 채워진 부분은 호스트 영역이 된다.
💡 CIDR 표기법 (사이더)
마스크가 255.255.255.0이라면 이진수로 1이 앞의 24비트를 차지하고 있다는 뜻이며, 이를 간단히 프리픽스(Prefix) 표기법으로 /24라고 부른다.
☑️ 사용 가능한 IP의 개수 구하기
그러면 192.168.1.0/24 네트워크에서 사용 가능한 IP 주소의 개수는 어떻게 구할까?
서브넷 마스크에서 0은 호스트 영역으로 숫자가 바뀔 수 있는 영역이다.
- 1이 나열된 구간: 네트워크 ID (변경 불가)
- 0이 나열된 구간: 호스트 ID (사용자 할당 가능)
따라서 0의 개수를 n이라고 할 때, 만들 수 있는 모든 조합의 수는 2의 n 제곱이다.

그런데 전체 IP가 256개라고 해서 256대의 호스트에 전부 할당할 수 있는 것은 아니다.
두 가지 특수 주소를 제외해야 하기 때문이다.
- 네트워크 주소 (첫 번째 주소): 호스트 비트가 모두 0인 주소. 네트워크의 이름표와 같은 역할이라 기기에 할당 불가.
- 브로드캐스트 주소 (마지막 주소): 호스트 비트가 모두 1인 주소. 네트워크 전체에 브로드캐스트할 때 쓰는 주소라 기기에 할당 불가.

따라서 실제로 컴퓨터나 서버에 부여할 수 있는 유효 IP 개수는 2^n-2이다.
2. 클래스 기반(Classful) 네트워크: 초창기 방식
IP 주소 체계의 초창기에 사용되었던 방식이다.
IP 주소를 A, B, C 등의 클래스로 나누고, 정해진 고정 크기의 블록으로 할당했다.
- 특징: 기본 마스크가 /8, /16, /24로 고정되어 있다.
- 문제점: 필요한 호스트 수보다 훨씬 큰 블록을 할당받아야 하는 경우가 많았다. 예를 들어 PC 10대만 사용하려 해도 /24(254개) 단위를 할당받아야 했으므로, 남는 IP 주소는 버려진다.
- 한계: 필요한 만큼만 쪼갤 수 없어서 IPv4 주소 고갈 문제를 가속화했다. 하나의 네트워크에서 주소가 남아도 다른 네트워크에서 가져다 쓸 수 없는 구조이기 때문이다.
2. 클래스리스(Classless)와 CIDR: 효율적 방식으로 전환
클래스풀 방식의 낭비 문제를 해결하기 위해 등장한 것이 CIDR(Classless Inter-Domain Routing)이다.
현재 인터넷과 기업 내부망에서 사용하는 표준 체계다.
CIDR의 특징
- 유연한 할당: 고정된 클래스 없이 프리픽스(/n)를 사용하여 필요한 크기만큼 호스트 주소를 할당한다.
- 경로 요약(Aggregation): 라우팅 테이블의 크기를 줄여 효율적인 라우팅을 가능하게 한다.
- 표기법: IP 주소 뒤에 /와 함께 네트워크 비트 수(프리픽스 길이)를 적는다.
- 예: 192.168.1.0/24
- 예: 1.1.1.0/30 (한 네트워크에서 4개의 IP만 사용)
3. 서브넷팅(Subnetting)이란?
"서브넷팅이 되었다"라는 말은 호스트 비트의 일부를 빌려와 네트워크 비트로 사용하여 네트워크 ID의 길이를 확장했다는 것을 의미한다.
기본적인 C클래스 네트워크(192.168.1.0/24)의 구성은 다음과 같다.
- 기본 구성 (/24): 네트워크 (24 bit) + 호스트 (8 bit)
- 생성 가능한 네트워크 수: 1개
- 네트워크 당 호스트 수: 2^8 - 2 = 254개
여기서 네트워크를 4개로 분할하고 싶다면, 호스트 비트에서 2비트를 빌려와 네트워크 비트로 전환한다.

- 서브넷팅 구성 (/26): 네트워크 (24 bit + 2 bit) + 호스트 (6 bit)
- 서브넷 마스크: /26 (255.255.255.192)
- 생성된 서브넷 수: 2^2 = 4개
- 서브넷 당 호스트 수: 2^6 - 2 = 62개
기본(/24) 호스트 수 256개를 4개 네트워크로 나누면 하나의 서브넷 당 64개의 IP 주소가 생긴다.
각 네트워크의 IP 주소 범위는 다음과 같다.
Network #1 : 192.168.1.0~63/26
Network #2 : 192.168.1.64~127/26
Network #3 : 192.168.1.128~191/26
Network #4 : 192.168.1.192~255/26
🟢서브넷팅의 목적
- IP 주소 낭비 방지: 필요한 호스트 수에 맞춰 네트워크 크기를 최적화한다.
- 브로드캐스트 도메인 축소: 네트워크를 잘게 쪼개어 브로드캐스트 트래픽으로 인한 성능 저하를 막는다.
- 보안 및 관리 효율성: 부서별 혹은 용도별로 네트워크 세그먼트를 논리적으로 분리한다.
'Journey to Security > 네트워크' 카테고리의 다른 글
| [Cisco IOS] VLAN 나누고 스위치 포트 설정해서 통신하기 (Trunk 모드) (0) | 2026.03.07 |
|---|---|
| [Cisco IOS] CLI 환경을 쾌적하게 세팅해주는 명령어 (0) | 2026.03.06 |
| Cisco Packet Tracer로 라우팅 테이블 조회하고 분석하기 (0) | 2026.03.06 |
| 시스코 패킷 트레이서에서 L3 스위치로 라우팅하기 (0) | 2026.03.06 |
| 우분투에 FTP 클라이언트 파일질라(FileZilla) 설치하고 실행해보기 (0) | 2026.01.13 |