CIDR / 서브넷 계산기
IPv4와 IPv6 블록의 네트워크 주소, 호스트 범위, 마스크, 주소 수를 구하고 등분할도 할 수 있습니다.
| 네트워크 | 192.168.1.0/24 |
|---|---|
| 네트워크 주소 | 192.168.1.0 |
| 브로드캐스트 주소 | 192.168.1.255 |
| 사용 가능 범위 | 192.168.1.1 – 192.168.1.254 |
| 사용 가능 주소 수 | 254 |
| 전체 주소 수 | 256 |
| 서브넷 마스크 | 255.255.255.0 |
| 와일드카드 마스크 | 0.0.0.255 |
이 도구가 하는 일
192.168.1.0/24 같은 CIDR 블록은 주소 범위를 간결하게 이름 붙이는 방법입니다. 이 도구는 그것을 받아 거기서 따라오는 물음에 답합니다: 범위가 어디서 시작하고 끝나는지, 몇 개의 주소를 지니는지, 그중 몇 개를 머신에 줄 수 있는지, 서브넷 마스크는 어떻게 생겼는지, 특정 주소가 안에 드는지, 그리고 더 작은 조각으로 자르면 무엇을 얻는지입니다.
IPv4와 IPv6를 다루고, 네트워크 주소만큼이나 선뜻 호스트 주소도 받습니다 — ip addr에서 그대로 192.168.1.57/24를 붙여넣으면 그 주소가 사는 블록을 알려 줍니다. 모두 브라우저 안에서 하는 산술입니다: 조회도 서버도 없고, 네트워크를 뽑아도 동작합니다.
슬래시 숫자의 뜻
IPv4 주소는 32비트입니다. 슬래시 뒤의 숫자 — 접두사 길이 — 는 그중 몇 비트가 네트워크를 식별하는지 말하고, 나머지가 그 안의 호스트를 식별합니다. /24는 처음 24비트를 고정하고 8을 자유로 남겨, 그래서 2^8 = 256개의 주소를 지닙니다.
192.168.1.0 # 주소 11000000.10101000.00000001.00000000 # 그 32비트 11111111.11111111.11111111.00000000 # /24 마스크: 1이 24개, 0이 8개
마스크가 1인 곳은 그 비트가 네트워크에 속해 블록의 모든 주소에서 고정되고, 0인 곳은 그 비트가 자유로 변해 호스트를 식별합니다. 접두사 비트가 하나 늘 때마다 블록이 반이 됩니다. 그 관계가 서브넷화의 전부이고, 표를 외우기보다 몸에 새길 만합니다:
- /24 — 256 주소, 254 사용 가능. 고전적인 작은 네트워크.
- /25 — 128 주소, 126 사용 가능. /24의 절반.
- /26 — 64 주소, 62 사용 가능.
- /30 — 4 주소, 2 사용 가능. 전통적인 점대점 링크.
- /16 — 65 536 주소. /24의 16배를, 다시 16배.
두 주소가 빠지는 이유
/24는 256개 주소를 지니지만 사용 가능한 것은 254개뿐입니다. IPv4가 그중 둘을 씁니다. 블록의 첫 주소는 네트워크 주소로, 블록 자체를 이름 붙이고 어느 인터페이스에도 할당되지 않습니다. 마지막은 브로드캐스트 주소로, 링크의 모든 호스트에 한꺼번에 닿습니다. 익숙한 2^n − 2가 거기서 옵니다.
두 접두사가 그 공식을 깨고, 대부분의 계산기가 적어도 하나를 틀립니다:
- /31은 두 주소를 지니고 공식은 사용 가능 0이라 합니다. RFC 3021은 점대점 링크를 위해 /31을 정하며, 거기서는 브로드캐스트 주소가 필요 없고 두 주소가 모두 할당됩니다 — 양 끝에 하나씩. 옳은 답은 2입니다.
- /32는 단일 주소이고 공식은 −1이라 합니다. /32는 정확히 한 호스트를 이름 붙입니다. 방화벽 규칙이나 경로에서 단일 서버에 쓰는 것입니다.
이 도구는 RFC 3021을 따라 그 경우에 2와 1을 보고합니다. 다른 계산기가 /31에 사용 가능한 주소가 없다고 하면, 그것은 교과서 공식을 성립하는 지점을 넘어 적용한 것입니다.
서브넷 마스크와 와일드카드 마스크
서브넷 마스크는 접두사 길이와 같은 정보를 점 넷으로 쓴 것입니다: 네트워크 비트가 1, 호스트 비트가 0입니다. /24는 255.255.255.0입니다. 오래된 설정 형식은 마스크를, 새 것은 접두사를 원하고, 둘은 서로 바꿔 쓸 수 있습니다.
와일드카드 마스크는 서브넷 마스크를 뒤집은 것 — /24에서 0.0.0.255 — 입니다. Cisco 액세스 리스트와 OSPF 네트워크 문이 그것으로 쓰이고, 그 뒤집힘이 분명히 말할 만큼 자주 사람을 걸립니다: 와일드카드 마스크에서 0 비트는 "맞아야 함"을, 1 비트는 "상관없음"을 뜻하고, 서브넷 마스크의 반대입니다.
IPv6는 예외가 적은 같은 생각
IPv6 주소는 32가 아니라 128비트이고, 접두사는 똑같이 돕니다 — /64는 처음 64비트를 고정합니다. 산술은 같고, 바뀌는 것은 IPv4의 두 성가심이 사라지는 것입니다.
- 브로드캐스트 주소가 없습니다. IPv6는 브로드캐스트를 멀티캐스트로 바꿔, 접두사 끝에 예약되는 것이 없습니다.
- 앞에도 예약되는 것이 없어, 블록의 모든 주소가 할당 가능하고 사용 가능 수가 총수와 같습니다. (서브넷의 모두-0 주소는 서브넷 라우터 애니캐스트 주소로, 범위의 구멍이 아니라 라우팅 관례입니다.)
- 점 서브넷 마스크가 없습니다. IPv6는 늘 접두사 길이로 쓰입니다. 텍스트로 된 128비트 마스크는 읽을 수 없고 아무것도 그것을 요구하지 않습니다.
/64는 단일 링크의 표준 크기입니다. 무상태 주소 자동 설정이 64개의 호스트 비트를 기대하기 때문입니다. 사이트는 대개 /48이나 /56을 받고 그것을 /64로 나눕니다 — VLAN이나 세그먼트마다 하나. 그래서 이 도구는 /48을 /64로 선뜻 나누고 그것이 65 536개라고 알려 줍니다.
주소 수가 빠르게 커지므로 2의 거듭제곱으로도 온전한 숫자로도 표시됩니다: /32는 2^96개 주소를 지니고, 그것은 79 228 162 514 264 337 593 543 950 336입니다. 거듭제곱이 읽을 수 있는 것, 숫자가 복사하는 것입니다.
IPv6 주소를 정규 방식으로 쓰기
IPv6 주소 하나를 여러 방식으로 쓸 수 있어, 둘을 눈으로 비교하는 것을 미덥지 않게 합니다. RFC 5952는 단일 정규 텍스트 형태를 정하고, 그것이 이 도구가 내는 것입니다:
- 소문자 16진수이고 그룹 안에 앞의 0이 없습니다 — 2001:0db8은 2001:db8이 됩니다.
- 모두-0 그룹의 가장 긴 연속이 ::로 바뀌고, 가장 긴 것만입니다. 동점이면 가장 왼쪽 연속이 이깁니다.
- 단일 0 그룹은 결코 압축되지 않습니다. ::는 아무것도 아끼지 못하면서 두 번째 철자를 만들기 때문입니다.
확장 형태가 그 옆에, 모든 그룹을 네 자리로 채워 표시됩니다. 그것은 정규가 아니지만, 주소 목록을 비교할 때 열에서 정렬되는 형태입니다.
블록 나누기
하나의 네트워크를 여러 개의 같은 것으로 자르는 것은 사람이 보통 서브넷 계산기에 와서 하는 작업입니다. 접두사 비트가 하나 늘 때마다 서브넷 수가 배가 되고 그 크기가 반이 됩니다: /24는 두 개의 /25, 네 개의 /26, 여덟 개의 /27이 됩니다.
192.168.1.0/24 -> /26 192.168.1.0/26 # 주소 0-63 192.168.1.64/26 # 주소 64-127 192.168.1.128/26 # 주소 128-191 192.168.1.192/26 # 주소 192-255
서브넷은 부모를 정확히 타일링합니다 — 틈도 겹침도 없이 — 이는 주소 공간을 손으로 깎을 때 확인할 만한 성질입니다. 수가 빠르게 큼에 유의하세요: /8을 /24로 나누면 65 536개 네트워크라, 여기 목록은 상한이 있고 답을 조용히 자르는 대신 진짜 총수를 그 옆에 보고합니다.
특정한 뜻을 지닌 범위
어떤 블록은 특정한 목적으로 예약되고, 그 하나 안에 있는 네트워크는 여기서 이름표가 붙습니다. 가장 자주 나오는 것:
- 사설(RFC 1918) — 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. 조직 안에서 라우팅 가능하고 공개 인터넷에서는 결코 아닙니다.
- 루프백 — IPv4에서 127.0.0.0/8, IPv6에서 ::1. 호스트를 결코 떠나지 않는 트래픽.
- 링크 로컬 — 169.254.0.0/16과 fe80::/10. 스스로 할당하고 한 링크에서만 유효. 이 범위의 IPv4 주소는 대개 DHCP가 실패했음을 뜻합니다.
- 캐리어급 NAT — 100.64.0.0/10. 가입자와 ISP 사이에 쓰이고, 자기 네트워크에서 보이면 ISP 쪽 NAT의 징후입니다.
- 문서용 — 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24, 2001:db8::/32. 예제용으로 예약되어, 그래서 이 페이지 곳곳에 나타납니다.
- 고유 로컬 — fc00::/7. RFC 1918 사설 공간의 IPv6 짝.
이름표는 블록 전체가 특수 범위 안에 있을 때만 붙지, 그저 겹칠 때는 아닙니다. 0.0.0.0/0은 존재하는 모든 사설 범위를 덮지만 그 자체가 사설은 아니고, 그렇지 않다고 말하는 것은 아무 말 안 하는 것보다 나쁩니다.
자주 묻는 질문
- /24에는 사용 가능한 호스트가 몇 개인가요?
- 254개입니다. 블록은 256개 주소를 지니고, 첫 주소는 네트워크 주소, 마지막은 브로드캐스트 주소라 어느 것도 인터페이스에 할당될 수 없습니다. 같은 뺄셈으로 /25는 126, /26은 62, /30은 2가 됩니다.
- 다른 계산기는 0이라는데 이것이 /31에 사용 가능한 주소가 둘이라고 하는 이유는 무엇인가요?
- RFC 3021이 점대점 링크를 위해 /31을 정하며, 거기서는 브로드캐스트 주소가 쓸모없고 두 주소가 모두 할당되기 — 링크 양 끝에 하나씩 — 때문입니다. 0이라 보고하는 계산기는 2^n − 2 공식을 성립하는 범위를 넘어 적용하고 있습니다.
- 서브넷 마스크와 와일드카드 마스크의 차이는 무엇인가요?
- 서로 뒤집은 것입니다. 서브넷 마스크는 네트워크 비트에 1을 지니고(/24에서 255.255.255.0), 와일드카드 마스크는 거기 대신 0을 지닙니다(0.0.0.255). 와일드카드 마스크에서 0은 비트가 맞아야 함을, 1은 무시됨을 뜻하고, 서브넷 마스크가 쌓는 직관의 반대입니다.
- 네트워크 주소가 아닌 주소를 붙여넣을 수 있나요?
- 네, 그리고 그것이 흔한 경우입니다. 192.168.1.57/24를 주면 네트워크가 192.168.1.0/24임을 보이고 입력한 주소가 그 안의 호스트라고 알립니다. 그것이 바로 ip addr나 ipconfig에서 얻는 것이라 먼저 편집할 필요가 없습니다.
- IPv6가 브로드캐스트 주소나 서브넷 마스크를 보이지 않는 이유는 무엇인가요?
- 둘 다 존재하지 않기 때문입니다. IPv6는 브로드캐스트를 멀티캐스트를 위해 버려 접두사 끝에 예약되는 것이 없고, 점 마스크가 아니라 늘 접두사 길이로 쓰입니다. IPv6 블록의 모든 주소가 할당 가능해 사용 가능 수가 총수와 같습니다.
- IPv6 서브넷은 어느 크기의 접두사여야 하나요?
- 거의 모든 경우 /64입니다. 무상태 주소 자동 설정이 64개의 호스트 비트를 가정하므로 더 작은 접두사는 보통 링크에서 그것을 깨뜨립니다. 사이트는 대개 /48이나 /56을 할당받아 세그먼트마다 하나의 /64로 나눕니다 — /48에는 65 536개가 있어 아낄 필요가 없습니다.
- 제가 입력한 것이 서버로 전송되나요?
- 아니요. 모두 브라우저 안에서 도는 산술입니다 — 아무것도 조회·업로드·기록되지 않습니다. 그래서 네트워크 연결이 전혀 없어도 계속 동작합니다.