사이더 (네트워킹)

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

사이더(Classless Inter-Domain Routing, CIDR)는 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한, 최신의 IP 주소 할당 방법이다. 사이더는 기존의 IP 주소 할당 방식이었던 네트워크 클래스를 대체하였다. 사이더는 IP 주소의 영역을 여러 네트워크 영역으로 나눌 때 기존방식에 비해 유연성을 더해준다. 특히 다음과 같은 장점이 있다.

  • 급격히 부족해지는 IPv4 주소를 보다 효율적으로 사용하게 해준다.
  • 접두어를 이용한 주소 지정 방식을 가지는 계층적 구조를 사용함으로써 인터넷 광역 라우팅의 부담을 줄여준다.

사이더 블록[편집]

사이더 접두어 일치 예

사이더는 기본적으로 비트단위, 접두어기반의 IP 주소 표준 분석방식이다. 이는 일련의 주소를 무리 지어 하나의 라우팅 테이블 항목에 넣는 것으로 라우팅을 실행한다. 사이더 블록이라 불리는 그룹에 포함된 여러 IP 주소는 이진 표기를 하였을 때 동일한 일련의 초기 비트를 가진다. IPv4 사이더 블록은 IPv4 주소와 비슷한 형태를 지니며, 점과 숫자로 이루어진 4부분의 주소와 ‘/’뒤의 0에서 32까지의 숫자로 이루어진다. 즉, A.B.C.D/N과 같은 형태이다. 점과 숫자로 이루어진 부분은 IPv4 주소와 마찬가지로 4개의 8비트 단위 바이트로 이루어진 32비트 이진 숫자이다. ‘/’뒤의 숫자는 접두어 길이라고 하며, 주소의 왼쪽으로부터 세어서 공유하는 초기 비트의 수를 가리킨다. 때로는 점과 숫자부분은 생략되고 표현되는데, 즉 /20은 언급되지 않은 20비트의 접두어를 가지는 사이더 블록을 나타낸다.

만약 처음 N 비트의 IP 주소와 사이더 접두어가 같다면, 해당 IP 주소는 사이더 블록의 일부라고 하며, 사이더 접두어와 일치한다고 한다. 그러므로 사이더를 이해하려면 IP 주소를 이진 형태로 나타내는 것이 필요하다. 사이더 접두어 일치 예에서 10.10.1.44는 10.10.1.32와 초기 27비트가 같으므로 사이더 블록 10.10.1.32/27에 일치하며, 10.10.1.90은 10.10.1.32와 26, 27번째의 비트가 다르므로 사이더 블록 10.10.1.32/27에 일치하지 않는다. IPv4의 경우, 주소의 길이가 32비트로 한정되어 있으므로, N 비트의 사이더 접두어는 사용되지 않은 32-N비트의 주소를 남기며, 남은 비트를 사용하면 2^{(32-N)}개의 조합을 구할 수 있는데, 이는 2^{(32-N)}개의 IPv4 주소가 해당 N 비트의 사이더 접두어에 일치함을 나타낸다. 짧은 사이더 접두어는 더 많은 IP 주소와 일치하며, 긴 사이더 접두어는 적은 주소와 일치한다. 하나의 주소는 서로 다른 길이의 여러 사이더 접두어와 일치할 수 있다.

사이더는 IPv6 주소에서도 사용될 수 있는데, 이 경우 긴 주소로 말미암아 접두어 길이는 0에서 128까지의 범위를 지닌다. 이 경우에도 동일한 문법이 사용된다. 접두어는 IPv6와 같은 형태로 쓰이고, ‘/’ 다음에 접두어의 길이가 표시된다.

사이더 블록의 할당[편집]

Internet Assigned Numbers Authority (IANA)는 Regional Internet Registries (RIRs)에게 짧은 접두어를 가지는 큰 사이더 블록을 할당해준다. 예를 들어, 1600만 개 이상의 주소를 지니는 62.0.0.0/8는 RIPE, 즉 유럽 RIR에 의해서 관리가 된다. RIR은 각각 유럽이나 북아메리카와 같은 하나의 큰 지정학적 위치를 관리하며, 할당받은 블록을 작은 블록으로 나누어 분배한다. 이러한 분배과정은 다른 수준의 레벨로 계속해서 반복된다. 대형 인터넷 서비스 공급자(Internet Service Providers, ISPs)는 일반적으로 RIR로부터 사이더 블록을 얻어서 이를 가입자 수에 따라 지역 공급자에게 나누어 준다. 인터넷 국제 표준화 기구는 동일 인터넷 서비스 공급자에 속해있는 네트워크는 직접 주소 공간을 얻어서 사용할 것을 권장하고 있다. 반면, 여러 서비스 공급자로부터 서비스를 받는 네트워크는 해당 RIR로부터 직접 독립적인 사이더 블록을 얻는 것을 권장한다.

CIDR Address.png

예로, 1990년대 후반, 208.130.29.33은 www.freesoft.org 웹 서버에 할당되어 있었다. 이 주소를 분석해보면, 3개의 사이더 접두어를 가지는 것을 알 수 있다. 우선 2백만 개 이상의 주소를 포함하는 큰 사이더 블록인 208.128.0.0/11이 ARIN(북미 RIR)에서 MCI에로 할당되었다. 버지니아주에 있는 재공급업자인 Automation Research Systems는 MCI로부터 인터넷 접속을 승인받아 208.130.28.0/22를 부여받았다. ARS는 /24 블록을 공공 서버용으로 할당하였고, 208.130.29.33은 이 중의 하나다.

하나의 주소에 대한 이러한 여러 사이더 접두어는 네트워크상의 서로 다른 영역에서 각각 사용된다. MCI 네트워크 외부에서는 208.128.0.0/11 접두어가 MCI 트래픽 영역으로 접근하기 위해 사용된다. 이 접두어는 208.130.29.33뿐만 아니라 초기 11비트가 동일한 약 200만 개 이상의 주소에 대해서 사용된다. MCI 네트워크 내부에서는 208.130.28.0/22가 사용되며, 패킷을 ARS로 보내는 역할을 한다. 반면 208.130.29.0/24는 ARS 네트워크 내부에서만 사용된다.

사이더와 마스크[편집]

서브넷 마스크는 IP 주소와 비슷한 방식으로 접두어의 길이를 표시하는 방법이다. 즉 32비트 길이의, 접두어 길이만큼의 1로 시작해서, 나머지는 0으로 채우는 것이고, 4개의 숫자 형태로 표현하는 것이다. 서브넷 마스크는 접두어 길이와 동일한 정보를 나타내지만, 사이더보다 먼저 개발되었다.

사이더는 IP 주소를 필요에 맞게 서브넷에 할당하기 위해서 일반적으로 네트워크에 사용되는 방식이 아닌, 가변길이 서브넷 마스크(variable length subnet masks, VLSM)를 사용한다. 그러므로 네트워크/호스트 구분은 주소영역의 어느 부분을 경계로라도 일어날 수 있다. 이 과정은 일부분의 주소가 더욱 작은 부분의 주소로 분해되는 것처럼 계속해서 반복적으로 일어날 수도 있다. 이러면 더욱 작은 부분으로 분해하기 위해서 더 많은 부분을 가리는 마스크가 필요하다.

사이더/VLSM 네트워크 주소는 공공 인터넷을 비롯하여 기타 대형 사설 네트워크에서도 널리 사용되고 있다. LAN을 이용하는 보통의 컴퓨터 사용자는 실제로 이를 경험할 수 없는데, 이는 보통의 LAN 환경은 특별한 사설 RFC 1918 주소체계를 이용하여 식별되기 때문이다.

접두어 합침[편집]

사이더의 다른 이점은 라우팅 접두어 합침(routing prefix aggregation, 혹은 summarization)이다. 예를 들어 16개의 연속된 /24 네트워크는 같이 합쳐져서(네트워크 주소의 처음 20비트가 모두 일치하는 경우) 외부에는 하나의 /20 네트워크로 보일 수 있다. 두 개의 연속된 /20 네트워크는 차례로 하나의 /19 네트워크로 묶일 수 있으며, 이는 계속될 수 있다. 이러한 방식은, 인터넷상에서 노선의 수를 많이 감소시켜주며, 라우팅 테이블이 라우터가 감당할 수 없을 정도로 커지는 것을 방지해준다.

CIDR
CIDR Class Hosts Mask
/32 1/256 C 1 255.255.255.255
/31 1/128 C 2 255.255.255.254
/30 1/64 C 4 255.255.255.252
/29 1/32 C 8 255.255.255.248
/28 1/16 C 16 255.255.255.240
/27 1/8 C 32 255.255.255.224
/26 1/4 C 64 255.255.255.192
/25 1/2 C 128 255.255.255.128
/24 1 C 256 255.255.255.000
/23 2 C 512 255.255.254.000
/22 4 C 1024 255.255.252.000
/21 8 C 2048 255.255.248.000
/20 16 C 4096 255.255.240.000
/19 32 C 8192 255.255.224.000
/18 64 C 16384 255.255.192.000
/17 128 C 32768 255.255.128.000
/16 256 C, 1 B 65536 255.255.000.000
/15 512 C, 2 B 131072 255.254.000.000
/14 1024 C, 4 B 262144 255.252.000.000
/13 2048 C, 8 B 524288 255.248.000.000
/12 4096 C, 16 B 1048576 255.240.000.000
/11 8192 C, 32 B 2097152 255.224.000.000
/10 16384 C, 64 B 4194304 255.192.000.000
/9 32768 C, 128B 8388608 255.128.000.000
/8 65536 C, 256B, 1 A 16777216 255.000.000.000
/7 131072 C, 512B, 2 A 33554432 254.000.000.000
/6 262144 C, 1024 B, 4 A 67108864 252.000.000.000
/5 524288 C, 2048 B, 8 A 134217728 248.000.000.000
/4 1048576 C, 4096 B, 16 A 268435456 240.000.000.000
/3 2097152 C, 8192 B, 32 A 536870912 224.000.000.000
/2 4194304 C, 16384 B, 64 A 1073741824 192.000.000.000
/1 8388608 C, 32768 B, 128 A 2147483648 128.000.000.000

역사적 배경[편집]

IP 주소는 원래 전체 네트워크나 서브넷을 가리키는 네트워크 주소와 특정 기계나 네트워크로의 연결을 나타내는 호스트 주소의 두 개로 구성되어 있었다. 이러한 구분은 IP 네트워크상에서 자료 교환을 통제하기 위해 사용되었다.

전통적으로, IP 주소 영역은 세 개의 네트워크 클래스로 나누어졌는데, 각 클래스는 고정된 크기의 네트워크 주소를 가졌다. 클래스, 즉 네트워크 주소의 길이와 네트워크상에서의 호스트의 숫자는 IP 주소의 MSB로부터 항상 결정될 수 있었다. 접두어의 길이나 서브넷 마스크를 정하지 않고서도, 라우팅 프로토콜은 주소에 나타난 클래스를 사용하여 라우팅 테이블을 채워넣기 위한 접두어의 길이를 정할 수 있었다.

하지만, 실험적이었던 TCP/IP 네트워크가 1980년대 인터넷으로 성장함에 따라, 더욱 유동적인 주소 체계가 급속히 필요해졌다. 이는 서브넷, Variable-Length 서브넷, 그리고 마침내 사이더의 개발을 야기하였다. 이전의 클래스 구분이 이제는 무시되므로, 새로운 시스템은 클래스 없는 라우팅이라고 불렸으며, 상대적으로 이전의 시스템은 클래스 있는 라우팅으로 불리게 되었다.

외부 고리[편집]