티스토리 뷰

CIDR이란?


CIDR(Classless Inter-Domain Routing)

클래스 없는 라우팅 기법이며 IP를 좀 더 유연하게 사용할 수 있습니다. 기존의 네트워크 클래스 방법을 대체하고 1993년에 도입되기 시작하였습니다. 또한 빠르게 고갈되고 있는 IPv4를 보다 효율적으로 사용할 수 있습니다.

 

 

IPv4에 대해서

예시

먼저 IPv4에 대해서 까먹으신 분들을 위해 다시 한번 짚고 넘어가겠습니다.

IPv4는 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 프로토콜입니다. IPv4의 주소체계는 총 12자리로 구성되어 있으며 점을 기준으로 네 부분으로 나뉩니다. 또한 각 부분은 0~255까지 3자리의 수로 표현됩니다.

 

또한 IPv4 주소가 고갈되는 상황에서 4배의 비트 수를 가지고 있는 132비트IPv6가 등장하였습니다.

 

 

아래는 IPv4의 패킷입니다.

32비트의 ip 주소가 어디에 쓰이는지 이해를 쉽게 하고자 그림으로 설명드리겠습니다.

IPv4 packet

IPv4 패킷에는 IP header라는 부분이 있습니다. 그 부분에서 ip 주소를 차지하고 있는 source addressdestination address가 각각 32bit, 즉 4 바이트씩 할당되어 있습니다.

 

 

CIDR 블록

A.B.C.D/N

CIDR 블록은 A.B.C.D/N과 같은 형태를 띠고 있습니다. IPv4 주소와 마찬가지로 4개의 8비트 단위 바이트로 이루어진 32비트 이진 숫자입니다. '/' 뒤에 N은 prefix 길이이며 주소의 왼쪽으로부터 비트의 수를 가리키고 있습니다.

 

IPv4는 주소의 길이가 32비트입니다. 따라서 N비트의  CIDR prefix는 32-N 비트의 나머지를 남기며, 남은 비트로로 만들 수 있는 경우의 수는 2^(32-N)라고 할 수 있습니다. 즉, 짧은 CIDR prefix는 더 많은 IP 주소를 가지게 되며, 긴 CIDR prefix는 더 적은 IP 주소를 가지게 됩니다.

 

또한 CIDR는 IPv6 주소에서도 사용될 수 있습니다. 이때 prefix의 길이는 0에서 128까지의 범위를 가지고 있습니다.(0 < N < 128) IPv6도 IPv4처럼 동일한 방식이 적용됩니다. 

 

 

예제

다음 예제를 통해 CIDR에 대해 정확히 이해해보겠습니다.

예시

 

 

 

 

192.168.10.0/24라는 CIDR 블록이 있습니다. prefix길이가 24이므로 192.168.10 부분은 고정입니다.

. 을 기준으로 구간을 나눈다면, 한 구간에는 8비트를 차지하기 때문입니다.

N = 24

 

 

 

 

 

따라서 Host로 사용할 수 있는 IP 주소는 192.168.0 ~ 192.168.255입니다.

하지만 여기서 네트워크와 브로트캐스트 주소를 뺀 192.168.1 ~ 192.168.254 구간을 실질적으로 사용할 수 있습니다.

1 ~ 254

 

 

 

이번엔 더 풀어서 비트단위로 이야기해보겠습니다.

예를 들어 192.168.10.10/24의 네트워크 주소를 알고 싶을 때 다음과 같이 구할 수 있습니다.

 

먼저 192.168.10.10을 2진수로 전환합니다. 그리고 CIDR prefix 수(여기서는 24)만큼 왼쪽에서부터 1을 24개 채웁니다.

다음으로 AND 연산을 하여 192168.10.0이라는 네트워크 주소를 구할 수 있습니다.

예시

 

 

이렇게 prefix의 수를 조절하여 host ip 주소의 개수를 조절할 수 있습니다.

 

반응형