서브넷 마스크 계산하기

서브넷 마스크에 대해서 알아보겠습니다.



제가 간편하게 IP를 구할 수 있는 Android 앱을 만들었습니다.










도움이 되면 좋겠습니다. (개선사항은 언제나 환영입니다)



서브넷 마스크는 네트워크를 잘게 나눠서 사용하기 위해서 만들어졌습니다.


표기법은 두 가지가 있습니다.

192.168.0.1/255.255.255.0 (10 진수 표기법)

192.168.0.1/24 (CIDR: Classless Inter-Domain Routing 표기법)


사용법은 다음과 같습니다.

Subnet mask는 1인 부분은 Network를 나타내는 숫자이고, 나머지 0인 부분이 host의 개수입니다.



위의 경우 host의 개수는 2^8 = 256개입니다. 그런데, 0과 255는 지정된 IP이므로, 사용할 수 있는 host의 개수는 254개가 됩니다.


즉,

192.168.0.0 ~ 192.168.0.255까지 가 같은 Network가 되고, 192.168.0, 192.168.0.255를 제외한 모든 IP를 사용할 수 있습니다.




다른 경우를 보겠습니다.



위의 경우 host의 개수는 2^4 = 16개입니다. 범위의 처음과 끝인 0(처음)과 15(끝)는 사용하지 못하므로, 14개입니다. 제가 표시하지는 않았지만, 나머지 범위도 마찬가지 이유로 처음과 끝은 사용할 수 없습니다.


192.168.0.0 ~ 192.168.0.15 (192.168.0.0, 192.168.0.15 사용 불가)

192.168.0.16 ~ 192.168.0.31 (192.168.0.16, 192.168.0.31 사용 불가)

192.168.0.32 ~ 192.168.0.47

...

192.168.0.240 ~ 192.168.0.255

로 네트워크가 나눠집니다. 16개씩만 같은 네트워크입니다.



좀 더 복잡한 subnet mask를 보겠습니다.


위의 경우는 subnet mask가 세 번째 자리에 존재합니다.

다른 경우처럼 맨 끝에 있다고 생각하고 일단 구합니다.

8 개가 나옵니다.

일단 세 번째 자리는 8의 배수로 나눠집니다.

host의 개수는 2^11 = 2048 개가 됩니다. (2^8 * 2^3)

0과 255를 제거하면, 2046 개가 됩니다.


192.168.0.0 ~ 192.168.7.255 (192.168.0.0, 192.168.7.255 사용 불가)

192.168.8.0 ~ 192.168.15.255

192.168.16.0 ~ 192.168.23.255

...

192.168.248.0 ~ 192.168.255.255


2048 개 가 같은 네트워크가 됩니다.



CIDR 계산법은 쉽습니다.

2^(32 - CIDR 개수) = 전체 개수 

전체 개수 - 2 = 호스트 개수


/29의 경우는 2^(32 - 29)이 되어 8

8 -2 = 6 개가 같은 네트워크 호스트 개수가 됩니다.


끝.



카테고리: network, subnetmask

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

Android Notification with Full Screen

tensorflow tf.random.uniform()

Android AVD Ram size change

Python bs4.SoupStrainer()

Android Compose automation for getting localized images to use on Play Store app image

Forensics .pyc 파일 .py로 복구하기

KiCad 시작하기 2 (PCB 만들기)

KiCad 시작하기 7 (FreeRoute 사용하기 2)