CIDR 쉽게 이해하기

 

IP주소 라고하면, 4개의 숫자로 이루어진 조합이라고 익히 알고 있습니다. 그런데 간혹 IP를 설정하는 데 끝자리 뒤에 ‘/’ 표시를 해놓고는 숫자 하나를 더 입력해야할 때가 있습니다.

 

또는 CIDR notation 방식으로 IP 주소를 표기하게끔 하는 경우도 종종 볼 수 있습니다.

 

1. CIDR의 등장배경


CIDR, 발음할때는 사이더라고 하고 정확한 명칭은 ‘Classless Inter-Domain Routing’입니다. IP 주소의 개수는 대략 $2^{32}$개로 한정되어 있고, 전체 IP 주소구간은 인터넷 사용자들에게 고유한 IP 대역으로 조각조각내어 배정됩니다.

 

“Classless” Routing일까?

 

과거에는 ‘네트워크 클래스’라는 개념을 도입하여 조각난 IP대역의 규모와 용도를 5개의 분류(A~E)로 구분지어 놓았습니다(참고: https://citizen.tistory.com/56). 다만, 기존에 정의되었던 클래스는 그 가짓수가 매우 적습니다. 필요한 IP의 개수가 애매하게 적거나 넘치면 다른 클래스를 사용해야하는데 그러면 또 할당받게되는 IP 개수가 너무 많아지거나 부족해지는 문제가 발생합니다.

 

예를 들어 사무소에 500개 정도의 PC가 들어와야한다고 칩시다. Class C는 최대 256개의 IP만 지원하고, Class B는 한번에 65536개의 IP를 커버할 수 있는 대역을 제공합니다. 이 경우에 Class C를 쓰기에는 여유 IP 개수가 모자라고, 반대로 Class B를 쓰게 되면 6만여 개가 넘는 IP가 남아돌게 되죠. 말그대로 극심한 IP 자원 낭비입니다.

 

이러한 네트워크 클래스 체계의 비효율성을 극복하고자, CIDR라는 더 유연한 IP 대역 할당 규칙이 제시된 것입니다.

 

2. CIDR 표기 방식


/’ 다음에 나타날 CIDR 접미사는 0~32 내의 정수값이 될수 있습니다. IP 주소는 4개의 숫자로 구성되어 있지만, 실제로 이를 2진수로 풀어보면 32자리의 숫자 조합으로 치환됩니다.

 

CIDR 값은 나열된 32자리 중에서 앞에서부터 몇개의 숫자가 고정값인지를 의미합니다. 예를 들어, 192.168.54.0/24의 IP 주소를 풀어보면 11000000 10101000 00110110 00000000 가 되고, 앞의 24개의 자리가 고정값이 됩니다. 그에 반해 제일 끝부분 00000000 영역에는 아무 숫자나 들어가도 상관없습니다. 따라서 192.168.54.0/24는 아래의 IP 주소 범위를 갖게되는데요.

 

이를 다시 보기좋게 10진법으로 나타내면 192.168.54.0 ~ 192.168.54.255 라는 총 256개의 IP 주소를 아우르는 영역을 갖게 됩니다.

 

이번에는 192.168.54.0/25를 해석해본다면, 앞에서부터 25개의 자리가 고정이고 남은 뒷부분의 7개 자리만 0또는 1이 무작위로 들어갈 수 있습니다.

(Fixed digits과 Free digits이 정확한 명칭은 아니지만 이해를 돕기위해서 위와 같이 표현하였습니다)

 

따라서 허용되는 IP 주소 범위는 192.168.54.0 ~ 192.168.127총 128개의 IP 주소를 자유롭게 활용할 수 있습니다.

 

추가적인 예시들은 다음과 같습니다. 192.168.0.0/16 이나 192.0.0.0/8을 각각 192.168.54.0/16, 그리고 192.168.54/8로 표기하지 않는 이유는 Free digit에 해당하는 자리를 0으로 채워야 하기 때문이니 주의해주세요.

 

3. 서브넷 마스크와의 연관성


CIDR은 일반인들이 알기 어렵기에, 보통 Windows나 Linux에서는 초기 IP를 설정할 때는 서브넷 접두사 길이 또는 netmask라는 표현으로 대체합니다.

 

서브넷 접두사 길이

Windows 11나 일부 개발환경에서는 아래와 같이 '/' 뒤에 나올 숫자를 입력으로 받기도 합니다.

 

서브넷 마스크 (Subnetmask, 또는 줄여서 Netmask)

Linux 또는 Windows 제어판 > 네트워크 연결 탭에서 직접 IP를 설정할 경우에는 서브넷마스크라는 숫자를 입력받습니다.

 

IP주소와 동일하게 4개의 숫자로 이루어져 있으며, 이 숫자 역시 2진수로 풀어보면 규칙을 쉽게 이해할 수 있습니다. 서브넷마스크에서 '1'로 표기되는 자릿수는 CIDR의 고정값(Fixed digit)이며, 그리고 '0'으로 표기되는 자릿수는 Free digit에 해당합니다.

 

255.255.255.011111111 11111111 11111111 00000000이고, 여기에 1로 표기된 자리는 Fixed bit, 나머지(뒷부분 8자리)는 Free bit에 해당합니다. 그래서 서브넷 마스크 255.255.255.0은 CIDR로 변환하면 /24와 동일한 것입니다.

 

마찬가지로 255.255.255.24011111111 11111111 11111111 11110000이므로 CIDR로 치면 /28인 셈이구요. 서브넷 마스크와 이에 대응하는 CIDR 값은 아래 표에 정리되어 있습니다.

 

 

4. 실제 사용가능한 IP 주소의 가짓수?


앞서 설명에서는 빠른 이해를 돕기 위해서 가용할 수 있는 IP의 개수를 /24 에서는 256개, /25에서는 128개라는 식으로 2의 지수승 형태를 갖는 것처럼 이야기했었습니다. 틀린 말은 아니지만, 실제 호스트에게 부여할 수 있는 IP의 가짓수는 여기서 2개가 더 제외된 $2^n - 2$ 형태가 되어야 합니다.

 

바로 위의 테이블만 보셔도 아시다시피, 총 IP개수보다 실제 사용가능한 IP 개수는 2개가 더 적습니다. 그 2개는 IP 대역마다 각각 네트워크 식별용, 그리고 브로드캐스팅용으로 따로 빼두고 있습니다.

 

네트워크 식별용 주소

해당 네트워크를 대표하는 주소로, 배정된 IP 대역에서 제일 첫번째 IP 주소입니다. Free bit이 모두 0인 것이 특징이며, 192.168.54.0/24 대역에서 192.168.54.0이 네트워크 식별용 주소입니다.

 

브로드캐스팅용 주소

같은 네트워크에 속하는 모든 이들에게 데이터 패킷을 전송할 때 사용하는 주소입니다. 네트워크 통신을 물론 1:1로 하는 것이 가장 정석이겠지만, 때로는 전체 호스트에게 메시지를 보내는 브로드캐스팅 기능도 지원되어야만 합니다. ARP(Address Resolution Protocol)가 대표적인 예시죠.

 

브로드캐스팅용 주소는 IP 대역에서 제일 마지막 주소로 Free bit가 모두 1로 표기됩니다. 192.168.54.0/24 대역에서는 192.168.54.255 가 브로드캐스팅용 주소입니다. 패킷의 목적지 IP를 192.168.54.255로 설정하게 되면, Usable IP에 해당하는 192.168.54.1부터 192.168.54.254에게 빠짐없이 패킷이 전달됩니다.

반응형