[Networks] 네트워크 할당과 서브네팅

[Networks] 네트워크 할당과 서브네팅


Networks

네트워크 클래스

  • IP 주소를 할당하고 네트워크를 구분하는 데 사용되었던 초기 방식 중 하나
  • IPv4 체계에서 사용되며, IP 주소를 A, B, C, D, E 5개의 클래스로 나눔
  • 각 클래스는 특정 크기와 호스트 수를 지원하도록 설계

클래스별 이론적 주소 범위

Class  첫 번째 옥텟 (2진수)첫 번째 옥텟의 값 범위 (10진수)이론적 IP 주소 범위                호스트 개수                  
A Class0xxx xxxx    0 ~ 127              0.0.0.0 ~ 127.255.255.255  약 1억 6,777만 (16,777,214)
B Class10xx xxxx    128 ~ 191            128.0.0.0 ~ 191.255.255.255약 65,534                
C Class110x xxxx    192 ~ 223            192.0.0.0 ~ 223.255.255.255약 254                    
D Class1110 xxxx    224 ~ 239            224.0.0.0 ~ 239.255.255.255멀티캐스트용 (호스트 없음)          
E Class1111 xxxx    240 ~ 255            240.0.0.0 ~ 255.255.255.255연구용 (호스트 없음)            

### 할당 과정 - IANA(Internet Assigned Numbers Authority, 인터넷 할당 번호 관리 기관)이 클래스의 IP를 관리하고, 이를 필요로 하는 조직에게 할당 - 그 당시에는 IP 주소가 전세계적으로 희귀한 자원이었기에 매우 신중하게 이뤄졌음 - 대규모 IP 주소 블록을 RIR(Regional Internet Registry)에 할당하고, RIR이 해당 지역 내에서 IP 주소를 관리하고 할당
### 과거에 할당되었던 클래스별 기관 - **A Class** - General Electric - Apple Inc - HP - ... - **B Class** - Stanford University - Harvard University - IBM - MIT - ... - C Class - 많은 소규모 기업과 조직들 - 초기 인터넷 서비스 제공자 (ISP) - 할당받은 IP를 개별 고객이나 소규모 비즈니스 고객한테 제공 - 정부 기관의 특정 부서
### 클래스 기반 할당의 문제점 - **IP 주소 낭비** - 클래스 기반 할당은 IP 주소 블록이 고정된 크기로 할당 - 예를 들어, 클래스 A는 네트워크당 1억 6천만 개의 IP 주소 - GE, Apple 이런 회사들이 1억 6천만개나 써야할 이유가 없음 - 블록 크기 고정이라 남는다고 다른 곳에서 쓸 수도 없음 - -> 낭비 - **인터넷의 급속한 성장** - 1990년대 초반부터 인터넷 사용이 급증하면서 IP 주소 할당 요청이 증가하고 기존 클래스 기반 방식으로는 IP 주소 할당이 어려워짐

CIDR (Classless Inter-Domain Routing)

CIDR 도입과 클래스 기반 방식의 전환

  • 1993년, 기존의 클래스 기반 할당 방식을 대체하는 CIDR이라는 새로운 주소 할당 및 라우팅 방법 도입
  • RFC 1519
  • CIDR의 공식적 도입이 RFC 1519 문서에서 정의됨
  • Classless 주소 지정 방식을 설명하고, 네트워크 공간을 효율적으로 사용하는 방법을 제시

CIDR의 주요 개념

  • IP 주소와 서브넷 마스크
        - CIDR에서는 IP 주소와 서브넷 마스크를 결합하여 네트워크를 식별
        - IP 주소 뒤에 /와 숫자를 붙여 서브넷 마스크의 길이를 표시
        - 예시
       - [192.168.1.0/24](http://192.168.1.0/24): 24비트가 네트워크 부분을 나타내고, 나머지 8비트가 호스트 부분
  • CIDR 표기법
        - 형식: IP 주소/프리픽스 길이
  • 프리픽스 길이와 네트워크 크기
        - 프리픽스 길이는 서브넷 마스크의 길이
       - /24는 24비트가 네트워크 주소를 나타내는 것을 의미하며, 나머지 비트는 호스트 주소
        - 프리픽스 길이가 짧을수록(예: /16), 네트워크에 포함될 수 있는 호스트 수는 많아짐
        - 반대로, 프리픽스 길이가 길수록(예: /28), 네트워크에 포함될 수 있는 호스트 수는 적어짐
  • 슈퍼넷팅 (Supernetting)
        - CIDR은 여러 개의 작은 네트워크를 하나의 큰 네트워크로 묶는 슈퍼넷팅을 지원
        - 예시
       - [192.168.0.0/22](http://192.168.0.0/22)는 [192.168.0.0/24](http://192.168.0.0/24), [192.168.1.0/24](http://192.168.1.0/24), [192.168.2.0/24](http://192.168.2.0/24), [192.168.3.0/24](http://192.168.3.0/24) 네트워크를 하나로 묶는 슈퍼넷
       - 이를 통해 라우팅 테이블의 항목 수를 줄일 수 있음

CIDR 도입 후 IP 할당 과정

  • 주소 요청
        - 조직이 IP 주소가 필요할 때, 해당 지역의 RIR에 요청
        - RIR은 조직의 필요성, 네트워크 규모, 기존 주소 사용률 등을 평가한 후, 적절한 크기의 CIDR 블록을 할당
  • 주소 할당
        - RIR은 필요에 따라 /16, /24, /28 등 다양한 크기의 블록을 할당
        - 할당된 블록은 조직이 관리하며, 더 작은 서브넷으로 나눠 내부 네트워크에 사용 가능
  • 주소 사용 및 관리
        - 조직은 할당받은 CIDR 블록을 사용하여 네트워크를 구성하고, 내부적으로 서브네팅을 통해 주소를 할당
        - 필요에 따라 추가 IP 주소를 요청할 수 있으며, RIR은 할당된 주소의 사용률과 필요성을 평가하여 추가 블록을 할당
  • ISP가 엔드 고객에게 IP 제공

Subnetting

  • 네트워크 관리를 보다 효율적으로 수행할 수 있도록 IP 네트워크를 더 작은 네트워크 단위로 분할하는 프로세스
  • 큰 네트워크를 여러 작은 네트워크로 나눠 트래픽과 자원을 효율적으로 관리

Subnet Mask

  • IP 주소를 네트워크 부분과 호스트 부분으로 구분하는 데 사용되는 32비트 숫자
  • 특정 네트워크의 범위를 정의하고, 같은 네트워크 내에서 호스트들을 식별하는 데 도움

구성

  • 네트워크 부분
  • 서브넷 마스크에서 1로 설정된 비트
  • IP 주소의 네트워크 주소 부분을 나타냄
  • 호스트 부분
  • 서브넷 마스크에서 0으로 설정된 비트
  • 개별 호스트를 구분

사용 가능한 호스트 수 계산

  • 2^n - 2 (첫번째 주소인 네트워크 주소, 마지막 주소인 브로드캐스트 주소 제외)

네트워크 주소 계산

  • 주어진 IP 주소에서 호스트 부분을 0으로 만들어 계산
  • 주어진 IP 주소와 서브넷 마스크 간의 비트별 AND 연산으로 수행
  • 예시
  • IP: 192.168.1.100
  • 이진수: 11000000.10101000.00000001.01100100
  • 서브넷 마스크: 255.255.255.192
  • 이진수: 11111111.11111111.11111111.11000000
  • -> CIDR: /26
  • 비트별 AND 연산 결과
  • 11000000.10101000.00000001.01100100 AND
  • 11111111.11111111.11111111.11000000

  • 11000000.10101000.00000001.01000000
  • -> 192.168.1.64

브로드캐스트 주소 계산

  • 호스트 부분의 모든 비트를 1로 설정해 계산
  • 예시
  • 네트워크 주소: 192.168.1.64
  • 이진수: 11000000.10101000.00000001.01000000
  • 서브넷 마스크 호스트 부분 1로 채우기
  • 00000000.00000000.00000000.00111111
  • 비트별 OR 연산
  • 11000000.10101000.00000001.01000000
  • 00000000.00000000.00000000.00111111

  • 11000000.10101000.00000001.01111111
  • -> 192.168.1.64

목적

  • 큰 네트워크를 계속해서 작은 네트워크로 나눠가는 것
  • /23을 /24로, 그걸 또 /25로…

© 2024 Seungwon Bae 🇰🇷