본문 바로가기

Programming & Network/Network

CIDR(Classless Inter-Domain Routing)

정의

클래스 없는 도메인 간 라우팅 기법이라는 뜻입니다. 클래스가 없다는 뜻은 네트워크 구분을 아래 클래스 구분(IPv4주소 구성)과 같이 Class로 하지 않는다는 것입니다. Class는 사이더가 나오기 전 사용했던 네트워크 구분 체계입니다. 사이더가 나오면서 Class 체계보다 더 유연하게 IP주소를 여러 네트워크 영역으로 나눌 수 있게 되었습니다.

 

 

IPv4주소

 

클래스 구분 (IPv4주소 구성)

. Network Address : 그룹 (네트워크를 식별하기 위한 것)

. Host Address : 개인 (네트워크의 호스트 컴퓨터를 식별하기 위한 것)
. Multicast Address : 

. Reserved : 

 

. A클래스 : 대규모 네트워크 환경에 쓰이며, IP 주소 4마디 중 첫 번째 마디의 숫자가 0~127까지 사용할 수 있습니다.

. B클래스 : 중규모 네트워크 환경용으로 128~191까지 사용할 수 있습니다.

. C클래스 : 소규모 네트워크 환경에 적용되는 것으로 192-223까지 사용할 수 있습니다.

. D클래스 : 멀티캐스트용 입니다.

. E 클래스 : 향후 사용을 위하여 예약된 주소입니다.

 

도메인 간의 라우팅

사이더는 위 Intra-Domain과 같이 각 네트워크 대역을 구분 짓고 Inter-Domain과 같이 구분된 네트워크 간 통신을 위한 주소 체계라고 생각하면 됩니다.

 

 

표기법 및 계산 방법

 

147.7.65.203/24 을 예로 들면 "/24" 이것이 사이더 표기법입니다. 이 숫자는 비트 단위이며 0~32 까지 표현이 가능합니다. IP는 옥텟이라는 단위로 나누게되며, 위의 그림과 같이 하나의 옥텟은 8비트로 이루어져 있습니다. 일반적으로 사용하는 IPv4 주소는 4개의 옥텟으로 이루어져 있습니다. 따라서 사이더는 0~32 까지 총 32비트까지 사용가능 합니다.

 

CIDR이 "/24" 라면 위의 그림과 같이 앞에서부터 24비트 이후에 오는 4번째 옥텟(파란색 부분)을 전부 사용할 수 있다는 표현입니다. 하나의 옥텟은 8비트로 2의8승 인 256개 이기 때문에,  143.7.65.203/24 일때 143.7.65.0 ~ 143.7.65.255까지 사용이 가능합니다. 이렇게 CIDR값이 각 자리의 옥텟을 전체를 포함하는 /8, /16, /24, /32 일 경우는 계산하기 쉽습니다. 0부터 그 자리에 해당하는 255까지 라고 보면 되기 때문입니다. 간단한 예로 143.7.65.203/16 이라면 143.7.0.0 ~ 143.7.255.255가 됩니다. 

 

위와 같이 사이더 값이 23일경우 노란색과 파란색 두 개의 옥텟에 걸치게 되므로 바로 계산하기가 애매해집니다. 이 경우 애매하게 걸친 옥텟을 2진수로 표현하고 최솟값과 최댓값을 찾아내야 합니다. 예를 들어 143.7.65.203/23 일때, 4번째 옥텟(파란색 부분) 전체와 3번째 옥텟(노란색 부분) 영역의 1비트가 포함됩니다. 애매하게 걸친 3번째 옥텟을 10진수로 표현해 보면 65, 2진수로 표현해 보면 01000001입니다. 사이더에 의해 마지막 자리 1비트를 0 또는 1을 사용할 수 있게 되면 01000000, 01000001 이기 때문에 64, 65가 됩니다. 여기서 64가 3번째 옥텟에서 사용할 수 있는 최소값이 되며 최댓값은 65가 됩니다. 나머지 4번째 옥텟(파란색 부분)은 전체를 사용할 수 있기 때문에 최소값 0, 최댓값 255입니다. 따라서 143.7.65.203/23는  143.7.64.0 ~ 143.7.65.255 대역을 사용할 수 있습니다. 

 

이어서 143.7.65.203/22를 계산해 봅니다. 01000000, 01000001 01000010, 01000011 총 4개를 사용할 수가 있습니다. 10진수로 표현하면 최솟값인 64부터, 65, 66, 최댓값인 67입니다. 즉  143.7.65.203/22 는  143.7.64.0 ~ 143.7.67.255입니다.

 

마지막으로 143.7.65.203/25 일 경우에 대해 확인해 보겠습니다. 4번째 옥텟(파란색 부분). 2진수로 고쳐서 표현할 수 있는 최솟값 최댓값을 찾아내야 합니다. 십진수 203은 2진수로 11001011입니다. 여기서 최소 값은  10000000 인 128이고, 최댓값은 11111111인 255입니다. 따라서 143.7.65.128 ~ 143.7.65.255입니다. 

 

 

정리하자면, 애매하게 걸쳐 있는 쪽의 옥텟의 10진수 값을 2진수로 변경하여 걸쳐 있는 비트수만큼의 최솟값과 최댓값을 구하면 된다입니다. 

 

 

CIDR에 의한 IP 주소 할당



참고
참고

참고

참고

'Programming & Network > Network' 카테고리의 다른 글

DNS(Domain Name System)  (0) 2023.10.21
UTM (Unified Threat Management)  (0) 2023.09.06
OSI 7 계층  (0) 2023.08.29
X-Forwarded-For (XFF)  (0) 2023.08.23
About Cloud network tools  (0) 2023.01.05