[Networks] 네트워크 할당과 서브네팅
Networks
네트워크 클래스
- IP 주소를 할당하고 네트워크를 구분하는 데 사용되었던 초기 방식 중 하나
- IPv4 체계에서 사용되며, IP 주소를 A, B, C, D, E 5개의 클래스로 나눔
- 각 클래스는 특정 크기와 호스트 수를 지원하도록 설계
클래스별 이론적 주소 범위
Class | 첫 번째 옥텟 (2진수) | 첫 번째 옥텟의 값 범위 (10진수) | 이론적 IP 주소 범위 | 호스트 개수 |
---|---|---|---|---|
A Class | 0xxx xxxx | 0 ~ 127 | 0.0.0.0 ~ 127.255.255.255 | 약 1억 6,777만 (16,777,214) |
B Class | 10xx xxxx | 128 ~ 191 | 128.0.0.0 ~ 191.255.255.255 | 약 65,534 |
C Class | 110x xxxx | 192 ~ 223 | 192.0.0.0 ~ 223.255.255.255 | 약 254 |
D Class | 1110 xxxx | 224 ~ 239 | 224.0.0.0 ~ 239.255.255.255 | 멀티캐스트용 (호스트 없음) |
E Class | 1111 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
: 24비트가 네트워크 부분을 나타내고, 나머지 8비트가 호스트 부분 - CIDR 표기법
- 형식:IP 주소/프리픽스 길이
- 프리픽스 길이와 네트워크 크기
- 프리픽스 길이는 서브넷 마스크의 길이
-/24
는 24비트가 네트워크 주소를 나타내는 것을 의미하며, 나머지 비트는 호스트 주소
- 프리픽스 길이가 짧을수록(예:/16
), 네트워크에 포함될 수 있는 호스트 수는 많아짐
- 반대로, 프리픽스 길이가 길수록(예:/28
), 네트워크에 포함될 수 있는 호스트 수는 적어짐 - 슈퍼넷팅 (Supernetting)
- CIDR은 여러 개의 작은 네트워크를 하나의 큰 네트워크로 묶는 슈퍼넷팅을 지원
- 예시
-192.168.0.0/22
는192.168.0.0/24
,192.168.1.0/24
,192.168.2.0/24
,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로…