Backend Development

네트워크 IP 할당의 모든 것: 정적 IP vs 동적 IP, 무엇을 선택해야 할까?

Kun Woo Kim 2025. 6. 27. 11:07
반응형

네트워크 관리를 하다 보면 호스트에게 IP 주소를 어떻게 할당할지 결정해야 합니다. 정적 IP와 동적 IP, 두 방식 모두 장단점이 있어 상황에 따라 적절한 선택이 필요합니다. 오늘은 두 방식의 차이점과 DHCP 동작 원리까지 자세히 알아보겠습니다.


IP 주소 할당 방식의 기본 개념

정적 IP 할당 (Static IP Assignment)

정적 IP 할당은 관리자가 수동으로 각 호스트에 고정된 IP 주소를 설정하는 방식입니다. 한 번 설정하면 호스트를 재시작하거나 네트워크에 재연결해도 동일한 IP 주소를 유지합니다.

정적 IP 설정에 필요한 정보

# Linux에서 정적 IP 설정 예시
sudo ip addr add 192.168.1.100/24 dev eth0    # IP 주소와 서브넷 마스크
sudo ip route add default via 192.168.1.1     # 게이트웨이
echo "nameserver 8.8.8.8" >> /etc/resolv.conf # DNS 서버
설정 항목 설명 예시
IP 주소 호스트의 고유 주소 192.168.1.100
서브넷 마스크 네트워크 범위 정의 255.255.255.0 (/24)
게이트웨이 외부 네트워크 연결 지점 192.168.1.1
DNS 서버 도메인 이름 해석 서버 8.8.8.8, 8.8.4.4

동적 IP 할당 (Dynamic IP Assignment)

동적 IP 할당은 DHCP 서버가 자동으로 사용 가능한 IP 주소를 임대해주는 방식입니다. 호스트는 네트워크에 연결될 때마다 사용 가능한 IP 주소를 자동으로 받게 됩니다.


정적 IP vs 동적 IP: 장단점 비교

정적 IP의 장단점

✅ 장점

  • 예측 가능성: 항상 동일한 IP 주소 사용
  • 서버 운영: 웹서버, 데이터베이스 서버 등에 적합
  • 원격 접근: SSH, RDP 등 원격 접근이 용이
  • 포트 포워딩: 라우터 설정이 단순

❌ 단점

  • 관리 부담: 호스트 수가 많을수록 설정 복잡
  • IP 충돌 위험: 중복 IP 할당으로 인한 네트워크 오류
  • 확장성 부족: 새로운 호스트 추가 시 수동 설정 필요
  • IP 낭비: 사용하지 않는 호스트에도 IP 할당

동적 IP의 장단점

✅ 장점

  • 자동화: IP 주소 자동 할당 및 관리
  • IP 효율성: 필요한 만큼만 IP 사용 (임대 방식)
  • 확장성: 새로운 호스트 자동 인식 및 할당
  • 충돌 방지: DHCP 서버가 중복 할당 방지

❌ 단점

  • IP 변경: 재연결 시 IP 주소가 바뀔 수 있음
  • 서버 의존성: DHCP 서버 장애 시 IP 할당 불가
  • 예측 어려움: 특정 호스트의 IP 주소를 미리 알기 어려움

DHCP 동작 원리: 4단계 프로세스

DHCP(Dynamic Host Configuration Protocol)는 DORA 과정을 통해 IP 주소를 할당합니다.

1. Discover (발견)

클라이언트 → 브로드캐스트: "DHCP 서버 있나요?"
  • 클라이언트가 네트워크에 연결되면서 DHCP 서버를 찾기 위해 브로드캐스트 메시지 전송
  • 목적지 IP: 255.255.255.255 (브로드캐스트 주소)

2. Offer (제안)

DHCP 서버 → 클라이언트: "이 IP 주소 어때요?"
  • DHCP 서버가 사용 가능한 IP 주소와 임대 조건을 제안
  • 포함 정보: IP 주소, 서브넷 마스크, 게이트웨이, DNS, 임대 기간

3. Request (요청)

클라이언트 → 브로드캐스트: "제안받은 IP 주소를 사용하겠습니다"
  • 클라이언트가 제안받은 IP 주소 사용 의사를 브로드캐스트로 알림
  • 여러 DHCP 서버가 있을 경우, 선택한 서버 명시

4. Acknowledgment (승인)

DHCP 서버 → 클라이언트: "IP 주소 임대 승인!"
  • DHCP 서버가 IP 주소 임대를 최종 승인
  • 클라이언트는 해당 IP 주소를 임대 기간 동안 사용

DHCP 패킷 구조 예시

# DHCP 패킷의 주요 필드 (Python 예시)
class DHCPPacket:
    def __init__(self):
        self.op = 1           # Operation: 1=Request, 2=Reply
        self.htype = 1        # Hardware Type: 1=Ethernet
        self.hlen = 6         # Hardware Length
        self.xid = 0x12345678 # Transaction ID
        self.ciaddr = 0       # Client IP Address
        self.yiaddr = 0       # Your IP Address
        self.siaddr = 0       # Server IP Address
        self.giaddr = 0       # Gateway IP Address
        self.chaddr = b'\x00' * 16  # Client Hardware Address

실무에서의 활용 시나리오

언제 정적 IP를 사용해야 할까?

1. 서버 환경

# 웹서버 설정 예시
server {
    listen 80;
    server_name example.com;
    # 정적 IP: 192.168.1.100 고정 사용
}

2. 네트워크 장비

  • 라우터, 스위치, 방화벽: 네트워크 인프라의 중심
  • 프린터, NAS: 공유 자원에 대한 일관된 접근

3. 개발 환경

# Docker Compose에서 정적 IP 설정
version: '3'
services:
  database:
    image: mysql:8.0
    networks:
      app_network:
        ipv4_address: 172.20.0.10

networks:
  app_network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

언제 동적 IP를 사용해야 할까?

1. 일반 사용자 환경

  • 개인용 컴퓨터, 스마트폰, 태블릿: 임시 사용이 많은 기기
  • 게스트 네트워크: 방문자용 임시 접속

2. 대규모 환경

# DHCP 풀 설정 예시 (Cisco 스타일)
"""
ip dhcp pool LAN_POOL
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.1
 dns-server 8.8.8.8 8.8.4.4
 lease 7 0 0  # 7일 임대
"""

DHCP 임대 갱신과 관리

임대 갱신 프로세스

sequenceDiagram
    participant C as 클라이언트
    participant D as DHCP 서버

    Note over C: 임대 기간 50% 경과
    C->>D: DHCP Request (갱신 요청)
    D->>C: DHCP ACK (갱신 승인)

    Note over C: 임대 기간 87.5% 경과
    C->>D: DHCP Request (재갱신 요청)
    D->>C: DHCP ACK (재갱신 승인)

IPv4 vs IPv6 DHCP

구분 DHCPv4 DHCPv6
주소 형식 32비트 (192.168.1.1) 128비트 (2001:db8::1)
브로드캐스트 브로드캐스트 사용 멀티캐스트 사용
자동 설정 DHCP 필수 SLAAC + DHCPv6
포트 번호 67(서버), 68(클라이언트) 546(클라이언트), 547(서버)

하이브리드 접근: DHCP 예약

실무에서는 DHCP 예약(Reservation)을 통해 두 방식의 장점을 결합할 수 있습니다.

# DHCP 예약 설정 예시
# MAC 주소 기반으로 특정 IP 할당
host server1 {
    hardware ethernet 00:1B:44:11:3A:B7;
    fixed-address 192.168.1.100;
}

장점:

  • 자동 네트워크 설정 유지
  • 예측 가능한 IP 주소
  • 중앙화된 관리

네트워크 보안 고려사항

DHCP 보안 위협

1. DHCP Spoofing

# DHCP 스푸핑 탐지 로직 예시
def detect_dhcp_spoofing(dhcp_servers):
    legitimate_servers = ['192.168.1.1']

    for server in dhcp_servers:
        if server not in legitimate_servers:
            alert(f"Unauthorized DHCP server detected: {server}")

2. DHCP Starvation

  • 공격자가 모든 IP 주소를 고갈시키는 공격
  • 대응책: MAC 주소 필터링, DHCP Snooping

보안 강화 방법

# DHCP Snooping 설정 (Cisco 스위치)
ip dhcp snooping
ip dhcp snooping vlan 10
ip dhcp snooping trust  # 신뢰할 수 있는 포트 설정

결론

IP 주소 할당 방식 선택은 네트워크 환경과 요구사항에 따라 결정되어야 합니다.

정적 IP 선택 기준:

  • 서버나 네트워크 인프라 장비
  • 원격 접근이 필요한 시스템
  • 일관된 네트워크 주소가 중요한 서비스

동적 IP 선택 기준:

  • 일반 사용자 기기
  • 대규모 네트워크 환경
  • 효율적인 IP 주소 관리가 필요한 경우

마치 도시에서 집 주소를 부여하는 것처럼, 고정 주소가 필요한 중요한 건물(서버)에는 정적 IP를, 임시 거주자(일반 사용자)에게는 동적 IP를 할당하는 것이 효율적입니다. DHCP의 4단계 과정을 이해하고 적절한 보안 조치를 취한다면, 안정적이고 효율적인 네트워크 운영이 가능합니다.

반응형