◎ 서브넷 (Subnet)과 서브넷 마스크 (mask)

 

인터넷 주소 클래스는 IP 네트워크에 대해서 3개의 규모로 네트워크를 구분할 수 있도록 설계되었습니다. 32BIT의 IP주소는 얼마만큼의 네트워크 와 호스트가 필요하느냐에 따라 네트워크 ID와 호스트 ID로 구분지을 수 있습니다.

 

그러나, 동일한 네트워크에 16,777,214개의 호스트를 가질 수 있는 클래스 A의 경우, IP 라우터에 의해 묶여진 동일 물리적 네트워크 상에 위치한 모든 호스트들은 같은 브로드캐스트 트래픽을 공유하게 됩니다.

 

즉, 몯모든 호스트가 동일 브로드캐스트 도메인에 위치하게 됩니다. 16,777,214개의 포트가 동일한 브로드캐스트 도메인에 위치한다는 것은 현실적으로 바람직 하지 않습니다. 결과적으로 16,777,214개의 포트 주소의 대부분을 지정할 수 없게 되고 그만큼 낭비가 심해질 것입니다. 클래스 B 역시 65534 개의 호스트 역시 현실적으로 문제가 많지요..

 

그래서 좀더 작은 브로드 캐스트 도메인을 만들고 호스트 ID의 비트를 잘 이용할 수 잇도록 하기 위해 IP네트워크는 라우터로 경계가 이어지는 작은 네트워크들로 분리 될 수 있습니다. 이렇게 분리도니 네트워크에 새로운 서브넷 네트워크를 지정합니다.

이 네트워크는 기존의 클래스  기반의 네트워크에 서브넷으로 포함 할 수 있습니다.

 

아래 그림 1의 예제를 보면 139.12.0.0 의 클래스 B 네트워크는 65534 개의 호스트를 가질 수 있습니다. 너무 많죠..;;; 이러한 갯수로는 나중에 브로드캐스트 트래픽으로 트러블이 생길겁니다. ( 상상해보죠..한꺼번에 브로드캐스트 날리고..그 응답이 한꺼번에 자신에게 올때... 그 과부하...) 139.12.0.0을 서브넷으로 구성하는 것은 네트워크에 대해서 재설정이 필요가 없습니다.

                                

그림 1 ) 서브넷 구성 전 네트워크 139.12.0.0

 

네트워크 139.12.0.0은 호스트 비트중 첫번째 9비트에 새로운 서브넷 네트워크를 지정하여 서브넷으로 구성할 수 있습니다. 만약 139.12.0.0 이 서브넷으로 구성되면 그림 2의 경우처럼 자신만의 서브넷 네트워크 (139.12.1.0, 139.12.2.0 , 139.12.3.0)을 가진 분리된 네트워크가 생성됩니다. 라우터는 분리된 서브넷 네트워크를 인식하고 적절한 서브넷으로 IP패킷을 라우팅 합니다.

 

IP 네트워크의 나머지 부분에서는 여전히 3개의 서브넷에 있는 포트들을 네트워크 139.12.0.0에 위치하는 것으로 여깁니다.(중요)

네트워크에 존재하는 다른 라우터들은 네트워크 139.12.0.0에 위치하는 서브넷에 대해서 전혀 알지 못하기 때문입니다. 그래서 아무런 재설정이 필요없는 것입니다.

 

 

그림 2) 서브넷 구성후의 139.12.0.0

 

일단 기본적인 원리만 살펴 봤습니다. 네트워크 139.12.0.0 네트워크를 분할하는 라우터는 네트워크가 어떻게 분할 되는지, 어떤 서브넷이 어떤 라우터 인터페이스 에서 찾을 수 있는지 알 수 있을까요?

 

IP 포트에 이러한 새로운 레벨의 정보를 주기 위해서는 새로운 서브넷 을 인터넷 주소 클래스와는 상관없이 정확하게 구분할 수 있도록 해야 합니다. 클래스 기반이든 혹은 서브넷이든 관계없이 IP 포트에게 정확한 네트워크 ID를 제공하기 위하여 서브넷 마스크를 사용합니다.

 

◎ 서브넷 마스크

 

서브넷의 출현으로 더이상 IP 주소에서 네트워크를 정하기 위해 IP 클래스 정의에 의존할 수 없게 되엇습니다. 클래스기반 이든 혹은 서브 네트워크가 사용되는지의 여부에 관계없이 IP 주소의 어떤 부분이 네트워크 ID인지를 정의하는 새로운 값이 필요하게 되었죠.

 

RFC 950은 서브넷 마스크 (주소 마스크라고도 함) 의 사용에 대해 정의하고 있습니다. 서브넷 마스크는 32BIT의 값으로 네트워크와 호스트를 IP 주소에서 구분하는 역활로 사용합니다.

 

서브넷 마스크의 비트는 다음과 같이 정의됩니다.

 

  - 네트워크 ID에 해당하는 모든 비트는 1로 설정

  - 호스트 ID에 해당하는 모든 비트는 0으로 설정

 

TCP / IP 네트워크에 존재하는 모든 호스트는 하나의 세그먼트로 이루어진 네트워크에 위치합니다. 이 경우에도 서브넷 마스크는 필요합니다. 기본 서브넷 마스크 ( 클래스 기반 네트워크에서 사용) 이나 사용자 정의 서브넷 마스크 (서브넷이나 슈퍼넷에서 사용) 중 하나는 반드시 모든 TCP / IP 포트에 정의되어야 합니다.

 

* 서브넷 마스크의 점으로 구분한 10진수 표기법

 

서브넷 마스크는 보통 점으로 구분된 10진수 표기로 표현합니다. 일단 , 비트가 네트워크 ID와 호스트 ID로 구분되어 지면 ,32BIT의 결과값은 10진수의 표기로 바뀌어 표시됩니다. 비록 점으로 구분된 10진수 표기라는 사실은 같지만 서브넷 마스크는 IP주소와는 다르다는 점을 기억해야 합니다.

 

기본 서브넷 마스크는 IP주소 클래스에 의해 결정되며 서브넷으로 분리되지 않은 TCP / IP 네트워크에 사용됩니다.

 

표 1) 점으로 구분된 10진수 표기로 나타낸 기본 서브넷 마스크

 

사용자 정의 서브넷 마스크는 서브넷이나 슈퍼넷을 구성할 때 사용되는 서브넷 마스크입니다. 예를 들어 138.96.58.0 이 8BIT 서브넷으로 구성된 클래스 B라고 할때 , 클래스 기반 호스트의 8비트는 서브넷 네트워크 를 표현하기 위해 사용됩니다.  서브넷으로 구성된 네트워크와 그에 해당하는 서브넷 마스크는 다음의 10진수로 표현할 수 있습니다

 

138.96.58.0 , 255.255.255.0

 

* 서브넷 마스크의 네트워크 접두어 길이 표현

 

네트워크 비트는 언제나 상위 비트로부터 연속적으로 선택되어야 하므로 / [ BIT ] 와 같은 표현을 사용하여 네트워크를 정의하는 비트의 갯수를 표시할 수 있스비다.

 

이러한 네트워크 접두어 표기법을 이용하여 서브넷 마스크를 간단히 표현할 수 있습니다.

 

표2) 네트워크 접두어 표기법으로 구성한 서브넷 마스크

 

예를 들어 클래스 B 네트워크 IP가 138.96.0.0 이고 서브넷 마스크가 255.255.0.0 이라면 네트워크 접두어 표기법으로 다음과 같이 표시할 수 있습니다.

  

 138.96.0.0 /16

사용자 정의 서브넷 마스크의 예로서 138.96.58.0 이고 8BIT로 서브넷이 구성된 클래스 B 네트워크의 경우 서브넷 네트워크를 위해 총 24비트의 서브넷 마스크가 사용됩니다. 서브넷 과 그에 적합한 서브넷 마스크를 네트워크 접두어 표기법으로 표시하면 138.96.58.0 /24

 

가 됩니다.

 

* 주의할 점

 

동일한 네트워크에 존재하는 모든 호스트는 반드시 동일한 네트워크를 사용해야 하므로 반드시 동일한 서브넷 마스크로 정의 되어야 합니다.

 

예를 들어 , 138.23.0.0/16 은 138.23.0.0/24 네트워크와 동일한 네트워크가 아닙니다.

 

네트워크 138.23.0.0/16은 유효한 IP 주소 138.23.0.1 부터 138.23.255.254 까지를 나타냅니다.

 

네트워크 138.23.0.0/24는 유효한 IP주소 138.23.0.1 부터 138.23.0.254 까지를 나타냅니다.  

 

분명 이 두 네트워크는 동일한 IP 주소 영역을 가지고 있지 않습니다.

 

* 내트워크 결정

 

여러가지 서브넷 마스크를 사용하는 여러 네트워크에서 하나의 네트워크를 정확하게 찾아내기는 쉽지 않습니다. 그래서 IP는 논리적 AND 연산 비교라는 수학적 방법을 사용합니다.

 

AND연산 비교에서 비교되는 두 값 모두 TRUE ( 두 값 모두 1로 존재해야 함 )야만 결과값 역시 TRUE가 됩니다. 만약 한쪽이 FALSE라면 결과값이 FALSE가 되는 것은 당연한 것이죠

 

IP는 32비트 주소 나누기를 32비트의 서브넷 마스크와 AND연산을 사용해서 나눕니다.  이 연산을 bit-wise 논리적 (LOSICAL) AND 라고 합니다. 이 연산의 결과값은 하나의 나눠진 네트워크가 되는 것이죠

 

예를 들어 129,56,189,41 의 서브넷 마스크가 255.255.240.0 일때

 

이를 연산해 보면

10000001 00111000 10111101 00101001         IP주소 

11111111 11111111 11110000 00000000         서브넷 마스크

10000001 00111000 10110000 00000000         네트워크

 

32비트 IP주소와 서브넷 마스크의 논리적 AND 연산의 결과 네트워크는 129.56.176.0임을 알 수 있습니다.


by 연하 2009. 4. 13. 11:04