IT Knowledge/Network/images/02-ip-주소와-서브넷팅-venn.svg

IP 주소와 서브넷팅

학습 목표

  • IP 주소가 왜 필요한지 이해하기
  • IPv4 주소의 구조와 범위 이해하기
  • 서브넷 마스크와 서브넷 계산 방법 마스터하기
  • 실전 상황에서 서브넷을 계산할 수 있기
  • IPv6의 기본 개념과 IPv4와의 차이점 이해하기

Part 1: IP 주소란 무엇인가요? (왜 필요한가?)

🤔 핵심 질문

인터넷에 연결된 수십억 대의 컴퓨터를 서로 식별하려면 어떻게 해야 할까요?

일상적인 비유: 주소체계

실제 세계의 주소체계:

대한민국 서울시 강남구 강남대로 123번지 45호
  │   │    │   │    │   │
  │   │    │   │    │   └── 상세 번지
  │   │    │   │   └────── 호수
  │   │    │   └──────── 번지
  │   │    └────────── 도로명
  │   └─────────── 구명
  └─────────────── 도시

IP 주소 체계:

192.168.1.100
 │   │   │   │
 │   │   │   └── 호스트 주소 (100)
 │   │   └────── 네트워크 주소 (192.168.1)
 │   └────────── 호스트 식별자 (192.168.1.100)
 └────────────── 전체 주소

🌐 IP 주소의 정의

IP 주소 = 인터넷에 연결된 각 장치를 식별하는 고유한 번호

핵심 포인트:

  • 인터넷상의 “집 주소”
  • 전 세계에서 유일해야 함
  • 통신을 위해 필수적

📊 IP 주소의 역할

역할설명예시
식별통신할 대상 식별”192.168.1.100으로 데이터 보내”
라우팅최적 경로 결정”93.184.216.34로 가는 경로”
필터링허용/차단 결정”192.168.1.0/24만 통신 허용”

Part 2: IPv4 주소 구조 상세 분석

🏗️ IPv4 주소의 구조

192.168.1.100
│   │   │   │
│   │   │   └── 호스트 ID (8비트)
│   │   └────── 네트워크 ID (24비트)
│   └────────── 옥텟 구분
└──────────── 전체 32비트

📏 각 부분의 역할

1. 옥텟 (Octet)

  • 크기: 8비트 (0-255)
  • 역할: 주소의 구성 단위
  • 예시:
    • 192 (0-255)
    • 168 (0-255)
    • 1 (0-255)
    • 100 (0-255)

2. 호스트 ID (Host ID)

  • 크기: 8비트
  • 역할: 네트워크 내에서 호스트 식별
  • 범위: 0-254 (실제 사용 가능한 범위)
  • 주의:
    • 0: 네트워크 주소 (사용 불가)
    • 255: 브로드캐스트 주소 (사용 불가)

3. 네트워크 ID (Network ID)

  • 크기: 24비트
  • 역할: 네트워크 자체 식별
  • 예시: 192.168.1.0/24

💡 실제 예시로 이해하기

예시 1: 가정용 네트워크

IP 주소: 192.168.1.100
네트워크: 192.168.1.0/24
호스트 ID: 100

의미: "192.168.1.0/24 네트워크의 100번째 호스트"

예시 2: 웹 서버

IP 주소: 93.184.216.34
네트워크: 93.184.216.0/24
호스트 ID: 34

의미: "93.184.216.0/24 네트워크의 34번째 호스트"

Part 3: IP 주소 클래스 (레거시)

🎯 왜 클래스가 필요한가요?

문제: 32비트 IP 주소를 어떻게 효율적으로 배분할까요?

해결책: 클래스 기반 주소 할당

📊 IP 주소 클래스

클래스첫 번째 옥텟 범위네트워크 비트호스트 비트서브넷 마스크예시 네트워크호스트 수
A0-127824255.0.0.0 (/8)10.0.0.0/816,777,214
B128-1911616255.255.0.0 (/16)172.16.0.0/1665,534
C192-223248255.255.255.0 (/24)192.168.1.0/24254
D224-239---멀티캐스트-
E240-255---예약-

📝 클래스별 특징

클래스 A

  • 용도: 대규모 네트워크
  • 특징: 매우 많은 호스트 (1600만대)
  • 예시: 정부 기관, 대학 네트워크

클래스 B

  • 용도: 중대형 네트워크
  • 특징: 많은 호스트 (6만 5천대)
  • 예시: 기업 네트워크

클래스 C

  • 용도: 소규모 네트워크
  • 특징: 적은 호스트 (254대)
  • 예시: 가정용 네트워크 (가장 일반적)

클래스 D & E

  • 클래스 D: 멀티캐스트 (동일 데이터를 여러 수신자에게 전송)
  • 클래스 E: 예약 (연구용)

⚠️ 사용 중지된 클래스 A, B

이유:

  • 너무 많은 호스트 수 → 효율성 낮음
  • 현재는 클래스 C와 CIDR이 주로 사용됨

Part 4: 서브넷팅 (Subnetting)

🤔 서브넷팅이 뭔데요?

문제 상황:

192.168.1.0/24 네트워크에 500대의 컴퓨터를 연결하려고 합니다. 하지만 클래스 C 네트워크는 최대 254대의 호스트만 지원합니다. 어떻게 해결할까요?

해결책: 서브넷팅!

🎯 서브넷팅의 정의

서브넷팅 = 하나의 네트워크를 여러 개의 작은 네트워크(서브넷)로 분할하는 기법

📏 서브넷 마스크

정의: 네트워크 ID와 호스트 ID를 구분하는 32비트 마스크

서브넷 마스크 구조:

예시: /24 서브넷 마스크
255.255.255.0
  │    │    │
  │    │    └── 호스트 ID (0 = 무시)
  │    └─────── 호스트 ID (0 = 무시)
  └─────────── 네트워크 ID (1 = 사용)

이진수:
11111111.11111111.11111111.00000000

🔄 서브넷 계산 과정

단계 1: 필요한 서브넷 수 결정

상황: 192.168.1.0/24 네트워크에 3개의 부서를 분할

필요 서브넷: 3개 필요 비트: 2^2 = 4 → 2비트

단계 2: 새로운 서브넷 마스크 계산

원래 서브넷 마스크: /24 (11111111.11111111.11111111.00000000) 새로운 서브넷 마스크: /26 (11111111.11111111.11111111.11111100)

  • 2비트 추가 (0에서 1로)

단계 3: 서브넷 목록 생성

서브넷네트워크 주소브로드캐스트사용 가능 호스트 범위호스트 수
서브넷 1192.168.1.0192.168.1.63192.168.1.1 ~ 192.168.1.6262
서브넷 2192.168.1.64192.168.1.127192.168.1.65 ~ 192.168.1.12662
서브넷 3192.168.1.128192.168.1.191192.168.1.129 ~ 192.168.1.19062
서브넷 4192.168.1.192192.168.1.255192.168.1.193 ~ 192.168.1.25462

💡 실전 예시로 이해하기

상황: 3개의 부서가 있고 각 부서에 20대의 컴퓨터가 필요

서브넷 계산:

  1. 필요 서브넷: 3개
  2. 필요 비트: 2비트 (2^2 = 4 ≥ 3)
  3. 새로운 서브넷 마스크: /26
  4. 각 서브넷의 호스트 수: 64대 (20대 × 3부서 = 60대, 여유 있음)

서브넷 할당:

  • 영업팀: 192.168.1.0/26 (0-63)
  • 개발팀: 192.168.1.64/26 (64-127)
  • 인사팀: 192.168.1.128/26 (128-191)

Part 5: CIDR 표기법

🎯 왜 CIDR가 필요한가요?

문제: 서브넷 마스크를 255.255.255.0으로 표현하는 것이 번거롭습니다.

해결책: CIDR (Classless Inter-Domain Routing)

📊 CIDR 표기법

형식: IP주소/서브넷마스크비트

예시:

192.168.1.0/24
│         │  └── 24 = 서브넷 마스크 비트 (11111111.11111111.11111111.00000000)
│         └───── 네트워크 주소

📏 주요 CIDR 표기법

CIDR서브넷 마스크호스트 수사용 예시
/8255.0.0.016,777,214대규모 네트워크
/16255.255.0.065,534중형 네트워크
/24255.255.255.0254가정용 네트워크
/26255.255.255.19262서브넷팅
/27255.255.255.22430작은 서브넷
/28255.255.255.24014매우 작은 서브넷
/29255.255.255.2486최소 서브넷
/30255.255.255.2522포인트 투 포인트 연결
/32255.255.255.2551단일 호스트

🔄 서브넷 계산 공식

1. 필요한 비트 계산

2^n ≥ 필요한 서브넷 수

예시: 10개의 서브넷이 필요한 경우
2^3 = 8 (부족)
2^4 = 16 (충분)
→ 4비트 필요

2. 서브넷 마스크 계산

새로운 마스크 비트 = 32 - 필요한 비트

예시: /24에서 4비트 추가
32 - 4 = 28
새로운 서브넷 마스크: /28

3. 호스트 수 계산

호스트 수 = 2^(32 - 마스크 비트) - 2

예시: /26
호스트 수 = 2^(32-26) - 2 = 2^6 - 2 = 64 - 2 = 62

※ -2 이유: 네트워크 주소(0)와 브로드캐스트(255) 제외

Part 6: 실전 서브넷 계산 예제

🎯 문제 1: 기업 네트워크 설계

상황:

  • 전체 IP 대역: 192.168.0.0/16
  • 필요 서브넷:
    • 본사 (200대)
    • 영업 (100대)
    • 개발 (50대)
    • 인사 (30대)
    • 게스트 (20대)
    • 서버 (10대)

계산:

  1. 최대 서브넷 수: 6개
  2. 필요 비트: 3비트 (2^3 = 8 ≥ 6)
  3. 원래 마스크: /16
  4. 새로운 마스크: /19 (16 + 3)
  5. 각 서브넷 호스트 수: 2^(32-19) - 2 = 8190 - 2 = 8188

서브넷 할당:

부서서브넷CIDR호스트 범위필요 호스트여유
본사192.168.0.0/19192.168.0.1 ~ 192.168.31.2542007988
영업192.168.32.0/19192.168.32.1 ~ 192.168.63.2541008088
개발192.168.64.0/19192.168.64.1 ~ 192.168.95.254508138
인사192.168.96.0/19192.168.96.1 ~ 192.168.127.254308158
게스트192.168.128.0/19192.168.128.1 ~ 192.168.159.254208168
서버192.168.160.0/19192.168.160.1 ~ 192.168.191.254108178

🎯 문제 2: 호스트 수 계산

상황: 100대의 호스트를 수용하는 서브넷 필요

계산:

  1. 필요한 호스트: 100대
  2. 네트워크 주소 + 브로드캐스트 포함: 100 + 2 = 102
  3. 2^6 = 64 (부족)
  4. 2^7 = 128 (충분)
  5. 필요한 비트: 7비트
  6. 서브넷 마스크: /32 - 7 = /25

결과: /25 서브넷 (호스트 수: 126)


Part 7: 사설 IP 주소

🏠 사설 IP 주소의 정의

사설 IP = 인터넷에서 직접 접속할 수 없는 내부용 IP 주소

📊 사설 IP 주소 범위

클래스사설 IP 범위용도
A10.0.0.0 ~ 10.255.255.255대규모 조직
B172.16.0.0 ~ 172.31.255.255중형 조직
C192.168.0.0 ~ 192.168.255.255가정용

💡 사설 IP vs 공인 IP

특성사설 IP공인 IP
접속성내부에서만 접속 가능인터넷에서 접속 가능
비용무료유료 (ISP 구독)
유일성여러 기업에서 재사용 가능전 세계에서 유일
예시192.168.1.10093.184.216.34

🔄 NAT (Network Address Translation)

정의: 사설 IP와 공인 IP 간의 변환

작동 원리:

내부 네트워크 (사설 IP)
    ↓
    NAT 변환
    ↓
인터넷 (공인 IP)

실제 예시:

내부 PC: 192.168.1.100
공인 IP: 203.0.113.1

사용자가 웹 접속 시:
192.168.1.100:8080 → 203.0.113.1:8080

Part 8: 특수 IP 주소

📋 특수 IP 주소 목록

IP 주소용도설명
127.0.0.1루프백자기 자신을 가리킴 (localhost)
0.0.0.0현재 네트워크”자기 자신의 네트워크”
255.255.255.255브로드캐스트”모든 호스트” (동일 네트워크)
169.254.x.x링크로컬DHCP 실패 시 자동 할당
224.0.0.0 ~ 239.255.255.255멀티캐스트동일 데이터 다수 전송

💡 특수 IP 사용 예시

루프백 (127.0.0.1)

# 로컬 웹 서버 테스트
curl http://127.0.0.1:8080
 
# 데이터베이스 접속
mysql -h 127.0.0.1 -u root -p

브로드캐스트 (255.255.255.255)

# 전체 네트워크에 브로드캐스트 전송
ping 255.255.255.255

Part 9: IPv6 개요

🚀 왜 IPv6가 필요한가요?

문제: IPv4 주소가 고갈되고 있음 (약 43억 개만 실제 사용 가능)

해결책: IPv6 (128비트 주소)

📊 IPv6 vs IPv4 비교

특성IPv4IPv6
주소 길이32비트128비트
주소 수약 43억 개약 3.4 × 10^38 개
표기법점으로 구분 (192.168.1.1)콜론으로 구분 (2001:0db8:85a3::1)
헤더 크기20~60바이트40바이트 (고정)
NAT필수불필요

🏗️ IPv6 주소 구조

2001:0db8:85a3:0000:0000:8a2e:0370:7334
│      │   │   │               │   │
│      │   │   └─── 호스트 ID (64비트)
│      │   └─────── 서브넷 ID (64비트)
│      └─────────── 네트워크 ID (48비트)
└────────────────── 전체 128비트

📏 IPv6 단축 표기

  1. 선행 0 생략:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
→ 2001:db8:85a3:0:0:8a2e:370:7334
  1. 연속 0 생략 (최대 1번):
2001:0db8:85a3:0000:0000:8a2e:0370:7334
→ 2001:db8:85a3::8a2e:370:7334

🎯 실전 IPv6 예시

로컬 링크: ::1 (IPv4의 127.0.0.1과 동일) 무선 국지 주소: fe80::/10 (IPv4의 192.168.0.0/24와 유사)


Part 10: 실무 연습 문제

🎯 문제 1: 서브넷 계산

상황:

  • 네트워크: 192.168.0.0/24
  • 필요한 서브넷:
    • 부서 A: 30대
    • 부서 B: 20대
    • 부서 C: 10대
    • 부서 D: 50대

질문:

  1. 어떻게 서브넷을 나눌까요?
  2. 각 서브넷의 CIDR은 무엇인가요?
  3. 각 서브넷의 사용 가능한 IP 범위는?

힌트:

  • 최대 필요 호스트: 50대 (부서 D)
  • 2^5 = 32 (부족), 2^6 = 64 (충분)
  • 필요 비트: 6비트
  • 새로운 마스크: /30

🎯 문제 2: 호스트 수 계산

상황: 500대의 호스트를 수용해야 함

질문:

  1. 필요한 서브넷 마스크는?
  2. 호스트 수는 충분한가요?

힌트:

  • 네트워크 주소 + 브로드캐스트 포함: 500 + 2 = 502
  • 2^8 = 256 (부족)
  • 2^9 = 512 (충분)
  • 서브넷 마스크: /23

🛠️ 실무 명령어

# 1. IP 주소 확인
ip addr show
 
# 2. 서브넷 계산 도구
ipcalc 192.168.1.0/24
 
# 3. 서브넷 정보 확인
ip route
 
# 4. 네트워크 상태 확인
netstat -rn

Part 11: 학습자 스스로 체크 포인트

📝 자기 평가 질문

  1. IP 주소의 구조를 설명할 수 있나요?

    • 💡 힌트: 32비트, 네트워크 ID, 호스트 ID
  2. 서브넷 마스크의 역할을 설명할 수 있나요?

    • 💡 힌트: 네트워크 ID와 호스트 ID 구분
  3. /24 서브넷에서 호스트 수를 계산할 수 있나요?

    • 💡 힌트: 2^8 - 2 = 254
  4. CIDR 표기법으로 서브넷을 표현할 수 있나요?

    • 💡 힌트: 192.168.1.0/24
  5. 사설 IP와 공인 IP의 차이를 설명할 수 있나요?

    • 💡 힌트: 내부용 vs 외부용, NAT

Part 12: 다음 단계

📚 학습 경로

이 모듈을 완료했다면 다음 모듈로 이동하세요:

추천 학습 순서:

  1. 모듈 1: 네트워크 기초와 OSI 모델 (완료)
  2. 모듈 2: IP 주소와 서브넷팅 (현재)
  3. ⏭️ 모듈 3: TCP와 UDP
    • TCP vs UDP 상세 비교
    • 3-way handshake 상세
    • 포트와 소켓
  4. ⏭️ 모듈 4: DNS 동작 원리
    • DNS 쿼리 과정
    • DNS 레코드
    • 실무 DNS 설정

🎓 학습 포인트 요약

✅ 이해해야 할 핵심 개념

  1. IP 주소의 구조: 네트워크 ID, 호스트 ID, 32비트
  2. IP 주소 클래스: A, B, C 클래스의 특징과 용도
  3. 서브넷팅: 네트워크 분할, 서브넷 마스크, 호스트 수 계산
  4. CIDR 표기법: /24, /26 등의 표기법
  5. 사설 vs 공인 IP: 내부용 vs 외부용, NAT
  6. IPv6: 128비트 주소, IPv4와의 차이점

💡 기억해야 할 공식

호스트 수 계산: 2^(32 - 마스크 비트) - 2

예시: /26
호스트 수 = 2^(32-26) - 2 = 64 - 2 = 62

🎯 스스로 점검할 수 있는 능력

  • 실제 환경에서 필요한 서브넷 계산
  • IP 주소 충돌 피하기
  • 효율적인 IP 주소 할당

🔗 관련 자료

📚 추천 학습 자료

  1. 교재

    • “CCNA Routing and Switching” - Wendell Odom
    • “TCP/IP Network Administration” - Craig Hunt
  2. 온라인

  3. 실습 도구


다음 모듈: TCP와 UDP 학습