본문 바로가기

Computer Engineering/Networks

CIDR과 서브넷과의 차이점

CIDR (Classless Inter-Domain Routing)

CIDR[사이더]는 도메인간의 라우팅에 사용되는 인터넷 주소를, 원래의 IP 주소 클래스 체계를 쓰는 것보다 더욱 융통성 있도록 할당하고, 지정하는 방식 중 하나이다. 그 결과로, 활용 가능한 인터넷 주소의 숫자가 크게 증가되었다. CIDR는 이제 인터넷 백본 네트웍 상에서 실질적으로 모든 게이트웨이 호스트에 의해 사용되는 라우팅 시스템이다. 인터넷 조정기관들에서는 이제 라우팅을 위해 모든 ISP들이 CIDR를 사용하기 바라고 있다.

원래의 인터넷 프로토콜은 클래스 A에서 클래스 D에 이르는 네 개의 주요 클래스 내에서 IP 주소를 정의한다. 이러한 클래스 각각은 32 비트 인터넷 주소 형식의 한 부분을 네트웍 주소에 할당하며, 남은 부분은 그 주소에 의해 지정된 네트웍 내에 있는 특정 호스트에 할당한다. 가장 광범위하게 사용되는 클래스 중 하나가 클래스 B인데, 이는 최대 65,533대의 호스트를 지정할 수 있는 주소 공간이 할당된다. 그러나, 만일 254개 이상 65,533개 이하의 호스트 주소가 필요한 회사인 경우에는, 본질적으로 할당된 주소 블록의 대부분을 낭비하게 된다. 바로 이러한 이유 때문에, CIDR가 사용되기 전까지는 실제 필요한 것보다 인터넷 주소 공간이 더 빨리 고갈되고 있었다. CIDR는 라우터 내에서 네트웍 주소를 지정하는데 있어 새롭고 더욱 유연한 방법을 제공함으로써 이런 문제점을 효과적으로 해결한다 (인터넷 프로토콜의 새로운 버전인 IPv6에서는 128 비트의 주소공간 할당이 가능하므로, 인터넷상에서 사용 가능한 주소공간이 크게 늘었다. 그러나, IPv6가 널리 보급되기 위해서는 어느 정도의 기간이 필요하다).

CIDR를 사용하면, 각 IP 주소들은 네트웍 게이트웨이의 집단, 또는 개별 게이트웨이를 확인하는 네트웍 접두어를 갖는다. 네트웍 접두어의 길이도 IP 주소의 일부로서 지정되며, 필요한 비트 수에 따라 가변적이다. 많은 목적지 후보들을 묘사하고 있는 행선지 IP 주소는 더 짧은 접두어를 가지며, 조금 덜 상세한 것이라고 말할 수 있다. 좀더 긴 접두어는 행선지 게이트웨이를 좀더 명확하게 기술한다. 라우터는 패킷을 전달할 때 라우팅 테이블 내에서 가장 명확하고, 긴 네트웍 접두어를 사용하도록 요구된다.

CIDR 네트웍 주소는 다음과 같은 형태로 나타내어 진다.

192.30.250.00/18

여기서 "192.30.250.00"은 네트웍 주소 그 자체이며, "18"이라는 것은 처음 18 비트가 네트웍 주소 부분이고, 나머지 14 비트가 특정한 호스트 주소라는 것을 가리킨다. CIDR는 공중전화시스템이 네트웍의 특정 구역으로 향하는 통화를 보내기 위해 지역번호를 사용하는 것처럼, 하나의 라우팅 테이블 내용이, 특정 게이트웨이 상에 지정될 필요가 없는 전달 경로 내의 네트웍 집단을 표현할 수 있게 한다. 단일 주소 내에 있는 이 네트웍 집단은 때로 수퍼넷이라고도 불린다. CIDR는 널리 사용되고 있는 EGP인 BGP-4에 의해 지원된다 (좀 오래된 EGP, IGP, RIP 등은 CIDR를 지원하지 않는다). CIDR는 OSPF IGP에 의해서도 지원된다.



subnet and subnet mask ; 서브넷 서브넷 마스크

서브넷(subnet)은 "subnetwork을 줄인 말로서 어떤 기관에 소속된 네트웍이지만 따로 분리되어 있는 한 부분으로 인식될 수 있는 네트웍을 말한다. 일반적으로 하나의 서브넷은 하나의 지역, 한 빌딩 또는 같은 근거리통신망 내에 있는 모든 컴퓨터들을 나타낼 수 있다. 여러 개의 서브넷으로 나뉘어진 어떤 조직의 네트웍은 인터넷에 하나의 공유된 네트웍 주소로 접속될 수 있다. 만약 서브넷이 없다면, 그 조직은 물리적으로 분리된 서브 네트웍마다 하나씩, 여러 군데의 인터넷 접속을 가지게 될 것이며, 그렇게 함으로써 한정된 량의 인터넷 주소가 쓸모 없이 낭비될 수도 있게된다.

인터넷은 네트웍 사용자들 간에 서로 커뮤니케이션을 하기 위한 네트웍의 집합이다. 커뮤니케이션을 위해서는 양측의 사용자 또는 호스트가 관련되어 있는 발신지와 도착지 네트웍, 그리고 네트웍 내의 특정한 컴퓨터의 주소가 있어야 한다. 이 주소를 IP 주소라고 부른다. 32 비트의 IP 주소는 크게 두 부분으로 나뉘는데, 하나는 네트웍을 식별하는 네트웍 번호이고, 다른 하나는 네트웍 내의 특정한 컴퓨터나 호스트를 식별하는 호스트 번호이다. 한 기관에서 특정한 서브넷을 확인시키기 위해 컴퓨터나 호스트를 식별하는 주소 내의 비트들을 일부 사용할 수 있다. 그러므로 실제로는 IP 주소에는 네트웍 번호, 서브넷 번호, 그리고 컴퓨터 번호 등 세 부분이 포함되어 있는 셈이다.

서브넷을 만들고 확인시키는 표준절차가 인터넷 RFC 950에 제공된다.

IP 주소

32 비트의 IP 주소는 점에 의해 구분되는 4 부분의 십진수로 구성되어 있다. 예를 들면

130.5.5.25

와 같이 표현할 수 있는데, 각 십진수는 8 비트의 2진수 스트링을 표현한다. 그러므로, 위의 IP 주소는 실제로 0과 1로 표현한다면

10000010.00000101.00000101.00011001

처럼 된다. 위에 보는 바와 같이, 십진수로 되어 있는 IP 주소에서처럼 각 8자리의 2진수들 간에도 점이 삽입되어 있다. 10진수 IP 주소는 읽기가 쉬우므로 널리 사용된다.

IP 주소의 일부부분은 네트웍 번호를 표현하고, 일부분은 지역의 컴퓨터 주소를 나타낸다. IP 주소에는 몇 가지 클래스가 있는데, 각 클래스는 네트웍 번호를 몇 비트로 나타내는가 그리고 호스트 번호를 몇 비트로 나타내는가를 결정한다. 큰 기관에서 가장 일반적으로 사용되는 클래스가 B 클래스인데, 이것은 네트웍 번호에 16 비트를, 그리고 호스트 번호에 16 비트를 할당하는 것이다. 위의 예를 사용하여, IP 주소가 분할되는 것을 나타내 보면 다음과 같다.

<--네트웍 번호--><--호스트 번호-->

130 . 5        .        5   .  25

만약 이 주소에다가 서브넷을 추가하기를 원한다면, 호스트 번호의 일부분 (예를 들면 총 16비트 중 8 비트)을 서브넷 주소로 사용할 수 있으며, 다음과 같이 된다.

<--네트웍 번호--><--서브넷 주소--><--호스트 번호-->

         130 . 5        .            5            .          25 

여기서는 설명을 간단히 하기 위하여 서브넷을 8 비트로 정했지만, 실제로는 세 번째 쿼드의 일부, 심지어 네 번째 쿼드의 일부만을 서브넷으로 사용하는 등, 다른 구성을 선택할 수 있다.

서브넷 마스크

한 기관의 게이트웨이나 고유한 네트웍번호로 되어 있는 연결점에 패킷이 도착하면, 그 패킷은 서브넷 번호를 이용하여 조직 내부의 게이트웨이에서 다시 라우팅 될 수 있다. 이때 그 라우터는 서브넷 마스크를 봄으로써 어떤 비트를 참조해야하는지 또는 참조할 필요가 없는지를 알게된다. 마스크는 단순히 라우터가 참조해야할 비트가 어느 것인지를 말해주는 일종의 필터이다. 2진수 마스크에서 한 번호 상의 "1"은 "그 번호 이하를 보라"는 것을 의미하고, "0"은 "그 이하는 볼 필요가 없다"는 것을 의미한다. 마스크를 사용하면 라우터가 32 비트 주소 전체를 처리해야하는 부담을 줄여주며, 단순히 마스크에 의해 선택된 비트들만 보도록 해준다.

앞의 예제를 보면, 네트웍번호와 서브넷번호를 합하여 총 24 비트(또는 세 개의 쿼드)가 사용되고 있다. 그 패킷에 적용되기에 적절한 서브넷 마스크는 아마도 다음과 같은 것이 될 것이다.

255.255.255.0

또는 앞의 세 개의 쿼드에는 모두 "1"을 채움으로써 라우터에게 이 부분을 보라고 말하고, 라우터가 볼 필요가 없는 제일 마지막 쿼드에는 모두 "0"을 채우면 된다. 서브넷 마스크는 라우터에게 패킷을 좀더 빠르게 이동시킬 수 있도록 해준다.

만약 한 조직의 서브넷을 만들고(이런 일을 영어로는 "서브네팅"이라고 부른다) 서브넷 마스크를 정의하는 일이 주어졌다면, 그 일은 조직의 크기나 복잡도 그리고 또다른 요인들에 따라 간단할 수 있고, 복잡할 수도 있다. 아래에 열거한 추가정보가 도움이 될 수 있을 것이다.

'Computer Engineering > Networks' 카테고리의 다른 글

Multicast; 멀티캐스트  (0) 2008.06.04
네트워크 명령어 "nbtstat "  (0) 2008.04.16
네트워크 명령어 'netstat '  (0) 2008.04.16
VPN 이란?  (0) 2008.04.15
이더넷, 패스트 이더넷, 기가빗 이더넷  (1) 2007.12.12
BGP/RIP/IGRP/OSPF  (0) 2007.12.08
VPI &VCI  (0) 2007.12.08
SSL Protocol 개념과 동작 원리  (0) 2007.12.08
ATM VS Gigabit 비교  (0) 2007.12.08
1.2 TCP/IP 프로토콜  (0) 2007.12.08