서브넷 마스크 계산하기

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



제가 간편하게 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 OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

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

Android Minimum touch target size

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

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

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