서브넷 마스크(Subnet Mask)의 시작


- 서브넷 마스크(Subnet Mask) 서브, 즉 메인이 아닌 어떤 가공을 통한 네트워크를 만들기 위해서 씌우는 마스크.

 예를 들어 클래스 B 주소를 받았을 때, 하나의 네트워크가 65,000여 개의 호스트를 가지는데 이렇게 큰 네트워크를 구성했다가는 브로드캐스트 영향이 너무 많아 통신이 불가능해진다. 따라서 IP 주소를 나누어 써야한다. 부여받은 원래 상태의 IP 주소에 서브넷 마스크를 씌워서 네트워크를 나누어 준다.


- 서브넷 마스크는 주어진 IP 주소를 네트워크 환경에 맞게 나누어 주기 위해서 씌워주는 이진수의 조합이다.

- 각각의 서브넷 간의 통신은 라우터를 통해서만 가능

- 서브넷 마스크는 커다란 네트워크를 잘게 나누기 위해서 반드시 필요하다.


서브넷 마스크(Subnet Mask)에도 기본은 있다


- 모든 IP주소에는 서브넷 마스크가 따라다닌다.

☞ 만약 클래스 C 주소를 전부 쓰더라도 서브넷 마스크는 따라 다닌다. IP 주소를 나누어서 쓰기 위해서 사용하는 서브넷 마스크는 그 주소를 나누지 않더라도 항상 그 옆에 붙어 다닌다. 그래야 주소를 나눈 건지 나누지 않은 건지 알 수 있기 때문이다.

- 또한 클래스 C나누어 쓰지 않고 몽땅 쓰는 경우에도 서브넷 마스크는 따라다니는데 그게 바로 디폴트 서브넷 마스크(Default Subnet Mask) 즉 기본 서브넷 마스크.

클래스 A의 디폴트 서브넷 마스크 -> 255.0.0.0

클래스 B의 디폴트 서브넷 마스크 -> 255.255.0.0

클래스 C의 디폴트 서브넷 마스크 -> 255.255.255.0


- 주어진 네트워크를 하나도 나누지 않고 그대로 다 쓰는 경우디폴트 서브넷 마스크를 쓰면 된다.

 

서브넷 마스크를 어떻게 고쳐야 할까?


- 서브넷 마스크란 IP 주소를 가지고 어디까지가 네트워크 부분이고, 어디까지가 호스트 부분인가를 나타내는 역할을 한다.

☞ 이때 네트워크 부분은 서브넷 마스크가 이진수로 ‘1’인 부분이고, 호스트 부분은 서브넷 마스크가 이진수로 ‘0’인 부분이다.


예) 

IP 주소 : 210.100.100.1

서브넷 마스크 : 255.255.255.0

255.255.255.0 -> 1111 1111.1111 1111.1111 1111.0000 0000

☞ 여기서 1인 부분은 네트워크 부분을 나타내므로 세 자리까지는 네트워크 부분이 되고, 뒤에 한 자리는 호스트 부분이 된다.

따라서 210.100.100이 바로 네트워크 부분이고 나머지 1이라고 써진 부분이 호스트가 된다.


- 서브넷 마스크를 사용하는 이유는 커다란 네트워크(호스트 숫자가 많은 네트워크)를 작은 네트워크 여러 개로 나누어서 쓰기 위함이다. 서브넷 마스킹은 기존 IP 주소의 호스트 부분의 일부를 네트워크 부분으로 바꾸는 작업이다.


서브넷 마스크의 기본 성질

서브넷 마스크의 기본 성질


- 서브넷 마스크로 만들어진 네트워크, 서브넷은 하나의 네트워크이기 때문에 서로 나뉘어진 서브넷끼리는 라우터를 통해서만 통신이 가능하다.

- 서브넷 마스크는 이진수로 썻을 때 ‘1’이 연속적으로 나와야 한다는 것이다.



예제 1)

- 예를 들어 150.100.0.0이란 클래스 B 네트워크가 있을 때, 150.100.100.1 150.100.200.1은 같은 네트워크에 있으므로 라우터를 거치지 않고 통신이 가능하다.

- 클래스 B의 경우 디폴트 서브넷 마스크 255.255.0.0이다. 두 개의 옥테트까지 255가 있으니까 두 자리가 네트워크 부분이 된다. 따라서 네트워크 부분은 150.100이고 뒤에 오는 두자리 옥테트는 호스트를 나타내는 것을 의미한다.

- 네트워크 부분이 같고 호스트 부분서로 다르면 같은 네트워크 안에 살고 있는 것이다. 150.100.100.1 150.100.200.1같은 네트워크에 살고 있는, 즉 하나의 브로드캐스트 도메인에 있는 PC들이고 라우터 없이도 통신이 가능하다.


예제 2)

150.100.0.0이란 이 주소를 255.255.255.0이란 서브넷 마스크를 사용해서 서브넷팅 했다면, 네트워크 부분이 바뀐다.

기존에는 150.100까지가 네트워크 부분이었는데 서브넷 마스크가 세 번째 옥테트까지 255이기 때문네트워크 부분은 세 자리가 되어서 150.100.100 150.100.200으로 바뀐다. 이제 150.100.100.1(서브넷 마스크 255.255.255.0) 150.100.200.1(서브넷 마스크 255.255.255.0)은 네트워크 부분이 서로 달라졌다. 즉 하나는 150.100.100이 되었고, 또 하나는 150.100.200이 되었다(서브넷 마스크가 바뀌면서 네트워크 부분도 2자리에서 3자리로 늘어났다.)

☞ 따라서 150.100.100.1150.100.200.1은 이제 서로 다른 네트워크가 되었다. 따라서 이 두 녀석은 이제 라우터를 거쳐야만 통신이이 가능하다. 서로 다른 브로드캐스트 도메인에 존재하고 있기 때문에 서로 통신이 불가능하다.


- 이처럼 서브넷 마스크에 의해 나누어진 네트워크, 즉 서브넷은 하나의 독립된 네트워크가 된다.


서브넷 마스크 그 속으로...


복습)

- 서브넷도 하나의 네트워크이기 때문에 나누어진 서브넷은 라우터를 통해 통신이 가능한 네트워크이다.

- 서브넷 마스크를 만들 때는 ‘1’들의 중간에 ‘0’이 들어가는 마스크, ‘1’이 연속되지 않은 서브넷 마스크는 만들지 않는다.

 

서브넷의 기본 성질을 이용한 예제


문제

공인 IP 주소를 210.100.1.0(서브넷 마스크 255.255.255.0 디폴트 서브넷네트워크를 받았다. 그런데 이 공인 주소를 이용해서 PC 30대인 네트워크를 최소 4개 이상 만든 다음 이들 네트워크를 라우터를 이용해서 서로 통신하게 하려고한다이 경우 서브넷 마스크를 만든다면 어떻게 해야 할까?

풀이)

㉠ 210.100.1.0(255.255.255.0) C 클래스. 그리고 뒤에 나온 디폴트 서브넷 마스크를 통해서도 확인 할 수 있다.

㉡ 이 주소로 네트워크를 최소 4개 이상 만들려면 지금 주어진 디폴트 서브넷 마스크를 변경해야 한다. 이때 중요한 점은 네트워크가 포함하는 PC의 개수이다.( 이것을 클라이언트 수 또는 호스트 수라고 한다.) 여기서는 30대의 호스트를 가져야 한다고 한다. 따라서 호스트 부분이 30대를 포함할 수 있어야 한다.

(중요) 이진수

- 호스트 부분이 30가 되기 위해서는

  • 2진수 한 자리 -> 10이니까 가질 수 있는 호스트 수는 없다. 왜냐면?

  • 호스트 부분이 전부 1인 경우는 브로드캐스트 어드레스이다.

  • 호스트 부분이 전부 0인 것은 네트워크 그 자체를 나타내기 때문이다.

  • 만약 이 주소를 서브넷 마스크의 변환 없이 그대로 쓴다면 쓸 수 있는 IP 주소는 210.100.1.0~210.100.1.255까지그런데 이 중에서 호스트 부분이 전부 ‘0’(여기서 전부 ‘0’이란 이진수로 표시했을 때를 말한다.) 210.100.1.0이란 주소는 호스트 주소로 사용할 수 없다. 이건 네트워크 주소라고 하는데 이 주소는 어떤 특정 호스트나 PC에서 사용하는 주소가 아닌 네트워크 그 자체를 나타내는 주소이기 때문

  • 또한 호스트 부분이 전부 ‘1’210.100.1.255(여기서 2552진수로 1111 1111이기 때문) 역시 호스트 주소로 사용할 수 없다. 이 주소는 210.100.1.0 네트워크의 브로드캐스트 주소. 모든 호스트에게 보낼 메시지가 있을 때 이 주소(210.100.1.255)를 사용해서 210.100.1.0 네트워크 모든 호스트들에게 전송한다.

- 다시 문제로 돌아가서 호스트 부분이 모두 ‘0’거나 호스트 부분이 모두 ‘1’인 주소는 못쓰니까 만약 호스트 부분이 이진수 두 자리인 경우


00

01

10

11


- 위와 같이 만들어 질 수 있는데, 이때 ‘00’‘11’을 못쓰므로 쓸 수 있는 호스트 수는 0110으로 2가 된다.


- 만약 호스트가 3자리인 경우는


000

001

010

011

100

101

110

111


- 앞뒤 두 개를 빼면 쓸 수 있는 호스트 수는 여섯 개가 된다.

- 여기서 규칙 하나를 찾을 수 있는데, 사용할 수 있는 호스트의 수는 호스트 비트 수가 커질수록 증가한다는 것이다.

- 또한 사용 가능한 호스트 수를 다음 공식으로 알아낼 수 있다.

사용 가능한 호스트 수 2 ^ (호스트비트 수) - 2


- 먼저 호스트 비트 수가 2일 때 사용 가능한 호스트 수는 2의 호스트 비트 수, 2승을 하고 거기서 2를 빼는 것이다.

- 22승은 4, 2를 빼면 2가 된다. 따라서 호스트 비트가 2개 일 때는 배정 가능한 호스트 숫자는 2가 된다.

- 만약 호스트 비트수가 3개 일때는 2^3 -2 = 6이 된다. 따라서 호스트는 6가 된다.

 

- 그렇다면 호스트 수가 30 되려면 2^5 = 32로 호스트 자리가 이진수 다섯 개는 되어야 한다는 것이다. 32에서 앞뒤 두 개 빼고(하나는 호스트 주소, 하나는 브로드캐스트 주소) 30개가 사용할 수 있는 호스트가 되는 것이다.

- 210.100.1.0 중에서 맨 마지막 부분만을 한 번 이진수로 바꾸어 보면 210.100.1.0000 0000이 된다. 이 중에서 호스트 30개를 포함하기 위한 호스트 자릿수는 5개므로 210.100.1.ssshhhhh(s는 서브넷, h는 호스트) 호스트의 자리는 맨 오른쪽에서부터 왼쪽으로 늘어난다. h가 오른쪽 끝에서 시작해서 왼쪽으로 늘어난다.

- 서브넷을 만들기 위한 서브넷 마스크는 255.255.255.1110 0000이 된다.

- 이것을 다시 십진수로 바꾸면 255.255.255.224가 된다. 210.100.1.0이란 클래스 C주소를 받아서 30개의 호스트를 가지는 최소 서브넷 4개 이상 만들려면 서브넷 마스크는 255.255.255.224를 사용해야 한다는 것이다.


서브넷 만들기 예제 1

문제 1) 공인 IP주소 201.222.5.0(255.255.255.0)

>> 서브넷 요구 조건

서브넷 당 호스트 수 ; 5개 이상

서브넷 수 ; 20개 이상


풀이)

- 가장 먼저 공인 주소를 이진수로 바꾸어 주어야 한다. 또 현재 서브넷 마스크를 이진수로 바꿔 주어야 한다.

201.222.5.0

11001001

11011110

00000101

00000000

255.255.255.0

11111111

11111111

11111111

00000000


20개의 서브넷 필요 = 최소 2^5(32) 이상 필요

(24승이 16이므로 만족 못함)


5개의 호스트 필요 = 최소 2^3(8) 이상 필요

(22승이 4이므로 만족 못함)


서브넷 마스크8비트의 호스트 부분 중 5비트를 1로 세팅해야 한다. (5비트 서브넷 = 32서브넷, 3비트 호스트 = 6호스= 6호스트/서브넷)

255.255.255.248 = 11111111. 11111111. 11111111. 11111000

- 호스트 부분 3비트를 0으로, 서브넷 부분 5비트를 1로 세팅해 보면 255.255.255.248이라는 서브넷 마스크를 얻어냈다.

- 201.222.5.0 네트워크255.255.255.248 서브넷 마스크를 이용해서 서브넷으로 나누게 되면 각 서브넷 당 6개의 호스트를 갖는 32개의 서브넷을 얻을 수 있게 된다.

- 서브넷을 만드는 방법호스트 부분을 전부 0으로 만들면 해당 서브넷의 네트워크 주소가 되고, 호스트 부분을 전부 1로 만들면 해당 서브넷의 브로드캐스트 주소가 된다. 호스트에 부여할 수 있는 주소는 네트워크 주소 더하기 1부터 브로드캐스트 주소 빼기 1까지.

201.222.5.0

11001001

11011110

00000101

00000000

255.255.255.0

11111111

11111111

11111111

11111000

 

--- 32개의 서브넷 ---

201.222.5.0 (255.255.255.248) : 201.222.5.1 ~ 201.222.5.6

201.222.5.8 (255.255.255.248) : 201.222.5.9 ~ 201.222.5.14

201.222.5.16 (255.255.255.248) : 201.222.5.17 ~ 201.222.5.22

~~

201.222.5.224 (255.255.255.248) : 201.222.5.225 ~ 201.222.5.230

201.222.5.232 (255.255.255.248) : 201.222.5.233 ~ 201.222.5.238

201.222.5.240 (255.255.255.248) : 201.222.5.241 ~ 201.222.5.246

201.222.5.248 (255.255.255.248) : 201.222.5.249 ~ 201.222.5.254

 

- 맨 뒤의 8비트의 이진수 숫자 중 앞의 5비트자리에 00000에서 11111까지를 계속 바꿔넣으면 32개의 서브넷이 만들어지고, 다음 호스트 비트 3자리에 000에서 111까지 8개의 숫자를 넣는다. 그럼 000일 때는 네트워크를 나타내고 111일 때는 브로드캐스트를 나타내고, 나머지 001~110까지는 호스트를 나타낸다.



'Network books > 후니의 Cisco 네트워킹' 카테고리의 다른 글

5-1. 스패닝 트리 활용  (0) 2018.11.10
5-0. 스패닝 트리  (0) 2018.11.05
4-2. Looping(뺑뺑이)  (0) 2018.10.29
4-1. 스위치/브리지 기능  (0) 2018.10.29
4-0. 스위치의 시작과 브리지  (0) 2018.10.29
복사했습니다!