IP 주소의 기본 - 1. 서브넷팅, 슈퍼넷팅, CIDR

2025. 1. 26. 22:20·Infra/AWS

💡 AWS를 시작하기 전 알고 있으면 좋은 개념인 IP와 CIDR 등을 정리해 보겠습니다.

📌  IP주소란?

IP주소는 말 그대로 인터넷에서 특정한 장치를 식별하기 위해 만든 고유 번호입니다. (IP = 인터넷상 주소)

IP주소는 IPV4와 IPv6로 두 종류가 있습니다. 먼저 IPv4 체계를 설명하겠습니다

 

✅ IPv4

 

 

  • IPv4는 10진수 4개의 조합이며 동시에 8비트 2진수 4개의 조합입니다. 한 칸을 옥텟(Octet)이라고 부릅니다.
  • 각 옥텟은 8비트로 처리가 됩니다 이 말은 0과 1의 조합을 8개까지 사용한다는 뜻입니다.
  • 2^8 = 256입니다. 각 옥텟은 10진수 기준 0~255까지의 숫자가 들어갈 수 있습니다.
그럼 총 몇 개의 IP주소를 사용할 수 있을까요?

2진수 기준
2^32 = 4,294,967,296

10진수 기준 동일하게
256^4 = 4,294,967,296

총 42억 개의 IP 주소를 사용할 수 있습니다. 하지만 인터넷이 빠르게 발전함에 따라서 이걸로도 부족해서 IPv6가 나오게 됩니다.

✅ IPv6 (참고)

  • 한 칸을 필드라고 부르며 16비트 2진수가 들어갑니다.
  • 총 8개의 필드를 가지고 있습니다.
그렇다면 총 몇 개의 IP주소를 사용할 수 있을까요?

2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 개를 만들 수 있습니다!

하지만, 아직까지도 IPv4에서 IPv6로의 전환이 완료되지 않았고 비용 때문에 많은 세월이 걸린다고 합니다

IPv4 라우터에서는 tunneling이라는 방식을 사용해 IPv6 데이터그램을 전송하는 방식으로 사용되는데 
결과적으로 크게 중요하지 않습니다. IPv4에 집중하도록 하죠.

✅ IP를 분배하는 방법

그럼 이제 IP를 사용하는 것을 생각해 봅시다. 전 세계에서 사용하는 것이기 때문에 좀 체계적으로 분배를 하는 방법이 필요합니다. 결국 모든 IP분배 개념에서 비슷한 맥락을 쓰기 때문에 먼저 어떻게 IP를 분배하는지 아이디어를 설명을 하고 넘어가겠습니다.

 

IP 주소를 요구하는 회사가 있다고 생각을 해봅시다. 회사는 하나 이상의 IP가 필요하다고 가정해 보겠습니다(부서 마다 나누어 줘야함), 따라서 딱 떨어지는 IP 하나만을 분배할 수는 없습니다.

 

그래서 앞에서 24개의 비트를 기준으로 어떤 회사에게 분배를 했는지 정하고 이를 네트워크 영역이라고 부르겠습니다.

그리고 뒤의 8자리는 회사 마음대로 사용해도 되도록 부여를 한다고 생각을 해봅시다.

그렇다면 생각을 해봅시다.
이런 방식으로 IP를 분배한다면,

2^24 = 16,777,216 개의 회사에게 IP를 줄 수 있으며
각 회사는 2^8 = 256 개의 IP를 가질 수 있겠군요!

지금 이 아이디어를 잘 숙지하시면 이해가 쉬워집니다.
네트워크를 분배하는 영역을 기준으로 IP를 분배하고 그 IP를 받은 대상은 마음대로 사용할 수 있는 호스트 영역이 있다.

 

규칙을 바꿔봅시다.

23개의 비트를 기준으로 회사들에게 분배를 하고 9개의 비트를 호스트 영역으로 준다면?

2^23 = 8,388,608개의 회사에게 IP를 줄 수 있으며 
각 회사는 2^9 =  512개의 IP를 가질 수 있습니다.

IP를 분배할 수 있는 회사는 0.5배가 되었으며 각 회사가 사용할 수 있는 호스트 영역은 2배가 되었네요.

여기까지 이해하셨다면 이제 바로 본론으로 들어갈 수 있습니다.

✅ 서브넷팅

원래는 24개의 비트를 기준으로 네트워크 영역을 분배하도록 약속이 되었다고 생각해 봅시다.

A라는 회사는 특정한 24개의 비트 조합으로 IP주소를 할당을 받았을 겁니다.

그렇다면 A는 2^8= 256개의 IP를 사용할 수 있습니다.

그런데 회사 내에서도 부서마다 IP를 할당해주고 싶은 상황입니다. 
그래서 회사 자체적으로 25번째 비트를 회사 안에서 분리하기 위한 네트워크 영역으로 생각하기로 한 겁니다!

25번째 숫자가 0이면 인사팀에 
25번째 숫자가 1이면 마케팅팀에서 사용하는 것으로 약속했습니다.

그럼 각 팀은 2^7 = 128개의 IP를 호스트 영역 즉, 부서 내에서 마음대로 사용할 수 있습니다.

IP를 받은 상태에서 내 호스트 영역에서 또 같은 아이디어로 영역을 나누는 이 개념이 서브네팅입니다!

 

질문을 하나 던져보겠습니다.

 

위의 상황처럼 앞의 24개 비트 조합을 IP주소를 할당받은 회사 A는 부서 하나당 50개 정도의 IP가 필요하다면 어떻게 서브넷을 나누는 것이 좋을까요?

 

 

호스트 영역이 2^5 = 32 보다는 많이 필요하니까,
2^6 오른쪽에서 6개의 비트는 호스트 영역으로 사용해야겠습니다.

따라서 26번째 비트까지 네트워크 영역으로 사용할 것이고 임의로 2개의 비트를 네트워크 영역으로 추가했습니다.

따라서, 총 4개의 부서에게 64개의 IP를 분배할 수 있습니다.

✅ 슈퍼넷팅

위에서 설명한 서브넷팅의 반대 개념입니다.

원래는 24개의 비트가 분배된 회사 A는 2^8 = 256개의 IP를 사용할 수 있었습니다.

그런데 A회사가 규모가 커지는 바람에 23자리까지는 동일하고 24번째 자리만 달랐던 B회사와 네트워크를 합치기로 결정합니다.

이처럼 서브넷팅의 정확히 반대 개념이 슈퍼넷팅입니다.
그렇다면, 통합된 회사는 23자리까지 네트워크 영역으로 사용하고 2^9 = 512개의 IP를 사용할 수 있겠습니다.

 

이제 필요한 개념들을 설명하면서 확장해 보겠습니다.

✅ Network Address와 Broadcast 

위에서 이용한 예시의 상황을 그대로 가져와서,

26개의 비트를 네트워크 영역으로 사용한다면 하나의 부서에는 64개의 IP를 분배할 수 있습니다.

 

그런데 이것들 중에서 2개의 사용을 금지합니다.

가장 첫 번째 주소인 (앞부분 생략) 000000 은 네트워크 주소(Network Address)로 사용됩니다.

가장 마지막 주소인 (앞부분 생략) 1111111 은 브로드 케스트(Broadcast)로 사용됩니다.

 

따라서 사실상 62개의 IP만을 사용할 수 있습니다!

 

사실은 2^(호스트 비트수) 개의 IP를 할당할 수 있는 것이 아닌 2^(호스트 비트수)-2 만큼 할당할 수 있습니다!

✅ 서브넷 마스크

24개의 비트를 네트워크 영역으로 사용하는 약속을 했다고 생각해 봅시다. 

 

이때, 제일 위의 숫자는 24개 비트 조합의 IP를 받은 어떤 회사 내의 특정 IP라고 생각해봅시다.

그렇다면 이 IP는 어떤 회사에 속해있을까요?

 앞의 24개의 비트 그리고 뒤에 0이 8개가 오는 주소가 이 회사의 IP (Network Address)인 것을 알고 있지만, 그것을 조금 더 쉽게 알 수 있게 만드는 것이 서브넷 마스크입니다. 

서브넷 마스크는 네트워크 영역의 비트에 해당하는 위치는 전부 1 그리고 나머지는 전부 0입니다. 이를 원래 IP 주소와 곱하기(AND 연산을 수행하게 되면 이 회사의 IP 주소(Network Address)가 나오게 됩니다.

🤔 2진법으로 계속 본다면 쉽게 구분이 가는데 왜 굳이 서브넷 마스크가 필요할까?라는 생각이 들 수도 있습니다.

✅  Prefix 표현

서브넷 마스크를 비트로 간단히 표현하는 방법입니다.

예를 들어, 192.168.0.1/24라는 IP 주소에서 /24는 서브넷 마스크를 나타냅니다.

/24의 의미는 32비트 중에서 앞쪽 24비트가 1로 설정되어 있다는 뜻입니다.
/24 → 11111111.11111111.11111111.00000000
이 방법은 서브넷 마스크를 비트 단위로 간단하게 나타낼 수 있어 편리합니다.

지금까지는 쉽게 2진법으로 IP주소를 확인했는데 10진법으로 보니 확실히 서브넷 마스크가 필요하고 Prefix 표현이 유용한 것을 알 수  있습니다.

✅ CIDR (Classless Inter-Domain Routing)

CIDR은 Classless Inter-Domain Routing은 클래스가 필요 없는 도메인 라우팅이라는 뜻을 내포한다.

도메인 간의 라우팅에 사용되는 인터넷 주소를 원래 IP주소 클래스 체계를 쓰는 것보다 더욱 능동적으로 할 수 있도록 할당하여 지정하는 방식인데. 

사실 어렵게 생각하지 않고 CIDR은 서브넷팅, 슈퍼넷팅을 포함하는 능동적으로 IP를 할당하는 작업을 뜻한다.

결국은 위에서 배웠던 이 표기법이 prefix이자 결국 CIDR이고 CIDR 표기법입니다!

 

빠른 이해를 위해서 주로 2진수의 예시만 들었지만! 10진수에서도 같은 맥랍입니다 아이디어만 이해하시면 충분해요 😄

✅ 기본 서브넷 마스크( Default Subnet Mask)

꼭 설명하고 넘어가야 하는 부분이지만, 저는 처음 봤을 때 이해가 힘들어서 마지막으로 넘겼습니다!

서브넷팅이나 슈퍼넷팅은 결국 내가 받은 IP를 효율적으로 나누기 위해서 분배를 하는 것이죠? 그렇다면 결국 전세계적으로 IP를 받는 것도 체계와 규칙이 있을 텐데요.

 

⭐ 먼저 서브넷 마스크를 봐주세요.

 

지금까지 예시를 들어온 네트워크 영역을 기준으로 A, B, C 클래스를 분리합니다.

  • A 클래스는 32개의 비트 중 앞의 8개를 네트워크 영역으로 사용합니다. 호스팅 할 수 있는 네트워크 수가 24비트나 있어서 제일 많고 대규모 네트워크에 유리합니다.
  • B 클래스는 앞의 16개의 비트를 네트워크 영역으로 사용합니다.
  • C 클래스는 앞의 24개의 비트를 네트워크 영역으로 사용합니다. 호스팅 할 수 있는 네트워크 수는 8개로 가장 작습니다.
  • D와 E는 모두 특수 목적을 위한 IP로 별도의 서브넷 마스크를 사용하지 않습니다.
그런데? 기준이 하나 더 있는 것 같습니다.

바로 첫 번째 옥텟의 2진수에서 시작 숫자(빨간색)가 정해져 있습니다. 이에 따라서 10진수 범위가 또 나누어지게 되는데요.

지금까지 예시로 들어온 (네트워크 영역을 정하기) + (첫 번째 옥텟의 범위를 정하기) 

두 개로 분류가 된다고 생각하시면 되겠습니다.

 

다음편에서 이어가겠습니다. 🔗

 

reference:

티스토리 - [네트워크] 서브넷,  서브넷마스크, 서브넷팅이란? | 서브넷팅 예제 ( 코드 연구소) 🔗

티스토리 - [네트워크] IP,IP 클래스, IPv4, IPv6이란? | IP 클래스 구분 (코드 연구소) 🔗

티스토리 - IP 클래스 · 서브넷 마스크 · 서브넷팅 계산법 💯 총정리 (Inpa Dev) 🔗

티스토리 - CIDR 개념 쉽게 이해해보자 & 계산법 (Inpa Dev) 🔗

'Infra > AWS' 카테고리의 다른 글

AWS의 VPC에 대해서 알아보자  (0) 2025.02.25
IP 주소의 기본 - 2. IP 주소의 종류  (0) 2025.02.03
'Infra/AWS' 카테고리의 다른 글
  • AWS의 VPC에 대해서 알아보자
  • IP 주소의 기본 - 2. IP 주소의 종류
potato-farm
potato-farm
개발 혼자 공부하기
  • potato-farm
    감자밭
    potato-farm
  • 전체
    오늘
    어제
    • 분류 전체보기 (27)
      • ETC (2)
      • 알고리즘 (0)
      • Java (0)
      • DB (2)
      • Spring (0)
      • 프로젝트 (15)
      • Server (3)
      • CS (0)
        • 운영체제 (0)
      • Infra (4)
        • IAC (1)
        • AWS (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • hELLO· Designed By정상우.v4.10.3
potato-farm
IP 주소의 기본 - 1. 서브넷팅, 슈퍼넷팅, CIDR
상단으로

티스토리툴바