컴퓨터/네트워크

[네트워크] IP 클래스와 서브넷마스크, 서브넷마스크 계산방법

REAKWON 2019. 3. 18. 23:07

IP 클래스와 서브넷마스크


우리가 PC를 사용해 인터넷을 즐기고 게임을 하는 등 네트워크 통신에서는 항상 주소를 갖고 동작하고 있습니다. 그게 바로 IP 주소이지요. IP주소를 통해서 통신을 할 수 있는 겁니다.


우선 나의 아이피는 어떻게 알 수 있을까요?

윈도우에 cmd를 키고 ipconfig를 입력해보세요. 리눅스라면 ifconfig 명령어를 실행시켜보세요. 자신의 아이피주소가 나올겁니다.


이전에 컴퓨터의 수가 별로 없어서 IP주소를 막 뿌려댔으나 폭발적인 PC사용의 증가로 사태의 심각성을 깨달았는지 머리를 쓰게 된 것입니다.

그래서 나온게 서브넷마스크입니다.




본격적으로 IP클래스 대역과 서브넷마스크를 보기에 앞서 IP주소에 대해서 간단히 설명하고 넘어가도록 하겠습니다.


우리는 다음과 같은 IP주소를 갖고 있다고 칩시다.


192.168.10.10 -> 1100 0000. 1010 1000. 0000 1010. 0000 1010


십진수와 이진수로 나타냈습니다. 총 32비트, 4바이트라는 것을 알 수 있습니다. 여기서 1바이트가 바로 옥텟이라고 합니다. Oct가 숫자 8을 나타내는 접두사이거든요(온타곤, 옥토퍼스 등). 이것은 우리가 흔히 보는 IPv4의 주소 표기방식입니다. 


조금 후에 이야기를 하겠지만 이 IP주소가 C클래스 대역에 속한다면 네트워크 주소는 1100 0000. 1010 1000. 0000 0010입니다. 나머지 빨간 부분인 0000 1010은 호스트 주소랍니다. 그래서 192.168.10으로 시작하는 PC는 192.168.10.10과 같은 네트워크에 속하고 있다는 것을 의미합니다.


가장 첫번째 호스트 주소는 네트워크 자체를 지칭하며, 마지막 주소는 브로드캐스트용 주소로 쓰입니다. 예를 들어 위에서 192.168.10.0은 192.168.10의 네트워크를 가리키고, 192.168.10.255가 브로드캐스트용 주소이지요.


우리는 이제 IPv4를 토대로 IP 클래스 대역과 서브넷 마스크에 대해 알아보도록 하겠습니다.


A클래스

A클래스의 첫번째 옥텟의 비트는 0으로 고정됩니다.


0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

그렇기 때문에 표현할 수 있는 범위는 0000 0000.0000 0000.0000 0000.0000 0000~0111 1110.1111 1111.1111 1111.1111 1111입니다.

그래서 0.0.0.0 ~ 127.255.255.255입니다.

이 IP클래스는 대규모 네트워크에 적합합니다.

네트워크 주소는 처음 8비트까지입니다. 나머지 24비트는 호스트 주소를 의미합니다.


B클래스

B클래스는 첫번째 옥텟의 두번째 비트가 고정됩니다. 10으로 고정이 됩니다.

10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

그래서 표현할 수 있는 범위는 1000 0000. 0000 0000. 0000 0000. 0000 0000~ 1011 1111. 1111 1111. 1111 1111까지입니다.

그래서 128.0.0.0 ~ 191.255.255.255입니다.

네트워크 주소는 처음 16비트이며 호스트 주소는 나머지 16비트입니다.




C클래스

C클래스는 첫번째 옥텟의 세번째 비트가 110으로 고정됩니다.

110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

그래서 표현할 수 있는 범위는 1100 0000. 0000 0000. 0000 0000. 0000 0000 ~ 1101 1111. 1111 1111. 1111 1111. 1111 1111까지입니다.

십진수로 표현하면 192.0.0.0 ~ 223.255.255.255 입니다.

네트워크 주소는 처음 24비트이며 나머지 8비트는 호스트 비트입니다.


D클래스

D클래스는 첫번째 옥텟의 네번째 비트가 1110으로 고정됩니다.

1110 xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

그래서 표현할 수 있는 범위는 1110 0000. 0000 0000. 0000 0000. 0000 0000 ~ 1110 1111. 1111 1111. 1111 1111. 1111 1111까지입니다.

십진수로 표현하면 224.0.0.0 ~ 239.255.255.255 입니다. 멀티캐스트용 대역으로 IP주소에 할당되지 않습니다.


E클래스

E클래스는 첫번째 옥텟의 네번째 비트가 1111으로 고정됩니다.

1111 xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

그래서 표현할 수 있는 범위는 1111 0000. 0000 0000. 0000 0000. 0000 0000 ~ 1111 1111. 1111 1111. 1111 1111. 1111 1111까지입니다.

십진수로 표현하면 240.0.0.0 ~ 255.255.255.255 입니다. 예약된 주소 대역으로 IP주소에 할당되지 않습니다.


D와 E클래스는 특정 용도로 사용하기 때문에 실제 IP주소에 할당되지 않습니다.


클래스 등급이 낮아지면서 호스트 주소 부분이 점점 줄어들고 있는것을 알 수 있습니다.


이 와중에 특정 주소 대역은 사설 IP로 사용합니다. 아래에 나와있습니다.


A클래스 사설 IP주소 10.0.0.0 ~ 10.255.255.255

B클래스 사설 IP주소 172.16.0.0 ~ 172.31.255.255

C클래스 사설 IP주소 192.168.0.0 ~ 192.168.255.255 


또한 0.0.0.0, 255.255.255.255처럼 네트워크 시작 주소, 브로드캐스트용주소는 IP주소로 할당되지 않으면 127.0.0.1과 같은 loopback용 주소 또한 사용할 수 없습니다.


서브넷마스크


우리가 C클래스 대역을 사용해서 호스트를 255개를 수용할 수 있는 것도 너무 많이 남을때가 있습니다. 또는 B클래스 대역을 C클래스 대역으로 쓰고 싶을 때가 있습니다. 네트워크 주소를 조금 더 효율적으로 할당하고자 나온 것이 서브넷마스크입니다. 서브넷마스크로 만들어진 네트워크를 서브넷이라고 합니다.


이제 서브넷마스크를 어떻게 계산하며 네트워크 부분과 호스트부분이 어떻게 되는지 살펴봅시다.




예를 가지고 설명을 하는 것이 가장 좋겠네요.

128.255.11.11는 B클래스 주소입니다. 128.255까지가 네트워크 주소이며 나머지 2옥텟이 나머지 호스트 주소입니다.

128.255.11.11을 255.255.255.0이라는 서브넷 마스크를 씌우면 어떻게 될까요? 서브넷 마스크는 비트로 보는 것이 편합니다.


1000 0000.1111 1111.0000 1011.0000 1011 <- 128.255.11.11

1111 1111.1111 1111.1111 1111.0000 0000 <- 255.255.255.0


여기서 서브넷마스크 비트가 1인것은 전부 네트워크 주소가 됩니다. 반대로 0은 호스트 주소 범위가 되지요. 그래서 128.255.11이 네트워크 주소 대역이 되고 나머지 11이 호스트용 주소가 되겠네요.


서브넷마스크의 표기방식은 주소/서브넷마스크 주소 또는 주소/비트수로 표현할 수 있습니다. 128.255.11.11/255.255.255.0 또는 128.255.11.11/24로 표현가능하다는 것입니다.


조금 더 잘게 쪼개보겠습니다.

128.255.11.11을 255.255.255.224의 서브넷마스크를 적용하면 어떻게 될까요? 이 역시 비트로 풀어보도록 합시다.


1000 0000.1111 1111.0000 1011.0000 1011 <- 128.255.11.11

1111 1111.1111 1111.1111 1111.1110 0000 <- 255.255.255.224


하위 5비트 0 0000을 호스트용 주소로 적용시킬 수 있으니까 128.255.11.0 ~ 128.255.11.31까지가 같은 네트워크이고, 128.255.11.11이 바로 이 네트워크에 속하는 것을 알 수 있습니다.

전부 구해보면 다음과 같습니다.


128.255.11.0 ~ 128.255.11.31 

네트워크 주소 128.255.11.0, 브로드캐스트 주소 128.255.11.31

128.255.11.32 ~ 128.255.11.63

네트워크 주소 128.255.11.32, 브로드캐스트 주소 128.255.11.63

128.255.11.64 ~ 128.255.11.95

네트워크 주소 128.255.11.64, 브로드캐스트 주소 128.255.11.95

128.255.11.96 ~ 128.255.11.127

네트워크 주소 128.255.11.96, 브로드캐스트 주소 128.255.11.127

128.255.11.128 ~ 128.255.11.159

네트워크 주소 128.255.11.128, 브로드캐스트 주소 128.255.11.159

128.255.11.160 ~ 128.255.11.191

네트워크 주소 128.255.11.160, 브로드캐스트 주소 128.255.11.191

128.255.11.192 ~ 128.255.11.223

네트워크 주소 128.255.11.192, 브로드캐스트 주소 128.255.11.223

128.255.11.224 ~ 128.255.11.255

네트워크 주소 128.255.11.224, 브로드캐스트 주소 128.255.11.255




총 8개의 네트워크로 나누어졌음을 알 수 있습니다. (B클래스 대역이긴 하지만 C클래스처럼 0~255까지만 보았습니다.)


사실 위의 A,B,C클래스 대역은 서브넷마스크가 255.0.0.0, 255.255.0.0, 255.255.255.0의 서브넷마스크가 적용되었다는 사실을 눈치채셨나요? 이것을 default subnet mask라고 합니다.


반응형