Step 31. IP 주소 완전 이해 — 동네 이름과 집 번호

Step 31. IP 주소 완전 이해 — 동네 이름과 집 번호

Level 0 — 컴퓨터 조작과 구조의 이해 | 난이도 ★★★☆☆ | 예상 소요 시간 4시간

전제: Step 6(네트워크 확인)과 Step 29(SSH) 완료. 윈도우 파워쉘에서 진행합니다. 계산 연습을 위해 종이와 펜을 준비하세요.

  • 준비물: 윈도우 PC, 파워쉘, 종이와 펜.
  • 주의: 오늘 실습은 전부 조회입니다. 설정을 바꾸는 명령은 하나도 없으니 100% 안전합니다.

Step 29에서 우리는 ip a로 주소를 찾아 SSH로 접속했습니다. 그때는 "192.168로 시작하는 숫자"가 그저 집 주소였습니다. 오늘은 그 주소의 구조를 뜯어봅니다. 왜 하필 192.168로 시작할까? 끝에 붙은 /24는 뭘까? 같은 동네와 다른 동네는 어떻게 가를까?

이 질문들은 장난이 아닙니다. "이 로그의 주소가 우리 내부망인가, 외부인가?", "방화벽 규칙을 어느 범위로 열어야 하는가?" — 보안의 일상적인 질문이 전부 오늘 배우는 계산에서 시작합니다. 계산이라고 해서 겁먹지 마세요. 더하기 빼기와 "반으로 나누기"면 충분합니다.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • IPv4 주소가 사실은 32비트 숫자임을 설명한다
  • /24 같은 CIDR 표기의 의미와, 서브넷 마스크(255.255.255.0)와의 관계를 설명한다
  • 주어진 주소에서 네트워크 주소, 사용 가능 범위, 브로드캐스트 주소를 계산한다
  • ipconfig /allGet-NetIPAddress의 출력에서 내 주소·CIDR·게이트웨이를 찾아 읽는다
  • 사설 IP 대역 세 개(10.x, 172.16~31.x, 192.168.x)를 외우고, NAT의 역할을 한 문장으로 말한다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 파워쉘 5.1 (조회만, 일반 권한으로 충분) + 종이와 펜
오늘의 명령어 ipconfig /all(주소·마스크·게이트웨이), Get-NetIPAddress(주소와 PrefixLength)
필요한 개념 IPv4와 32비트, CIDR 표기, 네트워크/호스트, 브로드캐스트, 사설 IP 대역, NAT

2-1. IPv4의 실체 — 32개의 스위치

IPv4 주소(IP version 4 address)는 보기엔 숫자 네 덩어리(예: 172.30.1.54)지만, 실체는 32개의 이진 스위치입니다. 각 덩어리는 8비트(스위치 여덟 개)라서 0~255 사이의 숫자가 됩니다. 255를 넘는 숫자가 IP에 절대 못 오는 이유가 바로 이것입니다 — 8칸에 300은 안 들어갑니다.

172     . 30      . 1       . 54
10101100  00011110  00000001  00110110   ← 실제 모습 (32비트)

비트(bit)는 0 또는 1을 담는 스위치 한 칸입니다. 8비트로 만들 수 있는 경우의 수는 2^8 = 256가지, 즉 0부터 255까지입니다. 이 사실 하나만 기억하면 이 챕터의 모든 계산이 풀립니다.

2-2. 네트워크와 호스트 — 동네 이름과 집 번호

주소는 두 부분으로 나뉩니다. 앞부분은 네트워크(network) — 동네 이름, 뒷부분은 호스트(host) — 그 동네 안의 집 번호입니다. 어디까지가 동네 이름인지를 알려 주는 것이 /24 같은 표기, CIDR(Classless Inter-Domain Routing, 사이더) 표기법입니다.

  • /24 = "앞 24비트(숫자 세 덩어리)가 동네 이름, 뒤 8비트(마지막 덩어리)가 집 번호"
  • /16 = 앞 두 덩어리가 동네, 뒤 두 덩어리가 집 번호

그래서 172.30.1.54/24는 "172.30.1 동네의 54번 집"입니다. 한 동네 안의 기기들은 직접 대화할 수 있고, 다른 동네로 가려면 문지방(게이트웨이(gateway), 보통 공유기)을 거칩니다.

2-3. 서브넷 마스크와 PrefixLength — 같은 말의 두 표기

윈도우 명령마다 표기가 갈립니다. ipconfig는 "서브넷 마스크 255.255.255.0"로, Get-NetIPAddress는 "PrefixLength 24"로 보여 줍니다. 둘은 같은 말입니다.

서브넷 마스크(subnet mask) 255.255.255.0을 이진수로 펼치면 1이 24개 연속으로 나옵니다. "1인 자리가 동네 이름"이라는 표시입니다. 그래서 마스크의 1의 개수를 센 것이 바로 /뒤의 숫자, 프리픽스 길이(prefix length)입니다.

서브넷 마스크 CIDR 동네 크기
255.0.0.0 /8 약 1,677만 주소
255.255.0.0 /16 65,536개
255.255.255.0 /24 256개

2-4. 한 동네의 주소 셈법 — 세 가지 특별 주소

/24 동네에는 마지막 덩어리가 0~255, 총 256개의 숫자가 있습니다. 그런데 전부 집 번호로 쓸 수는 없습니다.

  • 네트워크 주소(network address): 맨 끝이 0(예: 172.30.1.0). "동네 자체의 이름표"라 집으로 못 씁니다.
  • 브로드캐스트 주소(broadcast address): 맨 끝이 255(예: 172.30.1.255). "동네 전체에 외치기"용이라 역시 집으로 못 씁니다.
  • 사용 가능 범위: 그 사이, .1~.254. 진짜 기기들이 쓰는 254개.

규칙을 한 문장으로: 동네의 맨 처음과 맨 끝은 뺀다. 이 규칙은 /16이든 /25이든 똑같이 적용됩니다.

2-5. 사설 대역과 NAT — 집안에서만 쓰는 주소

인터넷 세계에는 약속이 하나 있습니다(RFC 1918). 다음 세 범위는 사설 주소(private address)라서, 전 세계 어떤 집 내부에서나 마음대로 쓰되 인터넷에는 직접 못 나갑니다.

  • 10.0.0.0 ~ 10.255.255.255 (10.x.x.x)
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255

여러분 집 공유기가 192.168로 시작하고, 옆집 공유기도 192.168로 시작해도 충돌이 안 나는 이유 — 서로 다른 집 안쪽 이야기이기 때문입니다. 바깥으로 나갈 때는 공유기가 집의 대표 주소(공인 IP)로 바꿔 치는데, 이를 NAT(Network Address Translation)라고 합니다.

공인 IP와 사설 IP의 관계를 아파트 우편함에 비유할 수 있습니다. 공인 IP는 아파트 단지의 대표 주소이고, 사설 IP는 각 동·호수입니다. 택배 기사(인터넷의 패킷)는 대표 주소까지만 오고, 그 이후 동·호수 배달은 관리실(공유기의 NAT)이 대신합니다. 그래서 세상의 모든 아파트가 101동 502호를 가져도 충돌이 없습니다.


3. 따라 하기

3-1. 내 주소 찾기 — ipconfig /all

ipconfig /all

출력이 깁니다. 그중 연결된 어댑터(이더넷 또는 Wi-Fi) 부분을 찾으세요. 실측 컴퓨터의 해당 부분입니다:

Ethernet adapter 이더넷:

   Description . . . . . . . . . . . : Realtek USB GbE Family Controller
   Physical Address. . . . . . . . . : 98-FD-B4-XX-XX-XX
   IPv4 Address. . . . . . . . . . . : 172.30.1.54(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.30.1.254
   DNS Servers . . . . . . . . . . . : 168.126.63.1
                                       168.126.63.2

(2026-09-09 실측. MAC 주소의 뒷부분은 가렸고, 여러분의 주소는 다릅니다.)

출력 읽는 법:

  • IPv4 Address — 지금 이 컴퓨터가 빌려 쓰는 주소
  • Subnet Mask — 255.255.255.0이니 /24. 앞 세 덩어리가 동네 이름
  • Default Gateway — 다른 동네로 나갈 때 거치는 문지방(공유기)
  • Physical Address — 랜카드의 고유 번호(MAC 주소). 지금은 "이런 것도 보인다" 정도로만 기억해 두세요

실츬 컴퓨터의 주소는 172.30.1.54 — 172.16~31 범위 안이니 사설 주소입니다. 여러분의 주소도 10.x, 172.16~31.x, 192.168.x 중 하나일 가능성이 높습니다. 확인해 보세요.

3-2. 같은 정보의 다른 얼굴 — Get-NetIPAddress

Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress, PrefixLength
InterfaceAlias                     IPAddress       PrefixLength
--------------                     ---------       ------------
vEthernet (WSL (Hyper-V firewall)) 192.168.32.1              20
이더넷                               172.30.1.54              24
Loopback Pseudo-Interface 1        127.0.0.1                  8

(2026-09-09 실측. 실제 출력에는 더 많은 어댑터가 있으며, 여기서는 세 줄만 골랐습니다.)

출력 읽는 법: PrefixLength가 CIDR의 /뒤 숫자입니다. 이더넷이 24니까 172.30.1.54/24 — 3-1의 서브넷 마스크 255.255.255.0과 같은 정보임을 확인하세요.

실측에서 발견한 보너스: WSL 가상 어댑터의 PrefixLength가 20입니다. /20은 24보다 큰 동네입니다 — 뒤 12비트가 집 번호니 2^12 = 4,096개의 주소를 가집니다. 그리고 맨 아래 127.0.0.1/8은 "나 자신"을 뜻하는 루프백(loopback) 주소입니다.

3-3. 손으로 계산하기 — 내 주소로 검산

종이에 실측 주소 172.30.1.54/24를 풀어 봅시다.

  1. /24이니 동네 이름은 앞 세 덩어리: 172.30.1
  2. 네트워크 주소: 동네 이름 + .0 → 172.30.1.0
  3. 브로드캐스트: 동네 이름 + .255 → 172.30.1.255
  4. 사용 가능 범위: 172.30.1.1 ~ 172.30.1.254 (254개)
  5. 54번은 범위 안에 있으니 평범한 집 번호 ✓
  6. 게이트웨이 172.30.1.254는 범위의 맨 끝 번호 — 공유기가 동네의 끝 번호를 쓰는 경우가 많습니다

읽는 법: /24는 마지막 덩어리만 움직이면 되니 계산이 쉽습니다. 이제 여러분의 주소로 같은 다섯 줄을 종이에 풀어 보세요.

: 이론을 배우고 실제 시스템의 출력과 맞춰 보는 것 — 이것이 "아는 것"을 "믿는 것"으로 바꾸는 절차입니다.

3-4. 큰 동네 계산 — 10.10.5.77/16

이번엔 덩어리 두 개짜리 동네입니다.

  1. /16이니 동네 이름은 앞 두 덩어리: 10.10
  2. 네트워크 주소: 10.10.0.0
  3. 브로드캐스트: 10.10.255.255
  4. 사용 가능 범위: 10.10.0.1 ~ 10.10.255.254 (65,534개)

읽는 법: 전체 주소가 65,536개(256×256)입니다. 뒤의 두 덩어리 전체가 집 번호라서, 10.10.5.77과 10.10.99.200은 "같은 동네"입니다. 기업 내부망에서 자주 보는 크기입니다.

예측해 보기: 그렇다면 10.10.5.77/16과 10.11.5.77/16은 같은 동네일까요, 다른 동네일까요? 계산해 보세요. (정답: 다른 동네. /16은 두 번째 덩어리까지가 동네 이름이라, 10.10과 10.11은 이웃이지만 다른 동네입니다.)

3-5. 쪼갠 동네 — /25 맛보기

/24를 반으로 쪼개면 /25가 됩니다. 비트 하나가 동네 이름에 추가되니, 집 번호로 쓸 비트는 7개(2^7 = 128칸).

192.168.0.15/25의 경우:

  • 동네 전체 주소: 0~127 (128개)
  • 네트워크 주소: 192.168.0.0, 브로드캐스트: 192.168.0.127
  • 사용 가능: .1 ~ .126 (126개)

읽는 법: 숫자가 막히면 "집 번호 비트가 몇 개인가"부터 세세요. /25면 7비트 = 128칸, 양 끝 2개를 빼고 126집. 이 셈법 하나면 어떤 CIDR이 와도 겁나지 않습니다.

: 실무에서는 "부서마다 동네를 나눠야 해서" 큰 동네를 쪼개는 일(서브넷팅(subnetting))이 잦습니다. 오늘은 맛만 봅니다.

3-6. 범위 표기 읽기 — 역방향 연습

지금까지는 "주소를 주면 범위를 계산"했습니다. 이번엔 반대로, 문서에 적힌 범위 표기를 읽는 연습입니다. 방화벽 규칙이나 설정 파일에는 주소가 아니라 범위가 적혀 있기 때문입니다.

다음 표기를 보고 각각 "몇 개의 주소인가, 첫 주소와 끝 주소는 무엇인가"를 종이에 풀어 보세요.

  1. 10.0.0.0/8
  2. 192.168.100.0/24
  3. 172.16.0.0/12 — 사설 대역 가운데 덩어리 전체를 한 줄로 적은 것입니다. /16이 아니라 /12입니다: 두 번째 덩어리의 16~31(16가지)이 전부 집 번호 범위에 들어가니까요.

정답:

  1. 약 1,677만 개. 10.0.0.0 ~ 10.255.255.255. 사설 대역 중 가장 큰 동네.
  2. 256개. 192.168.100.0 ~ 192.168.100.255. 그중 쓸 수 있는 집은 254개.
  3. 약 104만 개. 172.16.0.0 ~ 172.31.255.255. 이 표기 하나로 사설 대역의 가운데 덩어리 전부를 덮습니다.

읽는 법: 덩어리 중간에서 자르는 표기(8, 12, 20 등)가 나오면 "집 번호 비트 수"로 환산하는 습관 — 32 빼기 N — 이 모든 문제를 풀어 줍니다.


4. 미션과 연습문제

미션 — 내 네트워크 명함 만들기

  1. ipconfig /allGet-NetIPAddress를 실행해 내 주소, CIDR(또는 서브넷 마스크), 게이트웨이를 찾으세요
  2. 내 주소로 네트워크 주소·브로드캐스트·사용 가능 범위를 손으로 계산하세요
  3. 게이트웨이 주소가 그 범위 안에 있는지 확인하세요 (있어야 정상입니다)
  4. 내 주소가 사설 대역 셋 중 어디에 속하는지 표시하고, 위 내용 전부를 my-network.txt에 정리하세요

연습문제

문제 1. 172.16.8.200/24의 네트워크 주소, 브로드캐스트 주소, 사용 가능 주소 수를 구하세요.

문제 2. 다음 주소가 사설인지 공인인지 분류하세요: 8.8.8.8, 10.1.1.1, 172.32.0.1, 192.168.100.5, 172.20.3.4

문제 3. "서브넷 마스크 255.255.255.128"은 CIDR로 무엇이며, 한 동네에 주소가 몇 개 있을까요? (힌트: 128 = 10000000₂)

문제 4. 192.168.0.15/24와 192.168.1.20/24가 서로 ping도 안 되는 이유를 "동네" 개념으로 설명하세요.


5. 모범 답안과 완료 기준

미션 모범 답안

실측 컴퓨터의 예 (2026-09-09):

내 주소:        172.30.1.54
서브넷 마스크:  255.255.255.0  (= /24)
게이트웨이:     172.30.1.254
네트워크 주소:  172.30.1.0
브로드캐스트:   172.30.1.255
사용 가능:      172.30.1.1 ~ 172.30.1.254 (254개)
게이트웨이 위치: 범위 안 (172.30.1.254는 .1~.254 사이) ✓
사설 대역:      172.16.0.0 ~ 172.31.255.255 구간 ✓

검증하는 법: ① 게이트웨이가 사용 가능 범위 밖이면 계산 실수입니다. ② 브로드캐스트 − 네트워크 + 1 = 전체 주소 수가 되는지 확인하세요 (255 − 0 + 1 = 256 ✓). 이 검산 규칙은 어떤 CIDR에서도 통합니다.

연습문제 해답

문제 1 해답. /24니까 동네는 172.16.8. 네트워크 172.16.8.0, 브로드캐스트 172.16.8.255, 사용 가능 254개. 주소가 172.16으로 시작한다고 /16인 것이 아닙니다 — 뒤에 붙은 CIDR이 동네 크기를 정합니다. 이것이 이 문제의 함정이자 요점입니다.

문제 2 해답. 8.8.8.8 = 공인(구글의 공개 DNS로 유명), 10.1.1.1 = 사설, 172.32.0.1 = 공인(172.16~31만 사설 — 32는 범위 밖! 경계값이 시험 포인트입니다), 192.168.100.5 = 사설, 172.20.3.4 = 사설.

문제 3 해답. 255.255.255.128은 1이 25개(255×3 = 24개 + 128의 1개)니까 /25입니다. 집 번호 비트는 7개, 한 동네에 128개 주소(그중 사용 가능 126개).

문제 4 해답. /24 기준으로 두 주소는 192.168.0 동네와 192.168.1 동네 — 다른 동네입니다. 다른 동네 간 통신은 게이트웨이(공유기)를 거쳐야 하는데, 일반 가정용 공유기는 자기 동네 안쪽만 관리하므로 길이 없습니다. "동네 이름이 같아야 직접 대화한다"가 규칙입니다.

완료 기준 체크리스트

  • [ ] IPv4 주소가 32비트이고 덩어리당 0~255인 이유를 설명할 수 있다
  • [ ] 서브넷 마스크 255.255.255.0과 /24가 같은 말임을 안다
  • [ ] 주어진 주소에서 네트워크·브로드캐스트·사용 가능 범위를 계산할 수 있다
  • [ ] ipconfig /allGet-NetIPAddress 출력에서 네 가지 정보(주소·CIDR·게이트웨이·DNS)를 찾을 수 있다
  • [ ] 사설 대역 세 개를 외웠다 (10.x, 172.16~31.x, 192.168.x)
  • [ ] 사설 주소인데 인터넷이 되는 이유(NAT)를 한 문장으로 말할 수 있다
  • [ ] 미션: 내 네트워크 명함 my-network.txt를 완성했다

6. 흔한 실수와 해결

벽 1. "주소에 300 같은 숫자를 넣었더니 안 돼요."

증상: 잘못된 주소로 ping을 쳐 보면 이런 메시지가 나옵니다 (2026-09-09 실측):

Ping request could not find host 192.168.0.300. Please check the name and try again.

원인: 한 덩어리는 8비트라 최대 255입니다. 300은 8비트에 못 들어가므로, 윈도우는 이걸 주소로 인정하지 않고 "이름"으로 취급해 찾다가 실패합니다. 한글 윈도우에서는 "Ping 요청이 호스트를 찾을 수 없습니다" 류의 한글 메시지가 뜹니다.

해결: "덩어리당 0~255"를 철칙으로 기억하세요. 그 이상을 받아 주는 프로그램은 없습니다.

벽 2. "같은 192.168인데 왜 서로 접속이 안 되죠?"

증상: 192.168.0.15와 192.168.1.20이 서로 ping이 안 됩니다.

원인: 같은 "192.168"이라 해도 /24 기준으로는 0동네와 1동네 — 다른 동네입니다. 다른 동네는 게이트웨이를 통해야 하고, 공유기가 그 길을 안 열어 주면 못 갑니다.

해결: "동네 이름이 같아야 직접 대화한다"가 규칙입니다. 두 주소의 CIDR을 먼저 확인하는 습관을 들이세요.

벽 3. ".0으로 끝나는 주소는 못 쓰는 거 아닌가요? 어떤 문서엔 기기 주소가 .0이에요."

증상: 규칙의 예외처럼 보이는 사례를 만납니다.

원인: ".0은 네트워크 주소" 규칙은 정확히는 "동네의 맨 처음"입니다. 10.1.0.0/16에서는 .0으로 끝나도 동네의 처음이 아니라서(10.1.0.0은 동네 중간의 평범한 번호) 집 번호로 쓸 수 있습니다.

해결: 규칙은 "숫자 0을 쓰지 않는다"가 아니라 "동네의 맨 처음과 맨 끝을 뺀다"입니다. 항상 동네 크기(CIDR)부터 확인하세요.

벽 4. "주소가 169.254로 시작해요. 사설 대역에도 없는데요?"

증상: Get-NetIPAddress에 169.254.x.x 주소가 보입니다 (2026-09-09 실측 컴퓨터의 끊긴 Wi-Fi 어댑터들에 이 주소가 있었습니다).

원인: 링크-로컬(link-local) 주소입니다. 주소를 나눠 주는 DHCP 서버를 못 찾았을 때 컴퓨터가 스스로 임시로 짓는 번호입니다. "연결은 했는데 주소를 못 받았다"는 신호이며, 이 상태로는 인터넷이 안 됩니다.

해결: 연결 중인 어댑터에 169.254가 보이면 케이블·와이파이·공유기 상태를 점검하세요. 끊긴 어댑터에 달려 있는 건 무시해도 됩니다.

벽 5. "사설 주소인데 인터넷이 되는 건 왜죠? 못 나가는 거 아니었나요?"

증상: 172.30.1.54 같은 사설 주소를 쓰는데 웹서핑이 잘 됩니다.

원인: 공유기의 NAT 덕분입니다. 사설 주소가 인터넷을 "돌아다니는" 게 아니라, 공유기가 공인 주소로 바꿔서 대신 다녀오는 것입니다.

해결: 혼란은 정상입니다. "내 주소(사설)"와 "바깥에서 보는 우리 집 주소(공인)"가 다르다는 사실을 기억하세요.


7. 정리

오늘의 개념

개념 한 줄 설명
IPv4 32비트 주소. 덩어리 넷, 각 0~255
CIDR (/N) "앞 N비트가 동네 이름"이라는 표기
서브넷 마스크 CIDR의 다른 표기 (255.255.255.0 = /24)
네트워크 주소 동네의 맨 처음. 집 번호로 사용 불가
브로드캐스트 주소 동네의 맨 끝. "전원에게" 용도
사설 IP 10.x / 172.16~31.x / 192.168.x — 집안 전용
NAT 공유기가 사설↔공인 주소를 바꿔 치는 기술
루프백 (127.0.0.1) "나 자신"을 가리키는 특별 주소

오늘의 명령어

명령 하는 일
ipconfig /all 주소·마스크·게이트웨이·DNS·MAC 전부 보기
Get-NetIPAddress -AddressFamily IPv4 어댑터별 주소와 PrefixLength 보기
ping 주소 상대에게 "거기 있어?" 묻기

명령어보다 중요한 감각

계산이 막히면 "집 번호 비트가 몇 개인가"(32 빼기 N)부터 세면 됩니다. 이 한 문장이 모든 CIDR 문제의 열쇠입니다.

보안에서 범위는 곧 책임의 경계입니다. 로그에서 이상한 접속을 보고 "이 주소가 우리 동네 주소인가?"를 판정하는 것, 방화벽에 "192.168.0.0/24에서만 허용"이라고 적는 것 — 전부 오늘의 계산입니다. 주소를 보고 "어느 동네 사람인지" 즉시 읽는 눈, 그것이 오늘의 수확입니다.


전부 체크되면 Step 31 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.