서브넷이란?
Subnet = Sub + Network
큰 네트워크 덩어리를 효율적으로 관리하기 위해 작은 단위로 쪼개놓은 네트워크를 말한다.
비유하자면, 커다란 피자 한 판을 혼자 다 못 먹으니까 먹기 좋게 조각조각 나누는 거랑 똑같다.
IP 클래스 = 서브넷의 기본 뼈대
서브넷을 나누기 전에 기본적으로 IP가 어떻게 분류되는지 알아야 한다.

이미지를 보면 A 클래스 ~ E 클래스 까지 있다. 벤츠처럼 나눠져있다 ㅋㅋ
- Class A: 엄청 큰 규모. 첫 번째 덩어리(8비트)만 네트워크 주소로 쓴다.
- Class B: 중간 규모. 두 번째 덩어리(16비트)까지 네트워크 주소로 쓴다.
- Class C: 소규모. 세 번째 덩어리(24비트)까지 네트워크 주소로 쓴다.
- Class D: 멀티캐스트(방송용) 주소로 사용한다.
- Class E: 연구나 미래를 위해 남겨둔 실험용 주소다.
서브넷 마스크: "여기까지가 우리 네트워크 이름이야"
서브넷 마스크는 말 그대로 IP 주소 위에 씌우는 마스크(필터)라고 생각하면 된다.
Ip 주소 중 어디까지가 네트워크 ID이고 어디서부터가 실제 장비의 번호인 호스트 ID 인지 구분하는 역할을 한다.
서브넷 마스크의 생김새
1. IP 주소처럼 32비트 숫자로 이루어져 있다.
2. 특징은 1이 연속해서 나오다가 0으로 끝나는 형태
3. 1이 있는 부분은 네트워크 영역, 0이 있는 부분은 호스트 영역이다.
클래스별 기본 마스크
- Class A: 255.0.0.0
- Class B: 255.255.0.0
- Class C: 255.255.255.0
프리픽스 표현법
255.255.255.0처럼 쓰기 귀찮으니까, 앞에서부터 1이 몇 개인지만 적는 방식이다.
ex) /24는 앞에서부터 1이 24개 있다는 뜻이다.
서브네팅: "본격적으로 피자 조각 나누기"
서브네팅은 하나의 큰 네트워크를 여러 개의 작은 서브넷으로 쪼개는 과정을 말한다.
IP 주소가 낭비되는 걸 막기 위해 사용하는 아주 중요한 기술이다.
호스트 영역의 비트를 빌려와서 네트워크 영역으로 만들어버리는 것이 핵심이다.
서브네팅할 때 꼭 알아야 할 3가지 주소
1. 네트워크 주소: 서브넷의 시작 주소다. 호스트 비트가 모두 0인 상태
2. 브로드캐스트 주소: 서브넷의 마지막 주소다. 호스트 비트가 모두 1인 상태다.
3. 호스트 주소: 실제로 우리가 컴퓨터나 스마트폰에 부여할 수 있는 IP다.
( 시작과 끝 주소를 제외한 사이의 주소들이다)
계산공식
전체 주소 개수: 2^n
실제 사용 가능한 호스트 수: 2^n-2 ( 네트워크 주소와 브로드캐스트 주소 2개는 못쓴다)
서브넷 개수: 2^x
한눈에 보는 요약 표
| 구분 | 의미 | 특징 |
| 네트워크 주소 | 서브넷의 시작 번호 | 호스트 비트 모두 0, 할당 불가 |
| 브로드캐스트 주소 | 서브넷의 마지막 번호 | 호스트 비트 모두 1, 할당 불가 |
| 사용 가능한 호스트 | 우리가 쓸 수 있는 IP | 전체 개수에서 2를 뺀 범위 |
| 서브넷 마스크 | 영역 구분 필터 | 1은 네트워크, 0은 호스트 영역 |
실전 문제를 풀어보자

A 클래스는 IP 주소의 첫 번째 덩어리만 네트워크 이름으로 쓰기 때문에, 해당 부분만 255로 채운 255.0.0.0이 정답이다.
참고로 문제가 B 클래스 였다면 255.255.0.0 C 클래스 였다면 255.255.255.0이다. 4번은 없다.

/25는 앞에서부터 1이 25개 있다는 뜻이다. C 클래스 기본인 24개에 1개를 더 빌려온 것이므로,
마지막 8비트가 10000000이 되어 128이 된다. 3번

그러면 이 문제는 /26이니깐 ~ 2개를 빌려왔고, 11000000 즉 192다~ 1번

"26개의 서브넷으로 나누고" << 26개의 서브넷을 만들려면 최소 5비트가 필요함. 2^5 = 32니깐 26 수용 가능
8비트 중 5비트를 빌리면 남은 호스트 비트는 3비트다. 가용 호스트 수는 2^3 -2 =6개, 충분히 연결 가능 (요구 사항 4~5임)
C 클래스니깐 /24였는데 5비트 더하면 /29가 됨. 마지막 옥텟은 11111000 즉 248 , 4번

B 주소 기본 서브넷 마스크는 255.255.0.0이다.
문제에서 주어진 마스크는 255.255.255.240이므로, 기본보다 비트를 더 빌려왔음
서브넷 수 계산 빌려온 비트 개수를 구해보자.
세 번째 옥텟에서 8비트 모두 빌렸고, 네 번째 옥텟을 이진수로 바꾸면 11110000 , 즉 4비트 더 빌렸다
빌려온 비트는 12비트다. 그러면 2^12승이다. 4096개인데, -2를 빼서 4094다.
호스트 수 계산 네 번째 옥텟에서 남은 비트 확인해 본다. 11110000에서 뒤의 0000, 즉 4비트가 호스트 비트다.
2^4 -2를 하면 14개가 나온다 답은 3번이다.
요약하자면, 빌려온 비트가 12개라서 서브넷은 4094개, 남은 비트가 4개라서 호스트는 14개가 되는 원리다

B 클래스 기본 마스크는 255.255.0.0, 6개의 서브넷을 만들려면 3비트를 빌려야 한다.
11100000 , 224 따라서 2번이다.

C 클래스 기본인 /24 네트워크를 4개로 나누라 했다. 4개를 만들려면 2비트를 빌려와야 한다
새로운 프리픽스는 /26
그러면 호스트 비트가 8게에서 2개를 줬으니 6개 남았고, 2^6 = 64개
네트워크는 0,64,128,192 순서로 시작함
네트워크 주소: 192.168.1.192 브로드캐스트 주소: 192.168.1.255
192는 네트워크 주소니깐 사용을 못함! 즉 193이 첫 번째다. 196이 4번째 3번이다.

10개의 서브넷 = 4비트, 호스트 비트 8개 중 4개를 빌렸으니 4개 남고 한 블록의 크기는 2^4 = 16개
즉 네트워크 주소는 0,16, 32, 48 . . . 순서다
10번째 네트워크 주소와 브로드캐스트 주소 찾으면 된다
0번부터 시작하므로 10번째 네트워크 주소는 144다. 200.1.1.144
브로드 캐스터 주소는 다음 네트워크 주소 -1 = 160 - 1 = 159
즉 1번이다. 근데 이 문제는 딱 봐도 1번 이긴 한데, 이런 형태로 푸는 거다.
요약하자면, 한 블록이 16개씩인 서브넷에서 0부터 시작해 10번째 그룹 찾고, 그 그룹의 마지막 번호인 159 고르면 끝

서브넷 마스크 255.25.255.192 , 마지막 옥텟은 11000000 , 한 블록의 크기는 2^6 = 64개
네트워크 범위를 파악해 보자. 네트워크 주소가 192.168.100.128이라고 주어졌죠?
이 네트워크는 128번부터 시작해서 64개의 주소를 가진다. 즉 다음 네트워크 주소는 128+64 = 192다
그러면~ 다음 네트워크 주소의 바로 앞 번호인 192.168.100.191 << 이게 브로드 캐스트 주소고
브로드 캐스트 주소의 앞 번호인 190이 마지막 주소이다~ 퐁당퐁당이다
네트워크 / 브로드 / 네트워크
190 / 191 / 192
2번

서브넷 마스크 ,192면 한 블록이 64개씩 쪼개진다. 64,128,192 ....
그러면 주어진 IP 주소는 157 , 세 번째 조각인 128~191 범위죠?
브로드 캐스트 주소는 맨 마지막 번호니깐 정답 4번

/24 네트워크를 최소 6개로 나누려면 2^3 , 3비트를 추가로 빌려야 한다.
남은 호스트 비트가 2^5 -2 = 30대이므로, "호스트 20대 이상" 조건도 통과
즉 24+3 = 27 3번

컴퓨터 A와 B의 차이는 마지막 숫자가 1, 65라는 점이다.
"서로 다른 서브넷" << 이 문제의 핵심이다.
/24 << 한 동네에 0~255까지 다 산다. A와 B는 같은 동네다
/25 << 동네를 반으로 쪼갠다. 0~127 / 128~255 , 그래도 같은 동네다
/26 << 동네 4등분 한다. 0~63 / 64~127 / 128~191 / 192~255
어? /26은 동네가 달라졌네? 그러면 /26은 뭐지? 11000000 3번이다.
핵심 공식 다시 보기
- 서브넷 개수: 빌려온 비트를 2^x 하면 된다.
- 호스트 개수: 남은 비트를 2^n - 2 하면 된다. (네트워크/브로드캐스트 주소 제외)
- 증가폭(블록 크기): 256에서 서브넷 마스크 값을 빼면 바로 나온다.
문제 풀이 팁
- A/B/C 클래스 기본 마스크를 먼저 확인하자.
- 브로드캐스트 주소는 해당 그룹의 맨 마지막 번호다.
- 사용 가능한 IP를 물으면 네트워크 주소와 브로드캐스트 주소 사이만 세면 된다.
지금까지 서브넷 마스크의 개념부터 실전 문제 풀이까지 모두 정리해 봤다.
결국 핵심은 '어디서 비트를 빌려오고, 한 조각이 몇 개인가'를 찾는 싸움이다.
다음에도 유익한 정보로 돌아오겠습니다.
문제 출처:
https://youtu.be/vPDQ4BpfymI?si=BZ8YrKLPx4IoOiGZ
'Infra > 네트워크' 카테고리의 다른 글
| 패킷 트레이서(Packet Tracer)란? (0) | 2026.01.15 |
|---|---|
| ARP(Address Resolution Protocol)란? (0) | 2026.01.14 |
| 주소창에 맨날 치는 URL, 도대체 무슨 뜻일까? (0) | 2025.11.20 |
| TCP vs UDP & 가상회선 vs 데이터그램 (0) | 2025.10.23 |
| 스푸핑 vs 스니핑 vs 스누핑 확실한 차이점은? (0) | 2025.10.13 |