1. Bibliothek
  2. IP 주소
  3. 네트워크 주소 체계

Aktualisiert vor 1 Monat

패킷이 네트워크에 도착할 때, 가장 먼저 마주치는 질문은 "어디로 가야 하지?"가 아닙니다. "나 여기 있어도 되는 거야?"입니다.

모든 장치는 "여기"가 어디서 끝나고 "저기"가 어디서 시작하는지 알아야 합니다. 그 경계가 바로 서브넷입니다. 그리고 우리가 그 경계를 정밀하게 그리는 방법이 바로 CIDR 표기법입니다.

소속 판별

IP 주소는 두 가지 정보를 하나의 숫자로 담습니다: 정체성과 소속. 주소의 일부는 당신이 속한 네트워크를 나타내고, 나머지는 그 네트워크 안에서 당신 자신을 나타냅니다.

누군가의 자리로 메시지를 전달하려면 먼저 그 사람이 같은 건물에 있는지 알아야 합니다. 라우터가 패킷을 전달하기 위해서도 마찬가지입니다: 이 목적지가 로컬인가, 아니면 다른 곳으로 내보내야 하는가?

이것이 서브네팅이 해결하는 문제입니다—인터넷의 50억 개 장치를 찾을 수 있게 해주는 근본 메커니즘입니다.

CIDR: 앞에서부터 세기

1993년, 인터넷은 주소가 부족해지고 있었습니다. 40억 개를 다 써서가 아니라—40억 개를 낭비했기 때문이었습니다.

기존 시스템에는 세 가지 고정된 클래스가 있었습니다. 주소 300개가 필요하다고요? 65,534개를 가져가세요. 1,000개가 필요하다고요? 65,534개 아니면 16,777,214개를 가져가세요. 그 사이는 없었습니다. 네트워크들은 파이를 식칼로 나누고 있었습니다.

CIDR(Classless Inter-Domain Routing, "사이더"로 발음)은 그 식칼을 레이저로 대체했습니다: 앞에서부터 비트를 세면 됩니다.

IPv4 주소는 32비트입니다. CIDR 표기법은 그 비트 중 얼마나 많은 비트가 네트워크를 정의하는지 정확히 알려줍니다. 192.168.1.0/24라는 표기법은 "처음 24비트가 네트워크이고, 나머지 8비트는 호스트를 위한 것"이라는 뜻입니다.

서브넷 마스크를 이진수로 변환하고 1의 개수를 세어 보면:

255.255.255.0  =  11111111.11111111.11111111.00000000
                  |———————— 24개의 1 ————————||— 8개의 0 —|

연속된 24개의 1. 이것이 /24입니다.

이 숫자가 말해주는 것

슬래시 뒤의 숫자만 보면 즉시 알 수 있습니다:

  • 네트워크 비트: 네트워크를 식별하는 비트 수
  • 호스트 비트: 개별 장치에 남은 비트 수 (32에서 네트워크 비트를 뺀 값)
  • 전체 주소 수: 2의 호스트 비트 거듭제곱
  • 사용 가능한 주소 수: 전체에서 2를 뺀 수 (네트워크 주소와 브로드캐스트 주소 제외)

10.20.4.8/29의 경우:

  • 29개의 네트워크 비트, 3개의 호스트 비트
  • 2³ = 8개의 전체 주소
  • 8 - 2 = 6개를 장치에 할당 가능
  • 범위: 10.20.4.8 ~ 10.20.4.15
  • 사용 가능: 10.20.4.9 ~ 10.20.4.14

작은 서브넷은 정밀합니다. /30은 정확히 4개의 주소를 제공합니다: 네트워크, 브로드캐스트, 그리고 2개의 사용 가능한 호스트—라우터 간 점대점 링크에 딱 맞습니다. 낭비가 전혀 없습니다.

큰 서브넷은 여유롭습니다. /16은 65,534개의 사용 가능한 주소를 제공합니다—중견 기업 전체 인프라에 충분한 규모입니다.

아래 표의 패턴을 보세요: 접두사에서 1을 뺄 때마다 주소 수가 두 배가 됩니다.

CIDR서브넷 마스크전체 IP사용 가능한 호스트
/32255.255.255.25511 (단일 호스트)1
/31255.255.255.25422 (점대점 연결)2
/30255.255.255.25242
/29255.255.255.24886
/28255.255.255.2401614
/27255.255.255.2243230
/26255.255.255.1926462
/25255.255.255.128128126
/24255.255.255.0256254
/23255.255.254.0512510
/22255.255.252.01,0241,022
/16255.255.0.065,53665,534
/8255.0.0.016,777,21616,777,214

장치가 이것을 활용하는 방법

네트워크의 모든 장치는 두 가지 정보를 갖습니다: IP 주소와 서브넷 마스크. 이 둘이 함께 소속 판별 문제에 답합니다.

192.168.1.50/24인 컴퓨터가 192.168.1.75를 목적지로 하는 패킷을 수신합니다. 각 주소와 서브넷 마스크 사이에 이진 AND 연산을 수행합니다:

내 IP:        192.168.1.50  →  192.168.1.0/24
대상 IP:      192.168.1.75  →  192.168.1.0/24
결과:         같은 네트워크, 직접 전달

하지만 8.8.8.8의 경우:

내 IP:        192.168.1.50  →  192.168.1.0/24
대상 IP:      8.8.8.8       →  8.0.0.0/8 (다름)
결과:         다른 네트워크, 게이트웨이로 전송

이 계산은 인터넷 전체에서 초당 수십억 번 일어납니다. 노트북이 같은 방 안에서 직접 통신할지, 아니면 라우터를 거쳐 더 넓은 세계로 나갈지를 결정하는 방식이 바로 이것입니다.

라우터도 같은 논리를 사용합니다. 패킷이 도착하면 라우터는 목적지를 라우팅 테이블의 모든 경로와 비교합니다. 가장 구체적인 일치가 우선합니다—두 범위 모두에 해당하는 주소라면 /16보다 /28 경로가 선택됩니다. 이 구체성 덕분에 CIDR은 인터넷이 확장될 수 있게 해줍니다: 라우터가 수천 개의 네트워크를 단일 라우팅 항목으로 집약할 수 있기 때문입니다.

네트워크를 나누는 이유

서브네팅은 단순한 수학이 아닙니다. 유용한 경계를 만드는 일입니다.

성능: 1,000개의 장치가 연결된 단일 네트워크에서는 브로드캐스트 트래픽이 모든 장치에 도달합니다. 이를 약 60개 장치씩 10개의 /26 서브넷으로 나누면 브로드캐스트가 각 서브넷 안에서만 머뭅니다. 불필요한 트래픽이 줄고 네트워크가 빨라집니다.

보안: 웹 서버는 10.0.10.0/24에, 데이터베이스는 10.0.20.0/24에, 직원 워크스테이션은 10.0.30.0/24에 배치하세요. 서브넷 간 방화벽 규칙으로 어떤 것이 어떤 것과 통신할 수 있는지를 제한합니다. 한 세그먼트가 침해되더라도 피해는 그 안에서 차단됩니다.

클라우드 인프라: AWS VPC는 10.0.0.0/16과 같은 CIDR 블록으로 시작하여 가용 영역에 걸쳐 더 작은 서브넷으로 세분됩니다. 외부에 노출되는 서버는 한 서브넷에, 내부 데이터베이스는 다른 서브넷에 두고, 각각 별도의 라우팅과 보안 정책을 적용합니다.

효율성: 각 네트워크 세그먼트에 필요한 만큼만 할당하세요. 라우터 두 대가 연결되어 있나요? 사용 가능한 IP 2개인 /30. 장치 50개가 있는 지사 사무소? 사용 가능한 IP 62개인 /26. 서버 500대가 있는 데이터 센터? 사용 가능한 IP 510개인 /23.

CIDR 이전에는 100개가 필요한 네트워크에 65,534개의 주소를 할당해야 했습니다. 이제는 126개를 할당하고 다음으로 넘어갑니다.

실제 예시

뉴욕, 런던, 도쿄에 각각 사무소를 둔 회사를 운영한다고 가정해 봅시다. 192.168.0.0/24—총 256개의 주소를 할당받았습니다.

서브네팅 없이는 모두가 하나의 네트워크를 공유합니다. 뉴욕의 브로드캐스트가 도쿄까지 흘러들어 갑니다. 런던에서 네트워크 문제가 생기면 모두가 영향을 받습니다. 관리가 엉망이 됩니다.

서브네팅을 적용하면 주소 공간을 나눌 수 있습니다:

  • 뉴욕: 192.168.0.0/26 (62개의 사용 가능한 주소)
  • 런던: 192.168.0.64/26 (62개의 사용 가능한 주소)
  • 도쿄: 192.168.0.128/26 (62개의 사용 가능한 주소)
  • 예비: 192.168.0.192/26 (향후 확장용)

각 사무소는 독립된 네트워크로 분리됩니다. 라우터가 사무소 간 트래픽을 전달합니다. 방화벽이 경계를 넘는 통신을 제어합니다. 네트워크 구조가 조직의 구조를 그대로 반영합니다—우리가 세상을 이해하는 방식이 그러하기 때문입니다.

IPv6에서의 CIDR

IPv6는 주소가 워낙 많아서 서브네팅의 목적이 주소 절약이 아닌 계층 구조 구성으로 바뀝니다.

CIDR 표기법은 동일하게 작동합니다: 2001:db8:1234::/48은 처음 48비트가 네트워크를 의미합니다. 하지만 규모가 전혀 다릅니다:

  • 조직은 일반적으로 /48 블록을 할당받습니다
  • /48은 65,536개의 /64 서브넷으로 나눌 수 있습니다
  • /64 서브넷은 18해(垓)개의 주소를 포함합니다
  • 단일 장치는 /128을 사용합니다

IPv6를 서브네팅하는 것은 주소를 아끼기 위해서가 아닙니다. 구조를 만들기 위해서입니다—건물별, 부서별, 용도별로 구분하기 위해서입니다. 주소가 풍부해지면서 전략은 달라지지만, 방식 자체는 변하지 않습니다.

핵심 요약

  • 서브넷은 "여기"와 "저기"를 정의합니다—로컬 전달과 라우팅 사이의 경계선
  • CIDR 표기법은 앞에서부터 비트를 셉니다: /24는 24개의 네트워크 비트, 8개의 호스트 비트
  • 계산은 단순합니다: 2^(32 - 접두사) = 전체 주소 수, 여기서 2를 빼면 사용 가능한 주소 수
  • 장치는 서브넷 마스크와의 이진 AND 연산으로 목적지가 로컬인지 판별합니다
  • 서브네팅은 네트워크의 실제 사용 구조에 맞는 성능·보안·운영 경계를 만듭니다
  • IPv6도 동일한 표기법을 사용하지만 128비트 기반으로, 방대한 계층적 구조를 구현할 수 있습니다
  • CIDR 이전에는 IP 할당이 낭비적이고 경직되어 있었습니다; CIDR 이후에는 정밀하고 유연합니다

서브넷과 CIDR에 관한 자주 묻는 질문

서브넷 마스크와 CIDR 표기법의 차이는 무엇인가요?

둘 다 같은 정보를 다른 방식으로 표현합니다. 255.255.255.0이라는 서브넷 마스크와 CIDR 표기법 /24는 모두 "네트워크에 24비트, 호스트에 8비트"를 의미합니다. CIDR 표기법이 더 간결하고 다루기 쉬워서 문서화와 설정에서 표준으로 자리 잡았습니다.

왜 네트워크 주소와 브로드캐스트 주소에 두 개를 써야 하나요?

서브넷의 첫 번째 주소(호스트 비트 전부 0)는 네트워크 자체를 식별합니다—동네 이름이지, 집 주소가 아닙니다. 마지막 주소(호스트 비트 전부 1)는 브로드캐스트 주소로, 서브넷 내 모든 장치에 동시에 패킷을 보낼 때 사용됩니다. 둘 다 개별 장치에 할당할 수 없습니다.

사설 네트워크에서 원하는 CIDR 블록을 마음대로 쓸 수 있나요?

사설 주소 범위(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) 안에서는 원하는 대로 서브네팅할 수 있습니다. 이 주소들은 공용 인터넷에서 라우팅되지 않으므로 외부와 조율할 필요가 없습니다. 일관성만 유지하고 구성을 문서화해 두면 됩니다.

어떤 CIDR 크기를 써야 하는지 어떻게 알 수 있나요?

장치 수를 세고 성장 여유를 더한 뒤, 그 수를 수용하는 가장 작은 CIDR 블록을 찾으면 됩니다. 현재 50대에 20대를 더 추가할 계획이라면 최소 70개의 주소가 필요합니다. /25는 126개의 사용 가능한 주소를 제공하므로 여유가 충분합니다. 62개뿐인 /26은 너무 빡빡합니다.

출처

War diese Seite hilfreich?

😔
🤨
😃