지식 공유

[네트워크] 클래스와 서브넷 마스크 완전 정복

한상규 2020. 8. 25. 18:00

 

네트워크는 여러 부분이 연결되어있어서 네트워크에 대한 전반적인 이해없이 특정 부분을 공부하면 의문이 굉장히 많이 생긴다.

이번에 클래스와 서브넷 마스크 대해 이야기 것인데 많은 비약 존재한다. 비약을 집고 넘어가기에는 내용이 없이 길어지기 때문에 어느정도 감안하고 글을 읽주기를 바란다.

 

 

 

💻 네트워크란?

 IP 여러개가 모여서 네트워크가 된다. ( 많은 뜻이 존재하지만 글에서는 정도만 알고 있으면 된다.)

네트워크를 구성하는데는 두가지 기준이 존재한다. (또는, IP를 묶는데는 두가지 기준이 있다.)

  1. 클래스
  2. 서브넷 마스크

기준에 근거하여 IP 분류한다.

📖 사전지식

*호스트 : IP 부여 받은 컴퓨터

이 글을 읽을 때 이해를 도와줄 벤다이어그램

 

🎈'클래스' 이용한 분류법

IP 개수 : 0.0.0.0 ~ 255.255.255.255 - 총 4,294,967,296개 (IPv4 생각하자)

 

A클래스:0.0.0.0~ 127.255.255.255 / 네트워크 : 128개, 호스트 16,777,216개 / 128*16,777,216=2,147,483,648개

  1번째 네트워크 : 0.0.0.0 ~ 0.255.255.255 - 호스트 16,777,216개

  2번째 네트워크 : 1.0.0.0 ~ 1.255.255.255 - 호스트 16,777,216

  3번째 네트워크 : 2.0.0.0 ~ 2.255.255.255 - 호스트 16,777,216

  .

  .

  .

  128번째 네트워크 : 127.0.0.0 ~ 127.255.255.255 - 호스트 16,777,216

 

B클래스:128.0.0.0 ~ 191.255.255.255 / 네트워크 : 16,384개, 호스트 65,536개 - 16,384*65,536=1,073,741,824개

  1번째 네트워크 : 128.0.0.0 ~ 128.0.255.255 - 호스트 65,536

  2번째 네트워크 : 128.1.0.0 ~ 128.1.255.255 - 호스트 65,536

  3번째 네트워크 : 128.2.0.0 ~ 128.2.255.255 - 호스트 65,536

  .

  .

  256번째 네트워크 : 129.0.0.0 ~ 129.0.255.255 - 호스트 65,536

  .

  .

  16,384번째 네트워크 : 191.255.0.0 ~ 191.0.255.255 - 호스트 65,536

 

C클래스:192.0.0.0 ~ 223.255.255.255 / 네트워크 : 2,097,152, 호스트 256 / 2,097,152*256=536,870,912

  1번째 네트워크 : 192.0.0.0 ~ 192.0.0.255 - 호스트 256

  2번째 네트워크 : 192.0.1.0 ~ 192.0.1.255 - 호스트 256

  3번째 네트워크 : 192.0.2.0 ~ 192.0.2.255 - 호스트 256

  .

  .

  256번째 네트워크 : 192.1.0.0 ~ 192.1.0.255 - 호스트 256

  .

  .

  65,536번째 네트워크 : 193.0.0.0 ~ 193.0.0.255 - 호스트 256

  .

  .

  2,097,152번째 네트워크 : 223.255.255.0 ~ 223.255.255.255 - 호스트 256

 

D클래스:224.0.0.0 ~ 239.255.255.255 / 호스트, 네트워크 구분 없이 268,435,456

E클래스:240.0.0.0 ~ 255.255.255.255 / 호스트, 네트워크 구분 없이 268,435,456


- A클래스 16,777,216개 IP 묶어서 하나의 네트워크를 구성한다. 만약 16,777,216개의 IP 필요한 회사는 A클래스에 속하는 네트워크를 할당 받아야 한다.

 

- B클래스 65,536개 IP 묶어서 하나의 네트워크 구성한다. 만약 65,536개의 IP 필요한 회사는 B클래스에 속하는 네트워크를 할당 받아야 한다.

 

- C클래스 256개 IP 묶어서 하나의 네트워크 구성한다. 만약 256개의 IP 필요한 회사는 C클래스에 속하는 네트워크를 할당 받아야 한다.

 

😮 하지만 위 같은 분류 방식은 문제점이 있다.

- 만약 어떤 회사에서 16,777,216 IP 필요한데 A클래스가 모두 할당되었다면 B클래스 여러개를 할당 받아야 한다. 16,777,216/65,536 = 256 , , 256개의 B클래스를 할당 받아야 한다.

 

- 또, 어떤 회사에서 2개의 IP 필요한데 C클래스를 할당 받았다 256 - 2 = 254 , 254개의 IP 미사용 상태 된다.

 

 안그래도 부족한 IP '클래스' 이용한 분류 방식으로는 효율적으로 사용할 없다.

그래서 '서브넷 마스크' 분류법을 사용하게 됐다.

 

😎여기서부터 네트워크서브넷을 정확하게 구분해서 읽자! 무지 혼란스럽다

 

📒서브넷이란?

네트워크를 작게 나눈 네트워크라고 생각하면 된다.

네트워크를 서브넷으로 나눌 때는 어떤 기준에 맞게 나눠야 하는데 기준이 서브넷 마스크이다.

 

🏹'서브넷 마스크' 이용한 분류법

문제를 풀어보며 자연스럽게 서브넷 마스크의 개념과 사용법을 익혀봅시다

 

문제) C클래스를 할당 받은 회사에 4개의 부서가 있어 4개의 서브넷을 만들려고 한다. 서브넷 마스크 값은?

C클래스 네트워크 하나당 256개의 호스트가 있다. 256개의 호스트를 4등분하면 256/4=64 , 호스트를 64개씩 4개의 서브넷으로 구성하면 된다.

192.0.0.0 ~ 192.0.0.255 라는 C클래스의 한 네트워크 대역을 부여받았다고 가정하자

(😎'C클래스를 부여 받았다' == 'C클래스의 한 네트워크 대역을 부여받았다')

  192.0.0.0 ~ 192.0.0.63 - 호스트 64

  192.0.0.64 ~ 192.0.0.127 - 호스트 64

  192.0.0.128 ~ 192.0.0.191 - 호스트 64

  192.0.0.192 ~ 192.0.0.255 - 호스트 64

이렇게 나누면 것이다.

 

이걸 서브넷 마스크 표현하면

255.255.255.192 또는 /26

처럼 된다. /26 2진수로 변환했을 1 개수이다.

 

같은 결과를 도출하려면 서브넷 마스크를 2진수로 변환해야 한다.

255.255.255.192 -> 11111111.11111111.11111111.11000000(1 26)

(😎서브넷 마스크는 무조건 앞에서 부터 1이 채워진다. 다시 말해

11111111.11111111.11111111.11001010

위 같은 서브넷 마스크는 없다. 그렇게 정했다.)

 

서브넷 마스크는 네트워크 IP 호스트 IP 구성된다.

11111111.11111111.11111111.11 000000

1 채워진 부분은 네트워크 IP라고 하고, 0 채워진 부분을 호스트 IP라고 한다.(더 자세히 설정해야 하지만 이정도만..)

우리가 집중해야 부분은 호스트 IP이다.

000000, 0이 6개이다. 그러면 아래 처럼 생각하면 된다.

000000 ~ 111111 니깐 0부터 63까지 64개의 호스트를 표현할 있다.

그럼 256개의 호스트를 64개씩 묶으니깐 256/64=4 즉, 4개의 서브넷이 만들어진다. (이런 느낌으로 풀면 된다.)

 

문제) C클래스를 할당 받은 회사에 2개의 부서가 있어 2개의 서브넷을 만들려고 한다. 서브넷 마스크 값은?

이번에는 2개의 서브넷을 만들려는 것이다. 모든 조건은 동일하고 4개의 서브넷이 2개의 서브넷으로 바뀐 것 뿐이다. 천천히 살펴보자

C클래스 네트워크 하나당 256개의 호스트 있다. 256개의 호스트를 2등분하면 256/2=128 , 호스트를 128개씩 2개의 서브넷으로 구성하면 된다.

192.0.0.0 ~ 192.0.0.255 라는 C클래스를 부여받았다고 가정하자

  192.0.0.0 ~ 192.0.0.127 - 호스트 128

  192.0.0.128 ~ 192.0.0.255 - 호스트 128

 

서브넷에 128개의 호스트 존재해야 하므로 2의 7제곱은 128, 0 7 있으면 되겠다.

11111111.11111111.11111111.1 0000000

위를 그대로 10진법으로 변형하면 255.255.255.128 또는 /25 이다.

 

 

문제)C클래스를 할당 받은 회사에서 10개의 서브넷을 구성하고 싶어요. 서브넷 마스크 값은?

생각해보자. 무조건 앞에서 부터 1 채워지는 서브넷 마스크 특성 때문에

서브넷의 개수는 (2의 n제곱) 형태로만 만들어진다. 따라서 서브넷 개수가 정확하게 10이 나오는 것은 논리적으로 불가능하다.

그렇다면 10과 가까운 8 또는 16개의 서브넷을 구성할 있는데 10개의 서브넷을 구성하려면 16개의 서브넷을 구성해야 한다.

192.0.0.0 ~ 192.0.0.255 라는 C클래스를 부여받았다고 가정하자

  192.0.0.0 ~ 192.0.0.15 - 호스트 16

  192.0.0.16 ~ 192.0.0.31 - 호스트 16

  192.0.0.32 ~ 192.0.0.47 - 호스트 16

  192.0.0.48 ~ 192.0.0.63 - 호스트 16

  192.0.0.64 ~ 192.0.0.79 - 호스트 16

  192.0.0.80 ~ 192.0.0.95 - 호스트 16

  192.0.0.96 ~ 192.0.0.111 - 호스트 16

  192.0.0.112 ~ 192.0.0.127 - 호스트 16

  192.0.0.128 ~ 192.0.0.143 - 호스트 16

  192.0.0.144 ~ 192.0.0.159 - 호스트 16

  192.0.0.160 ~ 192.0.0.175 - 호스트 16

  192.0.0.176 ~ 192.0.0.191 - 호스트 16

  192.0.0.192 ~ 192.0.0.207 - 호스트 16

  192.0.0.208 ~ 192.0.0.223 - 호스트 16

  192.0.0.224 ~ 192.0.0.239 - 호스트 16

  192.0.0.240 ~ 192.0.0.255 - 호스트 16

서브넷에 16개의 호스트 존재해야 하므로 2의 4제곱은 16. 즉, 0 4 있으면 되겠다.

11111111.11111111.11111111.1111 0000

위를 그대로 10진법으로 변형하면 255.255.255.240 또는 /28 이다.

 

 

 

문제)C클래스를 할당 받은 회사에서 서브넷에 50개의 호스트가 들어가게 구성하고 싶어요. 서브넷 마스크 값은?

서브넷의 호스트 개수 역시 2 n제곱 형태 형성된. 하지만 서브넷에 50개의 호스트가 들어가게 구성하고 싶다고 하였다. 그렇다면 우리는 2 6승인 64개의 호스트가 들어가게 서브넷을 구성해야 겠다는 생각을 있다. 0이 6개 필요하므로 서브넷 마스크는

11111111.11111111.11111111.11 000000

위를 그대로 10진법으로 변형하면 255.255.255.192 또는 /26 이다.

 

좀더 나아가 A클래스, B클래스를 할당받았을 서브넷 마스크를 구하는 문제도 풀어보자. 원리는 동일하다.

 

문제)A클래스 대역을 할당 받은 회사에서 4개의 부서가 있어서 4개의 서브넷으 구성하려고 한다. 서브넷 마스크의 값은?

0.0.0.0 ~ 0.255.255.255라는 A클래스를 부여 받았다고 가정하자

  0.0.0.0 ~ 0.63.255.255 - 호스트 4,194,304

  0.64.0.0 ~ 0.127.255.255 - 호스트 4,194,304

  0.128.0.0 ~ 0.191.255.255 - 호스트 4,194,304

  0.192.0.0 ~ 0.255.255.255 - 호스트 4,194,304

이렇게 나누면 되겠다. 그러면 서브넷 하나에 호스트 수가 4,194,304개이고 2 22제곱이 4,194,304이므로

이진수로 표현한 서브넷 마스크에서 뒤에서 부터 22개의 0 채워주면 된다.

11111111.11 000000.00000000.00000000

위를 그대로 10진법으로 변형하면 255.192.0.0 또는 /10 이다.

 

😀이제 우리는 IP 서브넷 마스크를 보고 어떤 클래스에 속하는지 몇 개의 서브넷으로 나눠졌는지 있는 능력이 생겼다.🎉

실제 사례를 통해 알아보자

 

[ 출처 ]KISA 후이즈 검색

 

 

딜라이브 구로케이블티브이라는 기관에서 부여한 IP대역을 예시로 가져왔다.

일단 가장 구하기 쉬운 클래스부터 구해보자. IP 58 시작한다. 0.0.0.0 ~ 127.255.255.255 사이에 있는 IP이므로 A클래스 해당한다.

구체적으로 58.0.0.0 ~ 58.255.255.255 사이에 있는 IP이고

  0.0.0.0 ~ 0.255.255.255 A클래스의 1번째 네트워크이고

  1.0.0.0 ~ 1.255.255.255 A클래스의 2번째 네트워크이니깐

  58.0.0.0 ~ 58.255.255.255 A클래스의 59번째 네트워크이다.

 

보면 괄호안에 /23라고 적혀있다. 그렇다 서브넷 마스크이다. 우리는 서브넷 마스크를 이진수로 변환 있다. 왼쪽부터 1을 23개 채우고 나머지 부분을 0으로 채우자

11111111.11111111.11111110.00000000

0 개수가 9이다. 2 9제곱은 512이다. , 서브넷에 512개의 호스트가 존재한다는 것이다.

A클래스의 하나의 네트워크에 있는 호스트 개수는 16,777,216 이므로 16,777,216/512=32,768 , 32,768개의 서브넷으로 나눈 것이다.

32,768개의 서브넷 하나인 58.141.58.0 ~ 58.141.59.255대역을 서울시 구로구에 할당한 이라고 생각하면 된다.

 

실제로 58.141.58.0 ~ 58.141.59.255 대역에는 512개의 IP가 들어있다.

 

끝.