반응형

CIDR(Classless Inter-Domain Routing)

클래스로 IP를 구분했을 때 여러 회사들은 A 클래스를 할당받아 사용했습니다. 하지만 약 1600만개나 되는 IP 주소들을 효율적으로 사용하지 못했으며, 이렇게 부여된 IP는 다른 기관에서 사용하게 할 수도 없었습니다. 이렇게 낭비되는 것을 방지하기 위해 CIDR란 개념이 등장했습니다.

 

 

이렇게 네트워크 주소를 구분하기 위한 접두사를 서브넷 마스크(Subnet Mask)라고 합니다. 서브넷 마스크는 CIDR의 중요한 개념으로 IP처럼 32 비트의 크기를 가지고 있으며 2진수 0과 1로 이루어져 있으며 1은 네트워크 주소를, 0은 호스트 주소를 뜻합니다. 이를 우리가 보기 쉽게 10진수로 표현한 것입니다.

 

 

예를 들어 11111100이라는 서브넷 마스크가 존재한다면 해당 IP 옥탯의 네트워크 주소와 호스트 주소는 다음과 같이 구분됩니다.

 

 

이 방법으로 첫 번째 IP를 해석해보자면 첫 번째에서 세 번째 옥탯은 전부 네트워크 주소이고 마지막 네 번째 옥탯만이 호스트 주소인 것을 알 수 있습니다. 따라서 이는 아래와 같이 구분지을 수 있습니다.

 

 

서브넷 마스크를 지정해줄 때 규칙은 서브넷 마스크 옥탯의 첫 자리를 1로 시작해 1부분이 연속된 자릿수를 표현해줘야 한다는 것입니다. 예를 들자면 아래와 같습니다.

 

 

첫 번째 IP 예시에서는 간단하게 0과 255로 이루어져 해당 옥탯이 전부 네트워크 IP이거나 호스트 IP 였습니다. 그렇다면 다른 숫자는 어떨까요? 우선 옥탯에는 어떤 숫자가 들어갈 수 있는지 정리해보겠습니다.

 

 

한개의 옥탯을 기준으로 봤을 때 IP 주소는 0~255까지 총 256개의 값을 가질 수 있습니다. 이 256개를 서브넷 마스크 2^(1의 개수)만큼 쪼개서 사용한다고 생각하면 편할 것 같습니다.  즉, 아래와 같이 표현됩니다.

 

 

이렇게 나뉘기 때문에 서브넷 마스크 옥탯이 0 이었을 경우 0~255까지 범위를 가질 수 있었고, 옥탯이 255일 경우 1개의 값으로 고정되었던 것입니다. 그렇다면 옥탯이 128일 경우는 어떨까요?

 

 

총 128개의 IP를 갖게 되는데, 시작하는 지점을 알 수가 없습니다. 이를 표현하기 위한 것이 네트워크 ID 입니다. 네트워크 ID는 네트워크의 제일 첫 번째 IP를 지정하는 규칙이 있습니다. 따라서 네트워크 ID가 100인 옥탯에 서브넷 마스크가 128이라면 100~227까지의 호스트 IP를 가질 수 있는 것입니다. 이러한 이유로 첫 번째 IP는 사용하지 않고 남겨둬야 합니다.

 

이로써 클래스로 구분했을 때 발생했던 IP 부족 문제를 조금 더 효율적으로 분리할 수 있게 됐습니다. 하지만 IP에 서브넷 마스크에 숙지해야할 숫자가 너무  많습니다. 그런데 서브넷은 규칙을 가지고 있다고 언급했습니다. 바로 1이 연속해야한다는 특징입니다. 때문에 간단하게 1의 개수로도 이를 표현할 수가 있었습니다. 이를 CIDR라고 합니다. 즉, 처음의 예시는 아래와 같이 표현할 수 있습니다.

 

 

 

이렇게 IPv4에 대한 기본적인 지식들에 대해 알아봤습니다. 마무리하기 전에 네트워크에서 기본적으로 예약되는 부분은 크게 2가지가 있습니다. 바로 바로 위에서 언급한 네트워크 ID와 브로드캐스트 IP입니다. 이는 각각 맨 첫 번째와 맨 마지막 번째 IP를 예약하게 됨으로 IP의 범위를 지정해 사용할 때 이를 염두해두고 서브넷 마스크를 지정해야 합니다. 브로드캐스트에 대해서는 다음에 다뤄보도록 하겠습니다.

반응형