CIDR이란 Classless Inter-Domain Routing 의 약자로 클래스 없는 도메인간 라우팅 기법이라는 뜻이다. 보통 네트워크 영역을 다룰때 많이 등장하는 개념인데, 네트워크 상에서 어떤 IP들이 동일한 네트워크 범위에 속하는지를 표현하는 표기법이다.
또한, 클래스가 없다는 뜻은 네트워크 구분을 Class로 하지 않는다는 것을 의미한다. Class는 CIDR가 나오기전 사용했던 네트워크 구분 체계다. CIDR 라는 개념이 나오면서 Class 체계보다 더 유연하게 IP주소를 여러 네트워크 영역으로 나눌 수 있게 되었다.
CIDR 이전에 전통적인 Class 기반으로 네트워크 구분은 아래와 같이 진행되었다.
Classful Addressing
CIDR가 등장하기 전에는 Classful Addressing(Class 기반 주소 체계) 라는 방식을 사용하여 네트워크를 구분했다.
1980년대 초반 인터넷이 막 보급되기 시작했을 당시에는 지금처럼 개인이 여러 대의 컴퓨터를 사용하는 환경이 아니었다.
대부분의 컴퓨터는 대학, 연구소, 군, 정부 기관, 대기업 등과 같은 공공기관이나 대규모 조직에서 운영되었으며, 현재와 비교하면 인터넷에 연결되는 컴퓨터의 수도 매우 적었다. 하지만 인터넷에 연결되는 기관이 하나둘씩 늘어나면서 새로운 문제가 생겼다.
각 기관마다 사용할 IP 주소를 어떤 기준으로 나누어 줄까?
IP 주소는 단순히 하나의 컴퓨터를 식별하는 번호가 아니라 어느 네트워크에 속해 있는지 와 그 네트워크 안에서 어떤 장치인지(Host) 를 함께 표현해야 한다. 예를 들어 다음과 같은 IP 주소가 있다고 가정해보자.
192.168.10.25
사람은 직관적으로 192.168.10이 네트워크이고 25가 장치 번호처럼 보이지만, 컴퓨터는 어디까지가 네트워크이고 어디부터가 호스트인지 알 수 없다.
이를 해결하기 위해 당시에는 IP 주소의 첫 번째 숫자를 기준으로 네트워크 크기를 미리 정해 놓는 방식을 사용했다. 이를 CIDR가 나오기 이전에 주소체계인 Class 기반 주소 체계(Classful Addressing) 라고 한다.
Class 기반 주소 체계에서는 첫 번째 옥텟(Octet)의 값을 보고 자동으로 네트워크 영역과 호스트 영역을 구분했다.
- Class A : 첫 번째 옥텟이
1 ~ 126 - Class B : 첫 번째 옥텟이
128 ~ 191 - Class C : 첫 번째 옥텟이
192 ~ 223
예를 들어 10.0.0.1이라면 첫 번째 옥텟이 10이므로 Class A 네트워크가 되고, 172.16.0.1은 Class B, 192.168.10.1은 Class C 네트워크로 자동 판단하였다. 각 Class는 네트워크와 호스트 영역의 크기가 고정되어 있었다.

당시에는 별도의 서브넷 마스크를 전달하지 않아도 첫 번째 옥텟만 보면 어느 부분이 네트워크이고 어느 부분이 호스트인지 바로 알 수 있다는 장점이 있었다. 시간이 지나면서 Class 기반 주소 체계는 치명적인 문제가 있었는데, 예를 들어 어떤 회사에서 300개의 IP 주소만 필요하다고 가정해보면 아래와 같은 이슈가 있었다.
- Class C는 최대 254개까지만 사용할 수 있기 때문에 부족함.
- 그렇다고 Class B를 할당받으면 65,534개의 IP 주소를 할당받아야함. -> 비효율적
즉, 실제로는 300개만 필요하지만 6만 개가 넘는 IP 주소를 할당받게 되어 대부분의 주소가 낭비되는 문제가 발생했다. 이처럼 Class 기반 주소 체계는 정해진 크기(A, B, C.. 개념 )로만 네트워크를 할당할 수 있었기 때문에 IP 주소 공간을 매우 비효율적으로 사용한다는 문제가 있었다. 이 문제를 해결하기 위해 등장한 개념이 바로 CIDR(Classless Inter-Domain Routing) 이다.
CIDR (Classless Inter-Domain Routing)
Class 기반 주소 체계는 A, B, C처럼 미리 정해진 크기의 네트워크만 할당할 수 있었기 때문에 필요한 IP 주소보다 훨씬 많은 주소를 할당받는 경우가 많았다.
이러한 문제를 해결하기 위해 등장한 개념이 바로 CIDR다. CIDR는 이름 그대로 Class를 사용하지 않고 네트워크를 구분하는 방식을 말한다. 기존에는 네트워크에 크기를 Class A, B, C 중 하나로만 선택할 수 있었는데, CIDR는 필요한 만큼 네트워크를 자유롭게 나누어 사용할 수 있도록 설계되었다.
예를 들어 300개의 IP 주소가 필요한 경우를 생각해보면, Class 기반 주소 체계에서는 Class C(254개)는 부족하고, 결국 Class B(65,534개)를 할당받아야 했다. 하지만 CIDR에서는 /23과 같이 필요한 크기의 네트워크를 직접 정의할 수 있기 때문에 약 512개의 IP 주소만 할당받으면 된다. 즉, 기존처럼 수만 개의 IP 주소를 낭비하지 않고 필요한 만큼만 사용할 수 있게 된다.
CIDR는 다음과 같이 IP 주소와 Prefix Length 를 함께 표기한다. 예를들어 아래와 같이 IP가 표기 되어 있다고 하면,
192.168.10.0/24
여기서 앞의 192.168.10.0은 네트워크 주소이고, 뒤의 /24는 32비트 IPv4 주소 중 앞의 24비트를 네트워크 영역으로 사용한다는 의미이다. 즉, /24는 다음과 같이 해석할 수 있다.
- 전체 IPv4 주소는 32비트
- 앞의 24비트는 네트워크
- 나머지 8비트는 호스트
따라서 호스트 영역은 8비트가 되며,
2⁸ = 256
256개의 IP 주소를 가질 수 있다.
마찬가지로 /16이라면 호스트 영역이 16비트가 되어 약 65,536개의 IP 주소를 사용할 수 있고, /28이라면 호스트 영역이 4비트이므로 총 16개의 IP 주소를 사용할 수 있다. 즉, CIDR의 핵심은 "네트워크 영역을 몇 비트까지 사용할 것인지"를 직접 지정하여 필요한 크기의 네트워크를 만드는 것이라고 이해하면 된다. 이러한 방식 덕분에 현재의 인터넷과 클라우드 환경(AWS, Azure, GCP 등)에서는 대부분 CIDR 기반으로 네트워크를 구성하고 있다.
[출처]
Introduction of Classful IP Addressing - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
www.geeksforgeeks.org
[네트워크] CIDR이란?(사이더 란?)
오늘은 CIDR에 대해서 설명해보도록 하겠습니다. 네트워크 설계를 하면서 가장 많이 접하게 될 개념이 CIDR입니다. 사이더라고 부릅니다. CIDR의 full name은 Classless Inter-Domain Routing 으로 클래스 없는
kim-dragon.tistory.com