← 블로그로 돌아가기

CIDR 블록이란? 표기법 설명

CIDR 블록이란? 표기법 설명

CIDR 블록은 192.168.1.0/24처럼 기본 주소와 프리픽스 길이로 표기하는 IP 주소 범위이며, 슬래시 뒤의 숫자는 네트워크를 식별하기 위해 앞쪽 몇 비트가 고정되는지를 나타냅니다. CIDR은 Classless Inter-Domain Routing의 약자이고, 라우팅 테이블, 방화벽 규칙, 클라우드 보안 그룹에서 네트워크를 기술하는 방식입니다.

CIDR 표기법 읽는 방법

IPv4 주소는 32비트입니다. 192.168.1.0/24에서 /24는 처음 24비트가 네트워크 부분이고 나머지 8비트는 그 안에서 호스트를 식별하는 데 자유롭게 쓰인다는 뜻입니다. 이 8개의 자유 비트는 2^8 = 256개의 주소를 제공하며 192.168.1.0부터 192.168.1.255까지입니다. 이 규칙은 모든 프리픽스에 적용됩니다. 블록 크기는 2의 (32에서 프리픽스 길이를 뺀 값) 제곱입니다.

  • /8은 한 옥텟을 고정하고 16,777,216개의 주소를 가집니다. 예: 10.0.0.0/8.
  • /16은 두 옥텟을 고정하고 65,536개의 주소를 가집니다. 예: 172.16.0.0/16.
  • /24는 256개의 주소를 가지며, /32는 정확히 하나의 주소입니다.
  • /0은 모든 주소이며 방화벽 규칙에서 "어디서나"를 뜻하는 0.0.0.0/0으로 보게 됩니다.

더 오래된 서브넷 마스크 형식도 같은 내용을 나타냅니다. /24는 255.255.255.0, /16은 255.255.0.0, /20은 255.255.240.0과 같습니다. IPv6에서는 같은 개념이 128비트에 적용되므로 2001:db8::/32는 처음 32비트를 고정합니다.

CIDR이 클래스풀 주소 지정을 대체한 이유

CIDR 이전에는 주소가 /8, /16, /24 프리픽스를 가진 A, B, C 클래스의 고정된 클래스로 나뉘었습니다. 2,000개의 주소가 필요한 조직은 대부분을 낭비하는 65,536개짜리 B 클래스를 받거나, 라우팅 테이블을 부풀리는 여러 C 클래스를 받아야 했습니다. CIDR은 어떤 프리픽스 길이든 허용하므로 /21(2,048개 주소)을 정확하게 할당할 수 있습니다. 또한 인접한 블록을 요약할 수 있습니다. 경계에 맞춰 정렬된 두 개의 인접한 /24는 하나의 /23으로 광고할 수 있으며, 이는 전역 라우팅 테이블을 더 작게 유지합니다.

정렬과 사용 가능한 주소

블록은 자신의 크기에 맞는 경계에서 시작해야 합니다. /24는 마지막 옥텟이 0인 주소에서 시작해야 하고, /22는 10.0.4.0/22처럼 세 번째 옥텟이 4의 배수인 곳에서 시작해야 합니다. 10.0.3.0/22가 유효하지 않은 이유가 이것입니다. 정렬되지 않았으므로 도구가 이를 거부하거나 조용히 실제 경계로 정규화합니다. 일반적인 서브넷에서는 첫 번째 주소가 네트워크를 식별하고 마지막은 브로드캐스트 주소이므로 /24는 254개의 사용 가능한 호스트 주소를 제공합니다. 클라우드 제공업체는 서브넷마다 몇 개를 더 예약하는 경우가 많으므로 크기를 정하기 전에 규칙을 확인하세요.

실무에서 CIDR을 만나는 곳

방화벽과 허용 목록이 가장 흔한 경우입니다. 203.0.113.0/24를 허용하면 하나의 항목으로 256개의 주소를 허용합니다. 위험은 너무 넓게 잡는 것입니다. /24를 의도한 곳에 /16을 쓰면 관련 없는 수만 개의 호스트를 허용할 수 있습니다. 단일 IP만 알고 있을 때 주변 블록을 찾는 것은 조사 단계이며, 일부는 ipto로 할 수 있습니다. IP 범위 디렉터리에서는 /8 및 /16 블록별로 주소 공간을 탐색할 수 있으며 각 블록의 국가 및 ASN 내역을 볼 수 있습니다. ASN 조회는 네트워크에 귀속된 범위를 보여 주고, IP whois 조회는 RDAP를 통해 등록된 블록을 반환하여 조직이 보유한 정확한 범위를 알려 줍니다.

예약 범위도 CIDR로 표현됩니다. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 같은 사설 공간, 루프백 127.0.0.0/8, 링크 로컬 169.254.0.0/16은 공개 출발지로 나타나서는 안 됩니다. 보곤 IP 검사기는 주소가 그중 하나에 속하는지 알려 주며, ipto IP 조회는 같은 목적으로 bogon과 bogon_type 필드를 반환합니다.

요약은 반대 방향으로도 작동합니다. 두 범위가 합쳐질 수 있는지 보려면, 크기가 같고, 인접하며, 첫 번째 범위가 합쳐진 블록의 경계에서 시작하는지 확인하세요. 어느 한 조건이라도 맞지 않으면 항목이 하나가 아니라 두 개 필요합니다.

흔한 실수

  • 기본 주소를 호스트와 혼동하기. 192.168.1.0/24는 기기가 아니라 네트워크를 가리킵니다.
  • 주소 하나 때문에 범위 전체를 차단하기. 공유 호스팅 블록의 악용 호스트 하나가 주변 /24 전체를 적대적으로 만들지는 않으며, 차단하면 무고한 고객이 피해를 볼 수 있습니다.
  • IPv6를 잊기. IPv4 범위에만 작성된 규칙은 IPv6 트래픽을 필터링하지 못한 채로 둡니다.

빠르게 점검하려면 호스트 비트를 세고, 2를 그만큼 거듭제곱한 다음, 예상한 값과 비교해 보세요. API 문서에는 범위 데이터를 프로그래밍 방식으로 가져오는 방법이 나와 있습니다.

명확한 답변

/24는 IPv4 주소의 처음 24비트가 네트워크를 식별하고 호스트용으로 8비트가 남는다는 뜻입니다. 이는 192.168.1.0부터 192.168.1.255까지의 256개 주소를 제공합니다.
IPv4의 경우 32에서 프리픽스 길이를 빼고 2를 그만큼 거듭제곱하세요. /28은 2^4 = 16개의 주소를, /20은 2^12 = 4,096개의 주소를 가집니다.
둘은 같은 경계를 다른 형태로 나타냅니다. CIDR은 /24 같은 프리픽스 길이를 사용하고 서브넷 마스크는 이를 255.255.255.0으로 씁니다. CIDR 표기법은 더 짧으며 IPv6에서도 쓸 수 있습니다.
← 블로그로 돌아가기