Post

CIDR

CIDR

CIDR (Classless Inter-domain Routing)

발음부터 다양하다 CIDR, 씨더, 사이다, 등등…

CIDR 은 TCP/IP 스택 기준 인터넷 계층 (internet layer) 에서 사용되는 IP 주소 할당/부여/묶음 방식이다.

보통 하나의 네트워크 안에서 각각의 호스트를 식별하기 위해 호스트에게 각각 IP 주소를 부여해주어야 하는데 이때 CIDR 을 사용한다.

배경

먼저 CIDR 대해 더 알아보기 전에 배경지식이 도움이 될 것 같다. 도대체 이름이 뜻하는 바가 무엇인가? Classless Inter-domain Routing. Classless 는 class 가 없다는 건데. 뭔가 안좋아보이지 않나?

사실 CIDR 이 생겨나기 전에는 class 를 기반으로 한 형식이였다. 예를 들어 IPv4 주소를 살펴보면 4개의 숫자가 점으로 나뉘어져 있다. 그리고 각각의 숫자는 0 또는 1에서 255 이다.

1
2
3
4
127.0.0.1
96.14.0.45
123.123.123.123
...

모든 IP 주소는 해당 네트워크 안에 호스트들이 공통적으로 갖는 네트워크 주소 (앞부분) 와 호스트의 주소 (뒤부분) 로 나눌 수 있다.

예를 들어 아래 주소들은 127.56.12 가 네트워크의 주소이고 마지막 블록 0, 1, 2, 3 이 호스트 주소 부분이다.

1
2
3
4
127.56.12.0
127.56.12.1
127.56.12.2
127.56.12.3

이때 클래스 기반 할당은 IP 주소들을 클래스 A, B, C 로 나눈다. (사실 D 와 E 도 있지만 여기서 다루지는 않겠다. “IP address classes” 을 검색하면 더 자세히 볼 수 있다.)

클래스 A 는 첫번째 블록 즉 첫번째 8 비트들이 네트워크 주소가 된다. 이렇게 될 경우 나머지 24 비트들은 호스트 주소로 사용한다.

클래스 B 는 첫번째 블록에서 두번째 블록 즉 첫번째 16 비트들이 네트워크 주소가 된다. 이렇게 될 경우 나머지 16 비트들은 호스트 주소로 사용한다.

클래스 C 는 첫번째 블록에서 세번째 블록 즉 첫번째 24 비트들이 네트워크 주소가 된다. 이렇게 될 경우 나머지 8 비트들은 호스트 주소로 사용한다.

클래스 기반의 단점

클래스 기반 할당의 단점은 유연하지 못 하다는 것 이다.

예를 들어 어떤 단체, 기업 또는 개인이 300 개의 호스트를 가지는 네트워크를 구성해야 할 경우 클래스 C 주소는 사용 할 수 없다.

클래스 C 는 총 254 개의 주소 만 제공한다 (원래는 256 개의 주소가 가능하지만 하나는 라우터용 다른 하나는 브로드케스트용이다).

그러므로 다음으로 큰 클래스 B 주소를 사용한다 (클래스 B 는 최대 65,534 개까지 호스트 주소 제공). 이렇게 했을 경우 300 개의 호스트 주소를 제외한 나머지 65,234 개의 호스트 주소는 낭비가 된다.

또한 두개 이상의 네트워크를 묶을 수 없는 단점이 존재 한다. 예를 들어 두개의 네트워크 주소가 존재한다고 가정하자.

  • 192.168.1.0
  • 192.168.0.0

클래스 기반 주소 포멧은 이 두개의 네트워크를 하나의 더 큰 네트워크 주소로 변환시켜 줄 수 없다. 왜냐하면 네트워크 주소는 8 비트 단위로 쪼개지기 때문이다. 예시의 주소들은 각각 세번째 주소 블록이 0000 0001 하고 0000 0000 이다. 그렇기 때문에 8비트 단위에서 주소지가 불일치한다.

CIDR 사용하는 이유

CIDR 은 기존의 클래스 기반을 버리고 비트 단위로 주소 할당을 할 수 있다.

아래의 주소 표기는 CIDR 표기 방법이다.

1
2
3
4
5
192.0.0.0/8
192.160.0.0/12
192.168.0.0/16
192.168.160.0/20
192.168.1.0/24

예를 들어 192.160.0.0/12 이 표기법을 살펴보자. 여기서 /12 은 첫번째 12비트가 네트워크 주소지가 된다는 의미이다. 그말은 나머지 20비트는 호스트 주소다. 이렇게 8비트 단위로 나눠지지 않고 1비트 단위로 나눌 수 있기 때문에 위에서 언급한 클래스 기반의 단점들을 해결 할 수 있다.

Reference

  • https://aws.amazon.com/what-is/cidr/
This post is licensed under CC BY 4.0 by the author.