IPv4 네트워크 주소와 호스트 주소 / 서브넷팅 / IP Class

2017. 8. 2. 19:33NetworkHacking/Network




참고사이트

[1] 서브넷 마스크 / 서브넷팅 계산법    http://korean-daeddo.blogspot.kr/2016/01/blog-post_26.html

[2] IP 주소체계와 클래스 구별법         http://korean-daeddo.blogspot.kr/2015/12/ip.html

[ 그림1 ]


192.168.1.1/24 에서 " /24 " 는 서브넷마스크를 24bit만큼 사용한다는 뜻입니다

즉, 서브넷마스크 = 255.255.255.0 = 11111111.11111111.11111111.0

네트워크 주소는 " 192.168.1 " 이고 호스트 주소는 뒤의 한 바이트 " .1 " 입니다 ( 자세한 설명은 아래에 있습니다 )



1> 네트워크 주소와 호스트 주소란?


Network ID - 모든 Host들을 관리하기 힘들기에 한 Network의 범위를 지정해 (호스트의 집합) 관리하기 쉽게 만들어 낸 것입니다

Host ID - 호스트들을 개별적으로 관리하기 위해 사용하게 된 것입니다

Routing으로 목적지를 알아내고 찾아가는 등의 역할을 할 때에는 Network 주소와 Host 주소가 합쳐진 IP주소를 보게 됩니다. 


만약 IP가 192.168.1.1 이라고 한다면 아래 표와 같이 표현할 수 있다

IP 

192

168 

IP(이진수)

11000000

10101000

00000001 

00000001

구분

<-- Network 주소 -->

Host 주소 

서브넷마스크

11111111

 11111111

 11111111

 00000000


* 192.168.1.0 ( 네트워크 주소 ) 와 192.168.6.255 ( 브로드 캐스팅 주소 ) 이 두 주소는 사용할 수 없다

* 2^8 - 2 개의 호스트 수를 갖는다

* 서브넷마스크 아이피주소 " and " 연산하여 얻는 값 = 192.168.1 이 네트워크 주소입니다

위의 그림처럼 호스트 주소는 10, 20, 30 이 할당되어 각각의 호스트를 구분 할 수 있게 한다




2> 공인 IP 클래스별 분류 ( 시작비트값과 서브넷 마스크를 고정값 사용하여 구별한다 )

2-1> A Class    첫 1bit의 값은 무조건 " 0 "

범위 : 00000000 (0) ~ 011111111 (127)

서브넷 마스크 : 255.0.0.0

=> 네트워크 주소로 1byte 사용


2-2> B Class    첫 1bit의 값은 무조건 " 10 "

범위 : 10000000 (128) ~ 10111111 (191)

서브넷 마스크 : 255.255.0.0

=> 네트워크 주소로 2byte 사용


2-3> C Class    첫 1bit의 값은 무조건 " 110 "

범위 : 11000000 (192) ~ 11011111 (223)

서브넷 마스크 : 255.255.255.0

=> 네트워크 주소로 3byte 사용




3> 서브넷팅

하나의 네트워크에 200개 이상의 호스트 수는 기업같은 곳 아니면 사용할 필요가 없다

아이피주소를 할당할 때 호스트 수를 줄이는 대신 네트워크 수를 더 많이 사용하기 위해서 고안해낸 방법이다



< B Class 서브넷팅 ( ip = 172.16.1.10 >

IP주소 

172

16

1

10

기본 서브넷마스크 

255

255

0

0

 구분

 Network 주소

 Host 주소

 서브넷팅 전 후

IP주소

172

16

1

10

서브넷팅 

255

255

255

0

 구분

<-- Network 주소 -->

 Host


[ 기존 B Class IP주소 ]

아이피 주소:    172.16.1.10

서브넷 마스크:    255.255.0.0

=> 네트워크 주소:    172.16.

호스트 주소:    .1.10

호스트 주소의 개수는 2^16 - 2 개


[ 서브넷팅 후 B Class IP주소 ]

아이피 주소:    172.16.1.10

서브넷 마스크:    255.255.255.0

=> 네트워크 주소:    172.16.1

호스트 주소:    .10

호스트 주소의 개수는 2^8 - 2 개


네트워크의 개수는 2^8 개만큼 증가하고 호스트 주소의 개수는 2^8개 감소하였다

즉, 네트워크에 할당되는 필요없는 호스트의 개수를 줄이기 위해서 서브넷팅을 실시한다

 



< C Class 서브넷팅 ( ip: 192.168.1.10 ) >

IP주소 

192

168

1

10

기본 서브넷마스크

255

255

255

0

구분

<-- Network 주소 -->

Host 주소 

 서비넷팅 전 후

IP주소

192

168

1

10

서브넷팅

255

255

255

240

구분

<-- Network 주소 -->

뒤 4bit = Host 주소


[ 기존 C Class IP주소 ]

아이피 주소:    192.168.1.10

서브넷 마스크:    255.255.255.0 ( 11111111.11111111.11111111.00000000 )

=> 네트워크 주소:    192.168.1

호스트 주소:    .10

호스트 주소의 개수는 2^8 - 1 개


[ 서브넷팅 후 C Class IP주소 ]

아이피 주소:    192.168.1.10

서브넷 마스크:    255.255.255.240 ( 11111111.11111111.11111111.11110000 )

=> 네트워크 주소:    192.168.1 + 4bit

호스트 주소 : 마지막 4bit

호스트 주소의 개수는 2^4 - 2 개



* C 클래스 서브네팅 예제 ( 네트워크 주소는 파란색이고 호스트 주소는 초록색으로 표시하겠습니다 )


[1] 192.168.1.0/24

24 => 서브넷 마스크로 24bit만큼 사용하겠다는 의미입니다

서브넷 마스크:    11111111.11111111.11111111.00000000

네트워크 주소의 개수:    2^24 - 2

호스트 주소의 개수:    2^8 - 2


[2] 192.168.1.0/25

25 => 서브넷 마스크로 25bit만큼 사용하겠다는 의미입니다

서브넷 마스크:    11111111.11111111.11111111.10000000

네트워크 주소의 개수:    2^25 - 2

호스트 주소의 개수:    2^7 - 2


[3] 192.168.1.0/28

28 => 서브넷 마스크로 28bit만큼 사용하겠다는 의미입니다

서브넷 마스크:    11111111.11111111.11111111.11110000

네트워크 주소의 개수:    2^28 - 2

호스트 주소의 개수:    2^4 - 2


=> 호스트 수를 줄임으로써 네트워크 주소의 개수를 늘려 아이피주소 부족현상을 해결할 수 있다

2^n - 2 의 공식을 따른다