본문 바로가기
기타

RFC1918과 CIDR 블록

by 초특급하품 2019. 10. 24.

인터넷을 사용하는 도메인이라면 IP가 있고, 그 IP가 중복이 되면 서로 구분할 수 없다. 따라서 각 IP가 유일하도록 관리하고 분배하는 주체가 있다. ICANN을 필두로 그 권한을 이어받아 ISP가 내가 사용하는 IP를 설정해준다. 하지만 회사나 네트워크에서는 모든 도메인에 공인 IP를 줄 순 없으니 여러 네트워크에서는 앞단에 라우터 하나를 두고 안쪽에서는 private network로 구성해서 사용한다. 그러면 공인 IP와 사설 IP를 구분할 기준이 필요한데 국제 인터넷 표준화 기구(IETF)에서 그 대역을 정했다. 권고 사항이긴 하지만 어길 경우에 이를 해석하는 과정에서 충돌이 일어날 수 있기 때문에 지켜야 한다.

 

RFC1918

IP 대역 CIDR
10.0.0.0 – 10.255.255.255 10.0.0.0/8
172.16.0.0 – 172.31.255.255 172.16.0.0/12
192.168.0.0 – 192.168.255.255 192.168.0.0/16

 

여기에 정의된 대역은 사설 네트워크로 사용해도 된다.

가까운 예로 AWS에서 VPC 구성을 할 때 CIDR 블록을 설정해야 하는데 이때 RFC1918에서 정의한 사설 대역으로 구성해야 한다.

 

CIDR 블록

사이더 블록이라고도 부른다. RFC1918의 두 번째 172.16.0.0/12으로 확인해보자.

 

172.16.0.0에서 굵게 표시한 앞 12 비트는 네트워크 주소, 뒤 20비트는 호스트 주소를 가리킨다. 아래와 같은 순서로 위 표에 나온 IP 대역으로 바꿀 수 있다. 

 

10000100 . 00010000 . 00000000 . 00000000 / 12

-> 10000100 . 0001000 . 00000000 . 00000000 ~ 10000100 . 00011111 . 111111111 . 11111111

-> 172.16.0.0 ~ 172.31.255.2555

 

다시 말해 $2^{20}$ 개의 호스트를 가질 수 있는 대역이다. 이처럼 VPC 또는 subnet로 사설 네트워크를 구성할 때는 사용할 호스트 구성을 먼저 설계한 후 적절한 CIDR 블록을 설정을 해야 한다. 엄밀히는 브로드 캐스트 IP와 네트워크 IP, AWS가 자체적으로 관리하는 몇 개를 제외해야 한다.

'기타' 카테고리의 다른 글

[bash] awk 사용 설명서  (0) 2019.11.21
삭제된 라인의 git commit 찾기  (0) 2019.11.20
jq로 JSON 처리하기  (0) 2019.10.23
npm에서 package.json의 module version관리  (0) 2019.10.15
가산기(Carry-lookahead Adder) 구조  (0) 2019.10.15

댓글