본문 바로가기

네트워크

클래스 풀 , 클래스 리스 , 서브넷 설계

네트워크는 클래스로 나뉘어있다

이것을 클래스 풀 이라고 한다

*클래스 범위:

A(1.0.0.0-126.0.0.0)

B(128.0.0.0-191.255.0.0)

C(192.0.0.0-223.255.255.0)

순으로 D와 E가 있지만 D는 멀티캐스트 주소로 사용되고 E는 연구용으로 사용된다

사용할수 있는 IP주소는 A,B,C 클래스이다

 

하지만 A클래스 처럼 너무 넓은 범위의 네트워크가 하나의 클래스에 묶여있다보니 효율적으로 관리하기 힘들었고

IP주소 낭비가 심했다

 

그래서 생겨난 방법이 서브넷을 표기하는 것 이다

 

이것을 클래스리스 라고 한다 -간단하게 설명하자면 클래스 범위가 없어진 것 이다

 

클래스풀에서 네트워크를 구분하는 것이 앞자리 숫자다

예를들면

10.2.3.4 는 앞자리 숫자 10에 의해 A클래스가 된다

170.2.3.4.는 앞자리 숫자 170이 B클래스 범위에 속하기 때문에 B클래스가 된다

 

이것이 어떤 문제가 되냐?

A클래스의 서브넷 마스크는 고정적으로 255.0.0.0 이다( /8 )

B클래스의 서브넷 마스크는 고정적으로 255.255.0.0 이다( /16 )

C클래스의 서브넷 마스크는 고정적으로 255.255.255.0이다 ( /24)

 

클래스 풀에서는 서브넷 마스크를 표기하지도 않고 인식도 못하기 때문에 저 네트워크 범위를 나눌수도 없고 변경할수도 없다

그래서 A클래스의 경우는 네트워크의 범위가 너무 넓어서 효율적인 관리가 힘들고 IP낭비도 심하다

 

그래서 나온것이 클래스 리스이다 클래스 리스는 말 그대로 클래스의 범위를 서브넷 마스크를 표기하여 나눈것이다

네트워크 10.0.0.0 255.255.255.0 이 있다고 가정해보자

 

클래스 풀은 서브넷 마스크를 인식을 못하기 때문에 10.0.0.0~10.255.255.255가 네트워크 범위가 되는 것 이다

클래스 리스는 서브넷 마스크를 반영하기 때문에 10.0.0.0~10.0.0.255가 네트워크 범위가 되는 것 이다

 

*RIP 1 을 제외한 대부분의 라우팅 프로토콜에서는 클래스 리스를 지원한다

 

할당 가능한 호스트 수는 2진법으로 보면 편하다

 

 

클래스풀의 10.0.0.0 은 이진수로 풀어보자면

 

네트워크는 00001010.00000000.00000000.00000000

서브넷 마스크는 11111111.00000000.00000000.00000000

서브넷 마스크의 1부분이 네트워크를 표시하고 0이 할당가능한 호스트 이다

 

*클래스풀에서는 서브넷 마스크를 인식을 못한다 그 이유는 고정적으로 네트워크 범위가 정해져 있기 때문이다

서브넷 마스크라고 쓴 이유는 이해하기 쉽도록 표시한 것 이다

즉 클래스 풀 에서는 11111111.00000000.00000000.00000000이라는 서브넷 마스크가 고정적으로 포함되고 있는 것 이다

 

 

 

클래스 리스의 10.0.0.0 255.255.255.0

 

네트워크는 00001010.00000000.0000000.0000000

서브넷 마스크는 11111111.11111111.11111111.00000000 (/24)

 

서브넷 마스크의 1부분이 네트워크이고 0이 호스트 부분이다

 

*IPv4는 32비트로 이루어져 있고 예: [ 11111111.11111111.11111111.11111111 ] 총 32개

8비트 단위로 나누어 구분한다

 

 

 

서브넷 마스크는 일종의 표시 라고 생각하면 된다

 

예를들어

A네트워크에 표시할 숫자로 2진수 3자리를 사용한다면

(서브넷 마스크로 표현하자면 11111111.11111111.11111111.11111000) ( /29))

A.000

A.001

A.011

A.111

A.010

A.110

A.100

 

A네트워크에서 8개의 호스트를 할당 할 수 있다

(8개만 할당이 가능한 이유는 네트워크에서 IP가 같으면 IP충돌이 일어난다)

 

 

 

 

이제 서브넷 마스크 설계하는 방법에 대해 알아보자

 

서브넷 마스크를 설계할때

네트워크는 1으로 표시

호스트는 0으로 표시

서브넷은 0으로 이루어진 호스트 범위에 1을 추가해서 네트워크 범위를 세세하게 나눌때 사용한다고 생각하면 쉽다

서브넷 마스크는 8비트(8자리)를 4개씩 총 32개를 나타낸다

 

호스트는 같은 네트워크 안에서 서로를 구분하기 위한 것 이다

 

집주소에 비유하자면

A(동,읍,면) 이 서브넷 B아파트(상세주소) 이 호스트이다

 

서브넷이 다르면 호스트주소가 같아도 구분이 되지만

서브넷도 똑같은데 호스트주소가 같은경우 IP충돌이 일어나 데이터 수신이 불가능해진다

(데이터가 목적지까지 IP주소를 보고 찾아가는데 목적지 주소가 2곳이상이면 목적지가 2곳 이기 때문에 제대로 전송되지 않는다)

 

 

*공식

2진수는 기본적으로 2를 계속 곱하는 것 이기 때문에

계산할때 2의 승 으로 계산하면 된다 (예를들어 2의 3승은 2*2*2=8 이다)

 

*수학적 계산으로는 111일때 4+2+1=은 7 이지만

서브넷에서는 0도 구분할수 있는 숫자로 계산하기 때문에 8이 된다

000

001

011

111

010

110

100

 

이제부터 본격적으로 서브넷 설계를 들어가자면

 

만약 자신이 B클래스를 할당 받았다면

16비트는 이미 네트워크 영역이고

여기서 나누고 싶은 서브넷을 더하면 된다

(255.255.는 이미 할당됨 나머지 8비트+8비트를 서브넷으로 나눌수 있음)

 

만약 자신이 B네트워크를 10개로 나누고 싶다면

2에 4승 = 16개( 3승이 안되는 이유는 8개 이기 때문이다 초과는 되지만 부족하면 안된다)

2에서 - 16을 하면 240이 된다

 

갑자기 256이 왜?

 

이진수 8자리로 표현할수 있는 숫자는 256개 이다

이진수 11111111(8개)는 수학적 계산으로는 1+2+4+8+16+32+64+128=255이다

하지만 서브넷은 0부터 시작하기 때문에 구분 할 수 있는 숫자는 1개가 더 추가되서 256개이다

 

다시 240으로 돌아가면

서브넷 마스크를 표기할때 255.255.240.000이 된다

2진수- 11111111.1111111.11110000.00000000

[클래스 8비트 . 클래스 8비트 . 서브넷4비트 / 호스트4비트 . 호스트 8비트]

 

서브넷 4비트는 네트워크를 나눠서 구분하기 위한 것 이다

1111으로 구분가능한 네트워크는 2진수 계산에 따라 16개의 네트워크를 나눌수 있고

 

8+4 = 12 호스트는 총 2에 12승 4096의 호스트를 할당 가능하다

 

168.100.0.0의 B클래스를 할당 받았고 네트워크를 10개로 나누고 싶다면

 

2에 4승 = 16

256-16 =240

서브넷 마스크 255.255.240.0

256/16 = 16개

 

네트워크 ID는 0부터 16을 더하면 된다

 

168.100.0.0(네트워크 ID)~168.100.15.255(브로드캐스트주소)

[할당가능한 호스트의 숫자는 256*16=4094 -2 = 4092 ]

(네트워크의 맨 앞의 주소는 네트워크 ID로 사용 맨 뒷번호는 브로드 캐스트주소로 사용 //서브넷 제로를 사용하면

네트워크 ID번호도 사용가능하다)

 

168.100.16.0(네트워크 ID)~ 168.100 31.255(브로드캐스트 주소)

[할당 가능한 호스트= 4092]

 

.

.

.

.

 

168.100.224.0 ~ 168.100,239.255

168.100.240.0 ~ 168.100.255.255

-총 네트워크 수 16개

-각각 네트워크에 할당가능한 호스트수 4092개

 

 

만약 필요한 호스트수가 있다면 호스트수 부터 먼저 계산하면 된다

필요한 호스트가 네트워크당 50이라면

50보다 높고 제일 낮은 수

2에 6승 = 64 - 2 =62 (ID, 브로드 캐스트)

 

IPv4는 총 32비트로 이루어져 있고 2진수가 사용된다

간단하게 32 - 6을 하면 된다 26개

 

*서브넷에서는 클래스영역 다음부터 왼쪽부터 2에 승의 수를 1로 표기하면 되고

호스트에서는 2에 승의 수를 오른쪽부터 0으로 채우면 2진수 서브넷 마스크가 된다

(호스트는 0으로 표기)

 

 

 

이진수로 표현하면

11111111 (8) . 11111111 (8) . 11111111 (8). 11(서브넷 2비트) 000000(호스트6비트)

 

여기서 왜 서브넷이 2비트이냐면 서브넷 마스크에서는 8자리가 모두 1비트일때는 네트워크 영역으로 판단한다

*255.0.0.0 ( /8) 255.255.0.0 ( /16)같은 8자리로 딱 떨어지는 서브넷 마스크 같은 경우는

예를들면 100.100.100.100네트워크가 있다고 가정할때

 

255.0.0.0.서브넷 마스크일땐

100.0.0.0(ID) ~ 100.255.255.255(브로드 캐스트 주소)이다

 

255.255.0.0.일땐

100.100.0.0(ID) ~ 100.100.255.255(브로드 캐스트 주소)이다

 

다시 본론으로 돌아가서

서브넷 비트가 2일때는 서브넷은 4개 (2에 2승)

호스트 비트가 6일때는 호스트는 64개 (2에 6승)

서브넷 마스크를 10진수로 나타내면

255.255.255.252( 255.255.255.는 클래스영역 256에서 4를 빼면 252)

 

168.100.0.0 을 할당 받았다고 가정할때

서브넷이 4개이니까 256/4 = 64 [ 0부터 64를 더할때마다 네트워크의 ID ]

168.100.0.0(ID) ~168.100.0.63(브로드 캐스트주소)

168.100.0.64 ~168.100.0.127

168.100.0.128 ~ 168.100.0.191

168.100.0.192~ 168.100.0.255

 

총 4개의 네트워크로 나눌수 있다

각각 호스트는 2에 6승 = 64 -2 (ID, 브로드캐스트주소) =62개 할당 가능하다

 

 

*정리

서브넷은 네트워크를 좀 더 세분화를 위해 사용한다

서브넷 갯수는 2에 승수

호스트 갯수는 2에 승수 - 2(ID, 브로드캐스트주소)

*ID값을 호스트할당하고 싶으면 서브넷 제로명령을 사용하면 된다

 

서브넷 , 클래스 , 슈퍼넷 설명 링크

https://leejoongwon.blogspot.com/2019/06/blog-post.html

 

 

*유니캐스트,브로드캐스트,멀티캐스트 설명 링크

https://leejoongwon.blogspot.com/2019/06/blog-post_68.html

'네트워크' 카테고리의 다른 글

폴트 톨러런트, 로드 밸런싱  (0) 2019.06.30
Looping 루핑  (0) 2019.06.30
유니캐스트,브로드캐스트,멀티캐스트  (0) 2019.06.30
LAN 과 WAN  (0) 2019.06.30
인터넷 , 인트라넷 , 엑스트라넷이란?  (0) 2019.06.30