◎ 서브넷 (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

IP주소의 구분 및 개요


 IP Address의 형식은 4byte, 총 32bit의 길이를 8bit 단위로 묶어서 나타낸다.
(1byte=8bit,   8bit 단위=옥텟(octet)) 이를 2진수로 배열할 수도 있고 옥텟으로 묶은 다음 각각을 십진수로
변환해서 나타낼 수도 있다.

   [예제]   203.224.29.56                                       (10진수)
        ->   11001011 11100000 00011101 00111000 (2진수)

 10진수, 2진수 변환은 고등학교를 나왔다면 누구나 할 수 있으리라 생각하지만 쉽게 계산하려면 계산기를 이용하면 된다. [보조프로그램]에서 [계산기]를 클릭하면 다음과 같은 계산기가 나타날 것이다.
   [보기]메뉴에서 공학용을 선택한다. 왼쪽 상단 라디오 버튼 중 ‘Dec’ 를 선택하고,
   10진수를   입력한 후 ‘Bin’ 을 선택하면 2진수로 변환한다.

[참고] Hex : 16진수    Dec : 10진수    Oct : 8진수    Bin : 2진수

IP Class
 
인터넷에는 수많은 수의 네트워크가 존재한다 이들에 고유의 IP주소를 일일이 할당하는 것은 매우 불편한 일이다. 따라서 네트워크의 충돌을 피하기 위해 규모에 따른 IP 주소 할당의 범위를 지정하게 되었는데, 이것이 IP Class이다. IP Class는 class A에서 class E까지 총 5개의 class로 나누어 진다.
이 중 Class D는 IP multicast의 용도로 사용되고, class E는 일반적인 용도로는 사용되지 않는다. 그럼 class ABC에 대해서 알아보자..


Class A : 0 ~ 126개                                                                  |------1옥텟------|

0

 

 

 

 *Class B : 128 ~ 191개

10

 

 

 

 *Class C : 192 ~ 223개

110

 

 

 

 

 

주소할당시 주의사항


 1) 모든 Network ID와 Host ID의 비트가 1이 되어서는 안된다. 모든 비트가 1로 설정되는 것은 브로드캐스팅으로 받아들여진다. 즉, 255.255.255.255 가 된다.
 2) 모든 Network ID와 Host ID의 비트가 0이 되어서는 안 된다. 모든 비트가 0이면 해당 주소는 이 네트워크 전송이라는 의미다. 즉, 0.0.0.0 인터넷 자체를 의미한다.
 3) 하나의 Network ID 에 대해서는 중복되는 Host ID가 존재할 수 없다.

            ---> 이러한 이유에서 ‘-2’ 를 해주는 것이다.

 

==========================================================================

 

IP Address는 Network Address와 Host Address로 구성되어 있으며, IP Addres의 길이는 4Bytes 즉 32bits로 되어 있다. IP Address를 표기할 때는 각 Byte의 값을 10진수로 표기하는데 전체가 4Bytes이므로 4개의 10진수가 164.124.116.5마냥 . 으로 분리되어 표기된다. 1 Bytes가 나타낼 수 있는 값의 범위는 0 ~ 255까지이므로 각 자리의 10진수는 0~ 255까지가 가능하며, 따라서 IP Address의 범위는 는 0.0.0.0 ~ 255.255.255.255 까지라고 말할 수 있다.

32bits IP Address

            Network Address             Host Address

 

8bits             8bits            8bits            8bits

 

 

 

 

164              124             116             5

 


그런데 이러한 IP Address는 3가지로 분류되는데 첫번째는 4Bytes중 Network Address가 1Bytes를 차지하는 Class A, 두번째는 Network Address가 2 Bytes를 차지하는 Class B, 세번째는 Network Address가 3Bytes를 차지하는 Class C이다.

                 8bits             8bits            8bits            8bits

Class A

Network Address

Host Address

 

Class B

Network Address

Host Address

 

Class C

Network Address

Host Address

 


보통 IP Address를 할당할 경우 Network Address 단위로 할당하게 되는데 Class A IP Address를 할당받게 되면 많은 시스템을 접속할 수 있으며, Class C IP Address를 할당받게 되면 적은 수의 시스템을 접속할 수 있다.

IP Address의 Class를 좀더 자세히 살펴보면 Class A, Class B, Class C의 prefix가 다르다는 것을 알 수 있다.

                

         Bit

1

7

24

Class A

0

Network Address

Host Address

 

         Bit

1

1

14

16

Class B

1

0

Network Address

Host Address

 

         Bit

1

1

1

21

8

Class C

1

1

0

Network Address

Host Address

 


Class A의 IP Address의 첫번째 bit는 항상 0 이며, 따라서 Network Address 는 의 첫자리 10진수는 1 ~ 126까지 가능하다. ???? (Reserved 된것들 보여줄것). Class B의 IP Address는 처음 2개의 bit가 항상 1,0이기 때문에 Network Address 의 첫자리 10진수는 128 ~ 191까지 가능하다. Class C의 처음 3개의 bit는 항상 1,1,0이기 때문에 Network Address 의 첫자리 10진수는 192~223까지 가능하다.
Network Address 및 Host Address 부분의 bit열이 모두 0이거나 1인 경우는 이용하지 않음에 유의하자.

형태

Network 번호 영역

Network Address

Class A

00000001 ~

01111110

1.x.x.x ~

126.x.x.x

126 (2^14 - 2)

 

Class B

1000000.00000001 ~

10111111.11111110

128.1.x.x ~

191.254.x.x

16382 (2^14 - 2)

 

Class C

11000000.00000000.00000001 ~

11011111.11111111.11111110

192.0.1.x ~

223.255.254.x

2097150 (2^21 - 2)

 

Host Address 는 Class A IP Address에서는 24bit를 활용할 수 있으므로 Host Address 는 2^24 -2 즉 16,777,214개가 가능하다. 따라서 Class A IP Address는 시스템이 상당히 많이 접속되어 있는 네트웍에 할당된다. Class B IP Address는 16bit를 활용할 수 있으므로 2^16 -2 즉 65,534개의 Host Address를 이용할 수 있으며, Class C IP Address는 8 bit를 활용할 수 있으므로 2^8-2 즉 254개의 Host Address를 이용할 수 있다.

앞에서도 이야기 했듯이 Host Address 부분에서도 bit열이 모두 0이거나 1로 이루어진 것은 이용하지 않는다. bit열이 모두 0인 것은 네트웍 자체에 대한 대표번호로 이용되기 때문이며, bit열이 모두 1로 이루어진것은 broadcasting address로 예약되어 있기 때문이다. 따라서 Class C IP Address의 Network Address가 인 203.252.15.0 인 경우 Host Address는 203.252.15.1 ~ 203.252.15.254 가 가능하다. 203.252.15.255는 broadcasting address로 이용된다.

 

============================================================================

 

현제의 IP는 버젼 4입니다. IP는 총 4바이트(32비트)로 구성되어 있으며, 0.0.0.0 ~ 255.255.255.255까지 일련의 번호를 한꺼번에 사용하지 않고 일정한 클래스로 나누어서 사용합니다.
클래스A는 국가, 클래스B는 소규모 네트웍... 이렇게 구분하시는건 잘못 알고 계신겁니다.
클래스는 A,B,C,D,E(총 5개)로 구분되어 있으며, 일반적으로 클래스 A,B,C로 나누어서 사용하며, 클래스 D는 멀티캐스팅 주소이며, 클래스 E는 특별한 용도를 위해 예약된 주소입니다.

여기서는 클래스 A,B,C에 대해서 설명하겠습니다.
클래스 A는 8비트의 네트워크IP와 24비트의 호스트IP로 구성되어 있으며,
클래스 B는 16비트의 네트워크IP와 16비트의 호스트IP로 구성되어 있으며,
클래스 C는 24비트의 네트워크IP와 8비트의 호스트IP로 구성되어 있습니다.
(참고로 네트워크IP는 라우터에 연결된 컴퓨터들의 집단이라고 생각하시면 됩니다. 즉 하나의 회사에 컴퓨터가 여러대 있으며, 이컴퓨터들이 내부 연결로 되어 있으면,
이회사의 컴퓨터집단을 하나의 네트워크라고 봅니다.
호스트IP는 네트워크안에 있는 각각의 컴퓨터들의 주소가 됩니다.)

클래스별 특징은
클래스 A는 8비트의 네트워크를 가질수 있는데, 이를 개수로 환산하면 2의 8승. 즉 256개의 네트워크 개수가 나옵니다. 하지만 실제 개수는 이보다 줄어든126개의 네트워크 개수가 나오게 되는데 이유는 클래스 A의 범위는 0.0.0.0~127.0.0.0의 IP주소를 가집니다. 이중 맨앞에 있는 0~127이라는 십진수 숫자를 2진수로 표기하면(컴퓨터는 이진수만 인식하므로) 0*******로 표기할수 있습니다. 저 이진수에서 왼쪽의 맨앞에 숫자는 클래스를 구분하는데 사용되며(클래스 B는 10******으로(이진수) 시작하고, 클래스 C는 110*****으로 시작합니다.), 나머지 2개의 주소는 특별한 목적을 위해 예약된 주소이므로 사용가능한 주소의 개수는 126개가 됩니다.
호스트IP는 하나의 네트워크 주소에 연결할수 있는 개별적인 컴퓨터의 개수를 의미합니다. 클래스 A의 경우는 한개의 네트워크주소에 2의 24승인 15,777,214개의 개수를 연결할수 있다는 의미입니다.
이렇게 클래스 B와 클래스C도 마찬가지로 사용됩니다. 다만 네트워크개수와 호스트개수만 달라집니다.

IPv6의 경우는 총 128비트로 구성되어 있으며, IPv4보다는 더많은 컴퓨터들을 연결할수있게 되어있습니다.
이는 인터넷의 급속한 발전으로 인해 IP주소공간이 절대적으로 부족하게 되어 개발되게 되었습니다. 또한 많은 개수와 더블어 인터넷상의 보안문제도 강화되었으며, 서비스개선등과 같은 여러가지 장점들이 수용되었습니다.
IPv6는 IPv4처럼 클래스별로 구분하지는 않으며, 3비트의 유형식별자에 따라서 구분되게 만들어졌습니다.

[출처] IP Address/Class|작성자 희야


by 연하 2009. 4. 13. 09:42
| 1 |