본문 바로가기
네트워크

네트워크 정리 14. 클래스 없는 주소지정 (Classless Addressing)

by 호놀롤루 2022. 4. 13.

1. 개요

클래스 기반 주소지정에서 주소 고갈문제를 해결하기 위해 서브네팅, 슈퍼네팅 등 여러 시도를 했지만,

끝없는 이용자 증가로 문제를 해결하진 못했다.

 

물론 IPv6라는 대책이 나오긴 했지만, 이제껏 IPv4만 쓰다가 갑자기 모든 걸 IPv6로 바꾸기엔 무리가 있다.

그래서 나온 답이 클래스 없는 주소지정이다.

 

클래스에선 prefix와 suffix를 고정해서 썼지만, 클래스 없는 주소지정에선 자유롭게 prefix를 지정하고,

블록(네트워크)를 지정한다.

 

suffix는 남은 길이가 된다.

 

이론상으로 2^32 개의 주소의 블록을 사용할 수 있다.

 

 

2. 클래스 없는 주소지정 설명

2-1. 프리픽스 길이 : 슬래시 표기법 (Prefix Length : Slash Notation)

  • 프리픽스의 길이가 주소에 포함되어 있지 않기에, 프리픽스 길이를 따로 줘야한다.
  • 표기법은 비 공식적으론 슬래시 표기법, 공식적으론 클래스 없는 도메인간 라우팅 (Classless inter
    domain routing) 혹은 CIDR(Classless Inter Domain Routing) 이라 불린다.
  • 13.24.75.8/8
    128.14.55.92/12
    220.12.18.255/25, 이런 식으로 마지막에 "/prefix길이" 를 적어주는 것이다.

 

2-2. 주소에서 정보 추출 (Extracting Information from an address)

블록의 어느 주소라도 주어지면, 해당 주소가 소속된 블록에 대한 정보(블록 전체 주소의 수,
블록 첫번째 주소, 마지막 주소, 3가지 정보)를 알아야 한다.

 

슬래시 표기법으로 prefix의 길이를 알게 되면, (32-prefix길이) 로 suffix의 길이를 알 수 있다.

(2^서픽스길이) 로 블록 전체 주소의 수를 파악할 수 있다.

첫번째 주소는 주소를 2진수로 바꾸고, suffix를 전부 0으로 바꾸면 된다.

마지막 주소는 첫번째 주소에서 suffix를 전부 1로 바꿔주면 된다.

 

 

2-3. 정보 추출 예시

  • 220.12.18.92/27 이라는 주소가 있다고 치자.
    네트워크 내의 주소 수는 32-27 = 5, 2^5 = 32, 32개다. 
  • 220.12.18.92/27을 2진수로 바꾸면 11011100 00001100  00010010  01011100 이 된다.
    suffix는 마지막 5개 숫자니, 5개를 0으로 바꾸면 첫번째 주소를 찾을 수 있다.
    110111000  00001100  00010010  01000000 = 220.12.18.64/27
  • 1101100  00001100  00010010  01011100 에서 마지막 5개를 1로 바꾸면
    1101100  00001100  00010010  01011111 = 220.12.18.95/27

댓글