서브네팅과 CIDR 표기법 설명 (예시 포함)
IPAddress-Lookup.com ·
혹시 다음과 같은 주소를 한참 들여다보며 192.168.1.0/24 그 슬래시와 숫자가 도대체 무슨 뜻인지 궁금해한 적이 있다면, 여러분은 바로 이곳에 오신 것이 옳은 선택입니다. 서브네팅과 CIDR 표기법은 현대 네트워크가 설계되고, 보안이 유지되며, 라우팅되는 방식의 핵심을 이루지만, 이 주제는 어렵고 부담스럽게 여겨지는 경향이 있습니다. 하지만 꼭 그럴 필요는 없습니다. IP 주소가 사실은 단순히 비트열에 불과하며, 서브넷 마스크는 단순히 “네트워크” 부분이 끝나고 “호스트” 부분이 시작되는 지점을 알려주는 것임을 이해하면, 나머지 모든 것이 자연스럽게 이해될 것입니다. 이 가이드에서는 기본 원리부터 개념을 차근차근 쌓아 올리고, 여러 실제 예제를 상세히 살펴보며, 키보드 옆에 두고 참고할 수 있는 요약표를 제공해 드리겠습니다. 학습 과정에서 ‘서브넷 계산기’ 도구를 활용해 모든 계산 결과를 직접 확인해 보실 수 있습니다.
서브넷이란 무엇이며, 왜 서브넷을 나누는 것일까요?
서브넷(subnet)은 서브네트워크(subnetwork)의 줄임말로, 더 큰 IP 네트워크를 논리적으로 세분화한 것입니다. 엔지니어들은 모든 장치를 하나의 거대한 평면 네트워크에 배치하는 대신, 해당 주소 공간을 더 작고 독립적인 블록들로 분할합니다. 각 블록은 고유한 주소 범위, 네트워크 주소, 브로드캐스트 주소를 가진 서브넷입니다. 라우터는 서브넷 간에 트래픽을 전달하는 반면, 단일 서브넷 내의 장치들은 라우터의 개입 없이 서로 직접 통신할 수 있습니다.
서브네팅은 단순히 번거로운 작업이 아닙니다. 네트워크를 이런 방식으로 나누는 데에는 몇 가지 구체적인 이유가 있습니다:
- 효율성과 주소 절약. 조직에 하나의 거대한 주소 블록을 할당하는 것은 주소를 낭비하는 것입니다. 서브네팅을 통해 부서, 층, 지사 등이 실제로 필요한 만큼의 주소를 정확히 할당할 수 있으며, 가장 가까운 거대한 클래스로 올림 처리할 필요가 없습니다.
- 더 작은 브로드캐스트 도메인. ARP 요청과 같은 특정 트래픽은 서브넷 내의 모든 호스트로 브로드캐스트됩니다. 수천 대의 장치가 연결된 평면형 네트워크에서는 이러한 통신량이 네트워크 성능을 심각하게 저하시킵니다. 서브넷으로 분할하면 각 브로드캐스트 도메인의 규모를 작게 유지하여 네트워크 속도를 높일 수 있습니다.
- 보안 세분화. 서버, 게스트 Wi-Fi, 내부 워크스테이션을 별도의 서브넷에 배치함으로써, 이들 간에 방화벽 규칙과 접근 제어 목록(ACL)을 적용할 수 있습니다. 두 장치가 서로 격리된 서브넷에 위치해 있다면, 보안이 침해된 게스트 장치는 데이터베이스 서버에 접근할 수 없습니다.
- 더 간단하고 빠른 라우팅. 라우터는 네트워크 접두사를 기반으로 결정을 내립니다. 잘 설계된 서브넷은 단일 경로로 요약될 수 있어, 라우팅 테이블을 축소하고 인터넷 전반에 걸친 전달 결정을 가속화합니다.
이진수에 대한 간단한 복습: 비트, 옥텟, 마스크
IPv4 주소는 32비트 길이입니다. 우리는 이를 점으로 구분된 네 개의 십진수 형태로 표기합니다(예: 192.168.1.10와 같이 점으로 구분된 4개의 십진수 형태로 표기하지만, 사실 이 숫자들 각각은 옥텟(octet)이라고 하는 8비트 이진 그룹입니다. 옥텟당 8비트, 4개의 옥텟이 합쳐져 총 32비트가 됩니다. 8비트는 2^8 = 256개의 서로 다른 값을 나타낼 수 있으므로, 각 옥텟은 0에서 255 사이의 값을 가질 수 있습니다.
옥텟 내의 비트 위치는 128, 64, 32, 16, 8, 4, 2, 1의 자리값을 가집니다. 변환하려면 1이 있는 위치의 자리값을 더하면 됩니다. 예를 들어, 다음 옥텟 11000000 는 128 + 64 = 192이며, 10101000 는 128 + 32 + 8 = 168입니다. 따라서 192.168.1.10 이진수로는 다음과 같습니다:
- 192 =
11000000 - 168 =
10101000 - 1 =
00000001 - 10 =
00001010
서브넷 마스크는 또 다른 32비트 값이지만, 특별한 점이 있습니다. 항상 1이 연속된 뒤 0이 연속되는 형태를 띱니다. 1은 주소의 네트워크 부분을, 0은 호스트 부분을 나타냅니다. 255.255.255.0 이진수로 11111111.11111111.11111111.00000000 이진수로 24개의 1에 이어 8개의 0이 오는 형태입니다. 주소가 속한 네트워크를 찾으려면 주소와 마스크 사이에 비트별 AND 연산을 수행합니다. 마스크에 1이 있는 곳에서는 주소의 해당 비트가 유지되고, 마스크에 0이 있는 곳에서는 해당 비트가 0이 됩니다. 이 AND 연산은 서브넷팅 전체에서 가장 중요한 계산입니다.
클래스 기반 주소 지정: 짧은 역사 강의
인터넷 초창기에는 첫 번째 옥텟의 값에 따라 고정된 “클래스” 단위로 주소가 할당되었습니다. 이를 클래스 기반 주소 지정이라고 하며, 현재는 더 이상 사용되지 않지만 이를 이해하면 CIDR이 왜 그토록 큰 개선이었는지 알 수 있습니다.
- 클래스 A는 첫 번째 옥텟 1부터 126까지를 포함했으며, 8비트 네트워크 부분(마스크
255.0.0.0, a/8)을 사용했으며, 각 네트워크에 약 1,670만 대의 호스트를 할당했습니다. - 클래스 B는 첫 번째 옥텟 128부터 191까지를 포함했으며, 16비트 네트워크 부분(마스크
255.255.0.0, a/16)를 사용했으며, 네트워크당 약 65,000대의 호스트를 할당했습니다. - C급은 192부터 223까지를 포함하며, 24비트 네트워크 부분(마스크
255.255.255.0, a/24)를 사용했으며, 사용 가능한 호스트는 단 254개뿐이었습니다.
문제는 유연성 부족이었습니다. 2,000개의 주소가 필요한 조직은 클래스 C(254개 호스트)로는 규모가 너무 컸지만, 어쩔 수 없이 클래스 B(65,000개 호스트)를 할당받아야 했기 때문에 60,000개 이상의 주소가 낭비되었습니다. 인터넷이 기하급수적으로 성장함에 따라 이러한 낭비는 IPv4 주소 공간을 완전히 고갈시킬 위기에 처하게 했습니다. 더 유연한 방식이 필요했습니다.
CIDR의 등장: 비트 단위로 설명하는 표기법
CIDR(Classless Inter-Domain Routing, 클래스 없는 도메인 간 라우팅)은 경직된 클래스 체계를 대체하기 위해 1993년에 도입되었습니다. CIDR은 네트워크 크기를 첫 번째 옥텟에 고정하는 대신, 네트워크와 호스트의 경계를 32비트 내 어디에나 설정할 수 있게 합니다. 우리는 이를 이제 익숙해진 슬래시 표기법, 즉 CIDR 접두사라고 부르는 방식으로 표현합니다.
슬래시 뒤의 숫자는 단순히 서브넷 마스크에서 1로 설정된 비트의 개수, 즉 네트워크에 속하는 비트의 수를 나타냅니다. 따라서:
/8는 네트워크 비트 8개를 의미하며, 마스크255.0.0.0(기존 클래스 A 크기)를 의미합니다./16는 16개의 네트워크 비트를 의미하며, 마스크는(구 클래스 B 크기)입니다.255.255.0.0(구 클래스 B 크기)를 의미합니다./24는 네트워크 비트 24개를 의미하며, 마스크는255.255.255.0(구 Class C 크기)./26네트워크 비트 26개, 마스크255.255.255.192, 호스트 비트는 6비트만 남습니다.
접두사가 포함하는 주소 수를 구하는 공식은 2^(32 − n)이며, 여기서 n은 접두사 길이입니다. 전체 IPv4 주소 공간은 32비트이므로, 네트워크 비트를 빼면 호스트 비트가 남고, 그 값을 2의 지수로 승산하면 해당 블록의 총 주소 수가 나옵니다. /24 이 경우 2^(32−24) = 2^8 = 256개의 주소가 총계입니다. /26 의 경우 2^(32−26) = 2^6 = 64개의 주소가 됩니다. 접두사 번호가 클수록 서브넷은 더 작아집니다.
서브넷의 주요 값 계산하기
모든 서브넷에는 식별해야 할 몇 가지 특수 주소가 있습니다. 각 주소의 의미와 찾는 방법은 다음과 같습니다.
- 네트워크 주소. 블록의 맨 첫 번째 주소입니다. 모든 호스트 비트는 0입니다. 이는 서브넷 자체를 식별하며, 장치에 할당할 수 없습니다.
- 브로드캐스트 주소. 블록의 맨 마지막 주소입니다. 모든 호스트 비트가 1입니다. 이곳으로 전송된 트래픽은 서브넷 내의 모든 호스트에 도달하므로, 호스트 주소로도 사용할 수 없습니다.
- 첫 번째 사용 가능한 호스트. 네트워크 주소 바로 위 주소(네트워크 주소 + 1).
- 마지막 사용 가능한 호스트. 브로드캐스트 주소 바로 아래에 있는 주소(브로드캐스트 − 1).
- 총 주소 수. 2^(32 − n).
- 사용 가능한 호스트. 네트워크 주소와 브로드캐스트 주소가 예약되어 있으므로 총 수에서 2를 뺀 값입니다. 공식은 2^(32 − n) − 2입니다.
알아두면 좋은 값이 하나 더 있습니다. 바로 와일드카드 마스크입니다. 이는 서브넷 마스크의 역으로, 모든 비트를 반전시켜 얻습니다(각 옥텟을 255에서 뺍니다). 예를 들어, 서브넷 마스크가 255.255.255.0 가 네트워크를 선택한다면, 이에 대응하는 와일드카드 0.0.0.255 는 호스트 범위를 지정합니다. 와일드카드 마스크는 Cisco 액세스 제어 목록(ACL)과 OSPF 구성에서 끊임없이 등장하므로 이를 파악해 두는 것이 좋습니다.
예제 1: 192.168.1.0/24
가장 이해하기 쉬운 사례부터 시작해 봅시다. /24 는 옥텟 경계에서 깔끔하게 끝나므로 복잡한 이진 연산이 필요하지 않습니다. 네트워크 비트가 24비트이므로 호스트 부분은 마지막 옥텟 전체를 차지합니다.
| 특성 | 값 |
|---|---|
| CIDR 표기법 | 192.168.1.0/24 |
| 서브넷 마스크 | 255.255.255.0 |
| 와일드카드 마스크 | 0.0.0.255 |
| 네트워크 주소 | 192.168.1.0 |
| 브로드캐스트 주소 | 192.168.1.255 |
| 첫 번째 사용 가능한 호스트 | 192.168.1.1 |
| 마지막 사용 가능한 호스트 | 192.168.1.254 |
| 총 주소 수 | 256 (2^8) |
| 사용 가능한 호스트 | 254 |
이것이 바로 전형적인 가정 및 소규모 사무실 네트워크입니다. .1 부터 .254 까지의 주소는 기기가 사용할 수 있으며, .0 는 네트워크 이름을 나타내며, .255 는 브로드캐스트 주소입니다.
예제 2: 10.0.0.0/26
이제 옥텟 경계에 맞지 않는 접두사를 살펴보겠습니다. A /26 는 26개의 네트워크 비트를 의미하므로, 마지막 옥텟이 분할됩니다. 즉, 마지막 옥텟의 첫 두 비트는 네트워크에 속하고, 나머지 여섯 비트는 호스트 비트입니다. 호스트 비트가 여섯 개이므로 서브넷당 2^6 = 64개의 주소가 할당됩니다. 즉, /26 서브넷은 마지막 옥텟에서 64씩 증가합니다: 0, 64, 128, 192.
첫 번째 블록에 초점을 맞추면 10.0.0.0/26에 초점을 맞추면, 네트워크 마스크는 255.255.255.192 왜냐하면 11000000 마지막 옥텟의 값이 192이기 때문입니다.
| 속성 | 값 |
|---|---|
| CIDR 표기법 | 10.0.0.0/26 |
| 서브넷 마스크 | 255.255.255.192 |
| 와일드카드 마스크 | 0.0.0.63 |
| 네트워크 주소 | 10.0.0.0 |
| 브로드캐스트 주소 | 10.0.0.63 |
| 첫 번째 사용 가능한 호스트 | 10.0.0.1 |
| 마지막 사용 가능한 호스트 | 10.0.0.62 |
| 총 주소 수 | 64 (2^6) |
| 사용 가능한 호스트 | 62 |
이 순서의 다음 서브넷은 다음과 같습니다. 10.0.0.64/26 (호스트 .65 ~ .126, 브로드캐스트 .127)이며, 그 다음은 10.0.0.128/26, 그리고 마지막으로 10.0.0.192/26입니다. 블록 크기인 64가 각 서브넷의 시작 위치를 결정하는 “매직 넘버”와 정확히 일치한다는 점에 주목하십시오.
예제 3: 172.16.5.0/28
마지막 예제에서는 서브넷을 더 작게 압축해 봅니다. /28 28비트의 네트워크 비트와 4비트의 호스트 비트만을 가지므로, 총 2^4 = 16개의 주소가 생성되며 사용 가능한 호스트는 14개뿐입니다. 마지막 옥텟은 11110000 를 네트워크 부분으로 사용하며, 이는 240에 해당하므로 마스크는 255.255.255.240가 됩니다. 서브넷은 16씩 단계적으로 나뉩니다.
| 속성 | 값 |
|---|---|
| CIDR 표기법 | 172.16.5.0/28 |
| 서브넷 마스크 | 255.255.255.240 |
| 와일드카드 마스크 | 0.0.0.15 |
| 네트워크 주소 | 172.16.5.0 |
| 브로드캐스트 주소 | 172.16.5.15 |
| 첫 번째 사용 가능한 호스트 | 172.16.5.1 |
| 마지막 사용 가능한 호스트 | 172.16.5.14 |
| 총 주소 수 | 16 (2^4) |
| 사용 가능한 호스트 | 14 |
A /28 는 소규모 지점 간 네트워크나, 소수의 주소만 필요한 엄격하게 통제되는 서버 세그먼트에서 널리 사용되는 크기입니다. 예를 들어 두 라우터 간의 연결과 같이 호스트가 단 두 개만 필요한 경우, /30까지 줄일 수 있으며, 이 경우 정확히 2개의 사용 가능한 주소를 제공합니다.
서브넷팅 요약표
매번 2의 거듭제곱을 다시 계산하는 대신, 아래 표를 외우거나 즐겨찾기에 추가해 두세요. 이 표는 /24 아래까지 /30까지의 가장 일반적인 접두사를 다루며, 마스크, 와일드카드, 블록 크기(총 주소 수), 사용 가능한 호스트 수를 보여줍니다.
| CIDR | 서브넷 마스크 | 와일드카드 | 총 주소 수 | 사용 가능한 호스트 수 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 0.0.0.255 | 256 | 254 |
| /25 | 255.255.255.128 | 0.0.0.127 | 128 | 126 |
| /26 | 255.255.255.192 | 0.0.0.63 | 64 | 62 |
| /27 | 255.255.255.224 | 0.0.0.31 | 32 | 30 |
| /28 | 255.255.255.240 | 0.0.0.15 | 16 | 14 |
| /29 | 255.255.255.248 | 0.0.0.7 | 8 | 6 |
| /30 | 255.255.255.252 | 0.0.0.3 | 4 | 2 |
우아한 패턴을 주목해 보세요. 접두사에서 1비트씩 줄일 때마다 호스트 수가 절반으로 줄어들며, 마지막 옥텟의 마스크 값은 128, 192, 224, 240, 248, 252 중 하나입니다. 이것들이 최종 마스크 옥텟이 가질 수 있는 유일한 유효한 값들입니다.
VLSM: 크기가 다른 서브넷
기존의 서브넷 분할 방식은 네트워크를 동일한 크기의 조각으로 나누었으나, 부서마다 요구 사항이 크게 다를 경우 이는 자원의 낭비가 됩니다. 가변 길이 서브넷 마스킹(VLSM)은 동일한 전체 네트워크 내에서 서로 다른 접두사 길이를 적용할 수 있도록 하여 이 문제를 해결합니다. 사실상, 서브넷을 다시 서브넷으로 나누는 것입니다.
예를 들어, 192.168.10.0/24 100대의 호스트로 구성된 부서 하나, 50대의 호스트로 구성된 부서 하나, 그리고 각각 2대의 호스트로 구성된 라우터 링크 두 개를 지원해야 한다고 가정해 봅시다. VLSM을 사용하면 다음과 같이 할당할 수 있습니다:
- 대규모 부서(100대의 호스트)에는
/25(126대)를 대규모 부서에 할당합니다:192.168.10.0/25. - A
/26(62대)는 중간 규모의 부서에 할당:192.168.10.128/26. - 두
/30블록(각 2대의 호스트)은 라우터 링크용으로, 남은 공간에서 할당됩니다.
VLSM의 황금률은 가장 큰 서브넷을 먼저 할당하고 그보다 작은 서브넷 순으로 할당하여, 블록들이 겹치지 않고 깔끔하게 중첩되도록 하는 것입니다. 이것이 바로 실제 주소 할당 계획에서 낭비를 방지하면서도 향후 확장을 위한 여지를 남겨두는 방법입니다.
IPv6 접두사에 대한 참고 사항
지금까지 설명한 내용은 모두 IPv4에 관한 것이지만, CIDR 표기법은 숫자만 훨씬 더 커졌을 뿐 IPv6에도 그대로 적용됩니다. IPv6 주소는 32비트가 아닌 128비트이므로, 접두사는 /128까지 이어집니다. 가장 중요하게 알아야 할 것은 /64입니다. 오랜 관례에 따라, 단일 IPv6 서브넷은 /64로 간주되며, 이는 처음 64비트를 네트워크 접두사로, 마지막 64비트를 호스트(또는 “인터페이스 식별자”)용으로 할당합니다. 이로 인해 서브넷당 2^64개의 주소가 할당되는데, 이는 상상하기조차 힘든 숫자입니다. 바로 이 때문에 IPv6에서는 IPv4 서브네팅에서 흔히 볼 수 있는 주소 절약을 위한 복잡한 조치들을 거의 신경 쓰지 않습니다. 두 프로토콜에 대한 더 심층적인 비교를 원하신다면, IPv4 대 IPv6 가이드를 참고하시기 바랍니다.
모든 내용을 종합해 보면
서브네팅은 세 가지 개념으로 요약됩니다: IP 주소는 32비트이며, 마스크는 네트워크의 끝을 결정하고, 공식 2^(32 − n)은 각 블록의 크기를 알려줍니다. 이 세 가지만 숙지하면 나머지는 단순한 산술 문제입니다. 먼저 접두사를 확인하고, 이를 블록 크기로 변환한 다음, 네트워크 주소와 브로드캐스트 주소를 구하면, 그 사이에 사용 가능한 주소 범위가 나타납니다. 몇 가지 예제를 통해 연습하면 이 과정이 자연스럽게 몸에 배게 될 것입니다. 계산 결과를 즉시 확인하고 싶다면, 저희 서브넷 계산기 도구에 주소와 접두사를 입력하여 직접 계산한 결과와 비교해 보세요.
자주 묻는 질문
사용 가능한 호스트 수를 구하기 위해 총 주소 수에서 2를 뺀 이유는 무엇인가요?
모든 IPv4 서브넷에는 두 개의 주소가 예약되어 있어 장치에 할당할 수 없습니다. 하나는 서브넷의 이름을 나타내는 네트워크 주소(모든 호스트 비트가 0으로 설정됨)이고, 다른 하나는 모든 호스트에 동시에 접근하는 데 사용되는 브로드캐스트 주소(모든 호스트 비트가 1로 설정됨)입니다. 이 두 개를 빼면 실제로 호스트에 할당할 수 있는 주소 수가 남게 되므로, 2^(32 − n) − 2가 됩니다.
서브넷 마스크와 CIDR 접두사의 차이점은 무엇인가요?
두 가지 형식으로 정확히 동일한 정보를 표현합니다. 다음과 같은 서브넷 마스크 255.255.255.0 는 32비트 점으로 구분된 십진수 값인 반면, CIDR 접두사 /24 는 단순히 해당 마스크에서 1로 설정된 비트의 개수를 나타냅니다. 모든 마스크는 접두사로 표기할 수 있고 그 반대의 경우도 마찬가지입니다. CIDR 표기법은 단지 더 짧고 오류가 발생하기 어렵습니다.
IP 주소에서 /24는 실제로 무엇을 의미합니까?
슬래시 뒤의 숫자는 접두사 길이이며, 주소의 32비트 중 몇 비트가 네트워크를 정의하는지를 나타냅니다. A /24 네트워크에 처음 24비트를 할당하고 호스트용으로 8비트를 남겨두어, 총 256개(2^8)의 주소가 생성되며 그중 254개가 사용 가능합니다. 이는 서브넷 마스크 255.255.255.0.
왜 CIDR이 클래스 기반 주소 지정 방식을 대체했나요?
클래스 기반 주소 지정 방식은 네트워크 크기가 254개 호스트, 65,000개, 1,600만 개와 같이 거대한 단계로만 증가하도록 강요했으며, 그 사이에는 아무런 단계가 없었습니다. 조직들은 필요량보다 훨씬 많은 주소를 배정받는 경우가 빈번하여, 제한된 IPv4 주소 공간을 낭비하게 되었습니다. CIDR은 네트워크 경계를 임의의 비트에 설정할 수 있게 하여 블록 크기를 상황에 맞게 조정할 수 있게 하며, 경로를 요약하여 라우팅 테이블을 축소할 수도 있습니다.
와일드카드 마스크는 무엇에 사용되나요?
와일드카드 마스크는 서브넷 마스크의 비트 단위 역수이며, 각 옥텟 값에서 255를 뺀 값으로 구합니다. 서브넷 마스크가 네트워크 부분을 일치시키는 반면, 와일드카드 마스크는 어떤 비트가 변동될 수 있는지를 지정합니다. 이는 주로 Cisco 액세스 제어 목록(ACL)과 OSPF와 같은 라우팅 프로토콜에서 주소 범위를 간결하게 표현하는 데 사용됩니다.
IPv6에도 동일한 서브넷팅 규칙이 적용되나요?
CIDR 개념은 동일합니다. 슬래시 뒤에 오는 접두사 길이가 네트워크 경계를 표시합니다. 차이점은 규모에 있습니다. IPv6 주소는 32비트가 아닌 128비트이며, 표준 서브넷 크기는 /64로, 서브넷당 2^64개의 호스트 주소를 제공합니다. 주소 공간이 매우 방대하기 때문에, IPv6 서브네팅은 주소를 최대한 많이 뽑아내는 것보다 구조와 계층 구조에 중점을 둡니다.