‘모드’에서 IPv4 또는 IPv6를 고르고 IP 주소와 프리픽스 길이를 입력하세요. 네트워크 주소, 호스트 수, 서브넷 마스크 등을 계산하고 비트 구조 그림을 그립니다.
이 페이지에서 할 수 있는 것
- IP 주소와 프리픽스 길이(예: 192.168.1.0 /24)를 넣기만 하면 네트워크 주소, 브로드캐스트 주소, 사용 가능한 호스트 IP 범위를 바로 알 수 있습니다
- 전체 호스트 수, 사용 가능한 호스트 수, 서브넷 마스크, 와일드카드 마스크, CIDR 표기, 정수 ID, 16진수 ID까지 한꺼번에 계산합니다
- IP 주소의 32비트를 ‘네트워크 부분’과 ‘호스트 부분’으로 색을 나눈 비트 구조 그림으로 서브넷의 원리를 눈으로 이해할 수 있습니다
- IPv4 모드와 IPv6 모드를 바꿀 수 있습니다. IPv6에서는 네트워크, 주소 범위, 전체 주소 수(\(2^{128-\text{프리픽스 길이}}\))를 계산합니다
- 공식의 쉬운 해설과 Excel·Google 스프레드시트·Python에 복사해 쓸 수 있는 수식도 이 페이지에 모아 두었습니다
이 계산은 어디에 쓰일까요?
큰 조직에서는 하나의 IP 네트워크를 부서별·지점별로 작은 서브넷으로 나누어 운영합니다. 예를 들어 ‘영업부의 기기 최대 60대를 연결하려면 사용 가능한 호스트가 62개인 /26을 할당한다(\(2^{32-26}-2 = 62\))’처럼, 필요한 대수에서 프리픽스 길이를 정합니다.
네트워크 관리자나 인프라 엔지니어가 거의 매일 쓰는 기본 설계 기술이 바로 서브넷 계산입니다.
가정용 공유기 관리 화면에 자주 나오는 ‘192.168.1.0/24’, ‘서브넷 마스크 255.255.255.0’이 바로 이 계산의 세계입니다. /24라면 사용 가능한 호스트가 254개이므로 스마트폰, PC, TV 등을 합쳐 최대 254대까지 연결할 수 있습니다.
기기가 연결되지 않을 때 IP 주소가 올바른 범위(네트워크) 안에 있는지 확인하는 데도 도움이 됩니다.
클라우드에 나만의 네트워크(AWS의 VPC 등)를 만들 때는 ‘이 VPC는 10.0.0.0/16, 그 안의 서브넷은 10.0.1.0/24’처럼 주소 범위를 CIDR 표기로 지정합니다. 범위가 겹치면 서로 통신할 수 없으므로 네트워크 주소와 호스트 수를 정확히 계산해야 합니다.
클라우드 엔지니어에게 서브넷 계산은 꼭 필요한 기술이자 환경 구축의 출발점입니다.
정보처리기사, 네트워크관리사, 국제 네트워크 자격증인 CCNA 등에서는 ‘이 IP 주소와 서브넷 마스크로 네트워크 주소, 브로드캐스트 주소, 사용 가능한 호스트 수를 구하라’ 같은 문제가 되풀이해 나옵니다.
2진수의 AND·OR와 2의 거듭제곱, 곧 이 페이지의 공식 4가지가 그대로 점수로 이어집니다. 계산 과정과 비트 구조 그림을 보면서 직접 풀어 보는 연습에도 쓸 수 있습니다.
‘이 서브넷에서 오는 통신만 허용한다’ 같은 방화벽이나 접근 제어 목록(ACL) 설정에서는 허용·차단할 주소를 CIDR 표기(예: 192.168.10.0/24)로 묶어 지정합니다. 네트워크 주소나 범위를 잘못 잡으면 필요한 통신을 막거나 뜻하지 않은 구멍이 생길 수 있습니다.
보안 업무에서 이 계산은 넓지도 좁지도 않은 정확한 범위를 지정하기 위한 기본입니다.
공식
용어·기호 해설
기호
| \(N\) | 엔 | 네트워크 주소입니다. 그 네트워크의 맨 앞(호스트 부분이 모두 0)의 주소로, 네트워크 자체를 가리키는 이름으로 씁니다. |
| \(B\) | 비 | 브로드캐스트 주소입니다. 그 네트워크의 맨 끝(호스트 부분이 모두 1)의 주소로, 네트워크 안의 모든 기기에 한꺼번에 보낼 때 씁니다. |
| \(W\) | 더블유 | 와일드카드 마스크입니다. 서브넷 마스크의 0과 1을 뒤집은 것으로, 호스트 부분이 1로 채워져 있습니다. 브로드캐스트 주소를 구할 때나 접근 제어에 씁니다. |
| \(p\) | 피 | 프리픽스 길이입니다. ‘/24’의 ‘24’ 부분으로, 네트워크 부분이 몇 비트인지 나타냅니다. (영어 prefix의 머리글자) |
| \(H\) | 에이치 | 전체 호스트 수입니다. 그 네트워크에 들어가는 주소의 총수로, \(H = 2^{32-p}\)입니다. (영어 host의 머리글자) |
| \(U\) | 유 | 사용 가능한 호스트 수입니다. 실제로 기기에 할당할 수 있는 주소의 수로, 전체에서 네트워크 주소와 브로드캐스트 주소 2개를 뺀 값입니다. |
| \(\land\) | 논리곱(AND) | 논리곱(AND)입니다. 두 비트가 ‘모두 1일 때만 1’이 되는 연산으로, 네트워크 주소를 구할 때 씁니다. |
| \(\lor\) | 논리합(OR) | 논리합(OR)입니다. 두 비트 중 ‘어느 한쪽이 1이면 1’이 되는 연산으로, 브로드캐스트 주소를 구할 때 씁니다. |
용어
| 서브넷 | 큰 IP 네트워크를 여러 개의 작은 네트워크로 나눈 것 하나하나를 말합니다. 부서나 지점별로 네트워크를 나누면(서브넷팅) 관리하기 쉬워지고 보안도 높아집니다. |
| 서브넷 마스크 | IP 주소에서 ‘어디까지가 네트워크 부분이고 어디부터가 호스트 부분인지’를 나타내는 32비트 값입니다. 네트워크 부분의 비트는 1, 호스트 부분의 비트는 0으로 나타냅니다(예: 255.255.255.0). |
| 프리픽스 길이 | 네트워크 부분의 비트 수입니다. ‘/24’처럼 쓰며, 서브넷 마스크와 같은 정보를 더 짧게 나타낸 것입니다. |
| CIDR | 클래스에 얽매이지 않고 프리픽스 길이로 네트워크를 자유롭게 나누는 방식(Classless Inter-Domain Routing)으로, ‘사이더’라고 읽습니다. ‘192.168.1.0/24’처럼 슬래시를 붙여 쓰며, 오늘날 인터넷의 표준입니다. |
| 네트워크 주소 | 그 네트워크의 맨 앞 주소(호스트 부분이 모두 0)입니다. 개별 기기에는 할당하지 않고 네트워크 자체를 가리키는 이름으로 씁니다. |
| 브로드캐스트 주소 | 그 네트워크의 맨 끝 주소(호스트 부분이 모두 1)입니다. 네트워크 안의 모든 기기에 동시에 보내기 위한 특별한 주소입니다. |
| 와일드카드 마스크 | 서브넷 마스크의 비트를 뒤집은 값입니다. 호스트 부분이 1로 채워져 있으며, 브로드캐스트 주소 계산이나 라우터의 접근 제어 목록(ACL)에 쓰입니다. |
| 옥텟 | IPv4 주소를 마침표로 나눈 한 칸(8비트, 0~255)을 말합니다. 192.168.1.0에서는 ‘192’, ‘168’, ‘1’, ‘0’이 각각 1옥텟입니다. |
| 사설 IP 주소 | 가정이나 회사처럼 조직 내부에서만 쓰도록 예약된 IP 주소입니다(10.0.0.0~10.255.255.255, 172.16.0.0~172.31.255.255, 192.168.0.0~192.168.255.255. RFC 1918에서 정함). 그대로는 인터넷에서 쓸 수 없으며, 인터넷 전체에서 통하는 주소는 공인 IP 주소라고 합니다. |
| IP 클래스(클래스풀) | CIDR가 널리 쓰이기 전에 맨 앞의 수(첫 번째 옥텟)로 네트워크의 크기를 나누던 옛 방식(클래스 A·B·C…)입니다. 지금은 라우팅에 쓰이지 않지만 용어는 아직 남아 있어서 이 페이지에서도 함께 표시합니다. |
| IPv4 | 32비트(약 43억 가지)의 주소 방식으로, 가장 널리 쓰입니다. 이 페이지가 주로 다루는 것도 IPv4입니다. |
| IPv6 | 128비트로 사실상 거의 무한히 주소를 만들 수 있는 새로운 주소 방식입니다. IPv4의 주소 부족을 해결하려고 만들어졌습니다. |
| 비트 | 0 또는 1 중 하나를 나타내는 정보의 가장 작은 단위입니다. IPv4 주소는 32비트, IPv6 주소는 128비트로 이루어져 있습니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘의미를 알고’ 쓸 수 있도록, 먼저 이해해 두면 좋은 내용을 정리했습니다.
| 2진수와 10진수(중·고등학교 정보, 정보처리기사) |
|
| 거듭제곱과 지수(중학교 1학년, 12~13세) |
|
| 논리 연산 AND·OR(고등학교 정보) |
|
| 비트와 바이트(중·고등학교 정보) |
|
Excel로 계산하는 방법
| 프리픽스 길이 p | 24 |
| 호스트 부분의 비트 수(32−p) | =32-B1 |
| 전체 호스트 수 | =2^B2 |
| 사용 가능한 호스트 수 | =MAX(B3-2,0) |
| 프리픽스 길이 p | 24 |
| 서브넷 마스크(정수) | =(2^32)-(2^(32-B1)) |
| 첫 번째 옥텟 | =INT(B2/16777216) |
| 두 번째 옥텟 | =INT(MOD(B2,16777216)/65536) |
| 세 번째 옥텟 | =INT(MOD(B2,65536)/256) |
| 네 번째 옥텟 | =MOD(B2,256) |
두 번째 표는 서브넷 마스크를 4개의 옥텟(0~255)으로 나눕니다. B2에서 마스크 전체를 하나의 정수로 계산하고, B3~B6에서 256의 거듭제곱으로 나눈 몫과 나머지로 각 옥텟을 꺼냅니다. /24라면 255.255.255.0이 됩니다.
Google 스프레드시트로 계산하는 방법
| 프리픽스 길이 p | 24 |
| 호스트 부분의 비트 수(32−p) | =32-B1 |
| 전체 호스트 수 | =2^B2 |
| 사용 가능한 호스트 수 | =MAX(B3-2,0) |
| 프리픽스 길이 p | 24 |
| 서브넷 마스크(정수) | =(2^32)-(2^(32-B1)) |
| 첫 번째 옥텟 | =INT(B2/16777216) |
| 두 번째 옥텟 | =INT(MOD(B2,16777216)/65536) |
| 세 번째 옥텟 | =INT(MOD(B2,65536)/256) |
| 네 번째 옥텟 | =MOD(B2,256) |
Python으로 계산하는 방법
import ipaddress
ip = "192.168.10.130" # IP 주소
prefix = 24 # 프리픽스 길이(/24의 24)
net = ipaddress.ip_network(f"{ip}/{prefix}", strict=False)
total = net.num_addresses # 전체 호스트 수 = 2 ** (32 - prefix)
usable = max(total - 2, 0) # 사용 가능한 호스트 수(/31·/32는 0)
print(f"네트워크 주소: {net.network_address}")
print(f"브로드캐스트 주소: {net.broadcast_address}")
print(f"서브넷 마스크: {net.netmask}")
print(f"와일드카드 마스크: {net.hostmask}")
print(f"전체 호스트 수: {total}")
print(f"사용 가능한 호스트 수: {usable}")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
N = IP ∧ mask
N = \mathrm{IP} \land \mathrm{mask}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>N</mi>
<mo>=</mo>
<mi>IP</mi>
<mo>∧</mo>
<mi>mask</mi>
</mrow>
</math>
N = IP ^^ mask
BitAnd[ip, mask]
N := Bits:-And(ip, mask);
N = bitand(ip, mask);
N = IP ∧ mask
B = N ∨ W
B = N \lor W
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>B</mi>
<mo>=</mo>
<mi>N</mi>
<mo>∨</mo>
<mi>W</mi>
</mrow>
</math>
B = N vv W
BitOr[network, wildcard]
B := Bits:-Or(network, wildcard);
B = bitor(network, wildcard);
B = N ∨ W
H = 2^(32 − p)
H = 2^{32 - p}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>H</mi>
<mo>=</mo>
<msup>
<mn>2</mn>
<mrow><mn>32</mn><mo>−</mo><mi>p</mi></mrow>
</msup>
</mrow>
</math>
H = 2^(32 - p)
2^(32 - p)
H := 2^(32 - p);
H = 2^(32 - p);
H = 2^(32-p)
U = H − 2
U = H - 2
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>U</mi>
<mo>=</mo>
<mi>H</mi>
<mo>−</mo>
<mn>2</mn>
</mrow>
</math>
U = H - 2
H - 2
U := H - 2;
U = H - 2;
U = H - 2
ChatGPT 에게 물어서 계산하는 방법
당신은 네트워크 계산 도우미입니다. 다음 계산은 반드시 Python(표준 라이브러리 ipaddress 모듈)을 실제로 실행해서 하고, 실행 결과의 수치만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). IPv4 주소 192.168.10.130을 프리픽스 길이 /24로 계산해 다음을 구해 주세요. 1. 네트워크 주소 2. 브로드캐스트 주소 3. 서브넷 마스크와 와일드카드 마스크 4. 전체 호스트 수와 사용 가능한 호스트 수 사용한 코드와 실행 결과의 수치를 함께 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다