Internet Protocol Address
- 네트워크에서 장치를 식별하는 고유 주소
- 데이터를 올바른 목적지로 전달
32비트 주소 체계
- 4개 옥텟 (8비트씩)
- 점(.)으로 구분
- 0~255 범위
예:
192.168.1.1
2진수:
11000000.10101000.00000001.00000001
총 개수:
2^32 = 약 43억 개
Class A:
0.0.0.0 ~ 127.255.255.255
첫 비트: 0
네트워크: 8비트
호스트: 24비트
용도: 대규모 네트워크
Class B:
128.0.0.0 ~ 191.255.255.255
첫 2비트: 10
네트워크: 16비트
호스트: 16비트
용도: 중규모 네트워크
Class C:
192.0.0.0 ~ 223.255.255.255
첫 3비트: 110
네트워크: 24비트
호스트: 8비트
용도: 소규모 네트워크
Class D:
224.0.0.0 ~ 239.255.255.255
멀티캐스트용
Class E:
240.0.0.0 ~ 255.255.255.255
예약됨 (실험용)
사설 IP (Private IP):
- Class A: 10.0.0.0 ~ 10.255.255.255
- Class B: 172.16.0.0 ~ 172.31.255.255
- Class C: 192.168.0.0 ~ 192.168.255.255
용도: 내부 네트워크
공인 IP (Public IP):
- 인터넷에서 사용
- 전 세계적으로 유일
- ISP가 할당
Loopback:
- 127.0.0.1 (localhost)
- 자기 자신을 가리킴
- 테스트용
Broadcast:
- 255.255.255.255
- 네트워크 내 모든 장치
예약 IP:
- 0.0.0.0: 모든 네트워크
- 169.254.0.0/16: APIPA (자동 할당 실패 시)
큰 네트워크를 작은 네트워크로 분할
- 효율적인 IP 관리
- 보안 향상
- 브로드캐스트 도메인 분리
네트워크 부분과 호스트 부분을 구분
예: 255.255.255.0
2진수:
11111111.11111111.11111111.00000000
└─────────────┬───────────┘└───┬───┘
네트워크 부분 호스트 부분
1: 네트워크 비트
0: 호스트 비트
Classless Inter-Domain Routing
192.168.1.0/24
└─ 네트워크 비트 수
/24 = 255.255.255.0
/16 = 255.255.0.0
/8 = 255.0.0.0
계산:
/24 → 24비트 네트워크, 8비트 호스트
호스트 수 = 2^8 - 2 = 254개
(-2는 네트워크 주소와 브로드캐스트 주소)
네트워크: 192.168.1.0/24
네트워크 주소: 192.168.1.0
첫 호스트: 192.168.1.1
마지막 호스트: 192.168.1.254
브로드캐스트: 192.168.1.255
사용 가능 호스트: 254개
원본: 192.168.1.0/24 (254 호스트)
2개로 분할 (/25):
- 192.168.1.0/25 (126 호스트)
범위: 192.168.1.1 ~ 192.168.1.126
- 192.168.1.128/25 (126 호스트)
범위: 192.168.1.129 ~ 192.168.1.254
4개로 분할 (/26):
- 192.168.1.0/26 (62 호스트)
- 192.168.1.64/26 (62 호스트)
- 192.168.1.128/26 (62 호스트)
- 192.168.1.192/26 (62 호스트)
CIDR | 서브넷 마스크 | 호스트 수
-----|-------------------|----------
/8 | 255.0.0.0 | 16,777,214
/16 | 255.255.0.0 | 65,534
/24 | 255.255.255.0 | 254
/25 | 255.255.255.128 | 126
/26 | 255.255.255.192 | 62
/27 | 255.255.255.224 | 30
/28 | 255.255.255.240 | 14
/29 | 255.255.255.248 | 6
/30 | 255.255.255.252 | 2
/31 | 255.255.255.254 | 0 (P2P 전용)
/32 | 255.255.255.255 | 1 (단일 호스트)
IPv4 고갈 문제:
- 43억 개 주소 부족
- IoT 기기 증가
- 모바일 기기 증가
해결:
- IPv6 도입 (340간 개 주소)
- 2^128 = 약 340,282,366,920,938,463,463,374,607,431,768,211,456개
128비트 주소 체계
- 8개 그룹 (16비트씩)
- 콜론(:)으로 구분
- 16진수 표기
예:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
1. 앞의 0 생략:
2001:0db8:0000:0042:0000:8a2e:0370:7334
↓
2001:db8:0:42:0:8a2e:370:7334
2. 연속된 0 생략 (::):
2001:0db8:0000:0000:0000:0000:0000:0001
↓
2001:db8::1
주의: ::는 한 번만 사용 가능
잘못된 예:
2001::85a3::7334 ✘
올바른 예:
2001:0:0:0:85a3:0:0:7334
↓
2001::85a3:0:0:7334
또는
2001:0:0:0:85a3::7334
Loopback:
::1 (IPv4의 127.0.0.1)
Unspecified:
:: (모든 비트가 0)
Link-Local:
fe80::/10
자동 구성, 로컬 네트워크에서만
Unique Local:
fc00::/7 ~ fdff::/7
사설 IP (IPv4의 192.168.x.x)
Multicast:
ff00::/8
그룹 통신
Global Unicast:
2000::/3
인터넷 라우팅 가능
| 항목 | IPv4 | IPv6 |
|------|------|------|
| 주소 길이 | 32비트 | 128비트 |
| 표기 | 10진수 | 16진수 |
| 주소 개수 | 43억 | 340간 |
| 헤더 크기 | 20~60바이트 | 40바이트(고정) |
| Checksum | 있음 | 없음 |
| Broadcast | 있음 | 없음(Multicast) |
| NAT | 필요 | 불필요 |
| 보안 | 선택 | 필수(IPSec) |
| 자동 구성 | DHCP | SLAAC + DHCPv6 |
사설 IP ↔ 공인 IP 변환
- IPv4 주소 부족 해결
- 보안 (내부 IP 숨김)
내부 네트워크 (사설 IP)
[PC1: 192.168.1.10]
[PC2: 192.168.1.20]
[PC3: 192.168.1.30]
↓
[NAT Router]
공인 IP: 203.0.113.5
↓
인터넷
1. PC1 → 인터넷 (192.168.1.10 → 203.0.113.5)
2. 인터넷 → PC1 (203.0.113.5 → 192.168.1.10)
외부에서는 203.0.113.5만 보임 ✔
1. Static NAT (1:1):
사설 IP 1개 ↔ 공인 IP 1개
192.168.1.10 ↔ 203.0.113.10
2. Dynamic NAT:
사설 IP 여러 개 ↔ 공인 IP 풀
3. PAT (Port Address Translation) / NAPT:
사설 IP 여러 개 ↔ 공인 IP 1개 + Port
예:
192.168.1.10:50000 ↔ 203.0.113.5:50000
192.168.1.20:50001 ↔ 203.0.113.5:50001
192.168.1.30:50002 ↔ 203.0.113.5:50002
가장 많이 사용 (가정, 회사) ✔
NAT 라우터가 변환 정보 저장
내부 IP:Port | 외부 IP:Port | 목적지
-------------|--------------|--------
192.168.1.10:50000 | 203.0.113.5:50000 | 8.8.8.8:80
192.168.1.20:50001 | 203.0.113.5:50001 | 1.1.1.1:443
192.168.1.30:50002 | 203.0.113.5:50002 | 8.8.8.8:80
패킷 변환:
출발: 192.168.1.10:50000 → 8.8.8.8:80
NAT 후: 203.0.113.5:50000 → 8.8.8.8:80
응답: 8.8.8.8:80 → 203.0.113.5:50000
NAT 후: 8.8.8.8:80 → 192.168.1.10:50000
장점:
✔ IPv4 주소 절약
✔ 보안 (내부 IP 숨김)
✔ 내부 네트워크 유연성
단점:
✘ P2P 통신 어려움
✘ 일부 프로토콜 문제 (FTP, SIP)
✘ End-to-End 연결 불가
✘ 성능 오버헤드
NAT 뒤의 장치가 외부와 통신하는 기술
1. Port Forwarding:
외부 Port → 내부 IP:Port 매핑
예: 203.0.113.5:8080 → 192.168.1.10:80
2. UPnP (Universal Plug and Play):
자동으로 포트 포워딩 설정
3. STUN (Session Traversal Utilities for NAT):
자신의 공인 IP:Port 확인
4. TURN (Traversal Using Relays around NAT):
중계 서버 사용
5. ICE (Interactive Connectivity Establishment):
STUN + TURN 조합
WebRTC에서 사용
회사 IP: 192.168.0.0/24
부서: 영업, 개발, 인사, 관리
요구사항:
- 영업: 50대
- 개발: 100대
- 인사: 20대
- 관리: 10대
설계:
1. 개발팀 (100대 필요 → /25, 126개)
192.168.0.0/25
범위: 192.168.0.1 ~ 192.168.0.126
2. 영업팀 (50대 필요 → /26, 62개)
192.168.0.128/26
범위: 192.168.0.129 ~ 192.168.0.190
3. 인사팀 (20대 필요 → /27, 30개)
192.168.0.192/27
범위: 192.168.0.193 ~ 192.168.0.222
4. 관리팀 (10대 필요 → /28, 14개)
192.168.0.224/28
범위: 192.168.0.225 ~ 192.168.0.238
문제:
192.168.10.0/24를 4개의 동일한 서브넷으로 분할
풀이:
1. 원래 호스트 비트: 8비트 (24비트 네트워크)
2. 4개 분할: 2^2 = 4 → 2비트 추가
3. 새로운 서브넷: /26 (24 + 2)
4. 각 서브넷 호스트: 2^6 - 2 = 62개
서브넷:
1) 192.168.10.0/26
네트워크: 192.168.10.0
범위: 192.168.10.1 ~ 192.168.10.62
브로드캐스트: 192.168.10.63
2) 192.168.10.64/26
네트워크: 192.168.10.64
범위: 192.168.10.65 ~ 192.168.10.126
브로드캐스트: 192.168.10.127
3) 192.168.10.128/26
네트워크: 192.168.10.128
범위: 192.168.10.129 ~ 192.168.10.190
브로드캐스트: 192.168.10.191
4) 192.168.10.192/26
네트워크: 192.168.10.192
범위: 192.168.10.193 ~ 192.168.10.254
브로드캐스트: 192.168.10.255
여러 네트워크를 하나로 합치기
네트워크:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
병합:
192.168.0.0/22
계산:
/24 = 256 호스트
4개 = 1024 호스트
2^10 = 1024 → 10비트 호스트
32 - 10 = 22비트 네트워크
범위:
192.168.0.0 ~ 192.168.3.255
수동으로 IP 주소 설정
설정 예:
IP 주소: 192.168.1.100
서브넷 마스크: 255.255.255.0
게이트웨이: 192.168.1.1
DNS: 8.8.8.8
장점:
✔ IP 주소 고정
✔ 원격 접속 용이
✔ 서버에 적합
단점:
✘ 수동 설정 필요
✘ 관리 어려움
✘ IP 충돌 위험
사용:
- 서버
- 프린터
- 네트워크 장비
Dynamic Host Configuration Protocol
자동으로 IP 주소 할당
동작 과정:
1. DHCP Discover (브로드캐스트)
Client: "IP 주소 필요해요!"
2. DHCP Offer
Server: "192.168.1.100 어때요?"
3. DHCP Request
Client: "192.168.1.100 주세요!"
4. DHCP Ack
Server: "192.168.1.100 드립니다!"
클라이언트가 IP 주소 사용 ✔
임대 시간 (Lease Time):
- 기본: 24시간
- 갱신: 임대 시간의 50%에 갱신 시도
- 만료: 재할당 필요
장점:
✔ 자동 할당
✔ 관리 용이
✔ IP 효율적 사용
단점:
✘ IP 주소 변경 가능
✘ DHCP 서버 필요
사용:
- 일반 PC
- 모바일 기기
- 노트북
# Windows
ipconfig
ipconfig /all # 상세 정보
ipconfig /release # IP 해제
ipconfig /renew # IP 갱신
# Linux / macOS
ifconfig
ip addr show # IP 주소 확인
ip route show # 라우팅 테이블
# 공인 IP 확인
curl ifconfig.me
curl icanhazip.com
# Ping (연결 테스트)
ping 8.8.8.8
ping google.com
# Traceroute (경로 추적)
tracert google.com # Windows
traceroute google.com # Linux/macOS
# DNS 조회
nslookup google.com
dig google.com
# 포트 확인
netstat -an # 모든 연결
telnet google.com 80 # 포트 테스트
내부 네트워크에 사설 IP 사용
이점:
✔ 외부에서 직접 접근 불가
✔ 보안 향상
✔ IP 주소 절약
권장:
- 내부: 192.168.x.x
- DMZ: 별도 서브넷
- 외부: 방화벽으로 보호
IP 주소 위조 공격 방지
대책:
1. Ingress Filtering:
외부에서 내부 IP로 들어오는 패킷 차단
2. Egress Filtering:
내부에서 잘못된 출발지 IP 차단
3. Anti-Spoofing 규칙:
방화벽에서 검증
짧은 답변:
IPv4:
- 32비트 (43억 개)
- 192.168.1.1
- 주소 고갈
IPv6:
- 128비트 (340간 개)
- 2001:db8::1
- 주소 풍부, 보안 강화
IPv4 고갈로 IPv6 전환 중
현재는 듀얼 스택으로 공존
상세 답변:
IPv4 (Internet Protocol version 4):
구조:
- 32비트 주소 체계
- 4개 옥텟 (8비트씩)
- 점(.)으로 구분
- 예: 192.168.1.1
주소 개수:
- 2^32 = 약 43억 개
- 이미 고갈됨
클래스:
- Class A, B, C (네트워크 크기별)
- 사설 IP: 192.168.x.x, 10.x.x.x
- 공인 IP: 전 세계적으로 유일
문제점:
- 주소 고갈
- NAT 필요
- 헤더 복잡
- 보안 선택사항
IPv6 (Internet Protocol version 6):
구조:
- 128비트 주소 체계
- 8개 그룹 (16비트씩)
- 콜론(:)으로 구분
- 예: 2001:0db8::1
주소 개수:
- 2^128 = 약 340간 개
- 사실상 무한대
특징:
- 주소 풍부
- NAT 불필요
- 헤더 단순화 (40바이트 고정)
- IPSec 필수 (보안 강화)
- 자동 구성 (SLAAC)
- Broadcast 없음 (Multicast만)
표기 간소화:
- 앞의 0 생략: 0db8 → db8
- 연속된 0 생략: 0000:0000 → ::
전환:
- 듀얼 스택: IPv4 + IPv6 동시
- 터널링: IPv6를 IPv4로 캡슐화
- NAT64: IPv6 ↔ IPv4 변환
현재 상황:
- 전 세계적으로 전환 중
- 대부분 듀얼 스택 지원
- 모바일/IoT는 IPv6 우선
짧은 답변:
서브넷은 큰 네트워크를 작은
네트워크로 분할하는 기술입니다.
서브넷 마스크:
- 네트워크/호스트 부분 구분
- 예: 255.255.255.0 = /24
이점:
- 효율적 IP 관리
- 보안 향상
- 브로드캐스트 도메인 분리
상세 답변:
서브넷 (Subnet):
정의:
하나의 큰 네트워크를 여러 개의
작은 네트워크로 논리적으로 분할
목적:
1. IP 주소 효율적 관리:
- 필요한 만큼만 할당
- 낭비 최소화
2. 보안 향상:
- 부서별 네트워크 분리
- 접근 제어 용이
3. 성능 개선:
- 브로드캐스트 도메인 축소
- 트래픽 격리
4. 관리 편의성:
- 네트워크 구조화
- 문제 격리
서브넷 마스크:
역할:
- IP 주소의 네트워크/호스트 부분 구분
- AND 연산으로 네트워크 주소 계산
예:
IP: 192.168.1.100
Mask: 255.255.255.0 (/24)
→ 네트워크: 192.168.1.0
→ 호스트: 100
CIDR 표기:
/24 = 255.255.255.0
/16 = 255.255.0.0
/8 = 255.0.0.0
계산:
/24 → 24비트 네트워크, 8비트 호스트
호스트 수 = 2^8 - 2 = 254개
(-2: 네트워크 주소, 브로드캐스트 주소)
서브네팅 예시:
원본: 192.168.1.0/24
2개로 분할 (/25):
- 192.168.1.0/25 (126 호스트)
- 192.168.1.128/25 (126 호스트)
4개로 분할 (/26):
- 192.168.1.0/26 (62 호스트)
- 192.168.1.64/26
- 192.168.1.128/26
- 192.168.1.192/26
VLSM (Variable Length Subnet Mask):
- 서브넷마다 다른 크기
- 필요에 맞게 최적화
- 예: 영업 /26, 개발 /25, 인사 /27
실무 활용:
- 기업 네트워크 설계
- 데이터센터 구성
- 클라우드 VPC 설계
- 보안 구역 분리 (DMZ 등)
짧은 답변:
NAT는 사설 IP와 공인 IP를
변환하는 기술입니다.
동작:
내부 (192.168.1.10)
↓ NAT
외부 (203.0.113.5)
이점:
- IPv4 주소 절약
- 보안 (내부 IP 숨김)
단점:
- P2P 통신 어려움
상세 답변:
NAT (Network Address Translation):
정의:
사설 IP 주소와 공인 IP 주소 간 변환
- IP 주소 부족 문제 해결
- 네트워크 보안 강화
배경:
- IPv4 주소 고갈 (43억 개)
- 모든 장치에 공인 IP 불가능
- 사설 IP로 내부 네트워크 구성
동작:
내부 → 외부:
1. PC (192.168.1.10) → 인터넷
2. NAT 라우터가 출발지 IP 변경
3. 192.168.1.10 → 203.0.113.5
4. NAT 테이블에 기록
외부 → 내부:
1. 인터넷 → 203.0.113.5
2. NAT 테이블 조회
3. 203.0.113.5 → 192.168.1.10
4. 내부 PC로 전달
NAT 종류:
1. Static NAT (1:1):
- 사설 IP 1개 ↔ 공인 IP 1개
- 서버용
2. Dynamic NAT:
- 사설 IP 여러 개 ↔ 공인 IP 풀
- 순차 할당
3. PAT (Port Address Translation):
- 사설 IP 여러 개 ↔ 공인 IP 1개 + Port
- 가장 많이 사용 (가정, 회사)
- 포트 번호로 구분
장점:
✔ IPv4 주소 절약
✔ 보안 강화 (내부 IP 숨김)
✔ 내부 네트워크 유연성
단점:
✘ P2P 통신 어려움
✘ 일부 프로토콜 문제
✘ End-to-End 연결 불가
✘ 성능 오버헤드
NAT Traversal:
- Port Forwarding: 특정 포트 매핑
- UPnP: 자동 설정
- STUN: 공인 IP 확인
- TURN: 중계 서버 사용
- ICE: STUN + TURN
IPv6에서:
- NAT 불필요 (주소 충분)
- End-to-End 연결 복원
- 하지만 전환 중에는 NAT64 사용
IPv4:
- 32비트, 43억 개
- 192.168.1.1
- 클래스 A, B, C
- 사설 IP + NAT
IPv6:
- 128비트, 340간 개
- 2001:db8::1
- 주소 풍부
- 보안 강화
서브넷:
- 네트워크 분할
- /24 = 254 호스트
- CIDR 표기
- VLSM 활용
NAT:
- 사설 ↔ 공인 변환
- 주소 절약
- 보안 향상
- PAT 가장 많이 사용