해킹&보안/네트워크 공격패킷 분석

네트워크 공격패킷 분석 1-1-2. 개념: 왜 우리는 /24를 외웠는가

코드라니(CODERANY) 2025. 11. 16. 19:56

참고도서: 방주원, 이정환, 이주 『보안 실무자를 위한 네트워크 공격패킷 분석』, 프리렉

 

목차

IP프로토콜
네트워크 클래스
CIDR 표기법 

 

 

오늘 할 이야기는 IP이야기.

IP가 뭔지 완벽히 뜯어보도록하자.

IP프로토콜 (Protocol)

서로 약속한 규칙으로 언어도 일종의 프로토콜이다. 사회적 약속이니까.

망해버린 프로토콜

 

IP는 32비트로 이루어져있다. 32줄의 0과 1로 이루어져있다는 뜻이다.

그래서 실제로 IP를 2진법으로 표현하면 아래와 같다.

IP는 약 43억(4,294,967,296)개의 주소를 만들 수 있다.

근데 세상에 아뿔싸!

인간 한명이 IP를 요구하는 기계를 n개씩 쓰는 시대가 와버렸다.

그래서 IPv6(128비트)가 탄생했다.

128비트면 340 언데칠리언(340 undecillion)개의 주소를 만들 수 있는데 10^38이라고 한다.

물론 이건 당장 중요하지 않음. 근데 이 글을 2030년에 보는 사람은 중요할 수도.

 

네트워크와 호스트

IP주소는 네트워크와 호스트로 나누어진다.

일반적으로 네트워크는 네트워크끼리 통신을 한다.

그리고 당연히 호스트는 호스트끼리 통신을 한다.

정확히 이야기하면 네트워크 통신이 먼저 진행 된 다음 호스트 통신이 진행된다.

 

?

이거 완전 택배 구조잔아.

택배 보냄

-> 지역 물류센터로 택배 모임

-> 각 물류센터로 택배 도착 주소 분류해서 보냄

-> 각 지역 기사들이 집으로 택배 배송

 

호스트(내 컴퓨터)에서 패킷 보냄

-> 지역 네트워크로 모임

-> 각 네트워크로  패킷 도착 주소 분류해서 보냄

-> 각 지역 네트워크에서 호스트로 패킷 전달

좀 더 구체적으로 설명하면

호스트(내 PC)가 패킷 보냄 → (예: www.naver.com으로 TCP 패킷 전송)

지역 네트워크(내 LAN/내 공유기)에 모임 → (내 컴퓨터 → 스위치 → 공유기)

각 라우터가 ‘네트워크 주소’ 기준으로 분류해서 전 세계로 보냄 → (ISP → 백본 → 다른 ISP → 목적지 ISP)

목적지 네트워크에서 ARP·스위치가 특정 호스트까지 패킷 전달 → (거기 공유기 → 스위치 → 목적지 서버)

 

 

그리고 세상에 아뿔싸 문제가 발생했다.

초장기 라우터는 지금처럼 능력이 좋지 않았다.

 

네트워크 클래스

지금이야 가능하지만, 

예전에는 네트워크를 담당하는 라우터가 43억개를 기억할 수 있는 능력이 없었다.

게다가 네트워크를 인간이 수기로 적어서 관리하기도 했다.

편의성이 필요해진 인간과 라우터를 위해

똑똑이들은 네트워크 클래스를 나누어 만들었다. 

 

네트워크로 1차로 어느 회사로 갈지를 정하고, 호스트로 회사 내 라우터가 2차로 어느 기기로 보낼지를 정하는 방식이었다. 

 

128개의 큰 회사는 0.x.x.x~127.x.x.x IP를 갖도록 해. 그리고 xxx.xxx.xxx 부분(1600만개)은 호스트니까 니네 라우터로 관라하셈.

1만 6천여개 중간 회사는 128.0.x.x ~ 191.225.x.x IP 갖도록 해. 그리고 xxx.xxx 부분(6만 5천개)은 호스트니까 니네 라우터로 관라하셈.

수백만의 작은 회사는 192.0.0.x ~ 223.225.225.x 영역을 가지도록 해. 그리고 xxx부분 (254개)은 호스트니까 니네 라우터로 관라하셈.

224.0.0.0 ~ 239.255.255.255 주소는 방송용임.

240.0.0.0 ~ 255.255.255.255 주소는 연구용임.

 

그래서 원래 43억개를 라우터가 모두 기억해야했지만 약 200만개만 기억하면 되게 되었다. 

 

그게 네트워크 클래스이다. 

네트워크 클래스 범위 네트워크 호스트
A 0.0.0.0~127.255.255.255 w x,y,z
B 128.0.0.0 ~ 191.255.255.255 w, x y, z
C 192.0.0.0 ~ 223.255.255.255 w, x, y z
D 224.0.0.0 ~ 239.255.255.255 멀티캐스트를 위해 예약 -
E 240.0.0.0 ~ 255.255.255.255 연구용/미사용 예약 -

 

 

그리고 세상이 발전했다. 

싸이더 표기(CIDR: Classless Inter-Domain Routing)

문제가 발생했다. IP가 모자라진 것이다. 

원인을 분석해봤더니,

300개의 IP가 필요한 회사가 B클래스를 가져갔던 것이다. B클래스는 6만5천 호스트를 갖는다.

필요한 IP의 양보다 더 많은 주소를 할당 받으니 모자란게 당연하지;

회사도 비상이지;;

그래서 /8이니, /24이니... 하는 CIDR 표기법이라는 것이 생겼다. 

/n이라는건 앞에서부터 n개의 비트가 네트워크라는 의미다.

 

A클래스는 맨 앞 8개의 00000000이 네트워크라는 소리다. 

CIDR로는 0.0.0.0/8이라고 표기한다.

 

앞에서 배운 네트워크 클래스를 CIDR로 표기하면 이렇다.

네트워크 클래스 CIDR
A /8
B /16
C /24

근데 이 네트워크 클래스는 오늘날엔 사라졌다. 

이제 그냥 111.111.111.111/2

이면 맨 앞 두개를 네트워크로 쓰고 나머지 30비트를 호스트로 쓴다는 이야기다.

그래도 개념은 남아서 학생들은 배운다.

 

위에서 말한 300대의 호스트가 필요한 회사 네트워크 말인데, 이제 그냥 이렇게 쓴다. 

000.000.000.000/23

512개 호스트를 쓴다는 이야기다.